RavEngine
Loading...
Searching...
No Matches
physx::PxArticulationFixedTendon Class Referenceabstract

A fixed tendon that can be used to link multiple degrees of freedom of multiple articulation joints via length and limit constraints. More...

#include <PxArticulationTendon.h>

Inheritance diagram for physx::PxArticulationFixedTendon:
[legend]
Collaboration diagram for physx::PxArticulationFixedTendon:
[legend]

Public Member Functions

virtual PxArticulationTendonJoint * createTendonJoint (PxArticulationTendonJoint *parent, PxArticulationAxis::Enum axis, const PxReal coefficient, const PxReal recipCoefficient, PxArticulationLink *link)=0
 Creates an articulation tendon joint and adds it to the list of children in the parent tendon joint.
 
virtual PxU32 getTendonJoints (PxArticulationTendonJoint **userBuffer, PxU32 bufferSize, PxU32 startIndex=0) const =0
 Fills a user-provided buffer of tendon-joint pointers with the set of tendon joints.
 
virtual PxU32 getNbTendonJoints () const =0
 Returns the number of tendon joints in the tendon.
 
virtual void setRestLength (const PxReal restLength)=0
 Sets the spring rest length of the tendon.
 
virtual PxReal getRestLength () const =0
 Gets the spring rest length of the tendon.
 
virtual void setLimitParameters (const PxArticulationTendonLimit &parameter)=0
 Sets the low and high limit on the length of the tendon.
 
virtual PxArticulationTendonLimit getLimitParameters () const =0
 Gets the low and high limit on the length of the tendon.
 
virtual const char * getConcreteTypeName () const
 Returns the string name of the dynamic type.
 
- Public Member Functions inherited from physx::PxArticulationTendon
virtual void setStiffness (const PxReal stiffness)=0
 Sets the spring stiffness term acting on the tendon length.
 
virtual PxReal getStiffness () const =0
 Gets the spring stiffness of the tendon.
 
virtual void setDamping (const PxReal damping)=0
 Sets the damping term acting both on the tendon length and tendon-length limits.
 
virtual PxReal getDamping () const =0
 Gets the damping term acting both on the tendon length and tendon-length limits.
 
virtual void setLimitStiffness (const PxReal stiffness)=0
 Sets the limit stiffness term acting on the tendon's length limits.
 
virtual PxReal getLimitStiffness () const =0
 Gets the limit stiffness term acting on the tendon's length limits.
 
virtual void setOffset (const PxReal offset, bool autowake=true)=0
 Sets the length offset term for the tendon.
 
virtual PxReal getOffset () const =0
 Gets the length offset term for the tendon.
 
virtual PxArticulationReducedCoordinate * getArticulation () const =0
 Gets the articulation that the tendon is a part of.
 
virtual void release ()=0
 Releases a tendon to remove it from the articulation and free its associated memory.
 
- Public Member Functions inherited from physx::PxBase
template<class T >
T * is ()
 
template<class T >
const T * is () const
 
PX_FORCE_INLINE PxType getConcreteType () const
 Returns concrete type of object.
 
PX_FORCE_INLINE void setBaseFlag (PxBaseFlag::Enum flag, bool value)
 Set PxBaseFlag

 
PX_FORCE_INLINE void setBaseFlags (PxBaseFlags inFlags)
 Set PxBaseFlags

 
PX_FORCE_INLINE PxBaseFlags getBaseFlags () const
 Returns PxBaseFlags.
 
virtual bool isReleasable () const
 Whether the object is subordinate.
 

Protected Member Functions

PX_INLINE PxArticulationFixedTendon (PxType concreteType, PxBaseFlags baseFlags)
 
PX_INLINE PxArticulationFixedTendon (PxBaseFlags baseFlags)
 
- Protected Member Functions inherited from physx::PxArticulationTendon
PX_INLINE PxArticulationTendon (PxType concreteType, PxBaseFlags baseFlags)
 
PX_INLINE PxArticulationTendon (PxBaseFlags baseFlags)
 
- Protected Member Functions inherited from physx::PxBase
PX_INLINE PxBase (PxType concreteType, PxBaseFlags baseFlags)
 Constructor setting concrete type and base flags.
 
PX_INLINE PxBase (PxBaseFlags baseFlags)
 Deserialization constructor setting base flags.
 
virtual ~PxBase ()
 Destructor.
 
virtual bool isKindOf (const char *superClass) const
 Returns whether a given type name matches with the type of this instance.
 
template<class T >
bool typeMatch () const
 

Additional Inherited Members

- Public Attributes inherited from physx::PxArticulationTendon
void * userData
 user can assign this to whatever, usually to create a 1:1 relationship with a user object.
 
- Protected Attributes inherited from physx::PxBase
PxType mConcreteType
 
PxBaseFlags mBaseFlags
 
