SuperDex Physics C++ API
Loading...
Searching...
No Matches
superdex::ArticulatedShapeInfo Struct Reference

Information describing an articulated shape's kinematic structure. More...

#include <mochi_structs.h>

Public Attributes

Span< ArticulatedCycleJoint const > cycles
 Cycle joints creating closed kinematic loops in the articulated body.
Span< ArticulatedDofInfo const > dofInfo
 DoF information of each joint (offset within the full pose, number of translation DoFs, number of rotation DoFs).
Span< Real3 const > jointAxes
 Axis of each joint in the joint's local frame.
Span< TransformRT const > jointFromChildLink
 Transform from each joint's child link to the joint frame (rotation + translation).
Span< Real3 const > jointMaxLimits
 Maximum joint limits for each joint DoF.
Span< Real3 const > jointMinLimits
 Minimum joint limits for each joint DoF.
Span< DynamicString const > jointNames
 Name of each joint.
Span< ArticulatedJointType const > jointTypes
 Type of each joint.
Span< DynamicString const > linkNames
 Name of each link.
Span< TransformRT const > parentLinkFromJoint
 Joint frame of each joint expressed in its parent link's local frame (rotation + translation).
Span< int const > parents
 Parent link indices defining a tree-like joint structure with no cycles.
Span< TransformRT const > rootFromLinksAtRest
 Rotation and translation of each link in rest configuration relative to the local reference system of the articulated shape.

Detailed Description

Information describing an articulated shape's kinematic structure.

Provides read-only access to an articulated shape's links, joints, and hierarchy. This information is immutable once the shape is created and defines the articulation's topology and configuration limits.

Note
Number of joints = number of links + number of cycle joints.
See also
Actor::GetArticulatedShapeInfo, Context::GetArticulatedShapeInfo

Definition at line 86 of file mochi_structs.h.

Member Data Documentation

◆ cycles

Span<ArticulatedCycleJoint const> superdex::ArticulatedShapeInfo::cycles

Cycle joints creating closed kinematic loops in the articulated body.

Note
Empty if no cycles exist (i.e., the kinematic structure is purely tree-like).
Cycle entries appear at indices [numLinks, numLinks + numCycles) of the per-joint arrays (jointTypes, jointAxes, jointFromChildLink, parentLinkFromJoint, jointMinLimits, jointMaxLimits, jointNames).
See also
ArticulatedCycleJoint

Definition at line 95 of file mochi_structs.h.

◆ dofInfo

Span<ArticulatedDofInfo const> superdex::ArticulatedShapeInfo::dofInfo

DoF information of each joint (offset within the full pose, number of translation DoFs, number of rotation DoFs).

Size must be numLinks + numCycles.

Definition at line 99 of file mochi_structs.h.

◆ jointAxes

Span<Real3 const> superdex::ArticulatedShapeInfo::jointAxes

Axis of each joint in the joint's local frame.

Size must be numLinks + numCycles.

Definition at line 97 of file mochi_structs.h.

◆ jointFromChildLink

Span<TransformRT const> superdex::ArticulatedShapeInfo::jointFromChildLink

Transform from each joint's child link to the joint frame (rotation + translation).

Size must be numLinks + numCycles.

This is the transform from the child link to the joint. ArticulatedLinkParams::parentJointFromLink for tree joints and ArticulatedCycleJointParams::jointFromChildLink for cycle joints. The joint axis (jointAxes) and joint motion are interpreted in this joint frame.

Definition at line 101 of file mochi_structs.h.

◆ jointMaxLimits

Span<Real3 const> superdex::ArticulatedShapeInfo::jointMaxLimits

Maximum joint limits for each joint DoF.

Size must be numLinks + numCycles, or empty if no joint has limits.

Limits are defined for either all joints or none. Joints without maximum limits are indicated by jointMaxLimits[i] = superdex::kInf3. For 1D joints, limits are the scalar maximum limits multiplied by the joint axis. For 3D joints, each component defines the limit along one of the axes of the joint.

Note
The definition of joint limits for spherical joints may be complex, and it may be easier to model them as 3 co-located revolute joints.
Size of jointMinLimits and jointMaxLimits must be the same.

Definition at line 107 of file mochi_structs.h.

◆ jointMinLimits

Span<Real3 const> superdex::ArticulatedShapeInfo::jointMinLimits

Minimum joint limits for each joint DoF.

Size must be numLinks + numCycles, or empty if no joint has limits.

Limits are defined for either all joints or none. Joints without minimum limits are indicated by jointMinLimits[i] = -superdex::kInf3. For 1D joints, limits are the scalar minimum limits multiplied by the joint axis. For 3D joints, each component defines the limit along one of the axes of the joint.

Note
The definition of joint limits for spherical joints may be complex, and it may be easier to model them as 3 co-located revolute joints.
Size of jointMinLimits and jointMaxLimits must be the same.

Definition at line 105 of file mochi_structs.h.

◆ jointNames

Span<DynamicString const> superdex::ArticulatedShapeInfo::jointNames

Name of each joint.

Size must be numLinks + numCycles.

Definition at line 109 of file mochi_structs.h.

◆ jointTypes

Span<ArticulatedJointType const> superdex::ArticulatedShapeInfo::jointTypes

Type of each joint.

Size must be numLinks + numCycles.

See also
ArticulatedJointType

Definition at line 93 of file mochi_structs.h.

◆ linkNames

Span<DynamicString const> superdex::ArticulatedShapeInfo::linkNames

Name of each link.

Definition at line 89 of file mochi_structs.h.

◆ parentLinkFromJoint

Span<TransformRT const> superdex::ArticulatedShapeInfo::parentLinkFromJoint

Joint frame of each joint expressed in its parent link's local frame (rotation + translation).

Size must be numLinks + numCycles.

This is the transform from the joint to the parent link, corresponding to ArticulatedJointParams::parentLinkFromJoint.

Definition at line 103 of file mochi_structs.h.

◆ parents

Span<int const> superdex::ArticulatedShapeInfo::parents

Parent link indices defining a tree-like joint structure with no cycles.

Size must equal the number of links.

Note
parent[i] < i (parent must come before child in the array).
Use -1 for links with no parent.

Definition at line 91 of file mochi_structs.h.

◆ rootFromLinksAtRest

Span<TransformRT const> superdex::ArticulatedShapeInfo::rootFromLinksAtRest

Rotation and translation of each link in rest configuration relative to the local reference system of the articulated shape.

Size must equal the number of links.

Definition at line 87 of file mochi_structs.h.


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