PxArticulationSpatialTendon

Defined in include/PxArticulationTendon.h

class PxArticulationSpatialTendon : public PxArticulationTendon

A spatial tendon that attaches to an articulation.

A spatial tendon attaches to multiple links in an articulation using a set of PxArticulationAttachments. The tendon is defined as a tree of attachment points, where each attachment can have an arbitrary number of children. Each leaf of the attachment tree defines a subtendon between itself and the root attachment. The subtendon then applies forces at the leaf, and an equal but opposing force at the root, in order to satisfy the spring-damper and limit constraints that the user sets up. Attachments in between the root and leaf do not exert any force on the articulation, but define the geometry of the tendon from which the length is computed together with the attachment coefficients.

Public Functions

Creates an articulation attachment and adds it to the list of children in the parent attachment.

Creating an attachment is not allowed while the articulation is in a scene. In order to add the attachment, remove and then re-add the articulation to the scene.

See also

releaseAttachment()

Parameters
  • parent[in] The parent attachment. Can be NULL for the root attachment of a tendon.

  • coefficient[in] A user-defined scale that the accumulated length is scaled by.

  • relativeOffset[in] An offset vector in the link’s actor frame to the point where the tendon attachment is attached to the link.

  • link[in] The link that this attachment is associated with.

Returns

The newly-created attachment if creation was successful, otherwise a null pointer.

virtual PxU32 getAttachments(PxArticulationAttachment **userBuffer, PxU32 bufferSize, PxU32 startIndex = 0) const = 0

Fills a user-provided buffer of attachment pointers with the set of attachments.

See also

getNbAttachments

Parameters
  • userBuffer[in] The user-provided buffer.

  • bufferSize[in] The size of the buffer. If this is not large enough to contain all the pointers to attachments, only as many as can fit are written. Use getNbAttachments to size for all attachments.

  • startIndex[in] Index of first attachment pointer to be retrieved.

Returns

The number of attachments that were filled into the user buffer.

virtual PxU32 getNbAttachments() const = 0

Returns the number of attachments in the tendon.

Returns

The number of attachments.

inline virtual const char *getConcreteTypeName() const final override

Returns the string name of the dynamic type.

Returns

The string name.

inline virtual ~PxArticulationSpatialTendon()
virtual void setStiffness(const PxReal stiffness) = 0

Sets the spring stiffness term acting on the tendon length.

See also

getStiffness()

Parameters

stiffness[in] The spring stiffness. Default: 0

virtual PxReal getStiffness() const = 0

Gets the spring stiffness of the tendon.

See also

setStiffness()

Returns

The spring stiffness.

virtual void setDamping(const PxReal damping) = 0

Sets the damping term acting both on the tendon length and tendon-length limits.

See also

getDamping()

Parameters

damping[in] The damping term. Default: 0

virtual PxReal getDamping() const = 0

Gets the damping term acting both on the tendon length and tendon-length limits.

See also

setDamping()

Returns

The damping term.

virtual void setLimitStiffness(const PxReal stiffness) = 0

Sets the limit stiffness term acting on the tendon’s length limits.

For spatial tendons, this parameter applies to all its leaf attachments / sub-tendons.

See also

getLimitStiffness()

Parameters

stiffness[in] The limit stiffness term. Default: 0

virtual PxReal getLimitStiffness() const = 0

Gets the limit stiffness term acting on the tendon’s length limits.

For spatial tendons, this parameter applies to all its leaf attachments / sub-tendons.

See also

setLimitStiffness()

Returns

The limit stiffness term.

virtual void setOffset(const PxReal offset, bool autowake = true) = 0

Sets the length offset term for the tendon.

An offset defines an amount to be added to the accumulated length computed for the tendon. It allows the application to actuate the tendon by shortening or lengthening it.

See also

getOffset()

Parameters
  • offset[in] The offset term. Default: 0

  • autowake[in] If true and the articulation is in a scene, the call wakes up the articulation and increases the wake counter to PxSceneDesc::wakeCounterResetValue if the counter value is below the reset value.

virtual PxReal getOffset() const = 0

Gets the length offset term for the tendon.

See also

setOffset()

Returns

The offset term.

virtual PxArticulationReducedCoordinate *getArticulation() const = 0

Gets the articulation that the tendon is a part of.

See also

PxArticulationReducedCoordinate

Returns

The articulation.

virtual void release() = 0

Releases a tendon to remove it from the articulation and free its associated memory.

When an articulation is released, its attached tendons are automatically released.

Note

Releasing a tendon is not allowed while the articulation is in a scene. In order to release the tendon, remove and then re-add the articulation to the scene.

template<class T>
inline T *is()
template<class T>
inline const T *is() const
inline PxType getConcreteType() const

Returns concrete type of object.

See also

PxConcreteType

Returns

PxConcreteType::Enum of serialized object

inline void setBaseFlag(PxBaseFlag::Enum flag, bool value)

Set PxBaseFlag

Parameters
  • flag[in] The flag to be set

  • value[in] The flags new value

inline void setBaseFlags(PxBaseFlags inFlags)

Set PxBaseFlags

See also

PxBaseFlags

Parameters

inFlags[in] The flags to be set

inline PxBaseFlags getBaseFlags() const

Returns PxBaseFlags.

See also

PxBaseFlags

Returns

PxBaseFlags

inline virtual bool isReleasable() const

Whether the object is subordinate.

A class is subordinate, if it can only be instantiated in the context of another class.

See also

PxSerialization::isSerializable

Returns

Whether the class is subordinate

Public Members

void *userData

user can assign this to whatever, usually to create a 1:1 relationship with a user object.

Protected Functions

inline PxArticulationSpatialTendon(PxType concreteType, PxBaseFlags baseFlags)
inline PxArticulationSpatialTendon(PxBaseFlags baseFlags)
inline virtual bool isKindOf(const char *superClass) const

Returns whether a given type name matches with the type of this instance.

template<class T>
inline bool typeMatch() const

Protected Attributes

PxType mConcreteType
PxBaseFlags mBaseFlags
PxU32 mBuiltInRefCount