Rerun C++ SDK
Loading...
Searching...
No Matches
container_blueprint.hpp
1// DO NOT EDIT! This file was auto-generated by crates/build/re_types_builder/src/codegen/cpp/mod.rs
2// Based on "crates/store/re_types/definitions/rerun/blueprint/archetypes/container_blueprint.fbs".
3
4#pragma once
5
6#include "../../blueprint/components/active_tab.hpp"
7#include "../../blueprint/components/column_share.hpp"
8#include "../../blueprint/components/container_kind.hpp"
9#include "../../blueprint/components/grid_columns.hpp"
10#include "../../blueprint/components/included_content.hpp"
11#include "../../blueprint/components/row_share.hpp"
12#include "../../collection.hpp"
13#include "../../component_batch.hpp"
14#include "../../component_column.hpp"
15#include "../../components/name.hpp"
16#include "../../components/visible.hpp"
17#include "../../indicator_component.hpp"
18#include "../../result.hpp"
19
20#include <cstdint>
21#include <optional>
22#include <utility>
23#include <vector>
24
25namespace rerun::blueprint::archetypes {
26 /// **Archetype**: The description of a container.
27 ///
28 /// ⚠ **This type is _unstable_ and may change significantly in a way that the data won't be backwards compatible.**
29 ///
31 /// The class of the view.
32 std::optional<ComponentBatch> container_kind;
33
34 /// The name of the container.
35 std::optional<ComponentBatch> display_name;
36
37 /// `ContainerId`s or `ViewId`s that are children of this container.
38 std::optional<ComponentBatch> contents;
39
40 /// The layout shares of each column in the container.
41 ///
42 /// For `components::ContainerKind::Horizontal` containers, the length of this list should always match the number of contents.
43 ///
44 /// Ignored for `components::ContainerKind::Vertical` containers.
45 std::optional<ComponentBatch> col_shares;
46
47 /// The layout shares of each row of the container.
48 ///
49 /// For `components::ContainerKind::Vertical` containers, the length of this list should always match the number of contents.
50 ///
51 /// Ignored for `components::ContainerKind::Horizontal` containers.
52 std::optional<ComponentBatch> row_shares;
53
54 /// Which tab is active.
55 ///
56 /// Only applies to `Tabs` containers.
57 std::optional<ComponentBatch> active_tab;
58
59 /// Whether this container is visible.
60 ///
61 /// Defaults to true if not specified.
62 std::optional<ComponentBatch> visible;
63
64 /// How many columns this grid should have.
65 ///
66 /// If unset, the grid layout will be auto.
67 ///
68 /// Ignored for `components::ContainerKind::Horizontal`/`components::ContainerKind::Vertical` containers.
69 std::optional<ComponentBatch> grid_columns;
70
71 public:
72 static constexpr const char IndicatorComponentName[] =
73 "rerun.blueprint.components.ContainerBlueprintIndicator";
74
75 /// Indicator component, used to identify the archetype when converting to a list of components.
77 /// The name of the archetype as used in `ComponentDescriptor`s.
78 static constexpr const char ArchetypeName[] =
79 "rerun.blueprint.archetypes.ContainerBlueprint";
80
81 /// `ComponentDescriptor` for the `container_kind` field.
83 ArchetypeName, "container_kind",
85 );
86 /// `ComponentDescriptor` for the `display_name` field.
88 ArchetypeName, "display_name",
90 );
91 /// `ComponentDescriptor` for the `contents` field.
93 ArchetypeName, "contents",
95 );
96 /// `ComponentDescriptor` for the `col_shares` field.
98 ArchetypeName, "col_shares",
100 );
101 /// `ComponentDescriptor` for the `row_shares` field.
103 ArchetypeName, "row_shares",
105 );
106 /// `ComponentDescriptor` for the `active_tab` field.
108 ArchetypeName, "active_tab",
110 );
111 /// `ComponentDescriptor` for the `visible` field.
113 ArchetypeName, "visible",
115 );
116 /// `ComponentDescriptor` for the `grid_columns` field.
118 ArchetypeName, "grid_columns",
120 );
121
122 public:
123 ContainerBlueprint() = default;
124 ContainerBlueprint(ContainerBlueprint&& other) = default;
125 ContainerBlueprint(const ContainerBlueprint& other) = default;
126 ContainerBlueprint& operator=(const ContainerBlueprint& other) = default;
127 ContainerBlueprint& operator=(ContainerBlueprint&& other) = default;
128
129 explicit ContainerBlueprint(rerun::blueprint::components::ContainerKind _container_kind)
130 : container_kind(ComponentBatch::from_loggable(
131 std::move(_container_kind), Descriptor_container_kind
132 )
133 .value_or_throw()) {}
134
135 /// Update only some specific fields of a `ContainerBlueprint`.
137 return ContainerBlueprint();
138 }
139
140 /// Clear all the fields of a `ContainerBlueprint`.
142
143 /// The class of the view.
145 const rerun::blueprint::components::ContainerKind& _container_kind
146 ) && {
149 .value_or_throw();
150 return std::move(*this);
151 }
152
153 /// The name of the container.
156 .value_or_throw();
157 return std::move(*this);
158 }
159
160 /// `ContainerId`s or `ViewId`s that are children of this container.
163 ) && {
164 contents =
165 ComponentBatch::from_loggable(_contents, Descriptor_contents).value_or_throw();
166 return std::move(*this);
167 }
168
169 /// The layout shares of each column in the container.
170 ///
171 /// For `components::ContainerKind::Horizontal` containers, the length of this list should always match the number of contents.
172 ///
173 /// Ignored for `components::ContainerKind::Vertical` containers.
176 ) && {
177 col_shares =
178 ComponentBatch::from_loggable(_col_shares, Descriptor_col_shares).value_or_throw();
179 return std::move(*this);
180 }
181
182 /// The layout shares of each row of the container.
183 ///
184 /// For `components::ContainerKind::Vertical` containers, the length of this list should always match the number of contents.
185 ///
186 /// Ignored for `components::ContainerKind::Horizontal` containers.
189 ) && {
190 row_shares =
191 ComponentBatch::from_loggable(_row_shares, Descriptor_row_shares).value_or_throw();
192 return std::move(*this);
193 }
194
195 /// Which tab is active.
196 ///
197 /// Only applies to `Tabs` containers.
200 ) && {
201 active_tab =
202 ComponentBatch::from_loggable(_active_tab, Descriptor_active_tab).value_or_throw();
203 return std::move(*this);
204 }
205
206 /// Whether this container is visible.
207 ///
208 /// Defaults to true if not specified.
210 visible = ComponentBatch::from_loggable(_visible, Descriptor_visible).value_or_throw();
211 return std::move(*this);
212 }
213
214 /// How many columns this grid should have.
215 ///
216 /// If unset, the grid layout will be auto.
217 ///
218 /// Ignored for `components::ContainerKind::Horizontal`/`components::ContainerKind::Vertical` containers.
221 ) && {
223 .value_or_throw();
224 return std::move(*this);
225 }
226
227 /// Partitions the component data into multiple sub-batches.
228 ///
229 /// Specifically, this transforms the existing `ComponentBatch` data into `ComponentColumn`s
230 /// instead, via `ComponentBatch::partitioned`.
231 ///
232 /// This makes it possible to use `RecordingStream::send_columns` to send columnar data directly into Rerun.
233 ///
234 /// The specified `lengths` must sum to the total length of the component batch.
236
237 /// Partitions the component data into unit-length sub-batches.
238 ///
239 /// This is semantically similar to calling `columns` with `std::vector<uint32_t>(n, 1)`,
240 /// where `n` is automatically guessed.
242 };
243
244} // namespace rerun::blueprint::archetypes
245
246namespace rerun {
247 /// \private
248 template <typename T>
249 struct AsComponents;
250
251 /// \private
252 template <>
253 struct AsComponents<blueprint::archetypes::ContainerBlueprint> {
254 /// Serialize all set component batches.
255 static Result<Collection<ComponentBatch>> as_batches(
257 );
258 };
259} // namespace rerun
Generic collection of elements that are roughly contiguous in memory.
Definition collection.hpp:49
A class for representing either a usable value, or an error.
Definition result.hpp:14
All Rerun C++ types and functions are in the rerun namespace or one of its nested namespaces.
Definition rerun.hpp:23
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=rerun::Loggable< T >::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:14
The Loggable trait is used by all built-in implementation of rerun::AsComponents to serialize a colle...
Definition loggable.hpp:11
Archetype: The description of a container.
Definition container_blueprint.hpp:30
static constexpr auto Descriptor_display_name
ComponentDescriptor for the display_name field.
Definition container_blueprint.hpp:87
ContainerBlueprint with_col_shares(const Collection< rerun::blueprint::components::ColumnShare > &_col_shares) &&
The layout shares of each column in the container.
Definition container_blueprint.hpp:174
std::optional< ComponentBatch > active_tab
Which tab is active.
Definition container_blueprint.hpp:57
static constexpr const char ArchetypeName[]
The name of the archetype as used in ComponentDescriptors.
Definition container_blueprint.hpp:78
std::optional< ComponentBatch > display_name
The name of the container.
Definition container_blueprint.hpp:35
ContainerBlueprint with_container_kind(const rerun::blueprint::components::ContainerKind &_container_kind) &&
The class of the view.
Definition container_blueprint.hpp:144
static constexpr auto Descriptor_grid_columns
ComponentDescriptor for the grid_columns field.
Definition container_blueprint.hpp:117
ContainerBlueprint with_visible(const rerun::components::Visible &_visible) &&
Whether this container is visible.
Definition container_blueprint.hpp:209
std::optional< ComponentBatch > container_kind
The class of the view.
Definition container_blueprint.hpp:32
static constexpr auto Descriptor_contents
ComponentDescriptor for the contents field.
Definition container_blueprint.hpp:92
ContainerBlueprint with_grid_columns(const rerun::blueprint::components::GridColumns &_grid_columns) &&
How many columns this grid should have.
Definition container_blueprint.hpp:219
ContainerBlueprint with_display_name(const rerun::components::Name &_display_name) &&
The name of the container.
Definition container_blueprint.hpp:154
std::optional< ComponentBatch > row_shares
The layout shares of each row of the container.
Definition container_blueprint.hpp:52
std::optional< ComponentBatch > contents
ContainerIds or ViewIds that are children of this container.
Definition container_blueprint.hpp:38
static constexpr auto Descriptor_container_kind
ComponentDescriptor for the container_kind field.
Definition container_blueprint.hpp:82
Collection< ComponentColumn > columns()
Partitions the component data into unit-length sub-batches.
ContainerBlueprint with_contents(const Collection< rerun::blueprint::components::IncludedContent > &_contents) &&
ContainerIds or ViewIds that are children of this container.
Definition container_blueprint.hpp:161
ContainerBlueprint with_row_shares(const Collection< rerun::blueprint::components::RowShare > &_row_shares) &&
The layout shares of each row of the container.
Definition container_blueprint.hpp:187
Collection< ComponentColumn > columns(const Collection< uint32_t > &lengths_)
Partitions the component data into multiple sub-batches.
static constexpr auto Descriptor_active_tab
ComponentDescriptor for the active_tab field.
Definition container_blueprint.hpp:107
static ContainerBlueprint clear_fields()
Clear all the fields of a ContainerBlueprint.
std::optional< ComponentBatch > col_shares
The layout shares of each column in the container.
Definition container_blueprint.hpp:45
static constexpr auto Descriptor_row_shares
ComponentDescriptor for the row_shares field.
Definition container_blueprint.hpp:102
std::optional< ComponentBatch > visible
Whether this container is visible.
Definition container_blueprint.hpp:62
static constexpr auto Descriptor_col_shares
ComponentDescriptor for the col_shares field.
Definition container_blueprint.hpp:97
static ContainerBlueprint update_fields()
Update only some specific fields of a ContainerBlueprint.
Definition container_blueprint.hpp:136
ContainerBlueprint with_active_tab(const rerun::blueprint::components::ActiveTab &_active_tab) &&
Which tab is active.
Definition container_blueprint.hpp:198
static constexpr auto Descriptor_visible
ComponentDescriptor for the visible field.
Definition container_blueprint.hpp:112
std::optional< ComponentBatch > grid_columns
How many columns this grid should have.
Definition container_blueprint.hpp:69
Component: The active tab in a tabbed container.
Definition active_tab.hpp:20
Component: How many columns a grid container should have.
Definition grid_columns.hpp:18
Indicator component used by archetypes when converting them to component lists.
Definition indicator_component.hpp:32
Component: A display name, typically for an entity or a item like a plot series.
Definition name.hpp:17
Component: Whether the container, view, entity or instance is currently visible.
Definition visible.hpp:15