Rerun C++ SDK
Loading...
Searching...
No Matches
pose_translation3d.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/translation3d.fbs".
3
4#pragma once
5
6#include "../datatypes/vec3d.hpp"
7#include "../result.hpp"
8
9#include <array>
10#include <cstdint>
11#include <memory>
12
13namespace rerun::components {
14 /// **Component**: A translation vector in 3D space that doesn't propagate in the transform hierarchy.
17
18 public: // START of extensions from pose_translation3d_ext.cpp:
19 /// Construct `PoseTranslation3D` from x/y/z values.
20 PoseTranslation3D(float x, float y, float z) : vector{x, y, z} {}
21
22 /// Construct `PoseTranslation3D` from x/y/z float pointer.
23 explicit PoseTranslation3D(const float* xyz) : vector{xyz[0], xyz[1], xyz[2]} {}
24
25 float x() const {
26 return vector.x();
27 }
28
29 float y() const {
30 return vector.y();
31 }
32
33 float z() const {
34 return vector.z();
35 }
36
37 // END of extensions from pose_translation3d_ext.cpp, start of generated code:
38
39 public:
40 PoseTranslation3D() = default;
41
42 PoseTranslation3D(rerun::datatypes::Vec3D vector_) : vector(vector_) {}
43
44 PoseTranslation3D& operator=(rerun::datatypes::Vec3D vector_) {
45 vector = vector_;
46 return *this;
47 }
48
49 PoseTranslation3D(std::array<float, 3> xyz_) : vector(xyz_) {}
50
51 PoseTranslation3D& operator=(std::array<float, 3> xyz_) {
52 vector = xyz_;
53 return *this;
54 }
55
56 /// Cast to the underlying Vec3D datatype
57 operator rerun::datatypes::Vec3D() const {
58 return vector;
59 }
60 };
61} // namespace rerun::components
62
63namespace rerun {
64 static_assert(sizeof(rerun::datatypes::Vec3D) == sizeof(components::PoseTranslation3D));
65
66 /// \private
67 template <>
68 struct Loggable<components::PoseTranslation3D> {
69 static constexpr const char Name[] = "rerun.components.PoseTranslation3D";
70
71 /// Returns the arrow data type this type corresponds to.
72 static const std::shared_ptr<arrow::DataType>& arrow_datatype() {
73 return Loggable<rerun::datatypes::Vec3D>::arrow_datatype();
74 }
75
76 /// Serializes an array of `rerun::components::PoseTranslation3D` into an arrow array.
77 static Result<std::shared_ptr<arrow::Array>> to_arrow(
78 const components::PoseTranslation3D* instances, size_t num_instances
79 ) {
80 if (num_instances == 0) {
81 return Loggable<rerun::datatypes::Vec3D>::to_arrow(nullptr, 0);
82 } else if (instances == nullptr) {
83 return rerun::Error(
84 ErrorCode::UnexpectedNullArgument,
85 "Passed array instances is null when num_elements> 0."
86 );
87 } else {
88 return Loggable<rerun::datatypes::Vec3D>::to_arrow(
89 &instances->vector,
90 num_instances
91 );
92 }
93 }
94 };
95} // namespace rerun
Status outcome object (success or error) returned for fallible operations.
Definition error.hpp:95
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:22
Component: A translation vector in 3D space that doesn't propagate in the transform hierarchy.
Definition pose_translation3d.hpp:15
PoseTranslation3D(float x, float y, float z)
Construct PoseTranslation3D from x/y/z values.
Definition pose_translation3d.hpp:20
PoseTranslation3D(const float *xyz)
Construct PoseTranslation3D from x/y/z float pointer.
Definition pose_translation3d.hpp:23
Datatype: A vector in 3D space.
Definition vec3d.hpp:20