Rerun C++ SDK
Loading...
Searching...
No Matches
rerun::archetypes::Boxes3D Struct Reference

Archetype: 3D boxes with half-extents and optional center, rotations, colors etc. More...

#include <rerun/archetypes/boxes3d.hpp>

Public Types

using IndicatorComponent = rerun::components::IndicatorComponent< IndicatorComponentName >
 Indicator component, used to identify the archetype when converting to a list of components.
 

Public Member Functions

 Boxes3D (Boxes3D &&other)=default
 
Boxes3D with_centers (Collection< rerun::components::PoseTranslation3D > _centers) &&
 Optional center positions of the boxes.
 
Boxes3D with_rotation_axis_angles (Collection< rerun::components::PoseRotationAxisAngle > _rotation_axis_angles) &&
 Rotations via axis + angle.
 
Boxes3D with_quaternions (Collection< rerun::components::PoseRotationQuat > _quaternions) &&
 Rotations via quaternion.
 
Boxes3D with_colors (Collection< rerun::components::Color > _colors) &&
 Optional colors for the boxes.
 
Boxes3D with_radii (Collection< rerun::components::Radius > _radii) &&
 Optional radii for the lines that make up the boxes.
 
Boxes3D with_fill_mode (rerun::components::FillMode _fill_mode) &&
 Optionally choose whether the boxes are drawn with lines or solid.
 
Boxes3D with_labels (Collection< rerun::components::Text > _labels) &&
 Optional text labels for the boxes.
 
Boxes3D with_show_labels (rerun::components::ShowLabels _show_labels) &&
 Optional choice of whether the text labels should be shown by default.
 
Boxes3D with_class_ids (Collection< rerun::components::ClassId > _class_ids) &&
 Optional components::ClassIds for the boxes.
 

Static Public Member Functions

static Boxes3D from_half_sizes (Collection< components::HalfSize3D > half_sizes)
 Creates new Boxes3D with half_sizes centered around the local origin.
 
static Boxes3D from_centers_and_half_sizes (Collection< components::PoseTranslation3D > centers, Collection< components::HalfSize3D > half_sizes)
 Creates new Boxes3D with centers and half_sizes.
 
static Boxes3D from_sizes (const std::vector< datatypes::Vec3D > &sizes)
 Creates new Boxes3D with half_sizes created from (full) sizes.
 
static Boxes3D from_centers_and_sizes (Collection< components::PoseTranslation3D > centers, const std::vector< datatypes::Vec3D > &sizes)
 Creates new Boxes3D with centers and half_sizes created from centers and (full) sizes.
 
static Boxes3D from_mins_and_sizes (const std::vector< datatypes::Vec3D > &mins, const std::vector< datatypes::Vec3D > &sizes)
 Creates new Boxes3D with half_sizes and centers created from minimums and (full) sizes.
 

Public Attributes

Collection< rerun::components::HalfSize3Dhalf_sizes
 All half-extents that make up the batch of boxes.
 
std::optional< Collection< rerun::components::PoseTranslation3D > > centers
 Optional center positions of the boxes.
 
std::optional< Collection< rerun::components::PoseRotationAxisAngle > > rotation_axis_angles
 Rotations via axis + angle.
 
std::optional< Collection< rerun::components::PoseRotationQuat > > quaternions
 Rotations via quaternion.
 
std::optional< Collection< rerun::components::Color > > colors
 Optional colors for the boxes.
 
std::optional< Collection< rerun::components::Radius > > radii
 Optional radii for the lines that make up the boxes.
 
std::optional< rerun::components::FillModefill_mode
 Optionally choose whether the boxes are drawn with lines or solid.
 
std::optional< Collection< rerun::components::Text > > labels
 Optional text labels for the boxes.
 
std::optional< rerun::components::ShowLabelsshow_labels
 Optional choice of whether the text labels should be shown by default.
 
std::optional< Collection< rerun::components::ClassId > > class_ids
 Optional components::ClassIds for the boxes.
 

Static Public Attributes

static constexpr const char IndicatorComponentName [] = "rerun.components.Boxes3DIndicator"
 

Detailed Description

Archetype: 3D boxes with half-extents and optional center, rotations, colors etc.

Note that orienting and placing the box is handled via [archetypes.InstancePoses3D]. Some of its component are repeated here for convenience. If there's more instance poses than half sizes, the last half size will be repeated for the remaining poses.

Example

Batch of 3D boxes

image

#include <rerun.hpp>
int main() {
const auto rec = rerun::RecordingStream("rerun_example_box3d_batch");
rec.spawn().exit_on_failure();
rec.log(
"batch",
rerun::Boxes3D::from_centers_and_half_sizes(
{{2.0f, 0.0f, 0.0f}, {-2.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 2.0f}},
{{2.0f, 2.0f, 1.0f}, {1.0f, 1.0f, 0.5f}, {2.0f, 0.5f, 1.0f}}
)
rerun::Quaternion::IDENTITY,
// 45 degrees around Z
rerun::Quaternion::from_xyzw(0.0f, 0.0f, 0.382683f, 0.923880f),
})
.with_radii({0.025f})
rerun::Rgba32(255, 0, 0),
rerun::Rgba32(0, 255, 0),
rerun::Rgba32(0, 0, 255),
})
.with_fill_mode(rerun::FillMode::Solid)
.with_labels({"red", "green", "blue"})
);
}
A RecordingStream handles everything related to logging data into Rerun.
Definition recording_stream.hpp:60
Boxes3D with_colors(Collection< rerun::components::Color > _colors) &&
Optional colors for the boxes.
Definition boxes3d.hpp:209
Boxes3D with_fill_mode(rerun::components::FillMode _fill_mode) &&
Optionally choose whether the boxes are drawn with lines or solid.
Definition boxes3d.hpp:223
Boxes3D with_labels(Collection< rerun::components::Text > _labels) &&
Optional text labels for the boxes.
Definition boxes3d.hpp:233
Boxes3D with_quaternions(Collection< rerun::components::PoseRotationQuat > _quaternions) &&
Rotations via quaternion.
Definition boxes3d.hpp:202
Boxes3D with_radii(Collection< rerun::components::Radius > _radii) &&
Optional radii for the lines that make up the boxes.
Definition boxes3d.hpp:216
static Quaternion from_xyzw(float x, float y, float z, float w)
Construct Quaternion from x/y/z/w values.
Definition quaternion.hpp:31
Datatype: An RGBA color with unmultiplied/separate alpha, in sRGB gamma space with linear alpha.
Definition rgba32.hpp:27

