6#include "../archetype_utils.hpp"
7#include "../collection.hpp"
8#include "../component_batch.hpp"
9#include "../component_column.hpp"
10#include "../components/clear_is_recursive.hpp"
11#include "../rerun_sdk_export.hpp"
12#include "../result.hpp"
87 std::optional<ComponentBatch> is_recursive;
100 RERUN_SDK_EXPORT
static const Clear FLAT;
102 RERUN_SDK_EXPORT
static const Clear RECURSIVE;
104 Clear(
bool _is_recursive =
false) :
Clear(components::ClearIsRecursive(_is_recursive)) {}
111 Clear& operator=(
const Clear& other) =
default;
131 return std::move(*
this);
143 return std::move(*
this);
155 return detail::partition_batches({&is_recursive}, lengths_).value_or_throw();
163 return detail::partition_batches_of_unit_length({&is_recursive}).value_or_throw();
171 template <
typename T>
176 struct AsComponents<archetypes::Clear> {
178 static Result<Collection<ComponentBatch>> as_batches(
const archetypes::Clear& archetype) {
179 return detail::collect_batches({&archetype.is_recursive});
Generic collection of elements that are roughly contiguous in memory.
Definition collection.hpp:49
All built-in archetypes. See Types in the Rerun manual.
Definition rerun.hpp:90
All Rerun C++ types and functions are in the rerun namespace or one of its nested namespaces.
Definition rerun.hpp:26
Arrow-encoded data of a single batch of components together with a component descriptor.
Definition component_batch.hpp:28
static Result< ComponentBatch > from_loggable(const rerun::Collection< T > &components, const ComponentDescriptor &descriptor)
Creates a new component batch from a collection of component instances.
Definition component_batch.hpp:46
A ComponentDescriptor fully describes the semantics of a column of data.
Definition component_descriptor.hpp:16
The Loggable trait is used by all built-in implementation of rerun::AsComponents to serialize a colle...
Definition loggable.hpp:11
Archetype: Empties all the components of an entity.
Definition clear.hpp:86
Clear with_many_is_recursive(const Collection< rerun::components::ClearIsRecursive > &_is_recursive) &&
This method makes it possible to pack multiple is_recursive in a single component batch.
Definition clear.hpp:138
static constexpr const char ArchetypeName[]
The name of the archetype as used in ComponentDescriptors.
Definition clear.hpp:91
Collection< ComponentColumn > columns()
Partitions the component data into unit-length sub-batches.
Definition clear.hpp:162
Collection< ComponentColumn > columns(const Collection< uint32_t > &lengths_)
Partitions the component data into multiple sub-batches.
Definition clear.hpp:154
static Clear clear_fields()
Clear all the fields of a Clear.
static Clear update_fields()
Update only some specific fields of a Clear.
Definition clear.hpp:121
static constexpr auto Descriptor_is_recursive
ComponentDescriptor for the is_recursive field.
Definition clear.hpp:94
Component: Configures how a clear operation should behave - recursive or not.
Definition clear_is_recursive.hpp:14