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

Archetype: One or more transforms between the current entity and its parent. More...

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

 InstancePoses3D (InstancePoses3D &&other)=default
 
InstancePoses3D with_translations (Collection< rerun::components::PoseTranslation3D > _translations) &&
 Translation vectors.
 
InstancePoses3D with_rotation_axis_angles (Collection< rerun::components::PoseRotationAxisAngle > _rotation_axis_angles) &&
 Rotations via axis + angle.
 
InstancePoses3D with_quaternions (Collection< rerun::components::PoseRotationQuat > _quaternions) &&
 Rotations via quaternion.
 
InstancePoses3D with_scales (Collection< rerun::components::PoseScale3D > _scales) &&
 Scaling factors.
 
InstancePoses3D with_mat3x3 (Collection< rerun::components::PoseTransformMat3x3 > _mat3x3) &&
 3x3 transformation matrices.
 

Public Attributes

std::optional< Collection< rerun::components::PoseTranslation3D > > translations
 Translation vectors.
 
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::PoseScale3D > > scales
 Scaling factors.
 
std::optional< Collection< rerun::components::PoseTransformMat3x3 > > mat3x3
 3x3 transformation matrices.
 

Static Public Attributes

static constexpr const char IndicatorComponentName []
 

Detailed Description

Archetype: One or more transforms between the current entity and its parent.

Unlike archetypes::Transform3D, it is not propagated in the transform hierarchy.

If both archetypes::InstancePoses3D and archetypes::Transform3D are present, first the tree propagating archetypes::Transform3D is applied, then archetypes::InstancePoses3D.

Currently, many visualizers support only a single instance transform per entity. Check archetype documentations for details - if not otherwise specified, only the first instance transform is applied.

From the point of view of the entity's coordinate system, all components are applied in the inverse order they are listed here. E.g. if both a translation and a max3x3 transform are present, the 3x3 matrix is applied first, followed by the translation.

Example

Regular & instance transforms in tandem

image

#include <rerun.hpp>
#include <rerun/demo_utils.hpp>
int main() {
const auto rec = rerun::RecordingStream("rerun_example_instance_pose3d_combined");
rec.set_time_sequence("frame", 0);
// Log a box and points further down in the hierarchy.
rec.log("world/box", rerun::Boxes3D::from_half_sizes({{1.0, 1.0, 1.0}}));
rec.log(
"world/box/points",
rerun::Points3D(rerun::demo::grid3d<rerun::Position3D, float>(-10.0f, 10.0f, 10))
);
for (int i = 0; i <180; ++i) {
rec.set_time_sequence("frame", i);
// Log a regular transform which affects both the box and the points.
rec.log(
"world/box",
rerun::Transform3D::from_rotation(rerun::RotationAxisAngle{
{0.0f, 0.0f, 1.0f},
rerun::Angle::degrees(static_cast<float>(i) * 2.0f)})
);
// Log an instance pose which affects only the box.
rec.log(
"world/box",
{{0.0f, 0.0f, std::abs(static_cast<float>(i) * 0.1f - 5.0f) - 5.0f}}
)
);
}
}
A RecordingStream handles everything related to logging data into Rerun.
Definition recording_stream.hpp:60
Archetype: One or more transforms between the current entity and its parent.
Definition instance_poses3d.hpp:77
InstancePoses3D with_translations(Collection< rerun::components::PoseTranslation3D > _translations) &&
Translation vectors.
Definition instance_poses3d.hpp:105
Archetype: A 3D point cloud with positions and optional colors, radii, labels, etc.
Definition points3d.hpp:155
static Angle degrees(float degrees_)
New angle in degrees.
Definition angle.hpp:39
Datatype: 3D rotation represented by a rotation around a given axis.
Definition rotation_axis_angle.hpp:21

Member Data Documentation

◆ IndicatorComponentName

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

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