Panda3D

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
CharacterJointBundle Class Reference

The collection of all the joints and sliders in the character. More...

`#include "characterJointBundle.h"`

Inheritance diagram for CharacterJointBundle:

## Public Member Functions
| CharacterJointBundle (const std::string &name="")
| Normally, there is no need to create a CharacterJointBundle directly.
virtual TypeHandle | force_init_type ()
Character * | get_node (int n) const
| Returns the nth Character associated with this PartBundle.
virtual TypeHandle | get_type () const
Public Member Functions inherited from PartBundle
| PartBundle (const std::string &name="")
| Normally, a PartBundle constructor should not be called directly–it will get created when a PartBundleNode is created.
void | clear_anim_preload ()
| Removes any AnimPreloadTable associated with the PartBundle.
void | clear_control_effects ()
| Sets the control effect of all AnimControls to zero (but does not "stop" the AnimControls).
virtual int | complete_pointers (TypedWritable **p_list, BamReader *manager)
| Takes in a vector of pointers to TypedWritable objects that correspond to all the requests for pointers that this object made to BamReader.
virtual void | control_activated (AnimControl *control)
| Called by the AnimControl whenever it starts an animation.
bool | control_joint (const std::string &joint_name, PandaNode *node)
| Specifies that the joint with the indicated name should be animated with the transform on the indicated node.
void | control_removed (AnimControl *control)
| Called by the AnimControl when it destructs.
| CPT (AnimPreloadTable) get_anim_preload() const
bool | do_bind_anim (AnimControl *control, AnimBundle *anim, int hierarchy_match_flags, const PartSubset &subset)
| The internal implementation of bind_anim(), this receives a pointer to an uninitialized AnimControl and fills it in if the bind is successful.
virtual void | finalize (BamReader *manager)
| Called by the BamReader to perform any final actions needed for setting up the object after all objects have been read and all pointers have been completed.
bool | force_update ()
| Updates all the parts in the bundle to reflect the data for the current frame, whether we believe it needs it or not.
bool | freeze_joint (const std::string &joint_name, const LVecBase3 &pos, const LVecBase3 &hpr, const LVecBase3 &scale)
| Specifies that the joint with the indicated name should be frozen with the specified transform.
bool | freeze_joint (const std::string &joint_name, const TransformState *transform)
| Specifies that the joint with the indicated name should be frozen with the specified transform.
bool | freeze_joint (const std::string &joint_name, PN_stdfloat value)
| Specifies that the joint with the indicated name should be frozen with the specified transform.
bool | get_anim_blend_flag () const
BlendType | get_blend_type () const
PN_stdfloat | get_control_effect (AnimControl *control) const
| Returns the amount by which the character is affected by the indicated AnimControl and its associated animation.
bool | get_frame_blend_flag () const
PartBundleNode * | get_node (int n) const
int | get_num_nodes () const
const LMatrix4 & | get_root_xform () const
void | merge_anim_preloads (const PartBundle *other)
| Copies the contents of the other PartBundle's preload table into this one.
virtual void | output (std::ostream &out) const
| Writes a one-line description of the bundle.
| PT (AnimControl) bind_anim(AnimBundle *anim
| PT (AnimControl) load_bind_anim(Loader *loader
| PT (AnimPreloadTable) modify_anim_preload()
| PT (PartBundle) apply_transform(const TransformState *transform)
bool | release_joint (const std::string &joint_name)
| Releases the named joint from the effects of a previous call to freeze_joint() or control_joint().
void | set_anim_blend_flag (bool anim_blend_flag)
void | set_anim_preload (AnimPreloadTable *table)
| Replaces the AnimPreloadTable associated with the PartBundle.
void | set_blend_type (BlendType bt)
void | set_control_effect (AnimControl *control, PN_stdfloat effect)
| Sets the amount by which the character is affected by the indicated AnimControl (and its associated animation).
void | set_frame_blend_flag (bool frame_blend_flag)
void | set_root_xform (const LMatrix4 &root_xform)
void | set_update_delay (double delay)
| Specifies the minimum amount of time, in seconds, that should elapse between any two consecutive updates.
bool | update ()
| Updates all the parts in the bundle to reflect the data for the current frame (as set in each of the AnimControls).
void | wait_pending ()
| Blocks the current thread until all currently-pending AnimControls, with a nonzero control effect, have been loaded and are properly bound.
virtual void | write (std::ostream &out, int indent_level) const
| Writes a brief description of the bundle and all of its descendants.
virtual void | write_datagram (BamWriter *manager, Datagram &dg)
| Writes the contents of this object to the datagram for shipping out to a Bam file.
void | xform (const LMatrix4 &mat)
| Applies the indicated transform to the root of the animated hierarchy.
Public Member Functions inherited from PartGroup
| PartGroup (PartGroup *parent, const std::string &name)
| Creates the PartGroup, and adds it to the indicated parent.
virtual bool | apply_control (PandaNode *node)
| Specifies a node to influence this particular joint so that it will always hold the node's transform.
bool | apply_freeze (const TransformState *transform)
| Freezes this particular joint so that it will always hold the specified transform.
virtual bool | apply_freeze_matrix (const LVecBase3 &pos, const LVecBase3 &hpr, const LVecBase3 &scale)
| Freezes this particular joint so that it will always hold the specified transform.
virtual bool | apply_freeze_scalar (PN_stdfloat value)
| Freezes this particular joint so that it will always hold the specified transform.
bool | check_hierarchy (const AnimGroup *anim, const PartGroup *parent, int hierarchy_match_flags=0) const
| Walks the part hierarchy in tandem with the indicated anim hierarchy, and returns true if the hierarchies match, false otherwise.
virtual bool | clear_forced_channel ()
| Undoes the effect of a previous call to apply_freeze() or apply_control().
PartGroup * | copy_subgraph () const
| Allocates and returns a new copy of this node and of all of its children.
virtual void | determine_effective_channels (const CycleData *root_cdata)
| Should be called whenever the ChannelBlend values have changed, this recursively updates the _effective_channel member in each part.
virtual bool | do_update (PartBundle *root, const CycleData *root_cdata, PartGroup *parent, bool parent_changed, bool anim_changed, Thread *current_thread)
| Recursively update this particular part and all of its descendents for the current frame.
virtual void | do_xform (const LMatrix4 &mat, const LMatrix4 &inv_mat)
| Called by PartBundle::xform(), this indicates the indicated transform is being applied to the root joint.
PartGroup * | find_child (const std::string &name) const
| Returns the first descendant found with the indicated name, or NULL if no such descendant exists.
PartGroup * | get_child (int n) const
PartGroup * | get_child_named (const std::string &name) const
| Returns the first child found with the indicated name, or NULL if no such child exists.
virtual AnimChannelBase * | get_forced_channel () const
| 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.
int | get_num_children () const
virtual TypeHandle | get_value_type () const
| Returns the TypeHandle associated with the ValueType we are concerned with.
virtual bool | is_character_joint () const
| Returns true if this part is a CharacterJoint, false otherwise.
void | sort_descendants ()
| Sorts the children nodes at each level of the hierarchy into alphabetical order.
virtual void | write_with_value (std::ostream &out, int indent_level) const
| Writes a brief description of the group, showing its current value, and that of all of its descendants.
Public Member Functions inherited from TypedWritableReferenceCount
| TypedWritableReferenceCount (const TypedWritableReferenceCount &copy)
virtual ReferenceCount * | as_reference_count ()
| Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type.
void | operator= (const TypedWritableReferenceCount &copy)
Public Member Functions inherited from TypedWritable
| TypedWritable (const TypedWritable &copy)
vector_uchar | encode_to_bam_stream () const
| Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object.
bool | encode_to_bam_stream (vector_uchar &data, BamWriter *writer=nullptr) const
| Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string.
UpdateSeq | get_bam_modified () const
| Returns the current bam_modified counter.
void | mark_bam_modified ()
| Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams.
void | operator= (const TypedWritable &copy)
virtual bool | require_fully_complete () const
| Some objects require all of their nested pointers to have been completed before the objects themselves can be completed.
virtual void | update_bam_nested (BamWriter *manager)
| Called by the BamWriter when this object has not itself been modified recently, but it should check its nested objects for updates.
Public Member Functions inherited from TypedObject
| TypedObject (const TypedObject &copy)=default
TypedObject * | as_typed_object ()
| Returns the object, upcast (if necessary) to a TypedObject pointer.
const TypedObject * | as_typed_object () const
| Returns the object, upcast (if necessary) to a TypedObject pointer.
int | get_best_parent_from_Set (const std::set< int > &) const
int | get_type_index () const
| Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.
bool | is_exact_type (TypeHandle handle) const
| Returns true if the current object is the indicated type exactly.
bool | is_of_type (TypeHandle handle) const
| Returns true if the current object is or derives from the indicated type.
TypedObject & | operator= (const TypedObject &copy)=default
Public Member Functions inherited from MemoryBase
void | operator delete (void *, void *)
void | operator delete (void *ptr)
void | operator delete[] (void *, void *)
void | operator delete[] (void *ptr)
void * | operator new (size_t size)
void * | operator new (size_t size, void *ptr)
void * | operator new[] (size_t size)
void * | operator new[] (size_t size, void *ptr)
Public Member Functions inherited from ReferenceCount
int | get_ref_count () const
WeakReferenceList * | get_weak_list () const
| Returns the WeakReferenceList associated with this ReferenceCount object.
bool | has_weak_list () const
| Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise.
void | local_object ()
| This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack.
void | ref () const
| Explicitly increments the reference count.
bool | ref_if_nonzero () const
| Atomically increases the reference count of this object if it is not zero.
bool | test_ref_count_integrity () const
| Does some easy checks to make sure that the reference count isn't completely bogus.
bool | test_ref_count_nonzero () const
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus.
virtual bool | unref () const
| Explicitly decrements the reference count.
bool | unref_if_one () const
| Atomically decreases the reference count of this object if it is one.
WeakReferenceList * | weak_ref ()
| Adds the indicated PointerToVoid as a weak reference to this object.
void | weak_unref ()
| Removes the indicated PointerToVoid as a weak reference to this object.
Public Member Functions inherited from Namable
| Namable (const std::string &initial_name="")
void | clear_name ()
| Resets the Namable's name to empty.
const std::string & | get_name () const
bool | has_name () const
| Returns true if the Namable has a nonempty name set, false if the name is empty.
void | output (std::ostream &out) const
| Outputs the Namable.
void | set_name (const std::string &name)

## Static Public Member Functions
static TypeHandle | get_class_type ()
static void | init_type ()
static TypedWritable * | make_CharacterJointBundle (const FactoryParams &params)
| Factory method to generate a CharacterJointBundle object.
static void | register_with_read_factory ()
| Factory method to generate a CharacterJointBundle object.
Static Public Member Functions inherited from PartBundle
static TypeHandle | get_class_type ()
static void | init_type ()
static void | register_with_read_factory ()
| Factory method to generate a PartBundle object.
Static Public Member Functions inherited from PartGroup
static TypeHandle | get_class_type ()
static void | init_type ()
static TypedWritable * | make_PartGroup (const FactoryParams &params)
| Factory method to generate a PartGroup object.
static void | register_with_read_factory ()
| Factory method to generate a PartGroup object.
Static Public Member Functions inherited from TypedWritableReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()
static | PT (TypedWritableReferenceCount) decode_from_bam_stream(vector_uchar data
Static Public Member Functions inherited from TypedWritable
static bool | decode_raw_from_bam_stream (TypedWritable *&ptr, ReferenceCount *&ref_ptr, vector_uchar data, BamReader *reader=nullptr)
| Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts the single object on those bytes.
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from TypedObject
static TypeHandle | get_class_type ()
static void | init_type ()
| This function is declared non-inline to work around a compiler bug in g++ 2.96.
Static Public Member Functions inherited from ReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from Namable
static TypeHandle | get_class_type ()
static void | init_type ()

## Additional Inherited Members
Public Types inherited from PartBundle
enum | BlendType { BT_linear , BT_normalized_linear , BT_componentwise , BT_componentwise_quat }
typedef pmap< AnimControl *, PN_stdfloat > | ChannelBlend
Public Types inherited from PartGroup
enum | HierarchyMatchFlags { HMF_ok_part_extra = 0x01 , HMF_ok_anim_extra = 0x02 , HMF_ok_wrong_root_name = 0x04 }
Public Attributes inherited from PartBundle
const Filename int const PartSubset bool | allow_async
const Filename & | filename
| get_anim_blend_flag
| Returns whether the character allows multiple different animations to be bound simultaneously.
| get_blend_type
| Returns the algorithm that is used when blending multiple frames or multiple animations together, when either anim_blend_flag or frame_blend_flag is set to true.
| get_frame_blend_flag
| Returns whether the character interpolates (blends) between two sequential animation frames, or whether it holds the current frame until the next one is ready.
| get_node
| Returns the nth PartBundleNode associated with this PartBundle.
| get_num_nodes
| Returns the number of PartBundleNodes that contain a pointer to this PartBundle.
| get_root_xform
| Returns the transform matrix which is implicitly applied at the root of the animated hierarchy.
int | hierarchy_match_flags = 0
const Filename int | hierarchy_match_flags
| set_anim_blend_flag
| Defines the way the character responds to multiple calls to set_control_effect()).
| set_blend_type
| Defines the algorithm that is used when blending multiple frames or multiple animations together, when either anim_blend_flag or frame_blend_flag is set to true.
| set_frame_blend_flag
| Specifies whether the character interpolates (blends) between two sequential frames of an active animation, showing a smooth intra-frame motion, or whether it holds each frame until the next frame is ready, showing precisely the specified animation.
| set_root_xform
| Specifies the transform matrix which is implicitly applied at the root of the animated hierarchy.
int const PartSubset & | subset = PartSubset())
const Filename int const PartSubset & | subset
Public Attributes inherited from PartGroup
| get_child
| Returns the nth child of the group.
| get_num_children
| Returns the number of child nodes of the group.
Public Attributes inherited from TypedWritableReferenceCount
static BamReader * | reader = nullptr)
Public Attributes inherited from TypedObject
| get_type
Public Attributes inherited from ReferenceCount
| get_ref_count
| Returns the current reference count.
Public Attributes inherited from Namable
| get_name
| set_name
Static Public Attributes inherited from TypedWritable
static TypedWritable *const | Null = nullptr

## Detailed Description

The collection of all the joints and sliders in the character.

Definition at line 28 of file characterJointBundle.h.

## Constructor & Destructor Documentation

## ◆ CharacterJointBundle()

CharacterJointBundle::CharacterJointBundle | ( | const std::string & | name = "" | ) |
| explicit

Normally, there is no need to create a CharacterJointBundle directly.

The Character node will automatically create one for itself.

Definition at line 26 of file characterJointBundle.cxx.

## ◆ ~CharacterJointBundle()

CharacterJointBundle::~CharacterJointBundle | ( |  | ) |
| virtual

Definition at line 33 of file characterJointBundle.cxx.

## Member Function Documentation

## ◆ force_init_type()

virtual TypeHandle CharacterJointBundle::force_init_type | ( |  | ) |
| inline virtual

Reimplemented from PartBundle.

Definition at line 56 of file characterJointBundle.h.

## ◆ get_class_type()

static TypeHandle CharacterJointBundle::get_class_type | ( |  | ) |
| inline static

Definition at line 57 of file characterJointBundle.h.

## ◆ get_node()

Character * CharacterJointBundle::get_node | ( | int | n | ) | const
| inline

Returns the nth Character associated with this PartBundle.

Definition at line 32 of file characterJointBundle.I.

References PartBundle::get_node.

## ◆ get_type()

virtual TypeHandle CharacterJointBundle::get_type | ( |  | ) | const
| inline virtual

Reimplemented from PartBundle.

Definition at line 53 of file characterJointBundle.h.

## ◆ init_type()

static void CharacterJointBundle::init_type | ( |  | ) |
| inline static

Definition at line 60 of file characterJointBundle.h.

## ◆ make_CharacterJointBundle()

TypedWritable * CharacterJointBundle::make_CharacterJointBundle | ( | const FactoryParams & | params | ) |
| static

Factory method to generate a CharacterJointBundle object.

Definition at line 100 of file characterJointBundle.cxx.

References parse_params(), and BamReader::register_finalize().

Referenced by register_with_read_factory().

## ◆ register_with_read_factory()

void CharacterJointBundle::register_with_read_factory | ( |  | ) |
| static

Factory method to generate a CharacterJointBundle object.

Definition at line 116 of file characterJointBundle.cxx.

References BamReader::get_factory(), make_CharacterJointBundle(), and Factory< Type >::register_factory().

Referenced by init_libchar().

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

- panda/src/char/characterJointBundle.h
- panda/src/char/characterJointBundle.cxx
- panda/src/char/characterJointBundle.I