20get_anim_preload()
const {
21 return _anim_preload.get_read_pointer();
29modify_anim_preload() {
30 return _anim_preload.get_write_pointer();
38 _anim_preload = anim_preload;
46 _anim_preload =
nullptr;
60 CDWriter cdata(_cycler);
61 cdata->_blend_type = bt;
71 CDReader cdata(_cycler);
72 return cdata->_blend_type;
81 CDReader cdata(_cycler);
82 return cdata->_anim_blend_flag;
105 CDWriter cdata(_cycler);
106 cdata->_frame_blend_flag = frame_blend_flag;
116 CDReader cdata(_cycler);
117 return cdata->_frame_blend_flag;
127 CDWriter cdata(_cycler);
128 cdata->_root_xform = root_xform;
129 cdata->_anim_changed =
true;
136xform(
const LMatrix4 &mat) {
139 cdata->_root_xform = cdata->_root_xform * mat;
141 cdata->_anim_changed =
true;
150 CDReader cdata(_cycler);
151 return cdata->_root_xform;
160 return _nodes.size();
168 nassertr(n >= 0 && n < (
int)_nodes.size(),
nullptr);
189 do_set_control_effect(control, effect, cdata);
199 return do_get_control_effect(control, cdata);
209 _update_delay = delay;
Controls the timing of a character animation.
This table records data about a list of animations for a particular model, such as number of frames a...
This template class calls PipelineCycler::read_unlocked(), and then provides a transparent read-only ...
This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_writ...
This is a node that contains a pointer to an PartBundle.
get_node
Returns the nth PartBundleNode associated with this PartBundle.
void set_update_delay(double delay)
Specifies the minimum amount of time, in seconds, that should elapse between any two consecutive upda...
get_frame_blend_flag
Returns whether the character interpolates (blends) between two sequential animation frames,...
void set_anim_preload(AnimPreloadTable *table)
Replaces the AnimPreloadTable associated with the PartBundle.
get_blend_type
Returns the algorithm that is used when blending multiple frames or multiple animations together,...
PN_stdfloat get_control_effect(AnimControl *control) const
Returns the amount by which the character is affected by the indicated AnimControl and its associated...
void xform(const LMatrix4 &mat)
Applies the indicated transform to the root of the animated hierarchy.
get_root_xform
Returns the transform matrix which is implicitly applied at the root of the animated hierarchy.
set_frame_blend_flag
Specifies whether the character interpolates (blends) between two sequential frames of an active anim...
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 a...
void clear_anim_preload()
Removes any AnimPreloadTable associated with the PartBundle.
set_root_xform
Specifies the transform matrix which is implicitly applied at the root of the animated hierarchy.
get_num_nodes
Returns the number of PartBundleNodes that contain a pointer to this PartBundle.
get_anim_blend_flag
Returns whether the character allows multiple different animations to be bound simultaneously.
set_blend_type
Defines the algorithm that is used when blending multiple frames or multiple animations together,...
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 jo...
get_current_pipeline_stage
Returns the integer pipeline stage associated with the current thread.