Member Function Documentation

◆ from_sizes()

static Boxes3D rerun::archetypes::Boxes3D::from_sizes ( const std::vector< datatypes::Vec3D > &  sizes)
static

Creates new Boxes3D with half_sizes created from (full) sizes.

TODO(#3285): Does not preserve data as-is and instead creates half-sizes from the input data. TODO(andreas): This should not take an std::vector.

◆ from_centers_and_sizes()

static Boxes3D rerun::archetypes::Boxes3D::from_centers_and_sizes ( Collection< components::PoseTranslation3D centers,
const std::vector< datatypes::Vec3D > &  sizes 
)
inlinestatic

Creates new Boxes3D with centers and half_sizes created from centers and (full) sizes.

TODO(#3285): Does not preserve data as-is and instead creates centers and half-sizes from the input data. TODO(andreas): This should not take an std::vector.

◆ from_mins_and_sizes()

static Boxes3D rerun::archetypes::Boxes3D::from_mins_and_sizes ( const std::vector< datatypes::Vec3D > &  mins,
const std::vector< datatypes::Vec3D > &  sizes 
)
static

Creates new Boxes3D with half_sizes and centers created from minimums and (full) sizes.

TODO(#3285): Does not preserve data as-is and instead creates centers and half-sizes from the input data. TODO(andreas): This should not take an std::vector.

◆ with_centers()

Boxes3D rerun::archetypes::Boxes3D::with_centers ( Collection< rerun::components::PoseTranslation3D _centers) &&
inline

Optional center positions of the boxes.

If not specified, the centers will be at (0, 0, 0). Note that this uses a components::PoseTranslation3D which is also used by archetypes::InstancePoses3D.

◆ with_rotation_axis_angles()

Boxes3D rerun::archetypes::Boxes3D::with_rotation_axis_angles ( Collection< rerun::components::PoseRotationAxisAngle _rotation_axis_angles) &&
inline

Rotations via axis + angle.

If no rotation is specified, the axes of the boxes align with the axes of the local coordinate system. Note that this uses a components::PoseRotationAxisAngle which is also used by archetypes::InstancePoses3D.

◆ with_quaternions()

Boxes3D rerun::archetypes::Boxes3D::with_quaternions ( Collection< rerun::components::PoseRotationQuat _quaternions) &&
inline

Rotations via quaternion.

If no rotation is specified, the axes of the boxes align with the axes of the local coordinate system. Note that this uses a components::PoseRotationQuat which is also used by archetypes::InstancePoses3D.

◆ with_labels()

Boxes3D rerun::archetypes::Boxes3D::with_labels ( Collection< rerun::components::Text _labels) &&
inline

Optional text labels for the boxes.

If there's a single label present, it will be placed at the center of the entity. Otherwise, each instance will have its own label.

◆ with_class_ids()

Boxes3D rerun::archetypes::Boxes3D::with_class_ids ( Collection< rerun::components::ClassId _class_ids) &&
inline

Optional components::ClassIds for the boxes.

The components::ClassId provides colors and labels if not specified explicitly.

Member Data Documentation

◆ centers

std::optional<Collection<rerun::components::PoseTranslation3D> > rerun::archetypes::Boxes3D::centers

Optional center positions of the boxes.

If not specified, the centers will be at (0, 0, 0). Note that this uses a components::PoseTranslation3D which is also used by archetypes::InstancePoses3D.

◆ rotation_axis_angles

std::optional<Collection<rerun::components::PoseRotationAxisAngle> > rerun::archetypes::Boxes3D::rotation_axis_angles

Rotations via axis + angle.

If no rotation is specified, the axes of the boxes align with the axes of the local coordinate system. Note that this uses a components::PoseRotationAxisAngle which is also used by archetypes::InstancePoses3D.

◆ quaternions

std::optional<Collection<rerun::components::PoseRotationQuat> > rerun::archetypes::Boxes3D::quaternions

Rotations via quaternion.

If no rotation is specified, the axes of the boxes align with the axes of the local coordinate system. Note that this uses a components::PoseRotationQuat which is also used by archetypes::InstancePoses3D.

◆ labels

std::optional<Collection<rerun::components::Text> > rerun::archetypes::Boxes3D::labels

Optional text labels for the boxes.

If there's a single label present, it will be placed at the center of the entity. Otherwise, each instance will have its own label.

◆ class_ids

std::optional<Collection<rerun::components::ClassId> > rerun::archetypes::Boxes3D::class_ids

Optional components::ClassIds for the boxes.

The components::ClassId provides colors and labels if not specified explicitly.


The documentation for this struct was generated from the following file: