Panda3D
Public Member Functions | Static Public Member Functions | List of all members
CharacterJoint Class Reference

This represents one joint of the character's animation, containing an animating transform matrix. More...

Inheritance diagram for CharacterJoint:
MovingPartMatrix MovingPartACMatrixSwitchType MovingPartBase PartGroup TypedWritableReferenceCount Namable TypedWritable ReferenceCount TypedObject

Public Member Functions

 __init__ (Character character, PartBundle root, PartGroup parent, str name, const LMatrix4 default_value)
 
bool addLocalTransform (PandaNode node)
 Adds the indicated node to the list of nodes that will be updated each frame with the joint's local transform from its parent. More...
 
bool addNetTransform (PandaNode node)
 Adds the indicated node to the list of nodes that will be updated each frame with the joint's net transform from the root. More...
 
 clearLocalTransforms ()
 Removes all nodes from the list of nodes that will be updated each frame with the joint's local transform from its parent. More...
 
 clearNetTransforms ()
 Removes all nodes from the list of nodes that will be updated each frame with the joint's net transform from the root. More...
 
Character getCharacter ()
 Returns the Character that owns this joint. More...
 
NodePathCollection getLocalTransforms ()
 Returns a list of the local transforms set for this node. More...
 
 getNetTransform (LMatrix4 transform)
 Copies the joint's current net transform (composed from the root of the character joint hierarchy) into the indicated matrix. More...
 
NodePathCollection getNetTransforms ()
 Returns a list of the net transforms set for this node. More...
 
const LMatrix4 getTransform ()
 Returns the transform matrix of the joint. More...
 
 getTransform (LMatrix4 transform)
 Copies the joint's current transform into the indicated matrix. More...
 
const TransformState getTransformState ()
 
bool hasLocalTransform (PandaNode node)
 Returns true if the node is on the list of nodes that will be updated each frame with the joint's local transform from its parent, false otherwise. More...
 
bool hasNetTransform (PandaNode node)
 Returns true if the node is on the list of nodes that will be updated each frame with the joint's net transform from the root, false otherwise. More...
 
bool removeLocalTransform (PandaNode node)
 Removes the indicated node from the list of nodes that will be updated each frame with the joint's local transform from its parent. More...
 
bool removeNetTransform (PandaNode node)
 Removes the indicated node from the list of nodes that will be updated each frame with the joint's net transform from the root. More...
 
- Public Member Functions inherited from MovingPartACMatrixSwitchType
LMatrix4 getDefaultValue ()
 
LMatrix4 getValue ()
 
- Public Member Functions inherited from MovingPartBase
AnimChannelBase getBound (int n)
 Returns the nth bound channel on this PartGroup. More...
 
int getMaxBound ()
 Returns the number of channels that might be bound to this PartGroup. More...
 
 outputValue (Ostream out)
 
- Public Member Functions inherited from PartGroup
 __init__ (PartGroup parent, str name)
 Creates the PartGroup, and adds it to the indicated parent. More...
 
bool applyControl (PandaNode node)
 Specifies a node to influence this particular joint so that it will always hold the node's transform. More...
 
bool applyFreeze (const TransformState transform)
 Freezes this particular joint so that it will always hold the specified transform. More...
 
bool applyFreezeMatrix (const LVecBase3 pos, const LVecBase3 hpr, const LVecBase3 scale)
 Freezes this particular joint so that it will always hold the specified transform. More...
 
bool applyFreezeScalar (float value)
 Freezes this particular joint so that it will always hold the specified transform. More...
 
bool clearForcedChannel ()
 Undoes the effect of a previous call to apply_freeze() or apply_control(). More...
 
PartGroup copySubgraph ()
 Allocates and returns a new copy of this node and of all of its children. More...
 
PartGroup findChild (str name)
 Returns the first descendant found with the indicated name, or NULL if no such descendant exists. More...
 
PartGroup getChild (int n)
 Returns the nth child of the group. More...
 
PartGroup getChildNamed (str name)
 Returns the first child found with the indicated name, or NULL if no such child exists. More...
 
list getChildren ()
 
AnimChannelBase getForcedChannel ()
 Returns the AnimChannelBase that has been forced to this joint by a previous call to apply_freeze() or apply_control(), or NULL if no such channel has been applied. More...
 
int getNumChildren ()
 Returns the number of child nodes of the group. More...
 
bool isCharacterJoint ()
 Returns true if this part is a CharacterJoint, false otherwise. More...
 
PartGroup makeCopy ()
 Allocates and returns a new copy of the node. More...
 
 sortDescendants ()
 Sorts the children nodes at each level of the hierarchy into alphabetical order. More...
 
 write (Ostream out, int indent_level)
 Writes a brief description of the group and all of its descendants. More...
 
 writeWithValue (Ostream out, int indent_level)
 Writes a brief description of the group, showing its current value, and that of all of its descendants. More...
 
- Public Member Functions inherited from TypedWritable
object __reduce__ ()
 
object __reduce_persist__ (object pickler)
 
VectorUchar encodeToBamStream ()
 Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More...
 
bool encodeToBamStream (VectorUchar data, BamWriter writer)
 Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More...
 
 fillin (DatagramIterator scan, BamReader manager)
 This internal function is intended to be called by each class's make_from_bam() method to read in all of the relevant data from the BamFile for the new object. More...
 
UpdateSeq getBamModified ()
 Returns the current bam_modified counter. More...
 
 markBamModified ()
 Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More...
 
