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.

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.

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. Some visualizers like the mesh visualizer used for [archetype.Mesh3D], will draw an object for every pose, a behavior also known as "instancing".

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:79
InstancePoses3D with_translations(Collection< rerun::components::PoseTranslation3D > _translations) &&
Translation vectors.
Definition instance_poses3d.hpp:107
Archetype: A 3D point cloud with positions and optional colors, radii, labels, etc.
Definition points3d.hpp:156
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: