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

Archetype: 3D ellipsoids or spheres. More...

#include <rerun/archetypes/ellipsoids3d.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

 Ellipsoids3D (Ellipsoids3D &&other)=default
 
 Ellipsoids3D (const Ellipsoids3D &other)=default
 
Ellipsoids3Doperator= (const Ellipsoids3D &other)=default
 
Ellipsoids3Doperator= (Ellipsoids3D &&other)=default
 
Ellipsoids3D with_half_sizes (const Collection< rerun::components::HalfSize3D > &_half_sizes) &&
 For each ellipsoid, half of its size on its three axes.
 
Ellipsoids3D with_centers (const Collection< rerun::components::PoseTranslation3D > &_centers) &&
 Optional center positions of the ellipsoids.
 
Ellipsoids3D with_rotation_axis_angles (const Collection< rerun::components::PoseRotationAxisAngle > &_rotation_axis_angles) &&
 Rotations via axis + angle.
 
Ellipsoids3D with_quaternions (const Collection< rerun::components::PoseRotationQuat > &_quaternions) &&
 Rotations via quaternion.
 
Ellipsoids3D with_colors (const Collection< rerun::components::Color > &_colors) &&
 Optional colors for the ellipsoids.
 
Ellipsoids3D with_line_radii (const Collection< rerun::components::Radius > &_line_radii) &&
 Optional radii for the lines used when the ellipsoid is rendered as a wireframe.
 
Ellipsoids3D with_fill_mode (const rerun::components::FillMode &_fill_mode) &&
 Optionally choose whether the ellipsoids are drawn with lines or solid.
 
Ellipsoids3D with_many_fill_mode (const Collection< rerun::components::FillMode > &_fill_mode) &&
 This method makes it possible to pack multiple fill_mode in a single component batch.
 
Ellipsoids3D with_labels (const Collection< rerun::components::Text > &_labels) &&
 Optional text labels for the ellipsoids.
 
Ellipsoids3D with_show_labels (const rerun::components::ShowLabels &_show_labels) &&
 Optional choice of whether the text labels should be shown by default.
 
Ellipsoids3D with_many_show_labels (const Collection< rerun::components::ShowLabels > &_show_labels) &&
 This method makes it possible to pack multiple show_labels in a single component batch.
 
Ellipsoids3D with_class_ids (const Collection< rerun::components::ClassId > &_class_ids) &&
 Optional class ID for the ellipsoids.
 
Collection< ComponentColumncolumns (const Collection< uint32_t > &lengths_)
 Partitions the component data into multiple sub-batches.
 
Collection< ComponentColumncolumns ()
 Partitions the component data into unit-length sub-batches.
 

Static Public Member Functions

static Ellipsoids3D from_radii (const std::vector< float > &sizes)
 Creates new Ellipsoids3D that are spheres, with half_sizes created from radii.
 
static Ellipsoids3D from_centers_and_radii (const std::vector< datatypes::Vec3D > &centers, const std::vector< float > &radii)
 Creates new Ellipsoids3D that are spheres, with half_sizes and centers created from centers and radii.
 
static Ellipsoids3D from_half_sizes (Collection< components::HalfSize3D > half_sizes)
 Creates new Ellipsoids3D with half_sizes centered around the local origin.
 
static Ellipsoids3D from_centers_and_half_sizes (Collection< components::PoseTranslation3D > centers, Collection< components::HalfSize3D > half_sizes)
 Creates new Ellipsoids3D with centers and half_sizes.
 
static Ellipsoids3D update_fields ()
 Update only some specific fields of a Ellipsoids3D.
 
static Ellipsoids3D clear_fields ()
 Clear all the fields of a Ellipsoids3D.
 

Public Attributes

std::optional< ComponentBatchhalf_sizes
 For each ellipsoid, half of its size on its three axes.
 
std::optional< ComponentBatchcenters
 Optional center positions of the ellipsoids.
 
std::optional< ComponentBatchrotation_axis_angles
 Rotations via axis + angle.
 
std::optional< ComponentBatchquaternions
 Rotations via quaternion.
 
std::optional< ComponentBatchcolors
 Optional colors for the ellipsoids.
 
std::optional< ComponentBatchline_radii
 Optional radii for the lines used when the ellipsoid is rendered as a wireframe.
 
std::optional< ComponentBatchfill_mode
 Optionally choose whether the ellipsoids are drawn with lines or solid.
 
std::optional< ComponentBatchlabels
 Optional text labels for the ellipsoids.
 
std::optional< ComponentBatchshow_labels
 Optional choice of whether the text labels should be shown by default.
 
std::optional< ComponentBatchclass_ids
 Optional class ID for the ellipsoids.
 

Static Public Attributes

static constexpr const char IndicatorComponentName []
 