PxU32 mBuiltInRefCount
 

Detailed Description

A fixed tendon that can be used to link multiple degrees of freedom of multiple articulation joints via length and limit constraints.

Fixed tendons allow the simulation of coupled relationships between joint degrees of freedom in an articulation. Fixed tendons do not allow linking arbitrary joint axes of the articulation: The respective joints must all be directly connected to each other in the articulation structure, i.e. each of the joints in the tendon must be connected by a single articulation link to another joint in the same tendon. This implies both that 1) fixed tendons can branch along a branching articulation; and 2) they cannot be used to create relationships between axes in a spherical joint with more than one degree of freedom. Locked joint axes or fixed joints are currently not supported.

Member Function Documentation

◆ createTendonJoint()

virtual PxArticulationTendonJoint * physx::PxArticulationFixedTendon::createTendonJoint ( PxArticulationTendonJoint *  parent,
PxArticulationAxis::Enum  axis,
const PxReal  coefficient,
const PxReal  recipCoefficient,
PxArticulationLink *  link 
)
pure virtual

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

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

Parameters
[in]parentThe parent tendon joint. Can be NULL for the root tendon joint of a tendon.
[in]axisThe degree of freedom that this tendon joint is associated with.
[in]coefficientA user-defined scale that the accumulated tendon length is scaled by.
[in]recipCoefficientThe scale that the tendon's response is multiplied by when applying to this tendon joint.
[in]linkThe link (and the link's incoming joint in particular) that this tendon joint is associated with.
Returns
The newly-created tendon joint if creation was successful, otherwise a null pointer.
Note
See also
PxArticulationTendonJoint PxArticulationAxis

Implemented in physx::NpArticulationFixedTendon.

◆ getConcreteTypeName()

virtual const char * physx::PxArticulationFixedTendon::getConcreteTypeName ( ) const
inlinevirtual

Returns the string name of the dynamic type.

Returns
The string name.

Implements physx::PxBase.

◆ getLimitParameters()

virtual PxArticulationTendonLimit physx::PxArticulationFixedTendon::getLimitParameters ( ) const
pure virtual

Gets the low and high limit on the length of the tendon.

Returns
Struct with the low and high limit.
See also
PxArticulationTendonLimit setLimitParameters()

Implemented in physx::NpArticulationFixedTendon.

◆ getNbTendonJoints()

virtual PxU32 physx::PxArticulationFixedTendon::getNbTendonJoints ( ) const
pure virtual

Returns the number of tendon joints in the tendon.

Returns
The number of tendon joints.

Implemented in physx::NpArticulationFixedTendon.

◆ getRestLength()

virtual PxReal physx::PxArticulationFixedTendon::getRestLength ( ) const
pure virtual

Gets the spring rest length of the tendon.

Returns
The spring rest length of the tendon.
See also
setRestLength()

Implemented in physx::NpArticulationFixedTendon.

◆ getTendonJoints()

virtual PxU32 physx::PxArticulationFixedTendon::getTendonJoints ( PxArticulationTendonJoint **  userBuffer,
PxU32  bufferSize,
PxU32  startIndex = 0 
) const
pure virtual

Fills a user-provided buffer of tendon-joint pointers with the set of tendon joints.

Parameters
[in]userBufferThe user-provided buffer.
[in]bufferSizeThe size of the buffer. If this is not large enough to contain all the pointers to tendon joints, only as many as can fit are written. Use getNbTendonJoints to size for all tendon joints.
[in]startIndexIndex of first tendon joint pointer to be retrieved.
Returns
The number of tendon joints filled into the user buffer.
See also
getNbTendonJoints

Implemented in physx::NpArticulationFixedTendon.

◆ setLimitParameters()

virtual void physx::PxArticulationFixedTendon::setLimitParameters ( const PxArticulationTendonLimit &  parameter)
pure virtual

Sets the low and high limit on the length of the tendon.

Parameters
[in]parameterStruct with the low and high limit.

The limits, together with the damping and limit stiffness parameters, act on the accumulated length of the tendon.

See also
PxArticulationTendonLimit getLimitParameters() setRestLength()

Implemented in physx::NpArticulationFixedTendon.

◆ setRestLength()

virtual void physx::PxArticulationFixedTendon::setRestLength ( const PxReal  restLength)
pure virtual

Sets the spring rest length of the tendon.

The accumulated "length" of a fixed tendon is a linear combination of the joint axis positions that the tendon is associated with, scaled by the respective tendon joints' coefficients. As such, when the joint positions of all joints are zero, the accumulated length of a fixed tendon is zero.

The spring of the tendon is not exerting any force on the articulation when the rest length is equal to the tendon's accumulated length plus the tendon offset.

Parameters
[in]restLengthThe spring rest length of the tendon.
See also
getRestLength()

Implemented in physx::NpArticulationFixedTendon.


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