- Public Member Functions inherited from TypedObject
TypeHandle getType ()
 
int getTypeIndex ()
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
 
bool isExactType (TypeHandle handle)
 Returns true if the current object is the indicated type exactly. More...
 
bool isOfType (TypeHandle handle)
 Returns true if the current object is or derives from the indicated type. More...
 
- Public Member Functions inherited from ReferenceCount
int getRefCount ()
 Returns the current reference count. More...
 
 ref ()
 Explicitly increments the reference count. More...
 
bool testRefCountIntegrity ()
 Does some easy checks to make sure that the reference count isn't completely bogus. More...
 
bool testRefCountNonzero ()
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
 
bool unref ()
 Explicitly decrements the reference count. More...
 
- Public Member Functions inherited from Namable
 __init__ (const Namable)
 
 __init__ (str initial_name)
 
 clearName ()
 Resets the Namable's name to empty. More...
 
str getName ()
 
bool hasName ()
 Returns true if the Namable has a nonempty name set, false if the name is empty. More...
 
 output (Ostream out)
 Outputs the Namable. More...
 
 setName (str name)
 

Static Public Member Functions

static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from MovingPartMatrix
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from MovingPartACMatrixSwitchType
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from MovingPartBase
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from PartGroup
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedWritableReferenceCount
static TypedWritableReferenceCount decodeFromBamStream (VectorUchar data, BamReader reader)
 Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts and returns the single object on those bytes. More...
 
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedWritable
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedObject
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from Namable
static TypeHandle getClassType ()
 

Additional Inherited Members

- Public Types inherited from MovingPartACMatrixSwitchType
typedef LMatrix4f LMatrix4
 
- Public Types inherited from PartGroup
enum  HierarchyMatchFlags { HMF_ok_part_extra = 1, HMF_ok_anim_extra = 2, HMF_ok_wrong_root_name = 4 }
 
- Public Attributes inherited from PartGroup
PartGroup children []
 
- Public Attributes inherited from TypedObject
TypeHandle type
 Returns the TypeHandle representing this object's type. More...
 
- Public Attributes inherited from ReferenceCount
int ref_count
 The current reference count. More...
 
- Public Attributes inherited from Namable
const String name
 

Detailed Description

This represents one joint of the character's animation, containing an animating transform matrix.

Member Function Documentation

◆ __init__()

__init__ ( Character  character,
PartBundle  root,
PartGroup  parent,
str  name,
const LMatrix4  default_value 
)

◆ addLocalTransform()

bool addLocalTransform ( PandaNode  node)

Adds the indicated node to the list of nodes that will be updated each frame with the joint's local transform from its parent.

Returns true if the node is successfully added, false if it had already been added.

The Character pointer should be the Character object that owns this joint; this will be used to create a CharacterJointEffect for this node. If it is NULL, no such effect will be created.

A CharacterJointEffect for this joint's Character will automatically be added to the specified node.

◆ addNetTransform()

bool addNetTransform ( PandaNode  node)

Adds the indicated node to the list of nodes that will be updated each frame with the joint's net transform from the root.

Returns true if the node is successfully added, false if it had already been added.

A CharacterJointEffect for this joint's Character will automatically be added to the specified node.

◆ clearLocalTransforms()

clearLocalTransforms ( )

Removes all nodes from the list of nodes that will be updated each frame with the joint's local transform from its parent.

◆ clearNetTransforms()

clearNetTransforms ( )

Removes all nodes from the list of nodes that will be updated each frame with the joint's net transform from the root.

◆ getCharacter()

Character getCharacter ( )

Returns the Character that owns this joint.

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getLocalTransforms()

NodePathCollection getLocalTransforms ( )

Returns a list of the local transforms set for this node.

Note that this returns a list of NodePaths, even though the local transforms are actually a list of PandaNodes.

◆ getNetTransform()

getNetTransform ( LMatrix4  transform)

Copies the joint's current net transform (composed from the root of the character joint hierarchy) into the indicated matrix.

◆ getNetTransforms()

NodePathCollection getNetTransforms ( )

Returns a list of the net transforms set for this node.

Note that this returns a list of NodePaths, even though the net transforms are actually a list of PandaNodes.

◆ getTransform() [1/2]

const LMatrix4 getTransform ( )

Returns the transform matrix of the joint.

◆ getTransform() [2/2]

getTransform ( LMatrix4  transform)

Copies the joint's current transform into the indicated matrix.

◆ getTransformState()

const TransformState getTransformState ( )

◆ hasLocalTransform()

bool hasLocalTransform ( PandaNode  node)

Returns true if the node is on the list of nodes that will be updated each frame with the joint's local transform from its parent, false otherwise.

◆ hasNetTransform()

bool hasNetTransform ( PandaNode  node)

Returns true if the node is on the list of nodes that will be updated each frame with the joint's net transform from the root, false otherwise.

◆ removeLocalTransform()

bool removeLocalTransform ( PandaNode  node)

Removes the indicated node from the list of nodes that will be updated each frame with the joint's local transform from its parent.

Returns true if the node is successfully removed, false if it was not on the list.

If the node has a CharacterJointEffect that matches this joint's Character, it will be cleared.

◆ removeNetTransform()

bool removeNetTransform ( PandaNode  node)

Removes the indicated node from the list of nodes that will be updated each frame with the joint's net transform from the root.

Returns true if the node is successfully removed, false if it was not on the list.

If the node has a CharacterJointEffect that matches this joint's Character, it will be cleared.