static constexpr const char ArchetypeName [] = "rerun.archetypes.Ellipsoids3D"
 The name of the archetype as used in ComponentDescriptors.
 
static constexpr auto Descriptor_half_sizes
 ComponentDescriptor for the half_sizes field.
 
static constexpr auto Descriptor_centers
 ComponentDescriptor for the centers field.
 
static constexpr auto Descriptor_rotation_axis_angles
 ComponentDescriptor for the rotation_axis_angles field.
 
static constexpr auto Descriptor_quaternions
 ComponentDescriptor for the quaternions field.
 
static constexpr auto Descriptor_colors
 ComponentDescriptor for the colors field.
 
static constexpr auto Descriptor_line_radii
 ComponentDescriptor for the line_radii field.
 
static constexpr auto Descriptor_fill_mode
 ComponentDescriptor for the fill_mode field.
 
static constexpr auto Descriptor_labels
 ComponentDescriptor for the labels field.
 
static constexpr auto Descriptor_show_labels
 ComponentDescriptor for the show_labels field.
 
static constexpr auto Descriptor_class_ids
 ComponentDescriptor for the class_ids field.
 

Detailed Description

Archetype: 3D ellipsoids or spheres.

This archetype is for ellipsoids or spheres whose size is a key part of the data (e.g. a bounding sphere). For points whose radii are for the sake of visualization, use archetypes::Points3D instead.

Note that orienting and placing the ellipsoids/spheres 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

Covariance ellipsoid

image

#include <rerun.hpp>
#include <algorithm>
#include <random>
#include <vector>
int main() {
const auto rec = rerun::RecordingStream("rerun_example_ellipsoid_simple");
rec.spawn().exit_on_failure();
const float sigmas[3] = {5.0f, 3.0f, 1.0f};
std::default_random_engine gen;
std::normal_distribution<float> dist(0.0, 1.0f);
std::vector<rerun::Position3D> points3d(50000);
std::generate(points3d.begin(), points3d.end(), [&] {
return rerun::Position3D(
sigmas[0] * dist(gen),
sigmas[1] * dist(gen),
sigmas[2] * dist(gen)
);
});
rec.log(
"points",
rerun::Points3D(points3d).with_radii(0.02f).with_colors(rerun::Rgba32(188, 77, 185))
);
rec.log(
"ellipsoid",
rerun::Ellipsoids3D::from_centers_and_half_sizes(
{
{0.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 0.0f},
},
{
{sigmas[0], sigmas[1], sigmas[2]},
{3.0f * sigmas[0], 3.0f * sigmas[1], 3.0f * sigmas[2]},
}
)
rerun::Rgba32(255, 255, 0),
rerun::Rgba32(64, 64, 0),
})
);
}
A RecordingStream handles everything related to logging data into Rerun.
Definition recording_stream.hpp:60
Ellipsoids3D with_colors(const Collection< rerun::components::Color > &_colors) &&
Optional colors for the ellipsoids.
Definition ellipsoids3d.hpp:288
Archetype: A 3D point cloud with positions and optional colors, radii, labels, etc.
Definition points3d.hpp:175
Datatype: An RGBA color with unmultiplied/separate alpha, in sRGB gamma space with linear alpha.
Definition rgba32.hpp:28

Member Function Documentation

◆ with_half_sizes()

Ellipsoids3D rerun::archetypes::Ellipsoids3D::with_half_sizes ( const Collection< rerun::components::HalfSize3D > &  _half_sizes) &&
inline

For each ellipsoid, half of its size on its three axes.

If all components are equal, then it is a sphere with that radius.

◆ with_centers()

Ellipsoids3D rerun::archetypes::Ellipsoids3D::with_centers ( const Collection< rerun::components::PoseTranslation3D > &  _centers) &&
inline

Optional center positions of the ellipsoids.

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()

Ellipsoids3D rerun::archetypes::Ellipsoids3D::with_rotation_axis_angles ( const Collection< rerun::components::PoseRotationAxisAngle > &  _rotation_axis_angles) &&
inline

Rotations via axis + angle.

If no rotation is specified, the axes of the ellipsoid 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()

Ellipsoids3D rerun::archetypes::Ellipsoids3D::with_quaternions ( const Collection< rerun::components::PoseRotationQuat > &  _quaternions) &&
inline

Rotations via quaternion.

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

◆ with_many_fill_mode()

Ellipsoids3D rerun::archetypes::Ellipsoids3D::with_many_fill_mode ( const Collection< rerun::components::FillMode > &  _fill_mode) &&
inline

This method makes it possible to pack multiple fill_mode in a single component batch.

This only makes sense when used in conjunction with columns. with_fill_mode should be used when logging a single row's worth of data.

◆ with_many_show_labels()

