The collection of all the joints and sliders in the character. More...
#include "characterJointBundle.h"
Public Member Functions | |
CharacterJointBundle (const std::string &name="") | |
Normally, there is no need to create a CharacterJointBundle directly. More... | |
virtual TypeHandle | force_init_type () |
Character * | get_node (int n) const |
Returns the nth Character associated with this PartBundle. More... | |
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. More... | |
void | clear_anim_preload () |
Removes any AnimPreloadTable associated with the PartBundle. More... | |
void | clear_control_effects () |
Sets the control effect of all AnimControls to zero (but does not "stop" the AnimControls). More... | |
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. More... | |
virtual void | control_activated (AnimControl *control) |
Called by the AnimControl whenever it starts an animation. More... | |
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. More... | |
void | control_removed (AnimControl *control) |
Called by the AnimControl when it destructs. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual void | output (std::ostream &out) const |
Writes a one-line description of the bundle. More... | |
PT (AnimPreloadTable) modify_anim_preload() | |
PT (PartBundle) apply_transform(const TransformState *transform) | |
PT (AnimControl) bind_anim(AnimBundle *anim | |
PT (AnimControl) load_bind_anim(Loader *loader | |
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(). More... | |
void | set_anim_blend_flag (bool anim_blend_flag) |
void | set_anim_preload (AnimPreloadTable *table) |
Replaces the AnimPreloadTable associated with the PartBundle. More... | |
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). More... | |
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. More... | |
bool | update () |
Updates all the parts in the bundle to reflect the data for the current frame (as set in each of the AnimControls). More... | |
void | wait_pending () |
Blocks the current thread until all currently-pending AnimControls, with a nonzero control effect, have been loaded and are properly bound. More... | |
virtual void | write (std::ostream &out, int indent_level) const |
Writes a brief description of the bundle and all of its descendants. More... | |
virtual void | write_datagram (BamWriter *manager, Datagram &dg) |
Writes the contents of this object to the datagram for shipping out to a Bam file. More... | |
void | xform (const LMatrix4 &mat) |
Applies the indicated transform to the root of the animated hierarchy. More... | |
Public Member Functions inherited from PartGroup | |
PartGroup (PartGroup *parent, const std::string &name) | |
Creates the PartGroup, and adds it to the indicated parent. More... | |
virtual bool | apply_control (PandaNode *node) |
Specifies a node to influence this particular joint so that it will always hold the node's transform. More... | |
bool | apply_freeze (const TransformState *transform) |
Freezes this particular joint so that it will always hold the specified transform. More... | |
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. More... | |
virtual bool | apply_freeze_scalar (PN_stdfloat value) |
Freezes this particular joint so that it will always hold the specified transform. More... | |
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. More... | |
virtual bool | clear_forced_channel () |
Undoes the effect of a previous call to apply_freeze() or apply_control(). More... | |
PartGroup * | copy_subgraph () const |
Allocates and returns a new copy of this node and of all of its children. More... | |
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. More... | |
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. More... | |
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. More... | |
PartGroup * | find_child (const std::string &name) const |
Returns the first descendant found with the indicated name, or NULL if no such descendant exists. More... | |
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. More... | |
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. More... | |
int | get_num_children () const |
virtual TypeHandle | get_value_type () const |
Returns the TypeHandle associated with the ValueType we are concerned with. More... | |
virtual bool | is_character_joint () const |
Returns true if this part is a CharacterJoint, false otherwise. More... | |
void | sort_descendants () |
Sorts the children nodes at each level of the hierarchy into alphabetical order. More... | |
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. More... | |
Public Member Functions inherited from TypedWritableReferenceCount | |
TypedWritableReferenceCount (const TypedWritableReferenceCount ©) | |
virtual ReferenceCount * | as_reference_count () |
Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type. More... | |
void | operator= (const TypedWritableReferenceCount ©) |
Public Member Functions inherited from TypedWritable | |
TypedWritable (const TypedWritable ©) | |
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. More... | |
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. More... | |
UpdateSeq | get_bam_modified () const |
Returns the current bam_modified counter. More... | |
void | mark_bam_modified () |
Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More... | |
void | operator= (const TypedWritable ©) |
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. More... | |
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. More... | |
Public Member Functions inherited from TypedObject | |
TypedObject (const TypedObject ©)=default | |
TypedObject * | as_typed_object () |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
const TypedObject * | as_typed_object () const |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
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. More... | |
bool | is_exact_type (TypeHandle handle) const |
Returns true if the current object is the indicated type exactly. More... | |
bool | is_of_type (TypeHandle handle) const |
Returns true if the current object is or derives from the indicated type. More... | |
TypedObject & | operator= (const TypedObject ©)=default |
Public Member Functions inherited from ReferenceCount | |
int | get_ref_count () const |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
void | ref () const |
Explicitly increments the reference count. More... | |
bool | ref_if_nonzero () const |
Atomically increases the reference count of this object if it is not zero. More... | |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
virtual bool | unref () const |
Explicitly decrements the reference count. More... | |
WeakReferenceList * | weak_ref () |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref () |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Public Member Functions inherited from Namable | |
Namable (const std::string &initial_name="") | |
void | clear_name () |
Resets the Namable's name to empty. More... | |
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. More... | |
void | output (std::ostream &out) const |
Outputs the Namable. More... | |
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 ¶ms) |
Factory method to generate a CharacterJointBundle object. More... | |
static void | register_with_read_factory () |
Factory method to generate a CharacterJointBundle object. More... | |
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. More... | |
Static Public Member Functions inherited from PartGroup | |
static TypeHandle | get_class_type () |
static void | init_type () |
static TypedWritable * | make_PartGroup (const FactoryParams ¶ms) |
Factory method to generate a PartGroup object. More... | |
static void | register_with_read_factory () |
Factory method to generate a PartGroup object. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
get_node | |
Returns the nth PartBundleNode associated with this PartBundle. More... | |
get_num_nodes | |
Returns the number of PartBundleNodes that contain a pointer to this PartBundle. More... | |
get_root_xform | |
Returns the transform matrix which is implicitly applied at the root of the animated hierarchy. More... | |
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()). More... | |
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. More... | |
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. More... | |
set_root_xform | |
Specifies the transform matrix which is implicitly applied at the root of the animated hierarchy. More... | |
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. More... | |
get_num_children | |
Returns the number of child nodes of the group. More... | |
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. More... | |
Public Attributes inherited from Namable | |
get_name | |
set_name | |
Static Public Attributes inherited from TypedWritable | |
static TypedWritable *const | Null = nullptr |
The collection of all the joints and sliders in the character.
Definition at line 28 of file characterJointBundle.h.
|
explicit |
Normally, there is no need to create a CharacterJointBundle directly.
The Character node will automatically create one for itself.
Definition at line 27 of file characterJointBundle.cxx.
|
inline |
Returns the nth Character associated with this PartBundle.
Definition at line 33 of file characterJointBundle.I.
|
static |
Factory method to generate a CharacterJointBundle object.
Definition at line 101 of file characterJointBundle.cxx.
References parse_params(), and BamReader::register_finalize().
Referenced by register_with_read_factory().
|
static |
Factory method to generate a CharacterJointBundle object.
Definition at line 117 of file characterJointBundle.cxx.
References BamReader::get_factory(), make_CharacterJointBundle(), and Factory< Type >::register_factory().
Referenced by init_libchar().