Rerun C++ SDK
Loading...
Searching...
No Matches
annotation_context.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/components/annotation_context.fbs".
3
4#pragma once
5
6#include "../collection.hpp"
7#include "../datatypes/class_description_map_elem.hpp"
8#include "../result.hpp"
9
10#include <cstdint>
11#include <memory>
12#include <type_traits>
13#include <utility>
14
15namespace arrow {
16 class Array;
17 class DataType;
18 class ListBuilder;
19} // namespace arrow
20
21namespace rerun::components {
22 /// **Component**: The annotation context provides additional information on how to display entities.
23 ///
24 /// Entities can use `datatypes::ClassId`s and `datatypes::KeypointId`s to provide annotations, and
25 /// the labels and colors will be looked up in the appropriate
26 /// annotation context. We use the *first* annotation context we find in the
27 /// path-hierarchy when searching up through the ancestors of a given entity
28 /// path.
29 ///
30 /// ⚠ **This type is _unstable_ and may change significantly in a way that the data won't be backwards compatible.**
31 ///
33 /// List of class descriptions, mapping class indices to class names, colors etc.
35
36 public: // START of extensions from annotation_context_ext.cpp:
37 /// Construct from an initializer list of elements from which `rerun::datatypes::ClassDescriptionMapElem`s can be constructed.
38 ///
39 /// This will then create a new collection of `rerun::datatypes::ClassDescriptionMapElem`.
40 ///
41 /// _Implementation note_:
42 /// We handle this type of conversion in a generic `rerun::ContainerAdapter`.
43 /// However, it is *still* necessary since initializer list overload resolution is handled
44 /// in a special way by the compiler, making this case not being covered by the general container case.
45 template <
46 typename TElement, //
47 typename = std::enable_if_t<
48 std::is_constructible_v<datatypes::ClassDescriptionMapElem, TElement>> //
49 >
50 AnnotationContext(std::initializer_list<TElement> class_descriptions) {
51 std::vector<datatypes::ClassDescriptionMapElem> class_map_new;
52 class_map_new.reserve(class_descriptions.size());
53 for (const auto& class_description : class_descriptions) {
54 class_map_new.emplace_back(std::move(class_description));
55 }
57 std::move(class_map_new)
58 );
59 }
60
61 // END of extensions from annotation_context_ext.cpp, start of generated code:
62
63 public:
64 AnnotationContext() = default;
65
67 : class_map(std::move(class_map_)) {}
68
69 AnnotationContext& operator=(
71 ) {
72 class_map = std::move(class_map_);
73 return *this;
74 }
75 };
76} // namespace rerun::components
77
78namespace rerun {
79 template <typename T>
80 struct Loggable;
81
82 /// \private
83 template <>
84 struct Loggable<components::AnnotationContext> {
85 static constexpr std::string_view ComponentType = "rerun.components.AnnotationContext";
86
87 /// Returns the arrow data type this type corresponds to.
88 static const std::shared_ptr<arrow::DataType>& arrow_datatype();
89
90 /// Serializes an array of `rerun::components::AnnotationContext` into an arrow array.
91 static Result<std::shared_ptr<arrow::Array>> to_arrow(
92 const components::AnnotationContext* instances, size_t num_instances
93 );
94
95 /// Fills an arrow array builder with an array of this type.
96 static rerun::Error fill_arrow_array_builder(
97 arrow::ListBuilder* builder, const components::AnnotationContext* elements,
98 size_t num_elements
99 );
100 };
101} // namespace rerun
Generic collection of elements that are roughly contiguous in memory.
Definition collection.hpp:49
static Collection< TElement > take_ownership(std::vector< TElement > &&data)
Takes ownership of a temporary std::vector, moving it into the collection.
Definition collection.hpp:200
Status outcome object (success or error) returned for fallible operations.
Definition error.hpp:99
All built-in components. See Types in the Rerun manual.
Definition rerun.hpp:79
All Rerun C++ types and functions are in the rerun namespace or one of its nested namespaces.
Definition rerun.hpp:23
Archetype: The annotation context provides additional information on how to display entities.
Definition annotation_context.hpp:69
Component: The annotation context provides additional information on how to display entities.
Definition annotation_context.hpp:32
rerun::Collection< rerun::datatypes::ClassDescriptionMapElem > class_map
List of class descriptions, mapping class indices to class names, colors etc.
Definition annotation_context.hpp:34
AnnotationContext(std::initializer_list< TElement > class_descriptions)
Construct from an initializer list of elements from which rerun::datatypes::ClassDescriptionMapElems ...
Definition annotation_context.hpp:50