Ellipsoids3D rerun::archetypes::Ellipsoids3D::with_many_show_labels ( const Collection< rerun::components::ShowLabels > &  _show_labels) &&
inline

This method makes it possible to pack multiple show_labels in a single component batch.

This only makes sense when used in conjunction with columns. with_show_labels should be used when logging a single row's worth of data.

◆ with_class_ids()

Ellipsoids3D rerun::archetypes::Ellipsoids3D::with_class_ids ( const Collection< rerun::components::ClassId > &  _class_ids) &&
inline

Optional class ID for the ellipsoids.

The class ID provides colors and labels if not specified explicitly.

◆ columns() [1/2]

Collection< ComponentColumn > rerun::archetypes::Ellipsoids3D::columns ( const Collection< uint32_t > &  lengths_)

Partitions the component data into multiple sub-batches.

Specifically, this transforms the existing ComponentBatch data into ComponentColumns instead, via ComponentBatch::partitioned.

This makes it possible to use RecordingStream::send_columns to send columnar data directly into Rerun.

The specified lengths must sum to the total length of the component batch.

◆ columns() [2/2]

Collection< ComponentColumn > rerun::archetypes::Ellipsoids3D::columns ( )

Partitions the component data into unit-length sub-batches.

This is semantically similar to calling columns with std::vector<uint32_t>(n, 1), where n is automatically guessed.

Member Data Documentation

◆ half_sizes

std::optional<ComponentBatch> rerun::archetypes::Ellipsoids3D::half_sizes

For each ellipsoid, half of its size on its three axes.

If all components are equal, then it is a sphere with that radius.

◆ centers

std::optional<ComponentBatch> rerun::archetypes::Ellipsoids3D::centers

Optional center positions of the ellipsoids.

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<ComponentBatch> rerun::archetypes::Ellipsoids3D::rotation_axis_angles

Rotations via axis + angle.

If no rotation is specified, the axes of the ellipsoid 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<ComponentBatch> rerun::archetypes::Ellipsoids3D::quaternions

Rotations via quaternion.

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

◆ class_ids

std::optional<ComponentBatch> rerun::archetypes::Ellipsoids3D::class_ids

Optional class ID for the ellipsoids.

The class ID provides colors and labels if not specified explicitly.

◆ IndicatorComponentName

constexpr const char rerun::archetypes::Ellipsoids3D::IndicatorComponentName[]
staticconstexpr
Initial value:
=
"rerun.components.Ellipsoids3DIndicator"

◆ Descriptor_half_sizes

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_half_sizes
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "half_sizes",
Loggable<rerun::components::HalfSize3D>::Descriptor.component_name
)
static constexpr const char ArchetypeName[]
The name of the archetype as used in ComponentDescriptors.
Definition ellipsoids3d.hpp:143

ComponentDescriptor for the half_sizes field.

◆ Descriptor_centers

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_centers
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "centers",
Loggable<rerun::components::PoseTranslation3D>::Descriptor.component_name
)

ComponentDescriptor for the centers field.

◆ Descriptor_rotation_axis_angles

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_rotation_axis_angles
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "rotation_axis_angles",
Loggable<rerun::components::PoseRotationAxisAngle>::Descriptor.component_name
)

ComponentDescriptor for the rotation_axis_angles field.

◆ Descriptor_quaternions

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_quaternions
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "quaternions",
Loggable<rerun::components::PoseRotationQuat>::Descriptor.component_name
)

ComponentDescriptor for the quaternions field.

◆ Descriptor_colors

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_colors
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "colors", Loggable<rerun::components::Color>::Descriptor.component_name
)

ComponentDescriptor for the colors field.

◆ Descriptor_line_radii

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_line_radii
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "line_radii",
Loggable<rerun::components::Radius>::Descriptor.component_name
)

ComponentDescriptor for the line_radii field.

◆ Descriptor_fill_mode

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_fill_mode
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "fill_mode",
Loggable<rerun::components::FillMode>::Descriptor.component_name
)

ComponentDescriptor for the fill_mode field.

◆ Descriptor_labels

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_labels
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "labels", Loggable<rerun::components::Text>::Descriptor.component_name
)

ComponentDescriptor for the labels field.

◆ Descriptor_show_labels

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_show_labels
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "show_labels",
Loggable<rerun::components::ShowLabels>::Descriptor.component_name
)

ComponentDescriptor for the show_labels field.

◆ Descriptor_class_ids

constexpr auto rerun::archetypes::Ellipsoids3D::Descriptor_class_ids
staticconstexpr
Initial value:
= ComponentDescriptor(
ArchetypeName, "class_ids",
Loggable<rerun::components::ClassId>::Descriptor.component_name
)

ComponentDescriptor for the class_ids field.


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