Rerun C++ SDK
Loading...
Searching...
No Matches
vector3d.hpp
1// DO NOT EDIT! This file was auto-generated by crates/re_types_builder/src/codegen/cpp/mod.rs
2// Based on "crates/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:
19 // Extensions to generated type defined in 'vector3d_ext.cpp'
20
21 /// Construct Vector3D from x/y/z values.
22 Vector3D(float x, float y, float z) : vector{x, y, z} {}
23
24 /// Construct Vec3D from x/y/z float pointer.
25 explicit Vector3D(const float* xyz) : vector{xyz[0], xyz[1], xyz[2]} {}
26
27 float x() const {
28 return vector.x();
29 }
30
31 float y() const {
32 return vector.y();
33 }
34
35 float z() const {
36 return vector.z();
37 }
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 return Loggable<rerun::datatypes::Vec3D>::to_arrow(&instances->vector, num_instances);
81 }
82 };
83} // namespace rerun
All built-in components. See Types in the Rerun manual.
Definition rerun.hpp:75
All Rerun C++ types and functions are in the rerun namespace or one of its nested namespaces.
Definition rerun.hpp:21
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:25
Vector3D(float x, float y, float z)
Construct Vector3D from x/y/z values.
Definition vector3d.hpp:22
Datatype: A vector in 3D space.
Definition vec3d.hpp:20