Rerun C++ SDK
Loading...
Searching...
No Matches
vector3d.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/vector3d.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 vector in 3D space.
15 struct Vector3D {
17
18 public: // START of extensions from vector3d_ext.cpp:
19 /// Construct Vector3D from x/y/z values.
20 Vector3D(float x, float y, float z) : vector{x, y, z} {}
21
22 /// Construct Vec3D from x/y/z float pointer.
23 explicit Vector3D(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 vector3d_ext.cpp, start of generated code:
38
39 public:
40 Vector3D() = default;
41
42 Vector3D(rerun::datatypes::Vec3D vector_) : vector(vector_) {}
43
44 Vector3D& operator=(rerun::datatypes::Vec3D vector_) {
45 vector = vector_;
46 return *this;
47 }
48
49 Vector3D(std::array<float, 3> xyz_) : vector(xyz_) {}
50
51 Vector3D& 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::Vector3D));
65
66 /// \private
67 template <>
68 struct Loggable<components::Vector3D> {
69 static constexpr const char Name[] = "rerun.components.Vector3D";
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::Vector3D` into an arrow array.
77 static Result<std::shared_ptr<arrow::Array>> to_arrow(
78 const components::Vector3D* 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 vector in 3D space.
Definition vector3d.hpp:15
Vector3D(const float *xyz)
Construct Vec3D from x/y/z float pointer.
Definition vector3d.hpp:23
Vector3D(float x, float y, float z)
Construct Vector3D from x/y/z values.
Definition vector3d.hpp:20
Datatype: A vector in 3D space.
Definition vec3d.hpp:20