ArticulationMetatype#

Fully qualified name: isaacsim::physics::newton::tensors::ArticulationMetatype

class ArticulationMetatype : public IArticulationMetatype#

Articulation topology descriptor for a single articulation in the view.

Constructed once per articulation during BaseArticulationView initialization. Extracts and stores all link/joint/DOF names, types, and hierarchy data from the Newton model at construction time so that subsequent queries are pure lookups with no Python interaction.

Public Functions

ArticulationMetatype(
py::object model,
const std::vector<int> &jointIndices,
const std::vector<int> &linkIndices,
const std::vector<std::string> &linkPaths,
const std::vector<std::string> &jointPaths,
int firstJointIndex,
)#

Build a metatype from a Newton model and the articulation’s joint/link subsets.

Parameters:
  • model – Python handle to the newton.Model instance.

  • jointIndices – Model joint indices belonging to this articulation.

  • linkIndices – Model body (link) indices belonging to this articulation.

  • linkPaths – USD prim paths for each link, parallel to linkIndices.

  • jointPaths – USD prim paths for each joint, parallel to jointIndices.

  • firstJointIndex – Index of the first (root) joint inside the joint subset, used to decide whether the base is fixed.

uint32_t getLinkCount() const override#

Number of links in the articulation (including the root).

uint32_t getJointCount() const override#

Number of joints in the articulation (including any root free-joint).

uint32_t getDofCount() const override#

Total number of degrees of freedom across all joints.

const char *getLinkName(uint32_t linkIdx) const override#

Short name of the link at linkIdx (final USD prim name).

const char *getLinkParentName(uint32_t linkIdx) const override#

Short name of the parent link of linkIdx; empty for the root.

const char *getJointName(uint32_t jointIdx) const override#

Short name of the joint at jointIdx.

const char *getDofName(uint32_t dofIdx) const override#

Short name of the DOF at dofIdx.

int32_t findLinkIndex(const char *linkName) const override#

Look up the link index by short name.

Returns:

Zero-based index, or -1 if not found.

int32_t findLinkParentIndex(const char *linkName) const override#

Look up the index of the parent link of linkName.

Returns:

Zero-based index, or -1 if the link is not found or has no parent.

int32_t findJointIndex(const char *jointName) const override#

Look up the joint index by short name.

Returns:

Zero-based index, or -1 if not found.

int32_t findDofIndex(const char *dofName) const override#

Look up the DOF index by short name.

Returns:

Zero-based index, or -1 if not found.

JointType getJointType(uint32_t jointIdx) const override#

Joint kind at jointIdx (revolute, prismatic, ball, free, fixed, …).

uint32_t getJointDofOffset(uint32_t jointIdx) const override#

Offset of the first DOF of joint jointIdx within the articulation DOF array.

uint32_t getJointDofCount(uint32_t jointIdx) const override#

Number of DOFs contributed by joint jointIdx.

DofType getDofType(uint32_t dofIdx) const override#

DOF kind at dofIdx (translational, rotational, or none).

bool getFixedBase() const override#

true if the root link is attached to the world by a fixed joint.