Nv::Blast::TkJointImpl Class Reference

#include <NvBlastTkJointImpl.h>

Inheritance diagram for Nv::Blast::TkJointImpl:

Nv::Blast::TkJoint Nv::Blast::TkObject

List of all members.

Public Member Functions

virtual const TkJointData getData () const override
const TkJointDatagetDataInternal () const
TkJointDatagetDataWritable ()
virtual void release () override
void removeReferencesInActors ()
void removeReferencesInFamilies ()
void setActors (TkActorImpl *actor0, TkActorImpl *actor1, TkEventQueue *alternateQueue=nullptr)
 TkJointImpl (const TkJointDesc &desc, TkFamilyImpl *owner)
 TkJointImpl ()

Friends

class TkActorImpl
class TkFamilyImpl
class TkFrameworkImpl


Detailed Description

Implementation of TkJoint.

Constructor & Destructor Documentation

NV_INLINE Nv::Blast::TkJointImpl::TkJointImpl (  ) 

Blank constructor only creates valid TkJointLinks (point back to this object)

Nv::Blast::TkJointImpl::TkJointImpl ( const TkJointDesc desc,
TkFamilyImpl *  owner 
)

This constructor sets all internal data. If the joint is defined in an asset, the family instanced from that asset will own this joint, and the 'owner' parameter is that family. Otherwise, in the case where a joint is created from TkFramwork::createJoint, the joint is not owned by a family and 'owner' will be NULL.


Member Function Documentation

virtual const TkJointData Nv::Blast::TkJointImpl::getData (  )  const [override, virtual]

Retrieve data in this joint.

Returns:
a TkJointData containing this joint's data.

Implements Nv::Blast::TkJoint.

NV_INLINE const TkJointData & Nv::Blast::TkJointImpl::getDataInternal (  )  const

Internal method to access a const reference to the joint data.

Returns:
a const reference to the joint data.

NV_INLINE TkJointData & Nv::Blast::TkJointImpl::getDataWritable (  ) 

Internal method to access a non-const reference to the joint data.

Returns:
a non-const reference to the joint data.

virtual void Nv::Blast::TkJointImpl::release (  )  [override, virtual]

Release this object and free associated memory.

Implements Nv::Blast::TkObject.

void Nv::Blast::TkJointImpl::removeReferencesInActors (  ) 

Ensures that any attached actors no longer refer to this joint.

void Nv::Blast::TkJointImpl::removeReferencesInFamilies (  ) 

Ensures that any attached actors' families no longer refer to this joint. External joints (created using TkFramework::createJoint) are referenced by the attached actors' families.

void Nv::Blast::TkJointImpl::setActors ( TkActorImpl actor0,
TkActorImpl actor1,
TkEventQueue alternateQueue = nullptr 
)

Set the actors that this joint attaches to. When the actors are different from the joint's current actors, an event will be generated on one of the actors' families event queues to signal the change. Alternatively, if alternateQueue is not NULL then it will be used to hold the event.

If a non-NULL attached actor becomes NULL, then this joint will detach its references to both actors (if they exist) and send an event of subtype Unreferenced. This signals the user that the joint may be deleted.

Parameters:
[in] actor0 The new TkActor to replace the first attached actor.
[in] actor1 The new TkActor to replace the second attached actor.
[in] alternateQueue If not NULL, this queue will be used to hold events generated by this function.


Friends And Related Function Documentation

friend class TkActorImpl [friend]

friend class TkFamilyImpl [friend]

friend class TkFrameworkImpl [friend]


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