Poodletooth-iLand/dependencies/panda/pandac/input/libp3chan.in

4466 lines
233 KiB
Text
Raw Normal View History

2015-03-03 16:10:12 -06:00
1412102906
2 2
9 libp3chan 4 8NZB 12 panda3d.core
218
216 37 upcast_to_TypedWritableReferenceCount 0 12 434 48 AnimGroup::upcast_to_TypedWritableReferenceCount 0 1 10 52
upcast from AnimGroup to TypedWritableReferenceCount
84
TypedWritableReferenceCount *AnimGroup::upcast_to_TypedWritableReferenceCount(void);
217 21 downcast_to_AnimGroup 0 12 435 50 TypedWritableReferenceCount::downcast_to_AnimGroup 0 1 11 54
downcast from TypedWritableReferenceCount to AnimGroup
68
AnimGroup *TypedWritableReferenceCount::downcast_to_AnimGroup(void);
218 17 upcast_to_Namable 0 12 434 28 AnimGroup::upcast_to_Namable 0 1 12 32
upcast from AnimGroup to Namable
44
Namable *AnimGroup::upcast_to_Namable(void);
219 21 downcast_to_AnimGroup 0 12 436 30 Namable::downcast_to_AnimGroup 0 1 13 34
downcast from Namable to AnimGroup
48
AnimGroup *Namable::downcast_to_AnimGroup(void);
220 9 AnimGroup 0 4 434 20 AnimGroup::AnimGroup 0 1 1 1392
// This is the normal AnimGroup constructor.
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::Default Constructor
// Access: Protected
// Description: The default constructor is protected: don't try to
// create an AnimGroup without a parent. To create an
// AnimChannel hierarchy, you must first create an
// AnimBundle, and use that to create any subsequent
// children.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::Copy Constructor
// Access: Protected
// Description: Creates a new AnimGroup, just like this one, without
// copying any children. The new copy is added to the
// indicated parent. Intended to be called by
// make_copy() only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::Constructor
// Access: Published
// Description: Creates the AnimGroup, and adds it to the indicated
// parent. The only way to delete it subsequently is to
// delete the entire hierarchy.
////////////////////////////////////////////////////////////////////
74
AnimGroup::AnimGroup(AnimGroup *parent, basic_string< char > const &name);
221 10 ~AnimGroup 0 6 434 21 AnimGroup::~AnimGroup 0 0 276
// This is the normal AnimGroup constructor.
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
36
virtual AnimGroup::~AnimGroup(void);
222 16 get_num_children 0 4 434 27 AnimGroup::get_num_children 0 1 2 274
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::get_num_children
// Access: Published
// Description: Returns the number of child nodes of the group.
////////////////////////////////////////////////////////////////////
44
int AnimGroup::get_num_children(void) const;
223 9 get_child 0 4 434 20 AnimGroup::get_child 0 1 3 255
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::get_child
// Access: Published
// Description: Returns the nth child of the group.
////////////////////////////////////////////////////////////////////
45
AnimGroup *AnimGroup::get_child(int n) const;
224 15 get_child_named 0 4 434 26 AnimGroup::get_child_named 0 1 4 524
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::get_child_named
// Access: Published
// Description: Returns the first child found with the indicated
// name, or NULL if no such child exists. This method
// searches only the children of this particular
// AnimGroup; it does not recursively search the entire
// graph. See also find_child().
////////////////////////////////////////////////////////////////////
78
AnimGroup *AnimGroup::get_child_named(basic_string< char > const &name) const;
225 10 find_child 0 4 434 21 AnimGroup::find_child 0 1 5 465
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::find_child
// Access: Published
// Description: Returns the first descendant found with the indicated
// name, or NULL if no such descendant exists. This
// method searches the entire graph beginning at this
// AnimGroup; see also get_child_named().
////////////////////////////////////////////////////////////////////
73
AnimGroup *AnimGroup::find_child(basic_string< char > const &name) const;
226 16 sort_descendants 0 4 434 27 AnimGroup::sort_descendants 0 1 6 537
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::sort_descendants
// Access: Published
// Description: Sorts the children nodes at each level of the
// hierarchy into alphabetical order. This should be
// done after creating the hierarchy, to guarantee that
// the correct names will match up together when the
// AnimBundle is later bound to a PlayerRoot.
////////////////////////////////////////////////////////////////////
39
void AnimGroup::sort_descendants(void);
227 6 output 0 6 434 17 AnimGroup::output 0 1 7 269
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::output
// Access: Published, Virtual
// Description: Writes a one-line description of the group.
////////////////////////////////////////////////////////////////////
51
virtual void AnimGroup::output(ostream &out) const;
228 5 write 0 6 434 16 AnimGroup::write 0 1 8 309
////////////////////////////////////////////////////////////////////
// Function: AnimGroup::write
// Access: Published, Virtual
// Description: Writes a brief description of the group and all of
// its descendants.
////////////////////////////////////////////////////////////////////
68
virtual void AnimGroup::write(ostream &out, int indent_level) const;
229 14 get_class_type 0 4 434 25 AnimGroup::get_class_type 0 1 9 0
50
static TypeHandle AnimGroup::get_class_type(void);
230 10 AnimBundle 0 4 437 22 AnimBundle::AnimBundle 0 1 14 1374
// Filename: animBundle.I
// Created by: drose (21Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimBundle::Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimBundle::Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimBundle::Copy Constructor
// Access: Protected
// Description: Creates a new AnimBundle, just like this one, without
// copying any children. The new copy is added to the
// indicated parent. Intended to be called by
// make_copy() only.
////////////////////////////////////////////////////////////////////
91
inline AnimBundle::AnimBundle(basic_string< char > const &name, float fps, int num_frames);
231 11 copy_bundle 0 4 437 23 AnimBundle::copy_bundle 0 1 15 511
////////////////////////////////////////////////////////////////////
// Function: AnimBundle::copy_bundle
// Access: Published
// Description: Returns a full copy of the bundle and its entire tree
// of nested AnimGroups. However, the actual data
// stored in the leaves--that is, animation tables, such
// as those stored in an AnimChannelMatrixXfmTable--will
// be shared.
////////////////////////////////////////////////////////////////////
60
PointerTo< AnimBundle > AnimBundle::copy_bundle(void) const;
232 19 get_base_frame_rate 0 4 437 31 AnimBundle::get_base_frame_rate 0 1 16 600
////////////////////////////////////////////////////////////////////
// Function: AnimBundle::get_base_frame_rate
// Access: Public
// Description: Returns the ideal number of frames per second of the
// animation, when it is running at normal speed. This
// may not be the same as the actual playing frame rate,
// as it might have been adjusted through
// set_play_rate() on the AnimControl object. See
// AnimControl::get_effective_frame_rate().
////////////////////////////////////////////////////////////////////
58
inline double AnimBundle::get_base_frame_rate(void) const;
233 14 get_num_frames 0 4 437 26 AnimBundle::get_num_frames 0 1 17 335
////////////////////////////////////////////////////////////////////
// Function: AnimBundle::get_num_frames
// Access: Public
// Description: Returns the number of frames of animation, or 0 if
// the animation has no fixed number of frames.
////////////////////////////////////////////////////////////////////
50
inline int AnimBundle::get_num_frames(void) const;
234 14 get_class_type 0 4 437 26 AnimBundle::get_class_type 0 1 18 0
51
static TypeHandle AnimBundle::get_class_type(void);
235 11 ~AnimBundle 0 4 437 23 AnimBundle::~AnimBundle 0 0 0
30
AnimBundle::~AnimBundle(void);
236 14 AnimBundleNode 0 4 438 30 AnimBundleNode::AnimBundleNode 0 1 19 1557
// Filename: animBundleNode.I
// Created by: drose (06Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimBundleNode::Constructor
// Access: Public
// Description: The AnimBundle and its node should be constructed
// together. Generally, the derived classes of
// AnimBundleNode will automatically create a AnimBundle
// of the appropriate type, and pass it up to this
// constructor.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimBundleNode::Default Constructor
// Access: Protected
// Description: For internal use only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimBundleNode::Copy Constructor
// Access: Protected
// Description: Use make_copy() or copy_subgraph() to copy one of
// these.
////////////////////////////////////////////////////////////////////
92
inline AnimBundleNode::AnimBundleNode(basic_string< char > const &name, AnimBundle *bundle);
237 10 get_bundle 0 4 438 26 AnimBundleNode::get_bundle 0 1 20 222
////////////////////////////////////////////////////////////////////
// Function: AnimBundleNode::get_bundle
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
58
inline AnimBundle *AnimBundleNode::get_bundle(void) const;
238 16 find_anim_bundle 0 4 438 32 AnimBundleNode::find_anim_bundle 0 1 21 480
////////////////////////////////////////////////////////////////////
// Function: AnimBundleNode::find_anim_bundle
// Access: Published, Static
// Description: Recursively walks the scene graph beginning at the
// indicated node (which need not be an AnimBundleNode),
// and returns the first AnimBundle found. Returns NULL
// if no AnimBundle can be found.
////////////////////////////////////////////////////////////////////
69
static AnimBundle *AnimBundleNode::find_anim_bundle(PandaNode *root);
239 14 get_class_type 0 4 438 30 AnimBundleNode::get_class_type 0 1 22 0
55
static TypeHandle AnimBundleNode::get_class_type(void);
240 15 ~AnimBundleNode 0 4 438 31 AnimBundleNode::~AnimBundleNode 0 0 0
38
AnimBundleNode::~AnimBundleNode(void);
241 37 upcast_to_TypedWritableReferenceCount 0 12 440 48 PartGroup::upcast_to_TypedWritableReferenceCount 0 1 41 52
upcast from PartGroup to TypedWritableReferenceCount
84
TypedWritableReferenceCount *PartGroup::upcast_to_TypedWritableReferenceCount(void);
242 21 downcast_to_PartGroup 0 12 435 50 TypedWritableReferenceCount::downcast_to_PartGroup 0 1 42 54
downcast from TypedWritableReferenceCount to PartGroup
68
PartGroup *TypedWritableReferenceCount::downcast_to_PartGroup(void);
243 17 upcast_to_Namable 0 12 440 28 PartGroup::upcast_to_Namable 0 1 43 32
upcast from PartGroup to Namable
44
Namable *PartGroup::upcast_to_Namable(void);
244 21 downcast_to_PartGroup 0 12 436 30 Namable::downcast_to_PartGroup 0 1 44 34
downcast from Namable to PartGroup
48
PartGroup *Namable::downcast_to_PartGroup(void);
245 9 PartGroup 0 4 440 20 PartGroup::PartGroup 0 1 23 1727
// This is the normal PartGroup constructor.
// Filename: partGroup.I
// Created by: drose (22Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartGroup::Default Constructor
// Access: Protected
// Description: This constructor is only intended for interal use and
// for derived classes. You should normally use the
// non-default constructor, below.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartGroup::Copy Constructor
// Access: Protected
// Description: This constructor is only intended for interal use and
// for derived classes. You should normally use the
// make_copy() interface to make copies..
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartGroup::Constructor
// Access: Published
// Description: Creates the PartGroup, and adds it to the indicated
// parent. The only way to delete it subsequently is to
// delete the entire hierarchy.
////////////////////////////////////////////////////////////////////
74
PartGroup::PartGroup(PartGroup *parent, basic_string< char > const &name);
246 10 ~PartGroup 0 6 440 21 PartGroup::~PartGroup 0 0 266
// This is the normal PartGroup constructor.
////////////////////////////////////////////////////////////////////
// Function: PartGroup::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
36
virtual PartGroup::~PartGroup(void);
247 18 is_character_joint 0 6 440 29 PartGroup::is_character_joint 0 1 24 414
////////////////////////////////////////////////////////////////////
// Function: PartGroup::is_character_joint
// Access: Published, Virtual
// Description: Returns true if this part is a CharacterJoint, false
// otherwise. This is a tiny optimization over
// is_of_type(CharacterType::get_class_type()).
////////////////////////////////////////////////////////////////////
55
virtual bool PartGroup::is_character_joint(void) const;
248 9 make_copy 0 6 440 20 PartGroup::make_copy 0 1 25 341
////////////////////////////////////////////////////////////////////
// Function: PartGroup::make_copy
// Access: Published, Virtual
// Description: Allocates and returns a new copy of the node.
// Children are not copied, but see copy_subgraph().
////////////////////////////////////////////////////////////////////
52
virtual PartGroup *PartGroup::make_copy(void) const;
249 13 copy_subgraph 0 4 440 24 PartGroup::copy_subgraph 0 1 26 314
////////////////////////////////////////////////////////////////////
// Function: PartGroup::copy_subgraph
// Access: Published
// Description: Allocates and returns a new copy of this node and of
// all of its children.
////////////////////////////////////////////////////////////////////
48
PartGroup *PartGroup::copy_subgraph(void) const;
250 16 get_num_children 0 4 440 27 PartGroup::get_num_children 0 1 27 274
////////////////////////////////////////////////////////////////////
// Function: PartGroup::get_num_children
// Access: Published
// Description: Returns the number of child nodes of the group.
////////////////////////////////////////////////////////////////////
44
int PartGroup::get_num_children(void) const;
251 9 get_child 0 4 440 20 PartGroup::get_child 0 1 28 255
////////////////////////////////////////////////////////////////////
// Function: PartGroup::get_child
// Access: Published
// Description: Returns the nth child of the group.
////////////////////////////////////////////////////////////////////
45
PartGroup *PartGroup::get_child(int n) const;
252 15 get_child_named 0 4 440 26 PartGroup::get_child_named 0 1 29 524
////////////////////////////////////////////////////////////////////
// Function: PartGroup::get_child_named
// Access: Published
// Description: Returns the first child found with the indicated
// name, or NULL if no such child exists. This method
// searches only the children of this particular
// PartGroup; it does not recursively search the entire
// graph. See also find_child().
////////////////////////////////////////////////////////////////////
78
PartGroup *PartGroup::get_child_named(basic_string< char > const &name) const;
253 10 find_child 0 4 440 21 PartGroup::find_child 0 1 30 465
////////////////////////////////////////////////////////////////////
// Function: PartGroup::find_child
// Access: Published
// Description: Returns the first descendant found with the indicated
// name, or NULL if no such descendant exists. This
// method searches the entire graph beginning at this
// PartGroup; see also get_child_named().
////////////////////////////////////////////////////////////////////
73
PartGroup *PartGroup::find_child(basic_string< char > const &name) const;
254 16 sort_descendants 0 4 440 27 PartGroup::sort_descendants 0 1 31 537
////////////////////////////////////////////////////////////////////
// Function: PartGroup::sort_descendants
// Access: Published
// Description: Sorts the children nodes at each level of the
// hierarchy into alphabetical order. This should be
// done after creating the hierarchy, to guarantee that
// the correct names will match up together when the
// AnimBundle is later bound to a PlayerRoot.
////////////////////////////////////////////////////////////////////
39
void PartGroup::sort_descendants(void);
255 12 apply_freeze 0 4 440 23 PartGroup::apply_freeze 0 1 32 572
////////////////////////////////////////////////////////////////////
// Function: PartGroup::apply_freeze
// Access: Published
// Description: Freezes this particular joint so that it will always
// hold the specified transform. Returns true if this
// is a joint that can be so frozen, false otherwise.
//
// This is normally only called internally by
// PartBundle::freeze_joint(), but you may also call it
// directly.
////////////////////////////////////////////////////////////////////
62
bool PartGroup::apply_freeze(TransformState const *transform);
256 19 apply_freeze_matrix 0 6 440 30 PartGroup::apply_freeze_matrix 0 1 33 588
////////////////////////////////////////////////////////////////////
// Function: PartGroup::apply_freeze_matrix
// Access: Published, Virtual
// Description: Freezes this particular joint so that it will always
// hold the specified transform. Returns true if this
// is a joint that can be so frozen, false otherwise.
//
// This is normally only called internally by
// PartBundle::freeze_joint(), but you may also call it
// directly.
////////////////////////////////////////////////////////////////////
115
virtual bool PartGroup::apply_freeze_matrix(LVecBase3f const &pos, LVecBase3f const &hpr, LVecBase3f const &scale);
257 19 apply_freeze_scalar 0 6 440 30 PartGroup::apply_freeze_scalar 0 1 34 588
////////////////////////////////////////////////////////////////////
// Function: PartGroup::apply_freeze_scalar
// Access: Published, Virtual
// Description: Freezes this particular joint so that it will always
// hold the specified transform. Returns true if this
// is a joint that can be so frozen, false otherwise.
//
// This is normally only called internally by
// PartBundle::freeze_joint(), but you may also call it
// directly.
////////////////////////////////////////////////////////////////////
57
virtual bool PartGroup::apply_freeze_scalar(float value);
258 13 apply_control 0 6 440 24 PartGroup::apply_control 0 1 35 622
////////////////////////////////////////////////////////////////////
// Function: PartGroup::apply_control
// Access: Published, Virtual
// Description: Specifies a node to influence this particular joint
// so that it will always hold the node's transform.
// Returns true if this is a joint that can be so
// controlled, false otherwise.
//
// This is normally only called internally by
// PartBundle::control_joint(), but you may also call it
// directly.
////////////////////////////////////////////////////////////////////
55
virtual bool PartGroup::apply_control(PandaNode *node);
259 20 clear_forced_channel 0 6 440 31 PartGroup::clear_forced_channel 0 1 36 567
////////////////////////////////////////////////////////////////////
// Function: PartGroup::clear_forced_channel
// Access: Published, Virtual
// Description: Undoes the effect of a previous call to
// apply_freeze() or apply_control(). Returns true if
// the joint was modified, false otherwise.
//
// This is normally only called internally by
// PartBundle::release_joint(), but you may also call it
// directly.
////////////////////////////////////////////////////////////////////
51
virtual bool PartGroup::clear_forced_channel(void);
260 18 get_forced_channel 0 6 440 29 PartGroup::get_forced_channel 0 1 37 453
////////////////////////////////////////////////////////////////////
// Function: PartGroup::get_forced_channel
// Access: Published, Virtual
// Description: 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.
////////////////////////////////////////////////////////////////////
67
virtual AnimChannelBase *PartGroup::get_forced_channel(void) const;
261 5 write 0 6 440 16 PartGroup::write 0 1 38 309
////////////////////////////////////////////////////////////////////
// Function: PartGroup::write
// Access: Published, Virtual
// Description: Writes a brief description of the group and all of
// its descendants.
////////////////////////////////////////////////////////////////////
68
virtual void PartGroup::write(ostream &out, int indent_level) const;
262 16 write_with_value 0 6 440 27 PartGroup::write_with_value 0 1 39 356
////////////////////////////////////////////////////////////////////
// Function: PartGroup::write_with_value
// Access: Published, Virtual
// Description: Writes a brief description of the group, showing its
// current value, and that of all of its descendants.
////////////////////////////////////////////////////////////////////
79
virtual void PartGroup::write_with_value(ostream &out, int indent_level) const;
263 14 get_class_type 0 4 440 25 PartGroup::get_class_type 0 1 40 0
50
static TypeHandle PartGroup::get_class_type(void);
264 29 upcast_to_TypedReferenceCount 0 12 442 42 AnimControl::upcast_to_TypedReferenceCount 0 1 58 46
upcast from AnimControl to TypedReferenceCount
70
TypedReferenceCount *AnimControl::upcast_to_TypedReferenceCount(void);
265 23 downcast_to_AnimControl 0 12 443 44 TypedReferenceCount::downcast_to_AnimControl 0 1 59 48
downcast from TypedReferenceCount to AnimControl
64
AnimControl *TypedReferenceCount::downcast_to_AnimControl(void);
266 23 upcast_to_AnimInterface 0 12 442 36 AnimControl::upcast_to_AnimInterface 0 1 60 40
upcast from AnimControl to AnimInterface
58
AnimInterface *AnimControl::upcast_to_AnimInterface(void);
267 23 downcast_to_AnimControl 0 12 444 38 AnimInterface::downcast_to_AnimControl 0 1 61 42
downcast from AnimInterface to AnimControl
58
AnimControl *AnimInterface::downcast_to_AnimControl(void);
268 17 upcast_to_Namable 0 12 442 30 AnimControl::upcast_to_Namable 0 1 62 34
upcast from AnimControl to Namable
46
Namable *AnimControl::upcast_to_Namable(void);
269 23 downcast_to_AnimControl 0 12 436 32 Namable::downcast_to_AnimControl 0 1 63 36
downcast from Namable to AnimControl
52
AnimControl *Namable::downcast_to_AnimControl(void);
270 12 ~AnimControl 0 6 442 25 AnimControl::~AnimControl 0 0 231
////////////////////////////////////////////////////////////////////
// Function: AnimControl::Destructor
// Access: Published, Virtual
// Description:
////////////////////////////////////////////////////////////////////
40
virtual AnimControl::~AnimControl(void);
271 10 is_pending 0 4 442 23 AnimControl::is_pending 0 1 45 1061
// Filename: animControl.I
// Created by: drose (19Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControl::is_pending
// Access: Published
// Description: Returns true if the AnimControl is being bound
// asynchronously, and has not yet finished. If this is
// true, the AnimControl's interface is still available
// and will be perfectly useful (though get_anim() might
// return NULL), but nothing visible will happen
// immediately.
////////////////////////////////////////////////////////////////////
48
inline bool AnimControl::is_pending(void) const;
272 12 wait_pending 0 4 442 25 AnimControl::wait_pending 0 1 46 330
////////////////////////////////////////////////////////////////////
// Function: AnimControl::wait_pending
// Access: Published
// Description: Blocks the current thread until the AnimControl has
// finished loading and is fully bound.
////////////////////////////////////////////////////////////////////
37
void AnimControl::wait_pending(void);
273 8 has_anim 0 4 442 21 AnimControl::has_anim 0 1 47 395
////////////////////////////////////////////////////////////////////
// Function: AnimControl::has_anim
// Access: Published
// Description: Returns true if the AnimControl was successfully
// loaded, or false if there was a problem. This may
// return false while is_pending() is true.
////////////////////////////////////////////////////////////////////
46
inline bool AnimControl::has_anim(void) const;
274 22 set_pending_done_event 0 4 442 35 AnimControl::set_pending_done_event 0 1 48 474
////////////////////////////////////////////////////////////////////
// Function: AnimControl::set_pending_done_event
// Access: Published
// Description: Specifies an event name that will be thrown when the
// AnimControl is finished binding asynchronously. If
// the AnimControl has already finished binding, the
// event will be thrown immediately.
////////////////////////////////////////////////////////////////////
81
void AnimControl::set_pending_done_event(basic_string< char > const &done_event);
275 22 get_pending_done_event 0 4 442 35 AnimControl::get_pending_done_event 0 1 49 351
////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_pending_done_event
// Access: Published
// Description: Returns the event name that will be thrown when the
// AnimControl is finished binding asynchronously.
////////////////////////////////////////////////////////////////////
69
basic_string< char > AnimControl::get_pending_done_event(void) const;
276 8 get_part 0 4 442 21 AnimControl::get_part 0 1 50 292
////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_part
// Access: Published
// Description: Returns the PartBundle bound in with this
// AnimControl.
////////////////////////////////////////////////////////////////////
46
PartBundle *AnimControl::get_part(void) const;
277 8 get_anim 0 4 442 21 AnimControl::get_anim 0 1 51 292
////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_anim
// Access: Published
// Description: Returns the AnimBundle bound in with this
// AnimControl.
////////////////////////////////////////////////////////////////////
53
inline AnimBundle *AnimControl::get_anim(void) const;
278 17 get_channel_index 0 4 442 30 AnimControl::get_channel_index 0 1 52 665
////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_channel_index
// Access: Published
// Description: Returns the particular channel index associated with
// this AnimControl. This channel index is the slot on
// which each AnimGroup is bound to its associated
// PartGroup, for each joint in the animation.
//
// It will be true that
// get_part()->find_child("n")->get_bound(get_channel_index())
// == get_anim()->find_child("n"), for each joint "n".
////////////////////////////////////////////////////////////////////
54
inline int AnimControl::get_channel_index(void) const;
279 16 get_bound_joints 0 4 442 29 AnimControl::get_bound_joints 0 1 53 677
////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_bound_joints
// Access: Published
// Description: Returns the subset of joints controlled by this
// AnimControl. Most of the time, this will be
// BitArray::all_on(), for a normal full-body animation.
// For a subset animation, however, this will be just a
// subset of those bits, corresponding to the set of
// joints and sliders actually bound (as enumerated by
// bind_hierarchy() in depth-first LIFO order).
////////////////////////////////////////////////////////////////////
65
inline BitArray const &AnimControl::get_bound_joints(void) const;
280 14 set_anim_model 0 4 442 27 AnimControl::set_anim_model 0 1 54 883
////////////////////////////////////////////////////////////////////
// Function: AnimControl::set_anim_model
// Access: Published
// Description: Associates the indicated PandaNode with the
// AnimControl. By convention, this node represents the
// root node of the model file that corresponds to this
// AnimControl's animation file, though nothing in this
// code makes this assumption or indeed does anything
// with this node.
//
// The purpose of this is simply to allow the
// AnimControl to keep a reference count on the
// ModelRoot node that generated it, so that the model
// will not disappear from the model pool until it is no
// longer referenced.
////////////////////////////////////////////////////////////////////
58
inline void AnimControl::set_anim_model(PandaNode *model);
281 14 get_anim_model 0 4 442 27 AnimControl::get_anim_model 0 1 55 314
////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_anim_model
// Access: Published
// Description: Retrieves the pointer set via set_anim_model(). See
// set_anim_model().
////////////////////////////////////////////////////////////////////
58
inline PandaNode *AnimControl::get_anim_model(void) const;
282 6 output 0 6 442 19 AnimControl::output 0 1 56 218
////////////////////////////////////////////////////////////////////
// Function: AnimControl::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
53
virtual void AnimControl::output(ostream &out) const;
283 14 get_class_type 0 4 442 27 AnimControl::get_class_type 0 1 57 0
52
static TypeHandle AnimControl::get_class_type(void);
284 8 get_type 0 6 445 25 AnimChannelBase::get_type 0 1 64 0
57
virtual TypeHandle AnimChannelBase::get_type(void) const;
285 14 get_class_type 0 4 445 31 AnimChannelBase::get_class_type 0 1 65 0
56
static TypeHandle AnimChannelBase::get_class_type(void);
286 16 ~AnimChannelBase 0 4 445 33 AnimChannelBase::~AnimChannelBase 0 0 0
40
AnimChannelBase::~AnimChannelBase(void);
287 9 get_value 0 6 446 44 AnimChannel< ACMatrixSwitchType >::get_value 0 1 66 0
93
virtual void ::AnimChannel< ACMatrixSwitchType >::get_value(int frame, LMatrix4f &value) = 0;
288 24 get_value_no_scale_shear 0 6 446 59 AnimChannel< ACMatrixSwitchType >::get_value_no_scale_shear 0 1 67 72
// These transform-component methods only have meaning for matrix types.
104
virtual void ::AnimChannel< ACMatrixSwitchType >::get_value_no_scale_shear(int frame, LMatrix4f &value);
289 9 get_scale 0 6 446 44 AnimChannel< ACMatrixSwitchType >::get_scale 0 1 68 72
// These transform-component methods only have meaning for matrix types.
90
virtual void ::AnimChannel< ACMatrixSwitchType >::get_scale(int frame, LVecBase3f &scale);
290 7 get_hpr 0 6 446 42 AnimChannel< ACMatrixSwitchType >::get_hpr 0 1 69 0
86
virtual void ::AnimChannel< ACMatrixSwitchType >::get_hpr(int frame, LVecBase3f &hpr);
291 8 get_quat 0 6 446 43 AnimChannel< ACMatrixSwitchType >::get_quat 0 1 70 0
90
virtual void ::AnimChannel< ACMatrixSwitchType >::get_quat(int frame, LQuaternionf &quat);
292 7 get_pos 0 6 446 42 AnimChannel< ACMatrixSwitchType >::get_pos 0 1 71 0
86
virtual void ::AnimChannel< ACMatrixSwitchType >::get_pos(int frame, LVecBase3f &pos);
293 9 get_shear 0 6 446 44 AnimChannel< ACMatrixSwitchType >::get_shear 0 1 72 0
90
virtual void ::AnimChannel< ACMatrixSwitchType >::get_shear(int frame, LVecBase3f &shear);
294 14 get_value_type 0 6 446 49 AnimChannel< ACMatrixSwitchType >::get_value_type 0 1 73 0
83
virtual TypeHandle ::AnimChannel< ACMatrixSwitchType >::get_value_type(void) const;
295 14 get_class_type 0 4 446 49 AnimChannel< ACMatrixSwitchType >::get_class_type 0 1 74 0
76
static TypeHandle ::AnimChannel< ACMatrixSwitchType >::get_class_type(void);
296 9 get_value 0 6 447 44 AnimChannel< ACScalarSwitchType >::get_value 0 0 0
89
virtual void ::AnimChannel< ACScalarSwitchType >::get_value(int frame, float &value) = 0;
297 24 get_value_no_scale_shear 0 6 447 59 AnimChannel< ACScalarSwitchType >::get_value_no_scale_shear 0 0 72
// These transform-component methods only have meaning for matrix types.
100
virtual void ::AnimChannel< ACScalarSwitchType >::get_value_no_scale_shear(int frame, float &value);
298 9 get_scale 0 6 447 44 AnimChannel< ACScalarSwitchType >::get_scale 0 1 75 72
// These transform-component methods only have meaning for matrix types.
90
virtual void ::AnimChannel< ACScalarSwitchType >::get_scale(int frame, LVecBase3f &scale);
299 7 get_hpr 0 6 447 42 AnimChannel< ACScalarSwitchType >::get_hpr 0 1 76 0
86
virtual void ::AnimChannel< ACScalarSwitchType >::get_hpr(int frame, LVecBase3f &hpr);
300 8 get_quat 0 6 447 43 AnimChannel< ACScalarSwitchType >::get_quat 0 1 77 0
90
virtual void ::AnimChannel< ACScalarSwitchType >::get_quat(int frame, LQuaternionf &quat);
301 7 get_pos 0 6 447 42 AnimChannel< ACScalarSwitchType >::get_pos 0 1 78 0
86
virtual void ::AnimChannel< ACScalarSwitchType >::get_pos(int frame, LVecBase3f &pos);
302 9 get_shear 0 6 447 44 AnimChannel< ACScalarSwitchType >::get_shear 0 1 79 0
90
virtual void ::AnimChannel< ACScalarSwitchType >::get_shear(int frame, LVecBase3f &shear);
303 14 get_value_type 0 6 447 49 AnimChannel< ACScalarSwitchType >::get_value_type 0 1 80 0
83
virtual TypeHandle ::AnimChannel< ACScalarSwitchType >::get_value_type(void) const;
304 14 get_class_type 0 4 447 49 AnimChannel< ACScalarSwitchType >::get_class_type 0 1 81 0
76
static TypeHandle ::AnimChannel< ACScalarSwitchType >::get_class_type(void);
305 9 set_value 0 4 448 35 AnimChannelMatrixDynamic::set_value 0 2 82 83 615
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::set_value
// Access: Published
// Description: Explicitly sets the matrix value.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::set_value
// Access: Published
// Description: Explicitly sets the matrix value, using the indicated
// TransformState object as a convenience.
////////////////////////////////////////////////////////////////////
136
void AnimChannelMatrixDynamic::set_value(LMatrix4f const &value);
void AnimChannelMatrixDynamic::set_value(TransformState const *value);
306 14 set_value_node 0 4 448 40 AnimChannelMatrixDynamic::set_value_node 0 1 84 384
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::set_value_node
// Access: Published
// Description: Specifies a node whose transform will be queried each
// frame to implicitly specify the transform of this
// joint.
////////////////////////////////////////////////////////////////////
63
void AnimChannelMatrixDynamic::set_value_node(PandaNode *node);
307 19 get_value_transform 0 4 448 45 AnimChannelMatrixDynamic::get_value_transform 0 1 85 841
// Filename: animChannelMatrixDynamic.I
// Created by: drose (20Oct03)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::get_value_transform
// Access: Published
// Description: Returns the explicit TransformState value that was
// set via set_value(), if any.
////////////////////////////////////////////////////////////////////
87
inline TransformState const *AnimChannelMatrixDynamic::get_value_transform(void) const;
308 14 get_value_node 0 4 448 40 AnimChannelMatrixDynamic::get_value_node 0 1 86 316
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::get_value_node
// Access: Published
// Description: Returns the node that was set via set_value_node(),
// if any.
////////////////////////////////////////////////////////////////////
71
inline PandaNode *AnimChannelMatrixDynamic::get_value_node(void) const;
309 14 get_class_type 0 4 448 40 AnimChannelMatrixDynamic::get_class_type 0 1 87 0
65
static TypeHandle AnimChannelMatrixDynamic::get_class_type(void);
310 25 ~AnimChannelMatrixDynamic 0 4 448 51 AnimChannelMatrixDynamic::~AnimChannelMatrixDynamic 0 0 0
58
AnimChannelMatrixDynamic::~AnimChannelMatrixDynamic(void);
311 25 AnimChannelMatrixXfmTable 0 4 449 52 AnimChannelMatrixXfmTable::AnimChannelMatrixXfmTable 0 1 88 970
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::Constructor
// Access: Protected
// Description: Used only for bam loader.
/////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::Copy Constructor
// Access: Protected
// Description: Creates a new AnimChannelMatrixXfmTable, just like
// this one, without copying any children. The new copy
// is added to the indicated parent. Intended to be
// called by make_copy() only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
106
AnimChannelMatrixXfmTable::AnimChannelMatrixXfmTable(AnimGroup *parent, basic_string< char > const &name);
312 11 is_valid_id 0 4 449 38 AnimChannelMatrixXfmTable::is_valid_id 0 1 89 830
// Filename: animChannelMatrixXfmTable.I
// Created by: drose (21Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::is_valid_id
// Access: Public, Static
// Description: Returns true if the given letter is one of the nine
// valid table id's.
////////////////////////////////////////////////////////////////////
73
static inline bool AnimChannelMatrixXfmTable::is_valid_id(char table_id);
313 9 set_table 0 4 449 36 AnimChannelMatrixXfmTable::set_table 0 1 90 536
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::set_table
// Access: Public
// Description: Assigns the indicated table. table_id is one of 'i',
// 'j', 'k', for scale, 'a', 'b', 'c' for shear, 'h',
// 'p', 'r', for rotation, and 'x', 'y', 'z', for
// translation. The new table must have either zero,
// one, or get_num_frames() frames.
////////////////////////////////////////////////////////////////////
100
void AnimChannelMatrixXfmTable::set_table(char table_id, ConstPointerToArray< float > const &table);
314 9 get_table 0 4 449 36 AnimChannelMatrixXfmTable::get_table 0 1 91 339
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::get_table
// Access: Public
// Description: Returns a pointer to the indicated subtable's data,
// if it exists, or NULL if it does not.
////////////////////////////////////////////////////////////////////
94
inline ConstPointerToArray< float > AnimChannelMatrixXfmTable::get_table(char table_id) const;
315 16 clear_all_tables 0 4 449 43 AnimChannelMatrixXfmTable::clear_all_tables 0 1 92 336
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::clear_all_tables
// Access: Published
// Description: Removes all the tables from the channel, and resets
// it to its initial state.
////////////////////////////////////////////////////////////////////
55
void AnimChannelMatrixXfmTable::clear_all_tables(void);
316 9 has_table 0 4 449 36 AnimChannelMatrixXfmTable::has_table 0 1 93 310
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::has_table
// Access: Published
// Description: Returns true if the indicated subtable has been
// assigned.
////////////////////////////////////////////////////////////////////
70
inline bool AnimChannelMatrixXfmTable::has_table(char table_id) const;
317 11 clear_table 0 4 449 38 AnimChannelMatrixXfmTable::clear_table 0 1 94 286
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::clear_table
// Access: Published
// Description: Removes the indicated table from the definition.
////////////////////////////////////////////////////////////////////
66
inline void AnimChannelMatrixXfmTable::clear_table(char table_id);
318 14 get_class_type 0 4 449 41 AnimChannelMatrixXfmTable::get_class_type 0 1 95 0
66
static TypeHandle AnimChannelMatrixXfmTable::get_class_type(void);
319 9 set_value 0 4 450 35 AnimChannelScalarDynamic::set_value 0 1 96 261
////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarDynamic::set_value
// Access: Published
// Description: Explicitly sets the value.
////////////////////////////////////////////////////////////////////
54
void AnimChannelScalarDynamic::set_value(float value);
320 14 set_value_node 0 4 450 40 AnimChannelScalarDynamic::set_value_node 0 1 97 384
////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarDynamic::set_value_node
// Access: Published
// Description: Specifies a node whose transform will be queried each
// frame to implicitly specify the transform of this
// joint.
////////////////////////////////////////////////////////////////////
63
void AnimChannelScalarDynamic::set_value_node(PandaNode *node);
321 14 get_class_type 0 4 450 40 AnimChannelScalarDynamic::get_class_type 0 1 98 0
65
static TypeHandle AnimChannelScalarDynamic::get_class_type(void);
322 25 ~AnimChannelScalarDynamic 0 4 450 51 AnimChannelScalarDynamic::~AnimChannelScalarDynamic 0 0 0
58
AnimChannelScalarDynamic::~AnimChannelScalarDynamic(void);
323 9 set_table 0 4 451 33 AnimChannelScalarTable::set_table 0 1 99 253
////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarTable::set_table
// Access: Public
// Description: Assigns the data table.
////////////////////////////////////////////////////////////////////
82
void AnimChannelScalarTable::set_table(ConstPointerToArray< float > const &table);
324 9 get_table 0 4 451 33 AnimChannelScalarTable::get_table 0 1 100 821
// Filename: animChannelScalarTable.I
// Created by: drose (22Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarTable::get_table
// Access: Public
// Description: Returns a pointer to the table's data,
// if it exists, or NULL if it does not.
////////////////////////////////////////////////////////////////////
82
inline ConstPointerToArray< float > AnimChannelScalarTable::get_table(void) const;
325 9 has_table 0 4 451 33 AnimChannelScalarTable::has_table 0 1 101 282
////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarTable::has_table
// Access: Published
// Description: Returns true if the data table has been assigned.
////////////////////////////////////////////////////////////////////
58
inline bool AnimChannelScalarTable::has_table(void) const;
326 11 clear_table 0 4 451 35 AnimChannelScalarTable::clear_table 0 1 102 258
////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarTable::clear_table
// Access: Published
// Description: Empties the data table.
////////////////////////////////////////////////////////////////////
54
inline void AnimChannelScalarTable::clear_table(void);
327 14 get_class_type 0 4 451 38 AnimChannelScalarTable::get_class_type 0 1 103 0
63
static TypeHandle AnimChannelScalarTable::get_class_type(void);
328 23 ~AnimChannelScalarTable 0 4 451 47 AnimChannelScalarTable::~AnimChannelScalarTable 0 0 0
54
AnimChannelScalarTable::~AnimChannelScalarTable(void);
329 21 AnimControlCollection 0 4 452 44 AnimControlCollection::AnimControlCollection 0 1 104 354
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::Constructor
// Access: Published
// Description: Returns the AnimControl associated with the given
// name, or NULL if no such control has been associated.
////////////////////////////////////////////////////////////////////
51
AnimControlCollection::AnimControlCollection(void);
330 22 ~AnimControlCollection 0 4 452 45 AnimControlCollection::~AnimControlCollection 0 0 232
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::Destructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
52
AnimControlCollection::~AnimControlCollection(void);
331 10 store_anim 0 4 452 33 AnimControlCollection::store_anim 0 1 105 529
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::store_anim
// Access: Published
// Description: Associates the given AnimControl with this collection
// under the given name. The AnimControl will remain
// associated until a new AnimControl is associated with
// the same name later, or until unbind_anim() is called
// with this name.
////////////////////////////////////////////////////////////////////
95
void AnimControlCollection::store_anim(AnimControl *control, basic_string< char > const &name);
332 9 find_anim 0 4 452 32 AnimControlCollection::find_anim 0 1 106 352
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::find_anim
// Access: Published
// Description: Returns the AnimControl associated with the given
// name, or NULL if no such control has been associated.
////////////////////////////////////////////////////////////////////
86
AnimControl *AnimControlCollection::find_anim(basic_string< char > const &name) const;
333 11 unbind_anim 0 4 452 34 AnimControlCollection::unbind_anim 0 1 107 452
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::unbind_anim
// Access: Published
// Description: Removes the AnimControl associated with the given
// name, if any. Returns true if an AnimControl was
// removed, false if there was no AnimControl with the
// indicated name.
////////////////////////////////////////////////////////////////////
74
bool AnimControlCollection::unbind_anim(basic_string< char > const &name);
334 13 get_num_anims 0 4 452 36 AnimControlCollection::get_num_anims 0 1 108 320
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_num_anims
// Access: Published
// Description: Returns the number of AnimControls associated with
// this collection.
////////////////////////////////////////////////////////////////////
53
int AnimControlCollection::get_num_anims(void) const;
335 8 get_anim 0 4 452 31 AnimControlCollection::get_anim 0 1 109 308
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_anim
// Access: Published
// Description: Returns the nth AnimControl associated with
// this collection.
////////////////////////////////////////////////////////////////////
58
AnimControl *AnimControlCollection::get_anim(int n) const;
336 13 get_anim_name 0 4 452 36 AnimControlCollection::get_anim_name 0 1 110 325
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_anim_name
// Access: Published
// Description: Returns the name of the nth AnimControl associated
// with this collection.
////////////////////////////////////////////////////////////////////
71
basic_string< char > AnimControlCollection::get_anim_name(int n) const;
337 11 clear_anims 0 4 452 34 AnimControlCollection::clear_anims 0 1 111 279
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::clear_anims
// Access: Published
// Description: Disassociates all anims from this collection.
////////////////////////////////////////////////////////////////////
46
void AnimControlCollection::clear_anims(void);
338 4 play 0 4 452 27 AnimControlCollection::play 0 2 112 113 1146
// The following functions are convenience functions that vector
// directly into the AnimControl's functionality by anim name.
// Filename: animControlCollection.I
// Created by: drose (22Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::play
// Access: Public
// Description: Starts the named animation playing.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::play
// Access: Public
// Description: Starts the named animation playing.
////////////////////////////////////////////////////////////////////
177
inline bool AnimControlCollection::play(basic_string< char > const &anim_name);
inline bool AnimControlCollection::play(basic_string< char > const &anim_name, int from, int to);
339 4 loop 0 4 452 27 AnimControlCollection::loop 0 2 114 115 520
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::loop
// Access: Public
// Description: Starts the named animation looping.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::loop
// Access: Public
// Description: Starts the named animation looping.
////////////////////////////////////////////////////////////////////
205
inline bool AnimControlCollection::loop(basic_string< char > const &anim_name, bool restart);
inline bool AnimControlCollection::loop(basic_string< char > const &anim_name, bool restart, int from, int to);
340 4 stop 0 4 452 27 AnimControlCollection::stop 0 1 116 250
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::stop
// Access: Public
// Description: Stops the named animation.
////////////////////////////////////////////////////////////////////
79
inline bool AnimControlCollection::stop(basic_string< char > const &anim_name);
341 4 pose 0 4 452 27 AnimControlCollection::pose 0 1 117 274
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::pose
// Access: Public
// Description: Sets to a particular frame in the named animation.
////////////////////////////////////////////////////////////////////
90
inline bool AnimControlCollection::pose(basic_string< char > const &anim_name, int frame);
342 8 play_all 0 4 452 31 AnimControlCollection::play_all 0 2 118 119 624
// These functions operate on all anims at once.
// These functions operate on all anims at once.
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::play_all
// Access: Published
// Description: Starts all animations playing.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::play_all
// Access: Published
// Description: Starts all animations playing.
////////////////////////////////////////////////////////////////////
99
void AnimControlCollection::play_all(void);
void AnimControlCollection::play_all(int from, int to);
343 8 loop_all 0 4 452 31 AnimControlCollection::loop_all 0 2 120 121 524
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::loop_all
// Access: Published
// Description: Starts all animations looping.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::loop_all
// Access: Published
// Description: Starts all animations looping.
////////////////////////////////////////////////////////////////////
121
void AnimControlCollection::loop_all(bool restart);
void AnimControlCollection::loop_all(bool restart, int from, int to);
344 8 stop_all 0 4 452 31 AnimControlCollection::stop_all 0 1 122 378
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::stop_all
// Access: Published
// Description: Stops all currently playing animations. Returns true
// if any animations were stopped, false if none were
// playing.
////////////////////////////////////////////////////////////////////
43
bool AnimControlCollection::stop_all(void);
345 8 pose_all 0 4 452 31 AnimControlCollection::pose_all 0 1 123 274
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::pose_all
// Access: Published
// Description: Sets all animations to the indicated frame.
////////////////////////////////////////////////////////////////////
48
void AnimControlCollection::pose_all(int frame);
346 9 get_frame 0 4 452 32 AnimControlCollection::get_frame 0 2 124 125 635
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_frame
// Access: Public
// Description: Returns the current frame in the named animation, or
// 0 if the animation is not found.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_frame
// Access: Public
// Description: Returns the current frame in the last-started
// animation.
////////////////////////////////////////////////////////////////////
146
inline int AnimControlCollection::get_frame(basic_string< char > const &anim_name) const;
inline int AnimControlCollection::get_frame(void) const;
347 14 get_num_frames 0 4 452 37 AnimControlCollection::get_num_frames 0 2 126 127 663
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_num_frames
// Access: Public
// Description: Returns the total number of frames in the named
// animation, or 0 if the animation is not found.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_num_frames
// Access: Public
// Description: Returns the total number of frames in the
// last-started animation.
////////////////////////////////////////////////////////////////////
156
inline int AnimControlCollection::get_num_frames(basic_string< char > const &anim_name) const;
inline int AnimControlCollection::get_num_frames(void) const;
348 10 is_playing 0 4 452 33 AnimControlCollection::is_playing 0 2 128 129 651
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::is_playing
// Access: Public
// Description: Returns true if the named animation is currently
// playing, false otherwise.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::is_playing
// Access: Public
// Description: Returns true if the last-started animation is
// currently playing, false otherwise.
////////////////////////////////////////////////////////////////////
150
inline bool AnimControlCollection::is_playing(basic_string< char > const &anim_name) const;
inline bool AnimControlCollection::is_playing(void) const;
349 18 which_anim_playing 0 4 452 41 AnimControlCollection::which_anim_playing 0 1 130 458
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::which_anim_playing
// Access: Published
// Description: Returns the name of the bound AnimControl currently
// playing, if any. If more than one AnimControl is
// currently playing, returns all of the names separated
// by spaces.
////////////////////////////////////////////////////////////////////
75
basic_string< char > AnimControlCollection::which_anim_playing(void) const;
350 6 output 0 4 452 29 AnimControlCollection::output 0 1 131 229
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
55
void AnimControlCollection::output(ostream &out) const;
351 5 write 0 4 452 28 AnimControlCollection::write 0 1 132 228
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
54
void AnimControlCollection::write(ostream &out) const;
352 16 AnimPreloadTable 0 4 453 34 AnimPreloadTable::AnimPreloadTable 0 1 133 229
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
41
AnimPreloadTable::AnimPreloadTable(void);
353 13 get_num_anims 0 4 453 31 AnimPreloadTable::get_num_anims 0 1 134 284
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::get_num_anims
// Access: Published
// Description: Returns the number of animation records in the table.
////////////////////////////////////////////////////////////////////
48
int AnimPreloadTable::get_num_anims(void) const;
354 9 find_anim 0 4 453 27 AnimPreloadTable::find_anim 0 1 135 610
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::find_anim
// Access: Published
// Description: Returns the index number in the table of the
// animation record with the indicated name, or -1 if
// the name is not present. By convention, the basename
// is the filename of the egg or bam file, without the
// directory part and without the extension. That is,
// it is Filename::get_basename_wo_extension().
////////////////////////////////////////////////////////////////////
76
int AnimPreloadTable::find_anim(basic_string< char > const &basename) const;
355 12 get_basename 0 4 453 30 AnimPreloadTable::get_basename 0 1 136 322
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::get_basename
// Access: Published
// Description: Returns the basename stored for the nth animation
// record. See find_anim().
////////////////////////////////////////////////////////////////////
72
inline basic_string< char > AnimPreloadTable::get_basename(int n) const;
356 19 get_base_frame_rate 0 4 453 37 AnimPreloadTable::get_base_frame_rate 0 1 137 313
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::get_base_frame_rate
// Access: Published
// Description: Returns the frame rate stored for the nth animation
// record.
////////////////////////////////////////////////////////////////////
64
inline float AnimPreloadTable::get_base_frame_rate(int n) const;
357 14 get_num_frames 0 4 453 32 AnimPreloadTable::get_num_frames 0 1 138 314
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::get_num_frames
// Access: Published
// Description: Returns the number of frames stored for the nth
// animation record.
////////////////////////////////////////////////////////////////////
57
inline int AnimPreloadTable::get_num_frames(int n) const;
358 11 clear_anims 0 4 453 29 AnimPreloadTable::clear_anims 0 1 139 274
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::clear_anims
// Access: Published
// Description: Removes all animation records from the table.
////////////////////////////////////////////////////////////////////
41
void AnimPreloadTable::clear_anims(void);
359 11 remove_anim 0 4 453 29 AnimPreloadTable::remove_anim 0 1 140 344
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::remove_anim
// Access: Published
// Description: Removes the nth animation records from the table.
// This renumbers indexes for following animations.
////////////////////////////////////////////////////////////////////
42
void AnimPreloadTable::remove_anim(int n);
360 8 add_anim 0 4 453 26 AnimPreloadTable::add_anim 0 1 141 505
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::add_anim
// Access: Published
// Description: Adds a new animation record to the table. If there
// is already a record of this name, no operation is
// performed (the original record is unchanged). See
// find_anim(). This will invalidate existing index
// numbers.
////////////////////////////////////////////////////////////////////
109
void AnimPreloadTable::add_anim(basic_string< char > const &basename, float base_frame_rate, int num_frames);
361 14 add_anims_from 0 4 453 32 AnimPreloadTable::add_anims_from 0 1 142 412
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::add_anims_from
// Access: Published
// Description: Copies the animation records from the other table
// into this one. If a given record name exists in both
// tables, the record in this one supercedes.
////////////////////////////////////////////////////////////////////
69
void AnimPreloadTable::add_anims_from(AnimPreloadTable const *other);
362 6 output 0 6 453 24 AnimPreloadTable::output 0 1 143 224
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
58
virtual void AnimPreloadTable::output(ostream &out) const;
363 5 write 0 6 453 23 AnimPreloadTable::write 0 1 144 223
////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::write
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
75
virtual void AnimPreloadTable::write(ostream &out, int indent_level) const;
364 14 get_class_type 0 4 453 32 AnimPreloadTable::get_class_type 0 1 145 0
57
static TypeHandle AnimPreloadTable::get_class_type(void);
365 9 auto_bind 0 1 0 9 auto_bind 0 2 214 215 962
////////////////////////////////////////////////////////////////////
// Function: auto_bind
// Description: Walks the scene graph or subgraph beginning at the
// indicated node, and attempts to bind any AnimBundles
// found to their matching PartBundles, when possible.
//
// The list of all resulting AnimControls created is
// filled into controls.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: auto_bind
// Description: Walks the scene graph or subgraph beginning at the
// indicated node, and attempts to bind any AnimBundles
// found to their matching PartBundles, when possible.
//
// The list of all resulting AnimControls created is
// filled into controls.
////////////////////////////////////////////////////////////////////
103
void auto_bind(PandaNode *root_node, AnimControlCollection &controls, int hierarchy_match_flags = (0));
366 10 PartSubset 0 4 455 22 PartSubset::PartSubset 0 2 146 147 453
////////////////////////////////////////////////////////////////////
// Function: PartSubset::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartSubset::Copy Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
77
PartSubset::PartSubset(void);
PartSubset::PartSubset(PartSubset const &copy);
367 10 operator = 0 4 455 22 PartSubset::operator = 0 1 148 236
////////////////////////////////////////////////////////////////////
// Function: PartSubset::Copy Assignment Operator
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
52
void PartSubset::operator =(PartSubset const &copy);
368 17 add_include_joint 0 4 455 29 PartSubset::add_include_joint 0 1 149 650
////////////////////////////////////////////////////////////////////
// Function: PartSubset::add_include_joint
// Access: Published
// Description: Adds the named joint to the list of joints that will
// be explicitly included in the subset. Any joint at
// or below a named node will be included in the subset
// (unless a lower node is also listed in the exclude
// list).
//
// Since the name is a GlobPattern, it may of course
// include filename globbing characters like * and ?.
////////////////////////////////////////////////////////////////////
60
void PartSubset::add_include_joint(GlobPattern const &name);
369 17 add_exclude_joint 0 4 455 29 PartSubset::add_exclude_joint 0 1 150 657
////////////////////////////////////////////////////////////////////
// Function: PartSubset::add_exclude_joint
// Access: Published
// Description: Adds the named joint to the list of joints that will
// be explicitly exlcluded from the subset. Any joint at
// or below a named node will not be included in the
// subset (unless a lower node is also listed in the
// include list).
//
// Since the name is a GlobPattern, it may of course
// include filename globbing characters like * and ?.
////////////////////////////////////////////////////////////////////
60
void PartSubset::add_exclude_joint(GlobPattern const &name);
370 6 append 0 4 455 18 PartSubset::append 0 1 151 319
////////////////////////////////////////////////////////////////////
// Function: PartSubset::append
// Access: Published
// Description: Appends the include and exclude list from the other
// object onto this object's lists.
////////////////////////////////////////////////////////////////////
49
void PartSubset::append(PartSubset const &other);
371 6 output 0 4 455 18 PartSubset::output 0 1 152 218
////////////////////////////////////////////////////////////////////
// Function: PartSubset::output
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
44
void PartSubset::output(ostream &out) const;
372 16 is_include_empty 0 4 455 28 PartSubset::is_include_empty 0 1 153 395
////////////////////////////////////////////////////////////////////
// Function: PartSubset::is_include_empty
// Access: Published
// Description: Returns true if the include list is completely empty,
// false otherwise. If it is empty, it is the same
// thing as including all joints.
////////////////////////////////////////////////////////////////////
46
bool PartSubset::is_include_empty(void) const;
373 15 matches_include 0 4 455 27 PartSubset::matches_include 0 1 154 331
////////////////////////////////////////////////////////////////////
// Function: PartSubset::matches_include
// Access: Published
// Description: Returns true if the indicated name matches a name on
// the include list, false otherwise.
////////////////////////////////////////////////////////////////////
79
bool PartSubset::matches_include(basic_string< char > const &joint_name) const;
374 15 matches_exclude 0 4 455 27 PartSubset::matches_exclude 0 1 155 331
////////////////////////////////////////////////////////////////////
// Function: PartSubset::matches_exclude
// Access: Published
// Description: Returns true if the indicated name matches a name on
// the exclude list, false otherwise.
////////////////////////////////////////////////////////////////////
79
bool PartSubset::matches_exclude(basic_string< char > const &joint_name) const;
375 11 ~PartSubset 0 4 455 23 PartSubset::~PartSubset 0 0 0
30
PartSubset::~PartSubset(void);
376 15 BindAnimRequest 0 4 456 32 BindAnimRequest::BindAnimRequest 0 1 156 225
////////////////////////////////////////////////////////////////////
// Function: BindAnimRequest::Constructor
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
214
BindAnimRequest::BindAnimRequest(basic_string< char > const &name, Filename const &filename, LoaderOptions const &options, Loader *loader, AnimControl *control, int hierarchy_match_flags, PartSubset const &subset);
377 14 get_class_type 0 4 456 31 BindAnimRequest::get_class_type 0 1 157 0
56
static TypeHandle BindAnimRequest::get_class_type(void);
378 16 ~BindAnimRequest 0 4 456 33 BindAnimRequest::~BindAnimRequest 0 0 0
40
BindAnimRequest::~BindAnimRequest(void);
379 10 PartBundle 0 4 458 22 PartBundle::PartBundle 0 2 158 159 694
////////////////////////////////////////////////////////////////////
// Function: PartBundle::Copy Constructor
// Access: Protected
// Description: Normally, you'd use make_copy() or copy_subgraph() to
// make a copy of this.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundle::Constructor
// Access: Public
// Description: Normally, a PartBundle constructor should not be
// called directly--it will get created when a
// PartBundleNode is created.
////////////////////////////////////////////////////////////////////
64
PartBundle::PartBundle(basic_string< char > const &name = (""));
380 16 get_anim_preload 0 4 458 28 PartBundle::get_anim_preload 0 1 160 929
// Filename: partBundle.I
// Created by: drose (22Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_anim_preload
// Access: Published
// Description: Returns the AnimPreloadTable associated with
// the PartBundle. This table, if present, can be used
// for the benefit of load_bind_anim() to allow
// asynchronous binding.
////////////////////////////////////////////////////////////////////
83
inline ConstPointerTo< AnimPreloadTable > PartBundle::get_anim_preload(void) const;
381 19 modify_anim_preload 0 4 458 31 PartBundle::modify_anim_preload 0 1 161 340
////////////////////////////////////////////////////////////////////
// Function: PartBundle::modify_anim_preload
// Access: Published
// Description: Returns a modifiable pointer to the AnimPreloadTable
// associated with the PartBundle, if any.
////////////////////////////////////////////////////////////////////
75
inline PointerTo< AnimPreloadTable > PartBundle::modify_anim_preload(void);
382 16 set_anim_preload 0 4 458 28 PartBundle::set_anim_preload 0 1 162 306
////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_anim_preload
// Access: Published
// Description: Replaces the AnimPreloadTable associated with
// the PartBundle.
////////////////////////////////////////////////////////////////////
66
inline void PartBundle::set_anim_preload(AnimPreloadTable *table);
383 18 clear_anim_preload 0 4 458 30 PartBundle::clear_anim_preload 0 1 163 307
////////////////////////////////////////////////////////////////////
// Function: PartBundle::clear_anim_preload
// Access: Published
// Description: Removes any AnimPreloadTable associated with
// the PartBundle.
////////////////////////////////////////////////////////////////////
49
inline void PartBundle::clear_anim_preload(void);
384 19 merge_anim_preloads 0 4 458 31 PartBundle::merge_anim_preloads 0 1 164 322
////////////////////////////////////////////////////////////////////
// Function: PartBundle::merge_anim_preloads
// Access: Published
// Description: Copies the contents of the other PartBundle's preload
// table into this one.
////////////////////////////////////////////////////////////////////
62
void PartBundle::merge_anim_preloads(PartBundle const *other);
385 14 set_blend_type 0 4 458 26 PartBundle::set_blend_type 0 1 165 558
////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_blend_type
// Access: Published
// Description: 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.
//
// See partBundle.h for a description of the meaning of
// each of the BlendType values.
////////////////////////////////////////////////////////////////////
65
inline void PartBundle::set_blend_type(PartBundle::BlendType bt);
386 14 get_blend_type 0 4 458 26 PartBundle::get_blend_type 0 1 166 438
////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_blend_type
// Access: Published
// Description: 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.
////////////////////////////////////////////////////////////////////
68
inline PartBundle::BlendType PartBundle::get_blend_type(void) const;
387 19 set_anim_blend_flag 0 4 458 31 PartBundle::set_anim_blend_flag 0 1 167 947
////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_anim_blend_flag
// Access: Published
// Description: Defines the way the character responds to multiple
// calls to set_control_effect()). By default, this
// flag is set false, which disallows multiple
// animations. When this flag is false, it is not
// necessary to explicitly set the control_effect when
// starting an animation; starting the animation will
// implicitly remove the control_effect from the
// previous animation and set it on the current one.
//
// However, if this flag is set true, the control_effect
// must be explicitly set via set_control_effect()
// whenever an animation is to affect the character.
////////////////////////////////////////////////////////////////////
59
void PartBundle::set_anim_blend_flag(bool anim_blend_flag);
388 19 get_anim_blend_flag 0 4 458 31 PartBundle::get_anim_blend_flag 0 1 168 387
////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_anim_blend_flag
// Access: Published
// Description: Returns whether the character allows multiple
// different animations to be bound simultaneously. See
// set_anim_blend_flag().
////////////////////////////////////////////////////////////////////
56
inline bool PartBundle::get_anim_blend_flag(void) const;
389 20 set_frame_blend_flag 0 4 458 32 PartBundle::set_frame_blend_flag 0 1 169 1201
////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_frame_blend_flag
// Access: Published
// Description: 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.
//
// When this value is false, the character holds each
// frame until the next is ready. When this is true,
// the character will interpolate between two
// consecutive frames of animation for each frame the
// animation is onscreen, according to the amount of
// time elapsed between the frames.
//
// The default value of this flag is determined by the
// interpolate-frames Config.prc variable.
//
// Use set_blend_type() to change the algorithm that the
// character uses to interpolate matrix positions.
////////////////////////////////////////////////////////////////////
68
inline void PartBundle::set_frame_blend_flag(bool frame_blend_flag);
390 20 get_frame_blend_flag 0 4 458 32 PartBundle::get_frame_blend_flag 0 1 170 471
////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_frame_blend_flag
// Access: Published
// Description: Returns whether the character interpolates (blends)
// between two sequential animation frames, or whether
// it holds the current frame until the next one is
// ready. See set_frame_blend_flag().
////////////////////////////////////////////////////////////////////
57
inline bool PartBundle::get_frame_blend_flag(void) const;
391 14 set_root_xform 0 4 458 26 PartBundle::set_root_xform 0 1 171 340
////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_root_xform
// Access: Published
// Description: Specifies the transform matrix which is implicitly
// applied at the root of the animated hierarchy.
////////////////////////////////////////////////////////////////////
68
inline void PartBundle::set_root_xform(LMatrix4f const &root_xform);
392 5 xform 0 4 458 17 PartBundle::xform 0 1 172 304
////////////////////////////////////////////////////////////////////
// Function: PartBundle::xform
// Access: Published
// Description: Applies the indicated transform to the root of the
// animated hierarchy.
////////////////////////////////////////////////////////////////////
52
inline void PartBundle::xform(LMatrix4f const &mat);
393 14 get_root_xform 0 4 458 26 PartBundle::get_root_xform 0 1 173 338
////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_root_xform
// Access: Published
// Description: Returns the transform matrix which is implicitly
// applied at the root of the animated hierarchy.
////////////////////////////////////////////////////////////////////
63
inline LMatrix4f const &PartBundle::get_root_xform(void) const;
394 15 apply_transform 0 4 458 27 PartBundle::apply_transform 0 1 174 487
////////////////////////////////////////////////////////////////////
// Function: PartBundle::apply_transform
// Access: Published
// Description: Returns a PartBundle that is a duplicate of this one,
// but with the indicated transform applied. If this is
// called multiple times with the same TransformState
// pointer, it returns the same PartBundle each time.
////////////////////////////////////////////////////////////////////
85
PointerTo< PartBundle > PartBundle::apply_transform(TransformState const *transform);
395 13 get_num_nodes 0 4 458 25 PartBundle::get_num_nodes 0 1 175 322
////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_num_nodes
// Access: Published
// Description: Returns the number of PartBundleNodes that contain a
// pointer to this PartBundle.
////////////////////////////////////////////////////////////////////
49
inline int PartBundle::get_num_nodes(void) const;
396 8 get_node 0 4 458 20 PartBundle::get_node 0 1 176 300
////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_node
// Access: Published
// Description: Returns the nth PartBundleNode associated with
// this PartBundle.
////////////////////////////////////////////////////////////////////
57
inline PartBundleNode *PartBundle::get_node(int n) const;
397 21 clear_control_effects 0 4 458 33 PartBundle::clear_control_effects 0 1 177 872
////////////////////////////////////////////////////////////////////
// Function: PartBundle::clear_control_effects
// Access: Published
// Description: Sets the control effect of all AnimControls to zero
// (but does not "stop" the AnimControls). The
// character will no longer be affected by any
// animation, and will return to its default
// pose (unless restore-initial-pose is false).
//
// The AnimControls which are no longer associated will
// not be using any CPU cycles, but they may still be in
// the "playing" state; if they are later reassociated
// with the PartBundle they will resume at their current
// frame as if they'd been running all along.
////////////////////////////////////////////////////////////////////
45
void PartBundle::clear_control_effects(void);
398 18 set_control_effect 0 4 458 30 PartBundle::set_control_effect 0 1 178 897
////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_control_effect
// Access: Published
// Description: Sets the amount by which the character is affected by
// the indicated AnimControl (and its associated
// animation). Normally, this will only be zero or one.
// Zero indicates the animation does not affect the
// character, and one means it does.
//
// If the _anim_blend_flag is not false (see
// set_anim_blend_flag()), it is possible to have
// multiple AnimControls in effect simultaneously. In
// this case, the effect is a weight that indicates the
// relative importance of each AnimControl to the final
// animation.
////////////////////////////////////////////////////////////////////
79
inline void PartBundle::set_control_effect(AnimControl *control, float effect);
399 18 get_control_effect 0 4 458 30 PartBundle::get_control_effect 0 1 179 403
////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_control_effect
// Access: Published
// Description: Returns the amount by which the character is affected
// by the indicated AnimControl and its associated
// animation. See set_control_effect().
////////////////////////////////////////////////////////////////////
72
inline float PartBundle::get_control_effect(AnimControl *control) const;
400 6 output 0 6 458 18 PartBundle::output 0 1 180 271
////////////////////////////////////////////////////////////////////
// Function: PartBundle::output
// Access: Published, Virtual
// Description: Writes a one-line description of the bundle.
////////////////////////////////////////////////////////////////////
52
virtual void PartBundle::output(ostream &out) const;
401 9 bind_anim 0 4 458 21 PartBundle::bind_anim 0 3 181 182 183 1221
////////////////////////////////////////////////////////////////////
// Function: PartBundle::bind_anim
// Access: Published
// Description: Binds the animation to the bundle, if possible, and
// returns a new AnimControl that can be used to start
// and stop the animation. If the anim hierarchy does
// not match the part hierarchy, returns NULL.
//
// If hierarchy_match_flags is 0, only an exact match is
// accepted; otherwise, it may contain a union of
// PartGroup::HierarchyMatchFlags values indicating
// conditions that will be tolerated (but warnings will
// still be issued).
//
// If subset is specified, it restricts the binding only
// to the named subtree of joints.
//
// The AnimControl is not stored within the PartBundle;
// it is the user's responsibility to maintain the
// pointer. The animation will automatically unbind
// itself when the AnimControl destructs (i.e. its
// reference count goes to zero).
////////////////////////////////////////////////////////////////////
133
PointerTo< AnimControl > PartBundle::bind_anim(AnimBundle *anim, int hierarchy_match_flags = (0), PartSubset const &subset = ((())));
402 14 load_bind_anim 0 4 458 26 PartBundle::load_bind_anim 0 1 184 1614
////////////////////////////////////////////////////////////////////
// Function: PartBundle::load_bind_anim
// Access: Published
// Description: Binds an animation to the bundle. The animation is
// loaded from the disk via the indicated Loader object.
// In other respects, this behaves similarly to
// bind_anim(), with the addition of asynchronous
// support.
//
// If allow_aysnc is true, the load will be asynchronous
// if possible. This requires that the animation
// basename can be found in the PartBundle's preload
// table (see get_anim_preload()).
//
// In an asynchronous load, the animation file will be
// loaded and bound in a sub-thread. This means that
// the animation will not necessarily be available at
// the time this method returns. You may still use the
// returned AnimControl immediately, though, but no
// visible effect will occur until the animation
// eventually becomes available.
//
// You can test AnimControl::is_pending() to see if the
// animation has been loaded yet, or wait for it to
// finish with AnimControl::wait_pending() or even
// PartBundle::wait_pending(). You can also set an
// event to be triggered when the animation finishes
// loading with AnimControl::set_pending_done_event().
////////////////////////////////////////////////////////////////////
165
PointerTo< AnimControl > PartBundle::load_bind_anim(Loader *loader, Filename const &filename, int hierarchy_match_flags, PartSubset const &subset, bool allow_async);
403 12 wait_pending 0 4 458 24 PartBundle::wait_pending 0 1 185 397
////////////////////////////////////////////////////////////////////
// Function: PartBundle::wait_pending
// Access: Published
// Description: Blocks the current thread until all currently-pending
// AnimControls, with a nonzero control effect, have
// been loaded and are properly bound.
////////////////////////////////////////////////////////////////////
36
void PartBundle::wait_pending(void);
404 12 freeze_joint 0 4 458 24 PartBundle::freeze_joint 0 3 186 187 188 2083
////////////////////////////////////////////////////////////////////
// Function: PartBundle::freeze_joint
// Access: Published
// Description: Specifies that the joint with the indicated name
// should be frozen with the specified transform. It
// will henceforth always hold this fixed transform,
// regardless of any animations that may subsequently be
// bound to the joint.
//
// Returns true if the joint is successfully frozen, or
// false if the named child is not a joint (or slider)
// or does not exist.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundle::freeze_joint
// Access: Published
// Description: Specifies that the joint with the indicated name
// should be frozen with the specified transform. It
// will henceforth always hold this fixed transform,
// regardless of any animations that may subsequently be
// bound to the joint.
//
// Returns true if the joint is successfully frozen, or
// false if the named child is not a joint (or slider)
// or does not exist.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundle::freeze_joint
// Access: Published
// Description: Specifies that the joint with the indicated name
// should be frozen with the specified transform. It
// will henceforth always hold this fixed transform,
// regardless of any animations that may subsequently be
// bound to the joint.
//
// Returns true if the joint is successfully frozen, or
// false if the named child is not a joint (or slider)
// or does not exist.
////////////////////////////////////////////////////////////////////
329
bool PartBundle::freeze_joint(basic_string< char > const &joint_name, TransformState const *transform);
bool PartBundle::freeze_joint(basic_string< char > const &joint_name, LVecBase3f const &pos, LVecBase3f const &hpr, LVecBase3f const &scale);
bool PartBundle::freeze_joint(basic_string< char > const &joint_name, float value);
405 13 control_joint 0 4 458 25 PartBundle::control_joint 0 1 189 714
////////////////////////////////////////////////////////////////////
// Function: PartBundle::control_joint
// Access: Published
// Description: Specifies that the joint with the indicated name
// should be animated with the transform on the
// indicated node. It will henceforth always follow the
// node's transform, regardless of any animations that
// may subsequently be bound to the joint.
//
// Returns true if the joint is successfully controlled,
// or false if the named child is not a joint (or
// slider) or does not exist.
////////////////////////////////////////////////////////////////////
88
bool PartBundle::control_joint(basic_string< char > const &joint_name, PandaNode *node);
406 13 release_joint 0 4 458 25 PartBundle::release_joint 0 1 190 646
////////////////////////////////////////////////////////////////////
// Function: PartBundle::release_joint
// Access: Published
// Description: Releases the named joint from the effects of a
// previous call to freeze_joint() or control_joint().
// It will henceforth once again follow whatever
// transforms are dictated by the animation.
//
// Returns true if the joint is released, or false if
// the named child was not previously controlled or
// frozen, or it does not exist.
////////////////////////////////////////////////////////////////////
71
bool PartBundle::release_joint(basic_string< char > const &joint_name);
407 6 update 0 4 458 18 PartBundle::update 0 1 191 482
////////////////////////////////////////////////////////////////////
// Function: PartBundle::update
// Access: Published
// Description: Updates all the parts in the bundle to reflect the
// data for the current frame (as set in each of the
// AnimControls).
//
// Returns true if any part has changed as a result of
// this, or false otherwise.
////////////////////////////////////////////////////////////////////
30
bool PartBundle::update(void);
408 12 force_update 0 4 458 24 PartBundle::force_update 0 1 192 375
////////////////////////////////////////////////////////////////////
// Function: PartBundle::force_update
// Access: Published
// Description: Updates all the parts in the bundle to reflect the
// data for the current frame, whether we believe it
// needs it or not.
////////////////////////////////////////////////////////////////////
36
bool PartBundle::force_update(void);
409 14 get_class_type 0 4 458 26 PartBundle::get_class_type 0 1 193 0
51
static TypeHandle PartBundle::get_class_type(void);
410 11 ~PartBundle 0 4 458 23 PartBundle::~PartBundle 0 0 0
30
PartBundle::~PartBundle(void);
411 13 get_max_bound 0 4 460 29 MovingPartBase::get_max_bound 0 1 194 604
////////////////////////////////////////////////////////////////////
// Function: MovingPartBase::get_max_bound
// Access: Published
// Description: Returns the number of channels that might be bound to
// this PartGroup. This might not be the actual number
// of channels, since there might be holes in the list;
// it is one more than the index number of the highest
// bound channel. Thus, it is called get_max_bound()
// instead of get_num_bound().
////////////////////////////////////////////////////////////////////
53
inline int MovingPartBase::get_max_bound(void) const;
412 9 get_bound 0 4 460 25 MovingPartBase::get_bound 0 1 195 690
////////////////////////////////////////////////////////////////////
// Function: MovingPartBase::get_bound
// Access: Published
// Description: Returns the nth bound channel on this PartGroup. n
// can be determined by iterating from 0 to one less
// than get_max_bound(); or n might be
// AnimControl::get_channel_index().
//
// This will return NULL if there is no channel bound on
// the indicated index. It is an error to call this if
// n is less than zero or greater than or equal to
// get_max_bound().
////////////////////////////////////////////////////////////////////
63
inline AnimChannelBase *MovingPartBase::get_bound(int n) const;
413 12 output_value 0 6 460 28 MovingPartBase::output_value 0 1 196 0
66
virtual void MovingPartBase::output_value(ostream &out) const = 0;
414 14 get_class_type 0 4 460 30 MovingPartBase::get_class_type 0 1 197 0
55
static TypeHandle MovingPartBase::get_class_type(void);
415 15 ~MovingPartBase 0 4 460 31 MovingPartBase::~MovingPartBase 0 0 0
38
MovingPartBase::~MovingPartBase(void);
416 14 get_class_type 0 4 462 48 MovingPart< ACMatrixSwitchType >::get_class_type 0 1 199 0
75
static TypeHandle ::MovingPart< ACMatrixSwitchType >::get_class_type(void);
417 9 get_value 0 4 462 43 MovingPart< ACMatrixSwitchType >::get_value 0 1 200 0
75
inline LMatrix4f ::MovingPart< ACMatrixSwitchType >::get_value(void) const;
418 17 get_default_value 0 4 462 51 MovingPart< ACMatrixSwitchType >::get_default_value 0 1 201 0
83
inline LMatrix4f ::MovingPart< ACMatrixSwitchType >::get_default_value(void) const;
419 11 ~MovingPart 0 4 462 45 MovingPart< ACMatrixSwitchType >::~MovingPart 0 0 0
54
::MovingPart< ACMatrixSwitchType >::~MovingPart(void);
420 14 get_class_type 0 4 461 32 MovingPartMatrix::get_class_type 0 1 198 0
57
static TypeHandle MovingPartMatrix::get_class_type(void);
421 14 get_class_type 0 4 464 48 MovingPart< ACScalarSwitchType >::get_class_type 0 1 203 0
75
static TypeHandle ::MovingPart< ACScalarSwitchType >::get_class_type(void);
422 9 get_value 0 4 464 43 MovingPart< ACScalarSwitchType >::get_value 0 1 204 0
71
inline float ::MovingPart< ACScalarSwitchType >::get_value(void) const;
423 17 get_default_value 0 4 464 51 MovingPart< ACScalarSwitchType >::get_default_value 0 1 205 0
79
inline float ::MovingPart< ACScalarSwitchType >::get_default_value(void) const;
424 11 ~MovingPart 0 4 464 45 MovingPart< ACScalarSwitchType >::~MovingPart 0 0 0
54
::MovingPart< ACScalarSwitchType >::~MovingPart(void);
425 14 get_class_type 0 4 463 32 MovingPartScalar::get_class_type 0 1 202 0
57
static TypeHandle MovingPartScalar::get_class_type(void);
426 16 PartBundleHandle 0 4 465 34 PartBundleHandle::PartBundleHandle 0 1 206 721
// Filename: partBundleHandle.I
// Created by: drose (01Oct07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundleHandle::Constructor
// Access: Published
// Description:
////////////////////////////////////////////////////////////////////
62
inline PartBundleHandle::PartBundleHandle(PartBundle *bundle);
427 10 get_bundle 0 4 465 28 PartBundleHandle::get_bundle 0 1 207 302
////////////////////////////////////////////////////////////////////
// Function: PartBundleHandle::get_bundle
// Access: Published
// Description: Returns the actual PartBundle embedded within the
// handle.
////////////////////////////////////////////////////////////////////
54
inline PartBundle *PartBundleHandle::get_bundle(void);
428 10 set_bundle 0 4 465 28 PartBundleHandle::set_bundle 0 1 208 302
////////////////////////////////////////////////////////////////////
// Function: PartBundleHandle::set_bundle
// Access: Published
// Description: Changes the actual PartBundle embedded within the
// handle.
////////////////////////////////////////////////////////////////////
61
inline void PartBundleHandle::set_bundle(PartBundle *bundle);
429 14 PartBundleNode 0 4 467 30 PartBundleNode::PartBundleNode 0 1 209 1631
// Filename: partBundleNode.I
// Created by: drose (06Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::Constructor
// Access: Public
// Description: The PartBundle and its node should be constructed
// together. Generally, the derived classes of
// PartBundleNode will automatically create a PartBundle
// of the appropriate type, and pass it up to this
// constructor.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::Default Constructor
// Access: Protected
// Description: For internal use only.
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::Copy Constructor
// Access: Protected
// Description: Use make_copy() or copy_subgraph() to copy one of
// these.
//
// This constructor does not copy the bundle pointers.
////////////////////////////////////////////////////////////////////
92
inline PartBundleNode::PartBundleNode(basic_string< char > const &name, PartBundle *bundle);
430 15 get_num_bundles 0 4 467 31 PartBundleNode::get_num_bundles 0 1 210 227
////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::get_num_bundles
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
55
inline int PartBundleNode::get_num_bundles(void) const;
431 10 get_bundle 0 4 467 26 PartBundleNode::get_bundle 0 1 211 222
////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::get_bundle
// Access: Public
// Description:
////////////////////////////////////////////////////////////////////
59
inline PartBundle *PartBundleNode::get_bundle(int n) const;
432 17 get_bundle_handle 0 4 467 33 PartBundleNode::get_bundle_handle 0 1 212 469
////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::get_bundle_handle
// Access: Public
// Description: Returns the PartBundleHandle that wraps around the
// actual nth PartBundle. While the PartBundle pointer
// might later change due to a future flatten operation,
// the PartBundleHandle will not.
////////////////////////////////////////////////////////////////////
72
inline PartBundleHandle *PartBundleNode::get_bundle_handle(int n) const;
433 14 get_class_type 0 4 467 30 PartBundleNode::get_class_type 0 1 213 0
55
static TypeHandle PartBundleNode::get_class_type(void);
215
1 14 Dtool_8NZBvzKt 0 7 8 468 221 14 Dtool_8NZBvzKt 390 ////////////////////////////////////////////////////////////////////
// Function: AnimGroup::Constructor
// Access: Published
// Description: Creates the AnimGroup, and adds it to the indicated
// parent. The only way to delete it subsequently is to
// delete the entire hierarchy.
//////////////////////////////////////////////////////////////////// 2 6 parent 1 468 4 name 1 469
2 14 Dtool_8NZBW3b6 0 6 10 472 0 14 Dtool_8NZBW3b6 274 ////////////////////////////////////////////////////////////////////
// Function: AnimGroup::get_num_children
// Access: Published
// Description: Returns the number of child nodes of the group.
//////////////////////////////////////////////////////////////////// 1 4 this 3 470
3 14 Dtool_8NZB6J5P 0 7 11 468 221 14 Dtool_8NZB6J5P 255 ////////////////////////////////////////////////////////////////////
// Function: AnimGroup::get_child
// Access: Published
// Description: Returns the nth child of the group.
//////////////////////////////////////////////////////////////////// 2 4 this 3 470 1 n 1 472
4 14 Dtool_8NZBDdOk 0 7 12 468 221 14 Dtool_8NZBDdOk 524 ////////////////////////////////////////////////////////////////////
// Function: AnimGroup::get_child_named
// Access: Published
// Description: Returns the first child found with the indicated
// name, or NULL if no such child exists. This method
// searches only the children of this particular
// AnimGroup; it does not recursively search the entire
// graph. See also find_child().
//////////////////////////////////////////////////////////////////// 2 4 this 3 470 4 name 1 469
5 14 Dtool_8NZBsjDj 0 7 13 468 221 14 Dtool_8NZBsjDj 465 ////////////////////////////////////////////////////////////////////
// Function: AnimGroup::find_child
// Access: Published
// Description: Returns the first descendant found with the indicated
// name, or NULL if no such descendant exists. This
// method searches the entire graph beginning at this
// AnimGroup; see also get_child_named().
//////////////////////////////////////////////////////////////////// 2 4 this 3 470 4 name 1 469
6 14 Dtool_8NZBCmR1 0 4 14 473 0 14 Dtool_8NZBCmR1 537 ////////////////////////////////////////////////////////////////////
// Function: AnimGroup::sort_descendants
// Access: Published
// Description: Sorts the children nodes at each level of the
// hierarchy into alphabetical order. This should be
// done after creating the hierarchy, to guarantee that
// the correct names will match up together when the
// AnimBundle is later bound to a PlayerRoot.
//////////////////////////////////////////////////////////////////// 1 4 this 3 468
7 14 Dtool_8NZB7_Rm 0 4 15 473 0 14 Dtool_8NZB7_Rm 269 ////////////////////////////////////////////////////////////////////
// Function: AnimGroup::output
// Access: Published, Virtual
// Description: Writes a one-line description of the group.
//////////////////////////////////////////////////////////////////// 2 4 this 3 470 3 out 1 474
8 14 Dtool_8NZB5QWd 0 4 16 473 0 14 Dtool_8NZB5QWd 309 ////////////////////////////////////////////////////////////////////
// Function: AnimGroup::write
// Access: Published, Virtual
// Description: Writes a brief description of the group and all of
// its descendants.
//////////////////////////////////////////////////////////////////// 3 4 this 3 470 3 out 1 474 12 indent_level 1 472
9 14 Dtool_8NZBXRDS 0 7 17 477 0 14 Dtool_8NZBXRDS 0 0
10 14 Dtool_8NZBnzi7 0 7 3 478 0 14 Dtool_8NZBnzi7 0 1 4 this 3 468
11 14 Dtool_8NZBrs9M 0 7 4 468 221 14 Dtool_8NZBrs9M 0 1 4 this 3 478
12 14 Dtool_8NZBGlFu 0 6 6 479 0 14 Dtool_8NZBGlFu 0 1 4 this 3 468
13 14 Dtool_8NZB4p9k 0 7 7 468 221 14 Dtool_8NZB4p9k 0 1 4 this 3 479
14 14 Dtool_8NZB3LBr 0 7 19 481 235 14 Dtool_8NZB3LBr 705 // Filename: animBundle.I
// Created by: drose (21Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimBundle::Constructor
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 3 4 name 1 469 3 fps 1 480 10 num_frames 1 472
15 14 Dtool_8NZB_BG9 0 7 20 481 235 14 Dtool_8NZB_BG9 511 ////////////////////////////////////////////////////////////////////
// Function: AnimBundle::copy_bundle
// Access: Published
// Description: Returns a full copy of the bundle and its entire tree
// of nested AnimGroups. However, the actual data
// stored in the leaves--that is, animation tables, such
// as those stored in an AnimChannelMatrixXfmTable--will
// be shared.
//////////////////////////////////////////////////////////////////// 1 4 this 3 482
16 14 Dtool_8NZB6Ty_ 0 6 21 484 0 14 Dtool_8NZB6Ty_ 600 ////////////////////////////////////////////////////////////////////
// Function: AnimBundle::get_base_frame_rate
// Access: Public
// Description: Returns the ideal number of frames per second of the
// animation, when it is running at normal speed. This
// may not be the same as the actual playing frame rate,
// as it might have been adjusted through
// set_play_rate() on the AnimControl object. See
// AnimControl::get_effective_frame_rate().
//////////////////////////////////////////////////////////////////// 1 4 this 3 482
17 14 Dtool_8NZBRxeQ 0 6 22 472 0 14 Dtool_8NZBRxeQ 335 ////////////////////////////////////////////////////////////////////
// Function: AnimBundle::get_num_frames
// Access: Public
// Description: Returns the number of frames of animation, or 0 if
// the animation has no fixed number of frames.
//////////////////////////////////////////////////////////////////// 1 4 this 3 482
18 14 Dtool_8NZBzlnG 0 7 23 477 0 14 Dtool_8NZBzlnG 0 0
19 14 Dtool_8NZB0P9l 0 7 27 485 240 14 Dtool_8NZB0P9l 991 // Filename: animBundleNode.I
// Created by: drose (06Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimBundleNode::Constructor
// Access: Public
// Description: The AnimBundle and its node should be constructed
// together. Generally, the derived classes of
// AnimBundleNode will automatically create a AnimBundle
// of the appropriate type, and pass it up to this
// constructor.
//////////////////////////////////////////////////////////////////// 2 4 name 1 469 6 bundle 1 481
20 14 Dtool_8NZBwwyB 0 7 28 481 235 14 Dtool_8NZBwwyB 222 ////////////////////////////////////////////////////////////////////
// Function: AnimBundleNode::get_bundle
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 486
21 14 Dtool_8NZBbUiF 0 7 29 481 235 14 Dtool_8NZBbUiF 480 ////////////////////////////////////////////////////////////////////
// Function: AnimBundleNode::find_anim_bundle
// Access: Published, Static
// Description: Recursively walks the scene graph beginning at the
// indicated node (which need not be an AnimBundleNode),
// and returns the first AnimBundle found. Returns NULL
// if no AnimBundle can be found.
//////////////////////////////////////////////////////////////////// 1 4 root 1 488
22 14 Dtool_8NZBYNUG 0 7 30 477 0 14 Dtool_8NZBYNUG 0 0
23 14 Dtool_8NZBpKA7 0 7 38 489 246 14 Dtool_8NZBpKA7 390 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::Constructor
// Access: Published
// Description: Creates the PartGroup, and adds it to the indicated
// parent. The only way to delete it subsequently is to
// delete the entire hierarchy.
//////////////////////////////////////////////////////////////////// 2 6 parent 1 489 4 name 1 469
24 14 Dtool_8NZB7E2m 0 6 40 492 0 14 Dtool_8NZB7E2m 414 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::is_character_joint
// Access: Published, Virtual
// Description: Returns true if this part is a CharacterJoint, false
// otherwise. This is a tiny optimization over
// is_of_type(CharacterType::get_class_type()).
//////////////////////////////////////////////////////////////////// 1 4 this 3 490
25 14 Dtool_8NZBd3Bk 0 7 41 489 246 14 Dtool_8NZBd3Bk 341 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::make_copy
// Access: Published, Virtual
// Description: Allocates and returns a new copy of the node.
// Children are not copied, but see copy_subgraph().
//////////////////////////////////////////////////////////////////// 1 4 this 3 490
26 14 Dtool_8NZBqhPC 0 7 42 489 246 14 Dtool_8NZBqhPC 314 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::copy_subgraph
// Access: Published
// Description: Allocates and returns a new copy of this node and of
// all of its children.
//////////////////////////////////////////////////////////////////// 1 4 this 3 490
27 14 Dtool_8NZBwfp4 0 6 43 472 0 14 Dtool_8NZBwfp4 274 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::get_num_children
// Access: Published
// Description: Returns the number of child nodes of the group.
//////////////////////////////////////////////////////////////////// 1 4 this 3 490
28 14 Dtool_8NZBMhIO 0 7 44 489 246 14 Dtool_8NZBMhIO 255 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::get_child
// Access: Published
// Description: Returns the nth child of the group.
//////////////////////////////////////////////////////////////////// 2 4 this 3 490 1 n 1 472
29 14 Dtool_8NZBDwci 0 7 45 489 246 14 Dtool_8NZBDwci 524 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::get_child_named
// Access: Published
// Description: Returns the first child found with the indicated
// name, or NULL if no such child exists. This method
// searches only the children of this particular
// PartGroup; it does not recursively search the entire
// graph. See also find_child().
//////////////////////////////////////////////////////////////////// 2 4 this 3 490 4 name 1 469
30 14 Dtool_8NZB6aSh 0 7 46 489 246 14 Dtool_8NZB6aSh 465 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::find_child
// Access: Published
// Description: Returns the first descendant found with the indicated
// name, or NULL if no such descendant exists. This
// method searches the entire graph beginning at this
// PartGroup; see also get_child_named().
//////////////////////////////////////////////////////////////////// 2 4 this 3 490 4 name 1 469
31 14 Dtool_8NZBEvgz 0 4 47 473 0 14 Dtool_8NZBEvgz 537 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::sort_descendants
// Access: Published
// Description: Sorts the children nodes at each level of the
// hierarchy into alphabetical order. This should be
// done after creating the hierarchy, to guarantee that
// the correct names will match up together when the
// AnimBundle is later bound to a PlayerRoot.
//////////////////////////////////////////////////////////////////// 1 4 this 3 489
32 14 Dtool_8NZBC4lG 0 6 48 492 0 14 Dtool_8NZBC4lG 572 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::apply_freeze
// Access: Published
// Description: Freezes this particular joint so that it will always
// hold the specified transform. Returns true if this
// is a joint that can be so frozen, false otherwise.
//
// This is normally only called internally by
// PartBundle::freeze_joint(), but you may also call it
// directly.
//////////////////////////////////////////////////////////////////// 2 4 this 3 489 9 transform 1 493
33 14 Dtool_8NZBR9o1 0 6 49 492 0 14 Dtool_8NZBR9o1 588 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::apply_freeze_matrix
// Access: Published, Virtual
// Description: Freezes this particular joint so that it will always
// hold the specified transform. Returns true if this
// is a joint that can be so frozen, false otherwise.
//
// This is normally only called internally by
// PartBundle::freeze_joint(), but you may also call it
// directly.
//////////////////////////////////////////////////////////////////// 4 4 this 3 489 3 pos 1 496 3 hpr 1 496 5 scale 1 496
34 14 Dtool_8NZBSV2B 0 6 50 492 0 14 Dtool_8NZBSV2B 588 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::apply_freeze_scalar
// Access: Published, Virtual
// Description: Freezes this particular joint so that it will always
// hold the specified transform. Returns true if this
// is a joint that can be so frozen, false otherwise.
//
// This is normally only called internally by
// PartBundle::freeze_joint(), but you may also call it
// directly.
//////////////////////////////////////////////////////////////////// 2 4 this 3 489 5 value 1 480
35 14 Dtool_8NZBDCfX 0 6 51 492 0 14 Dtool_8NZBDCfX 622 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::apply_control
// Access: Published, Virtual
// Description: Specifies a node to influence this particular joint
// so that it will always hold the node's transform.
// Returns true if this is a joint that can be so
// controlled, false otherwise.
//
// This is normally only called internally by
// PartBundle::control_joint(), but you may also call it
// directly.
//////////////////////////////////////////////////////////////////// 2 4 this 3 489 4 node 1 488
36 14 Dtool_8NZB_lyG 0 6 52 492 0 14 Dtool_8NZB_lyG 567 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::clear_forced_channel
// Access: Published, Virtual
// Description: Undoes the effect of a previous call to
// apply_freeze() or apply_control(). Returns true if
// the joint was modified, false otherwise.
//
// This is normally only called internally by
// PartBundle::release_joint(), but you may also call it
// directly.
//////////////////////////////////////////////////////////////////// 1 4 this 3 489
37 14 Dtool_8NZBO88w 0 7 53 499 286 14 Dtool_8NZBO88w 453 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::get_forced_channel
// Access: Published, Virtual
// Description: 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.
//////////////////////////////////////////////////////////////////// 1 4 this 3 490
38 14 Dtool_8NZBNFkb 0 4 54 473 0 14 Dtool_8NZBNFkb 309 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::write
// Access: Published, Virtual
// Description: Writes a brief description of the group and all of
// its descendants.
//////////////////////////////////////////////////////////////////// 3 4 this 3 490 3 out 1 474 12 indent_level 1 472
39 14 Dtool_8NZB6PSE 0 4 55 473 0 14 Dtool_8NZB6PSE 356 ////////////////////////////////////////////////////////////////////
// Function: PartGroup::write_with_value
// Access: Published, Virtual
// Description: Writes a brief description of the group, showing its
// current value, and that of all of its descendants.
//////////////////////////////////////////////////////////////////// 3 4 this 3 490 3 out 1 474 12 indent_level 1 472
40 14 Dtool_8NZBHmRQ 0 7 56 477 0 14 Dtool_8NZBHmRQ 0 0
41 14 Dtool_8NZBnLw5 0 7 33 478 0 14 Dtool_8NZBnLw5 0 1 4 this 3 489
42 14 Dtool_8NZB0Te7 0 7 34 489 246 14 Dtool_8NZB0Te7 0 1 4 this 3 478
43 14 Dtool_8NZBEyTs 0 6 35 479 0 14 Dtool_8NZBEyTs 0 1 4 this 3 489
44 14 Dtool_8NZBoV3X 0 7 36 489 246 14 Dtool_8NZBoV3X 0 1 4 this 3 479
45 14 Dtool_8NZBj5H5 0 6 67 492 0 14 Dtool_8NZBj5H5 1061 // Filename: animControl.I
// Created by: drose (19Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControl::is_pending
// Access: Published
// Description: Returns true if the AnimControl is being bound
// asynchronously, and has not yet finished. If this is
// true, the AnimControl's interface is still available
// and will be perfectly useful (though get_anim() might
// return NULL), but nothing visible will happen
// immediately.
//////////////////////////////////////////////////////////////////// 1 4 this 3 500
46 14 Dtool_8NZBX93W 0 4 68 473 0 14 Dtool_8NZBX93W 330 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::wait_pending
// Access: Published
// Description: Blocks the current thread until the AnimControl has
// finished loading and is fully bound.
//////////////////////////////////////////////////////////////////// 1 4 this 3 502
47 14 Dtool_8NZBHAER 0 6 69 492 0 14 Dtool_8NZBHAER 395 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::has_anim
// Access: Published
// Description: Returns true if the AnimControl was successfully
// loaded, or false if there was a problem. This may
// return false while is_pending() is true.
//////////////////////////////////////////////////////////////////// 1 4 this 3 500
48 14 Dtool_8NZBxoCU 0 4 70 473 0 14 Dtool_8NZBxoCU 474 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::set_pending_done_event
// Access: Published
// Description: Specifies an event name that will be thrown when the
// AnimControl is finished binding asynchronously. If
// the AnimControl has already finished binding, the
// event will be thrown immediately.
//////////////////////////////////////////////////////////////////// 2 4 this 3 502 10 done_event 1 469
49 14 Dtool_8NZBRLbr 0 6 71 469 0 14 Dtool_8NZBRLbr 351 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_pending_done_event
// Access: Published
// Description: Returns the event name that will be thrown when the
// AnimControl is finished binding asynchronously.
//////////////////////////////////////////////////////////////////// 1 4 this 3 500
50 14 Dtool_8NZBinR8 0 7 72 503 410 14 Dtool_8NZBinR8 292 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_part
// Access: Published
// Description: Returns the PartBundle bound in with this
// AnimControl.
//////////////////////////////////////////////////////////////////// 1 4 this 3 500
51 14 Dtool_8NZBfBvN 0 7 73 481 235 14 Dtool_8NZBfBvN 292 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_anim
// Access: Published
// Description: Returns the AnimBundle bound in with this
// AnimControl.
//////////////////////////////////////////////////////////////////// 1 4 this 3 500
52 14 Dtool_8NZBMgs9 0 6 74 472 0 14 Dtool_8NZBMgs9 665 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_channel_index
// Access: Published
// Description: Returns the particular channel index associated with
// this AnimControl. This channel index is the slot on
// which each AnimGroup is bound to its associated
// PartGroup, for each joint in the animation.
//
// It will be true that
// get_part()->find_child("n")->get_bound(get_channel_index())
// == get_anim()->find_child("n"), for each joint "n".
//////////////////////////////////////////////////////////////////// 1 4 this 3 500
53 14 Dtool_8NZBmv5w 0 6 75 504 0 14 Dtool_8NZBmv5w 677 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_bound_joints
// Access: Published
// Description: Returns the subset of joints controlled by this
// AnimControl. Most of the time, this will be
// BitArray::all_on(), for a normal full-body animation.
// For a subset animation, however, this will be just a
// subset of those bits, corresponding to the set of
// joints and sliders actually bound (as enumerated by
// bind_hierarchy() in depth-first LIFO order).
//////////////////////////////////////////////////////////////////// 1 4 this 3 500
54 14 Dtool_8NZBn_I7 0 4 76 473 0 14 Dtool_8NZBn_I7 883 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::set_anim_model
// Access: Published
// Description: Associates the indicated PandaNode with the
// AnimControl. By convention, this node represents the
// root node of the model file that corresponds to this
// AnimControl's animation file, though nothing in this
// code makes this assumption or indeed does anything
// with this node.
//
// The purpose of this is simply to allow the
// AnimControl to keep a reference count on the
// ModelRoot node that generated it, so that the model
// will not disappear from the model pool until it is no
// longer referenced.
//////////////////////////////////////////////////////////////////// 2 4 this 3 502 5 model 1 488
55 14 Dtool_8NZBECae 0 7 77 488 0 14 Dtool_8NZBECae 314 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::get_anim_model
// Access: Published
// Description: Retrieves the pointer set via set_anim_model(). See
// set_anim_model().
//////////////////////////////////////////////////////////////////// 1 4 this 3 500
56 14 Dtool_8NZBmvA5 0 4 78 473 0 14 Dtool_8NZBmvA5 218 ////////////////////////////////////////////////////////////////////
// Function: AnimControl::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 500 3 out 1 474
57 14 Dtool_8NZBsoch 0 7 79 477 0 14 Dtool_8NZBsoch 0 0
58 14 Dtool_8NZBajPq 0 7 59 507 0 14 Dtool_8NZBajPq 0 1 4 this 3 502
59 14 Dtool_8NZBkxia 0 7 60 502 270 14 Dtool_8NZBkxia 0 1 4 this 3 507
60 14 Dtool_8NZBEgr1 0 6 62 508 0 14 Dtool_8NZBEgr1 0 1 4 this 3 502
61 14 Dtool_8NZBVM10 0 7 63 502 270 14 Dtool_8NZBVM10 0 1 4 this 3 508
62 14 Dtool_8NZBqvu2 0 6 64 479 0 14 Dtool_8NZBqvu2 0 1 4 this 3 502
63 14 Dtool_8NZBGYjo 0 7 65 502 270 14 Dtool_8NZBGYjo 0 1 4 this 3 479
64 14 Dtool_8NZBP9Rv 0 7 81 477 0 14 Dtool_8NZBP9Rv 0 1 4 this 3 509
65 14 Dtool_8NZBORV4 0 7 82 477 0 14 Dtool_8NZBORV4 0 0
66 14 Dtool_8NZBqZzQ 0 4 85 473 0 14 Dtool_8NZBqZzQ 0 3 4 this 3 511 5 frame 1 472 5 value 1 512
67 14 Dtool_8NZB5C0s 0 4 86 473 0 14 Dtool_8NZB5C0s 72 // These transform-component methods only have meaning for matrix types. 3 4 this 3 511 5 frame 1 472 5 value 1 512
68 14 Dtool_8NZBz_3E 0 4 87 473 0 14 Dtool_8NZBz_3E 72 // These transform-component methods only have meaning for matrix types. 3 4 this 3 511 5 frame 1 472 5 scale 1 514
69 14 Dtool_8NZBUEM9 0 4 88 473 0 14 Dtool_8NZBUEM9 0 3 4 this 3 511 5 frame 1 472 3 hpr 1 514
70 14 Dtool_8NZBOmSj 0 4 89 473 0 14 Dtool_8NZBOmSj 0 3 4 this 3 511 5 frame 1 472 4 quat 1 515
71 14 Dtool_8NZBqs83 0 4 90 473 0 14 Dtool_8NZBqs83 0 3 4 this 3 511 5 frame 1 472 3 pos 1 514
72 14 Dtool_8NZBl2ej 0 4 91 473 0 14 Dtool_8NZBl2ej 0 3 4 this 3 511 5 frame 1 472 5 shear 1 514
73 14 Dtool_8NZBdaSG 0 7 92 477 0 14 Dtool_8NZBdaSG 0 1 4 this 3 517
74 14 Dtool_8NZB7LXI 0 7 93 477 0 14 Dtool_8NZB7LXI 0 0
75 14 Dtool_8NZBIOa5 0 4 97 473 0 14 Dtool_8NZBIOa5 72 // These transform-component methods only have meaning for matrix types. 3 4 this 3 519 5 frame 1 472 5 scale 1 514
76 14 Dtool_8NZBNRwx 0 4 98 473 0 14 Dtool_8NZBNRwx 0 3 4 this 3 519 5 frame 1 472 3 hpr 1 514
77 14 Dtool_8NZBEl2X 0 4 99 473 0 14 Dtool_8NZBEl2X 0 3 4 this 3 519 5 frame 1 472 4 quat 1 515
78 14 Dtool_8NZBU_gs 0 4 100 473 0 14 Dtool_8NZBU_gs 0 3 4 this 3 519 5 frame 1 472 3 pos 1 514
79 14 Dtool_8NZBzYDY 0 4 101 473 0 14 Dtool_8NZBzYDY 0 3 4 this 3 519 5 frame 1 472 5 shear 1 514
80 14 Dtool_8NZBzf26 0 7 102 477 0 14 Dtool_8NZBzf26 0 1 4 this 3 520
81 14 Dtool_8NZBdX78 0 7 103 477 0 14 Dtool_8NZBdX78 0 0
82 14 Dtool_8NZBwi1P 0 4 105 473 0 14 Dtool_8NZBwi1P 268 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::set_value
// Access: Published
// Description: Explicitly sets the matrix value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 522 5 value 1 523
83 14 Dtool_8NZB4XtZ 0 4 105 473 0 14 Dtool_8NZB4XtZ 345 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::set_value
// Access: Published
// Description: Explicitly sets the matrix value, using the indicated
// TransformState object as a convenience.
//////////////////////////////////////////////////////////////////// 2 4 this 3 522 5 value 1 493
84 14 Dtool_8NZBAd6G 0 4 106 473 0 14 Dtool_8NZBAd6G 384 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::set_value_node
// Access: Published
// Description: Specifies a node whose transform will be queried each
// frame to implicitly specify the transform of this
// joint.
//////////////////////////////////////////////////////////////////// 2 4 this 3 522 4 node 1 488
85 14 Dtool_8NZBAlQj 0 7 107 493 0 14 Dtool_8NZBAlQj 841 // Filename: animChannelMatrixDynamic.I
// Created by: drose (20Oct03)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::get_value_transform
// Access: Published
// Description: Returns the explicit TransformState value that was
// set via set_value(), if any.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525
86 14 Dtool_8NZBA0Lo 0 7 108 488 0 14 Dtool_8NZBA0Lo 316 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixDynamic::get_value_node
// Access: Published
// Description: Returns the node that was set via set_value_node(),
// if any.
//////////////////////////////////////////////////////////////////// 1 4 this 3 525
87 14 Dtool_8NZBdU9M 0 7 109 477 0 14 Dtool_8NZBdU9M 0 0
88 14 Dtool_8NZBeBw0 0 7 112 527 286 14 Dtool_8NZBeBw0 234 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::Constructor
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 2 6 parent 1 468 4 name 1 469
89 14 Dtool_8NZBKOH5 0 6 113 492 0 14 Dtool_8NZBKOH5 830 // Filename: animChannelMatrixXfmTable.I
// Created by: drose (21Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::is_valid_id
// Access: Public, Static
// Description: Returns true if the given letter is one of the nine
// valid table id's.
//////////////////////////////////////////////////////////////////// 1 8 table_id 1 528
90 14 Dtool_8NZBF4Yg 0 4 114 473 0 14 Dtool_8NZBF4Yg 536 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::set_table
// Access: Public
// Description: Assigns the indicated table. table_id is one of 'i',
// 'j', 'k', for scale, 'a', 'b', 'c' for shear, 'h',
// 'p', 'r', for rotation, and 'x', 'y', 'z', for
// translation. The new table must have either zero,
// one, or get_num_frames() frames.
//////////////////////////////////////////////////////////////////// 3 4 this 3 527 8 table_id 1 528 5 table 1 529
91 14 Dtool_8NZB091i 0 7 115 534 0 14 Dtool_8NZB091i 339 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::get_table
// Access: Public
// Description: Returns a pointer to the indicated subtable's data,
// if it exists, or NULL if it does not.
//////////////////////////////////////////////////////////////////// 2 4 this 3 532 8 table_id 1 528
92 14 Dtool_8NZBvh4K 0 4 116 473 0 14 Dtool_8NZBvh4K 336 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::clear_all_tables
// Access: Published
// Description: Removes all the tables from the channel, and resets
// it to its initial state.
//////////////////////////////////////////////////////////////////// 1 4 this 3 527
93 14 Dtool_8NZBZcqj 0 6 117 492 0 14 Dtool_8NZBZcqj 310 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::has_table
// Access: Published
// Description: Returns true if the indicated subtable has been
// assigned.
//////////////////////////////////////////////////////////////////// 2 4 this 3 532 8 table_id 1 528
94 14 Dtool_8NZBO_k0 0 4 118 473 0 14 Dtool_8NZBO_k0 286 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelMatrixXfmTable::clear_table
// Access: Published
// Description: Removes the indicated table from the definition.
//////////////////////////////////////////////////////////////////// 2 4 this 3 527 8 table_id 1 528
95 14 Dtool_8NZBBX4a 0 7 119 477 0 14 Dtool_8NZBBX4a 0 0
96 14 Dtool_8NZBVD_1 0 4 121 473 0 14 Dtool_8NZBVD_1 261 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarDynamic::set_value
// Access: Published
// Description: Explicitly sets the value.
//////////////////////////////////////////////////////////////////// 2 4 this 3 535 5 value 1 480
97 14 Dtool_8NZB6Avw 0 4 122 473 0 14 Dtool_8NZB6Avw 384 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarDynamic::set_value_node
// Access: Published
// Description: Specifies a node whose transform will be queried each
// frame to implicitly specify the transform of this
// joint.
//////////////////////////////////////////////////////////////////// 2 4 this 3 535 4 node 1 488
98 14 Dtool_8NZBxwy2 0 7 123 477 0 14 Dtool_8NZBxwy2 0 0
99 14 Dtool_8NZB8JvW 0 4 126 473 0 14 Dtool_8NZB8JvW 253 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarTable::set_table
// Access: Public
// Description: Assigns the data table.
//////////////////////////////////////////////////////////////////// 2 4 this 3 536 5 table 1 529
100 14 Dtool_8NZB8IHc 0 7 127 534 0 14 Dtool_8NZB8IHc 821 // Filename: animChannelScalarTable.I
// Created by: drose (22Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarTable::get_table
// Access: Public
// Description: Returns a pointer to the table's data,
// if it exists, or NULL if it does not.
//////////////////////////////////////////////////////////////////// 1 4 this 3 537
101 14 Dtool_8NZB1YIG 0 6 128 492 0 14 Dtool_8NZB1YIG 282 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarTable::has_table
// Access: Published
// Description: Returns true if the data table has been assigned.
//////////////////////////////////////////////////////////////////// 1 4 this 3 537
102 14 Dtool_8NZBPoPB 0 4 129 473 0 14 Dtool_8NZBPoPB 258 ////////////////////////////////////////////////////////////////////
// Function: AnimChannelScalarTable::clear_table
// Access: Published
// Description: Empties the data table.
//////////////////////////////////////////////////////////////////// 1 4 this 3 536
103 14 Dtool_8NZBptvC 0 7 130 477 0 14 Dtool_8NZBptvC 0 0
104 14 Dtool_8NZBEVyR 0 7 133 539 330 14 Dtool_8NZBEVyR 354 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::Constructor
// Access: Published
// Description: Returns the AnimControl associated with the given
// name, or NULL if no such control has been associated.
//////////////////////////////////////////////////////////////////// 0
105 14 Dtool_8NZBJmt2 0 4 135 473 0 14 Dtool_8NZBJmt2 529 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::store_anim
// Access: Published
// Description: Associates the given AnimControl with this collection
// under the given name. The AnimControl will remain
// associated until a new AnimControl is associated with
// the same name later, or until unbind_anim() is called
// with this name.
//////////////////////////////////////////////////////////////////// 3 4 this 3 539 7 control 1 502 4 name 1 469
106 14 Dtool_8NZBDivI 0 7 136 502 270 14 Dtool_8NZBDivI 352 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::find_anim
// Access: Published
// Description: Returns the AnimControl associated with the given
// name, or NULL if no such control has been associated.
//////////////////////////////////////////////////////////////////// 2 4 this 3 540 4 name 1 469
107 14 Dtool_8NZBe9bu 0 6 137 492 0 14 Dtool_8NZBe9bu 452 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::unbind_anim
// Access: Published
// Description: Removes the AnimControl associated with the given
// name, if any. Returns true if an AnimControl was
// removed, false if there was no AnimControl with the
// indicated name.
//////////////////////////////////////////////////////////////////// 2 4 this 3 539 4 name 1 469
108 14 Dtool_8NZBoONk 0 6 138 472 0 14 Dtool_8NZBoONk 320 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_num_anims
// Access: Published
// Description: Returns the number of AnimControls associated with
// this collection.
//////////////////////////////////////////////////////////////////// 1 4 this 3 540
109 14 Dtool_8NZBVtrB 0 7 139 502 270 14 Dtool_8NZBVtrB 308 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_anim
// Access: Published
// Description: Returns the nth AnimControl associated with
// this collection.
//////////////////////////////////////////////////////////////////// 2 4 this 3 540 1 n 1 472
110 14 Dtool_8NZBBXsg 0 6 140 469 0 14 Dtool_8NZBBXsg 325 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_anim_name
// Access: Published
// Description: Returns the name of the nth AnimControl associated
// with this collection.
//////////////////////////////////////////////////////////////////// 2 4 this 3 540 1 n 1 472
111 14 Dtool_8NZBNiLN 0 4 141 473 0 14 Dtool_8NZBNiLN 279 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::clear_anims
// Access: Published
// Description: Disassociates all anims from this collection.
//////////////////////////////////////////////////////////////////// 1 4 this 3 539
112 14 Dtool_8NZBUNjN 0 6 142 492 0 14 Dtool_8NZBUNjN 756 // Filename: animControlCollection.I
// Created by: drose (22Feb00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::play
// Access: Public
// Description: Starts the named animation playing.
//////////////////////////////////////////////////////////////////// 2 4 this 3 539 9 anim_name 1 469
113 14 Dtool_8NZB_GRl 0 6 142 492 0 14 Dtool_8NZB_GRl 259 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::play
// Access: Public
// Description: Starts the named animation playing.
//////////////////////////////////////////////////////////////////// 4 4 this 3 539 9 anim_name 1 469 4 from 1 472 2 to 1 472
114 14 Dtool_8NZBBJEH 0 6 143 492 0 14 Dtool_8NZBBJEH 259 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::loop
// Access: Public
// Description: Starts the named animation looping.
//////////////////////////////////////////////////////////////////// 3 4 this 3 539 9 anim_name 1 469 7 restart 1 492
115 14 Dtool_8NZBTOG2 0 6 143 492 0 14 Dtool_8NZBTOG2 259 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::loop
// Access: Public
// Description: Starts the named animation looping.
//////////////////////////////////////////////////////////////////// 5 4 this 3 539 9 anim_name 1 469 7 restart 1 492 4 from 1 472 2 to 1 472
116 14 Dtool_8NZBunhQ 0 6 144 492 0 14 Dtool_8NZBunhQ 250 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::stop
// Access: Public
// Description: Stops the named animation.
//////////////////////////////////////////////////////////////////// 2 4 this 3 539 9 anim_name 1 469
117 14 Dtool_8NZBmA9Z 0 6 145 492 0 14 Dtool_8NZBmA9Z 274 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::pose
// Access: Public
// Description: Sets to a particular frame in the named animation.
//////////////////////////////////////////////////////////////////// 3 4 this 3 539 9 anim_name 1 469 5 frame 1 472
118 14 Dtool_8NZBtiz5 0 4 146 473 0 14 Dtool_8NZBtiz5 261 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::play_all
// Access: Published
// Description: Starts all animations playing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 539
119 14 Dtool_8NZBc5qb 0 4 146 473 0 14 Dtool_8NZBc5qb 261 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::play_all
// Access: Published
// Description: Starts all animations playing.
//////////////////////////////////////////////////////////////////// 3 4 this 3 539 4 from 1 472 2 to 1 472
120 14 Dtool_8NZBMeO5 0 4 147 473 0 14 Dtool_8NZBMeO5 261 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::loop_all
// Access: Published
// Description: Starts all animations looping.
//////////////////////////////////////////////////////////////////// 2 4 this 3 539 7 restart 1 492
121 14 Dtool_8NZBRl09 0 4 147 473 0 14 Dtool_8NZBRl09 261 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::loop_all
// Access: Published
// Description: Starts all animations looping.
//////////////////////////////////////////////////////////////////// 4 4 this 3 539 7 restart 1 492 4 from 1 472 2 to 1 472
122 14 Dtool_8NZBXUx8 0 6 148 492 0 14 Dtool_8NZBXUx8 378 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::stop_all
// Access: Published
// Description: Stops all currently playing animations. Returns true
// if any animations were stopped, false if none were
// playing.
//////////////////////////////////////////////////////////////////// 1 4 this 3 539
123 14 Dtool_8NZBJter 0 4 149 473 0 14 Dtool_8NZBJter 274 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::pose_all
// Access: Published
// Description: Sets all animations to the indicated frame.
//////////////////////////////////////////////////////////////////// 2 4 this 3 539 5 frame 1 472
124 14 Dtool_8NZBhXpY 0 6 150 472 0 14 Dtool_8NZBhXpY 302 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_frame
// Access: Public
// Description: Returns the current frame in the last-started
// animation.
//////////////////////////////////////////////////////////////////// 1 4 this 3 540
125 14 Dtool_8NZB6Cy2 0 6 150 472 0 14 Dtool_8NZB6Cy2 331 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_frame
// Access: Public
// Description: Returns the current frame in the named animation, or
// 0 if the animation is not found.
//////////////////////////////////////////////////////////////////// 2 4 this 3 540 9 anim_name 1 469
126 14 Dtool_8NZBfa0S 0 6 151 472 0 14 Dtool_8NZBfa0S 316 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_num_frames
// Access: Public
// Description: Returns the total number of frames in the
// last-started animation.
//////////////////////////////////////////////////////////////////// 1 4 this 3 540
127 14 Dtool_8NZBvkKP 0 6 151 472 0 14 Dtool_8NZBvkKP 345 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::get_num_frames
// Access: Public
// Description: Returns the total number of frames in the named
// animation, or 0 if the animation is not found.
//////////////////////////////////////////////////////////////////// 2 4 this 3 540 9 anim_name 1 469
128 14 Dtool_8NZB6Fhs 0 6 152 492 0 14 Dtool_8NZB6Fhs 328 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::is_playing
// Access: Public
// Description: Returns true if the last-started animation is
// currently playing, false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 540
129 14 Dtool_8NZBme5y 0 6 152 492 0 14 Dtool_8NZBme5y 321 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::is_playing
// Access: Public
// Description: Returns true if the named animation is currently
// playing, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 540 9 anim_name 1 469
130 14 Dtool_8NZBBIcV 0 6 153 469 0 14 Dtool_8NZBBIcV 458 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::which_anim_playing
// Access: Published
// Description: Returns the name of the bound AnimControl currently
// playing, if any. If more than one AnimControl is
// currently playing, returns all of the names separated
// by spaces.
//////////////////////////////////////////////////////////////////// 1 4 this 3 540
131 14 Dtool_8NZBV3NB 0 4 154 473 0 14 Dtool_8NZBV3NB 229 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 540 3 out 1 474
132 14 Dtool_8NZBI5P2 0 4 155 473 0 14 Dtool_8NZBI5P2 228 ////////////////////////////////////////////////////////////////////
// Function: AnimControlCollection::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 540 3 out 1 474
133 14 Dtool_8NZBvxTH 0 7 158 542 0 14 Dtool_8NZBvxTH 229 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
134 14 Dtool_8NZB9WAE 0 6 159 472 0 14 Dtool_8NZB9WAE 284 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::get_num_anims
// Access: Published
// Description: Returns the number of animation records in the table.
//////////////////////////////////////////////////////////////////// 1 4 this 3 543
135 14 Dtool_8NZB_zP2 0 6 160 472 0 14 Dtool_8NZB_zP2 610 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::find_anim
// Access: Published
// Description: Returns the index number in the table of the
// animation record with the indicated name, or -1 if
// the name is not present. By convention, the basename
// is the filename of the egg or bam file, without the
// directory part and without the extension. That is,
// it is Filename::get_basename_wo_extension().
//////////////////////////////////////////////////////////////////// 2 4 this 3 543 8 basename 1 469
136 14 Dtool_8NZB_AA_ 0 6 161 469 0 14 Dtool_8NZB_AA_ 322 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::get_basename
// Access: Published
// Description: Returns the basename stored for the nth animation
// record. See find_anim().
//////////////////////////////////////////////////////////////////// 2 4 this 3 543 1 n 1 472
137 14 Dtool_8NZBFxd3 0 6 162 480 0 14 Dtool_8NZBFxd3 313 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::get_base_frame_rate
// Access: Published
// Description: Returns the frame rate stored for the nth animation
// record.
//////////////////////////////////////////////////////////////////// 2 4 this 3 543 1 n 1 472
138 14 Dtool_8NZBmhkv 0 6 163 472 0 14 Dtool_8NZBmhkv 314 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::get_num_frames
// Access: Published
// Description: Returns the number of frames stored for the nth
// animation record.
//////////////////////////////////////////////////////////////////// 2 4 this 3 543 1 n 1 472
139 14 Dtool_8NZBheg4 0 4 164 473 0 14 Dtool_8NZBheg4 274 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::clear_anims
// Access: Published
// Description: Removes all animation records from the table.
//////////////////////////////////////////////////////////////////// 1 4 this 3 542
140 14 Dtool_8NZBSDsJ 0 4 165 473 0 14 Dtool_8NZBSDsJ 344 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::remove_anim
// Access: Published
// Description: Removes the nth animation records from the table.
// This renumbers indexes for following animations.
//////////////////////////////////////////////////////////////////// 2 4 this 3 542 1 n 1 472
141 14 Dtool_8NZB1l8l 0 4 166 473 0 14 Dtool_8NZB1l8l 505 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::add_anim
// Access: Published
// Description: Adds a new animation record to the table. If there
// is already a record of this name, no operation is
// performed (the original record is unchanged). See
// find_anim(). This will invalidate existing index
// numbers.
//////////////////////////////////////////////////////////////////// 4 4 this 3 542 8 basename 1 469 15 base_frame_rate 1 480 10 num_frames 1 472
142 14 Dtool_8NZB52_x 0 4 167 473 0 14 Dtool_8NZB52_x 412 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::add_anims_from
// Access: Published
// Description: Copies the animation records from the other table
// into this one. If a given record name exists in both
// tables, the record in this one supercedes.
//////////////////////////////////////////////////////////////////// 2 4 this 3 542 5 other 1 543
143 14 Dtool_8NZBlofy 0 4 168 473 0 14 Dtool_8NZBlofy 224 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 543 3 out 1 474
144 14 Dtool_8NZBhkgD 0 4 169 473 0 14 Dtool_8NZBhkgD 223 ////////////////////////////////////////////////////////////////////
// Function: AnimPreloadTable::write
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 3 4 this 3 543 3 out 1 474 12 indent_level 1 472
145 14 Dtool_8NZBAKZD 0 7 170 477 0 14 Dtool_8NZBAKZD 0 0
146 14 Dtool_8NZBoGGG 0 7 173 545 375 14 Dtool_8NZBoGGG 223 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 0
147 14 Dtool_8NZB_gKp 0 7 173 545 375 14 Dtool_8NZB_gKp 228 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::Copy Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 4 copy 1 546
148 14 Dtool_8NZBxWwX 0 6 174 545 0 14 Dtool_8NZBxWwX 236 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::Copy Assignment Operator
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 545 4 copy 1 546
149 14 Dtool_8NZB0f2j 0 4 175 473 0 14 Dtool_8NZB0f2j 650 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::add_include_joint
// Access: Published
// Description: Adds the named joint to the list of joints that will
// be explicitly included in the subset. Any joint at
// or below a named node will be included in the subset
// (unless a lower node is also listed in the exclude
// list).
//
// Since the name is a GlobPattern, it may of course
// include filename globbing characters like * and ?.
//////////////////////////////////////////////////////////////////// 2 4 this 3 545 4 name 1 548
150 14 Dtool_8NZBMvgq 0 4 176 473 0 14 Dtool_8NZBMvgq 657 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::add_exclude_joint
// Access: Published
// Description: Adds the named joint to the list of joints that will
// be explicitly exlcluded from the subset. Any joint at
// or below a named node will not be included in the
// subset (unless a lower node is also listed in the
// include list).
//
// Since the name is a GlobPattern, it may of course
// include filename globbing characters like * and ?.
//////////////////////////////////////////////////////////////////// 2 4 this 3 545 4 name 1 548
151 14 Dtool_8NZB69Ls 0 4 177 473 0 14 Dtool_8NZB69Ls 319 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::append
// Access: Published
// Description: Appends the include and exclude list from the other
// object onto this object's lists.
//////////////////////////////////////////////////////////////////// 2 4 this 3 545 5 other 1 546
152 14 Dtool_8NZB80i_ 0 4 178 473 0 14 Dtool_8NZB80i_ 218 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::output
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 546 3 out 1 474
153 14 Dtool_8NZBpRPq 0 6 179 492 0 14 Dtool_8NZBpRPq 395 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::is_include_empty
// Access: Published
// Description: Returns true if the include list is completely empty,
// false otherwise. If it is empty, it is the same
// thing as including all joints.
//////////////////////////////////////////////////////////////////// 1 4 this 3 546
154 14 Dtool_8NZBFDUF 0 6 180 492 0 14 Dtool_8NZBFDUF 331 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::matches_include
// Access: Published
// Description: Returns true if the indicated name matches a name on
// the include list, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 546 10 joint_name 1 469
155 14 Dtool_8NZBEavl 0 6 181 492 0 14 Dtool_8NZBEavl 331 ////////////////////////////////////////////////////////////////////
// Function: PartSubset::matches_exclude
// Access: Published
// Description: Returns true if the indicated name matches a name on
// the exclude list, false otherwise.
//////////////////////////////////////////////////////////////////// 2 4 this 3 546 10 joint_name 1 469
156 14 Dtool_8NZBZ6lN 0 7 185 559 378 14 Dtool_8NZBZ6lN 225 ////////////////////////////////////////////////////////////////////
// Function: BindAnimRequest::Constructor
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 7 4 name 1 469 8 filename 1 551 7 options 1 554 6 loader 1 557 7 control 1 502 21 hierarchy_match_flags 1 472 6 subset 1 546
157 14 Dtool_8NZBzTZe 0 7 186 477 0 14 Dtool_8NZBzTZe 0 0
158 14 Dtool_8NZB9LiC 0 7 189 503 410 14 Dtool_8NZB9LiC 373 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::Constructor
// Access: Public
// Description: Normally, a PartBundle constructor should not be
// called directly--it will get created when a
// PartBundleNode is created.
//////////////////////////////////////////////////////////////////// 1 4 name 1 469
159 14 Dtool_8NZBDIqj 0 7 189 503 410 14 Dtool_8NZBDIqj 373 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::Constructor
// Access: Public
// Description: Normally, a PartBundle constructor should not be
// called directly--it will get created when a
// PartBundleNode is created.
//////////////////////////////////////////////////////////////////// 0
160 14 Dtool_8NZBrxqe 0 7 190 543 0 14 Dtool_8NZBrxqe 929 // Filename: partBundle.I
// Created by: drose (22Feb99)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_anim_preload
// Access: Published
// Description: Returns the AnimPreloadTable associated with
// the PartBundle. This table, if present, can be used
// for the benefit of load_bind_anim() to allow
// asynchronous binding.
//////////////////////////////////////////////////////////////////// 1 4 this 3 560
161 14 Dtool_8NZB2f0z 0 7 191 542 0 14 Dtool_8NZB2f0z 340 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::modify_anim_preload
// Access: Published
// Description: Returns a modifiable pointer to the AnimPreloadTable
// associated with the PartBundle, if any.
//////////////////////////////////////////////////////////////////// 1 4 this 3 503
162 14 Dtool_8NZBA3Kk 0 4 192 473 0 14 Dtool_8NZBA3Kk 306 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_anim_preload
// Access: Published
// Description: Replaces the AnimPreloadTable associated with
// the PartBundle.
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 5 table 1 542
163 14 Dtool_8NZBYoFV 0 4 193 473 0 14 Dtool_8NZBYoFV 307 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::clear_anim_preload
// Access: Published
// Description: Removes any AnimPreloadTable associated with
// the PartBundle.
//////////////////////////////////////////////////////////////////// 1 4 this 3 503
164 14 Dtool_8NZBtRk3 0 4 194 473 0 14 Dtool_8NZBtRk3 322 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::merge_anim_preloads
// Access: Published
// Description: Copies the contents of the other PartBundle's preload
// table into this one.
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 5 other 1 560
165 14 Dtool_8NZB0WPI 0 4 196 473 0 14 Dtool_8NZB0WPI 558 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_blend_type
// Access: Published
// Description: 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.
//
// See partBundle.h for a description of the meaning of
// each of the BlendType values.
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 2 bt 1 459
166 14 Dtool_8NZByXKU 0 6 197 459 0 14 Dtool_8NZByXKU 438 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_blend_type
// Access: Published
// Description: 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.
//////////////////////////////////////////////////////////////////// 1 4 this 3 560
167 14 Dtool_8NZBjAPZ 0 4 198 473 0 14 Dtool_8NZBjAPZ 947 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_anim_blend_flag
// Access: Published
// Description: Defines the way the character responds to multiple
// calls to set_control_effect()). By default, this
// flag is set false, which disallows multiple
// animations. When this flag is false, it is not
// necessary to explicitly set the control_effect when
// starting an animation; starting the animation will
// implicitly remove the control_effect from the
// previous animation and set it on the current one.
//
// However, if this flag is set true, the control_effect
// must be explicitly set via set_control_effect()
// whenever an animation is to affect the character.
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 15 anim_blend_flag 1 492
168 14 Dtool_8NZBZe_K 0 6 199 492 0 14 Dtool_8NZBZe_K 387 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_anim_blend_flag
// Access: Published
// Description: Returns whether the character allows multiple
// different animations to be bound simultaneously. See
// set_anim_blend_flag().
//////////////////////////////////////////////////////////////////// 1 4 this 3 560
169 14 Dtool_8NZBgaSG 0 4 200 473 0 14 Dtool_8NZBgaSG 1201 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_frame_blend_flag
// Access: Published
// Description: 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.
//
// When this value is false, the character holds each
// frame until the next is ready. When this is true,
// the character will interpolate between two
// consecutive frames of animation for each frame the
// animation is onscreen, according to the amount of
// time elapsed between the frames.
//
// The default value of this flag is determined by the
// interpolate-frames Config.prc variable.
//
// Use set_blend_type() to change the algorithm that the
// character uses to interpolate matrix positions.
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 16 frame_blend_flag 1 492
170 14 Dtool_8NZBfbl_ 0 6 201 492 0 14 Dtool_8NZBfbl_ 471 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_frame_blend_flag
// Access: Published
// Description: Returns whether the character interpolates (blends)
// between two sequential animation frames, or whether
// it holds the current frame until the next one is
// ready. See set_frame_blend_flag().
//////////////////////////////////////////////////////////////////// 1 4 this 3 560
171 14 Dtool_8NZBt3hG 0 4 202 473 0 14 Dtool_8NZBt3hG 340 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_root_xform
// Access: Published
// Description: Specifies the transform matrix which is implicitly
// applied at the root of the animated hierarchy.
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 10 root_xform 1 523
172 14 Dtool_8NZBr7Q9 0 4 203 473 0 14 Dtool_8NZBr7Q9 304 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::xform
// Access: Published
// Description: Applies the indicated transform to the root of the
// animated hierarchy.
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 3 mat 1 523
173 14 Dtool_8NZBuoWS 0 6 204 523 0 14 Dtool_8NZBuoWS 338 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_root_xform
// Access: Published
// Description: Returns the transform matrix which is implicitly
// applied at the root of the animated hierarchy.
//////////////////////////////////////////////////////////////////// 1 4 this 3 560
174 14 Dtool_8NZB_za4 0 7 205 503 410 14 Dtool_8NZB_za4 487 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::apply_transform
// Access: Published
// Description: Returns a PartBundle that is a duplicate of this one,
// but with the indicated transform applied. If this is
// called multiple times with the same TransformState
// pointer, it returns the same PartBundle each time.
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 9 transform 1 493
175 14 Dtool_8NZBOYYz 0 6 206 472 0 14 Dtool_8NZBOYYz 322 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_num_nodes
// Access: Published
// Description: Returns the number of PartBundleNodes that contain a
// pointer to this PartBundle.
//////////////////////////////////////////////////////////////////// 1 4 this 3 560
176 14 Dtool_8NZBAJLi 0 7 207 562 0 14 Dtool_8NZBAJLi 300 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_node
// Access: Published
// Description: Returns the nth PartBundleNode associated with
// this PartBundle.
//////////////////////////////////////////////////////////////////// 2 4 this 3 560 1 n 1 472
177 14 Dtool_8NZBXSiY 0 4 208 473 0 14 Dtool_8NZBXSiY 872 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::clear_control_effects
// Access: Published
// Description: Sets the control effect of all AnimControls to zero
// (but does not "stop" the AnimControls). The
// character will no longer be affected by any
// animation, and will return to its default
// pose (unless restore-initial-pose is false).
//
// The AnimControls which are no longer associated will
// not be using any CPU cycles, but they may still be in
// the "playing" state; if they are later reassociated
// with the PartBundle they will resume at their current
// frame as if they'd been running all along.
//////////////////////////////////////////////////////////////////// 1 4 this 3 503
178 14 Dtool_8NZBc9Oe 0 4 209 473 0 14 Dtool_8NZBc9Oe 897 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::set_control_effect
// Access: Published
// Description: Sets the amount by which the character is affected by
// the indicated AnimControl (and its associated
// animation). Normally, this will only be zero or one.
// Zero indicates the animation does not affect the
// character, and one means it does.
//
// If the _anim_blend_flag is not false (see
// set_anim_blend_flag()), it is possible to have
// multiple AnimControls in effect simultaneously. In
// this case, the effect is a weight that indicates the
// relative importance of each AnimControl to the final
// animation.
//////////////////////////////////////////////////////////////////// 3 4 this 3 503 7 control 1 502 6 effect 1 480
179 14 Dtool_8NZBSOyr 0 6 210 480 0 14 Dtool_8NZBSOyr 403 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::get_control_effect
// Access: Published
// Description: Returns the amount by which the character is affected
// by the indicated AnimControl and its associated
// animation. See set_control_effect().
//////////////////////////////////////////////////////////////////// 2 4 this 3 560 7 control 1 502
180 14 Dtool_8NZBGRkL 0 4 211 473 0 14 Dtool_8NZBGRkL 271 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::output
// Access: Published, Virtual
// Description: Writes a one-line description of the bundle.
//////////////////////////////////////////////////////////////////// 2 4 this 3 560 3 out 1 474
181 14 Dtool_8NZBfmGJ 0 7 212 502 270 14 Dtool_8NZBfmGJ 1221 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::bind_anim
// Access: Published
// Description: Binds the animation to the bundle, if possible, and
// returns a new AnimControl that can be used to start
// and stop the animation. If the anim hierarchy does
// not match the part hierarchy, returns NULL.
//
// If hierarchy_match_flags is 0, only an exact match is
// accepted; otherwise, it may contain a union of
// PartGroup::HierarchyMatchFlags values indicating
// conditions that will be tolerated (but warnings will
// still be issued).
//
// If subset is specified, it restricts the binding only
// to the named subtree of joints.
//
// The AnimControl is not stored within the PartBundle;
// it is the user's responsibility to maintain the
// pointer. The animation will automatically unbind
// itself when the AnimControl destructs (i.e. its
// reference count goes to zero).
//////////////////////////////////////////////////////////////////// 4 4 this 3 503 4 anim 1 481 21 hierarchy_match_flags 1 472 6 subset 1 546
182 14 Dtool_8NZB9D6Q 0 7 212 502 270 14 Dtool_8NZB9D6Q 1221 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::bind_anim
// Access: Published
// Description: Binds the animation to the bundle, if possible, and
// returns a new AnimControl that can be used to start
// and stop the animation. If the anim hierarchy does
// not match the part hierarchy, returns NULL.
//
// If hierarchy_match_flags is 0, only an exact match is
// accepted; otherwise, it may contain a union of
// PartGroup::HierarchyMatchFlags values indicating
// conditions that will be tolerated (but warnings will
// still be issued).
//
// If subset is specified, it restricts the binding only
// to the named subtree of joints.
//
// The AnimControl is not stored within the PartBundle;
// it is the user's responsibility to maintain the
// pointer. The animation will automatically unbind
// itself when the AnimControl destructs (i.e. its
// reference count goes to zero).
//////////////////////////////////////////////////////////////////// 3 4 this 3 503 4 anim 1 481 21 hierarchy_match_flags 1 472
183 14 Dtool_8NZBesSx 0 7 212 502 270 14 Dtool_8NZBesSx 1221 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::bind_anim
// Access: Published
// Description: Binds the animation to the bundle, if possible, and
// returns a new AnimControl that can be used to start
// and stop the animation. If the anim hierarchy does
// not match the part hierarchy, returns NULL.
//
// If hierarchy_match_flags is 0, only an exact match is
// accepted; otherwise, it may contain a union of
// PartGroup::HierarchyMatchFlags values indicating
// conditions that will be tolerated (but warnings will
// still be issued).
//
// If subset is specified, it restricts the binding only
// to the named subtree of joints.
//
// The AnimControl is not stored within the PartBundle;
// it is the user's responsibility to maintain the
// pointer. The animation will automatically unbind
// itself when the AnimControl destructs (i.e. its
// reference count goes to zero).
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 4 anim 1 481
184 14 Dtool_8NZBq47d 0 7 213 502 270 14 Dtool_8NZBq47d 1614 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::load_bind_anim
// Access: Published
// Description: Binds an animation to the bundle. The animation is
// loaded from the disk via the indicated Loader object.
// In other respects, this behaves similarly to
// bind_anim(), with the addition of asynchronous
// support.
//
// If allow_aysnc is true, the load will be asynchronous
// if possible. This requires that the animation
// basename can be found in the PartBundle's preload
// table (see get_anim_preload()).
//
// In an asynchronous load, the animation file will be
// loaded and bound in a sub-thread. This means that
// the animation will not necessarily be available at
// the time this method returns. You may still use the
// returned AnimControl immediately, though, but no
// visible effect will occur until the animation
// eventually becomes available.
//
// You can test AnimControl::is_pending() to see if the
// animation has been loaded yet, or wait for it to
// finish with AnimControl::wait_pending() or even
// PartBundle::wait_pending(). You can also set an
// event to be triggered when the animation finishes
// loading with AnimControl::set_pending_done_event().
//////////////////////////////////////////////////////////////////// 6 4 this 3 503 6 loader 1 557 8 filename 1 551 21 hierarchy_match_flags 1 472 6 subset 1 546 11 allow_async 1 492
185 14 Dtool_8NZBZehs 0 4 214 473 0 14 Dtool_8NZBZehs 397 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::wait_pending
// Access: Published
// Description: Blocks the current thread until all currently-pending
// AnimControls, with a nonzero control effect, have
// been loaded and are properly bound.
//////////////////////////////////////////////////////////////////// 1 4 this 3 503
186 14 Dtool_8NZB2fei 0 6 215 492 0 14 Dtool_8NZB2fei 693 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::freeze_joint
// Access: Published
// Description: Specifies that the joint with the indicated name
// should be frozen with the specified transform. It
// will henceforth always hold this fixed transform,
// regardless of any animations that may subsequently be
// bound to the joint.
//
// Returns true if the joint is successfully frozen, or
// false if the named child is not a joint (or slider)
// or does not exist.
//////////////////////////////////////////////////////////////////// 5 4 this 3 503 10 joint_name 1 469 3 pos 1 496 3 hpr 1 496 5 scale 1 496
187 14 Dtool_8NZBOh7z 0 6 215 492 0 14 Dtool_8NZBOh7z 693 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::freeze_joint
// Access: Published
// Description: Specifies that the joint with the indicated name
// should be frozen with the specified transform. It
// will henceforth always hold this fixed transform,
// regardless of any animations that may subsequently be
// bound to the joint.
//
// Returns true if the joint is successfully frozen, or
// false if the named child is not a joint (or slider)
// or does not exist.
//////////////////////////////////////////////////////////////////// 3 4 this 3 503 10 joint_name 1 469 9 transform 1 493
188 14 Dtool_8NZBQo4o 0 6 215 492 0 14 Dtool_8NZBQo4o 693 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::freeze_joint
// Access: Published
// Description: Specifies that the joint with the indicated name
// should be frozen with the specified transform. It
// will henceforth always hold this fixed transform,
// regardless of any animations that may subsequently be
// bound to the joint.
//
// Returns true if the joint is successfully frozen, or
// false if the named child is not a joint (or slider)
// or does not exist.
//////////////////////////////////////////////////////////////////// 3 4 this 3 503 10 joint_name 1 469 5 value 1 480
189 14 Dtool_8NZBoboc 0 6 216 492 0 14 Dtool_8NZBoboc 714 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::control_joint
// Access: Published
// Description: Specifies that the joint with the indicated name
// should be animated with the transform on the
// indicated node. It will henceforth always follow the
// node's transform, regardless of any animations that
// may subsequently be bound to the joint.
//
// Returns true if the joint is successfully controlled,
// or false if the named child is not a joint (or
// slider) or does not exist.
//////////////////////////////////////////////////////////////////// 3 4 this 3 503 10 joint_name 1 469 4 node 1 488
190 14 Dtool_8NZB_6LW 0 6 217 492 0 14 Dtool_8NZB_6LW 646 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::release_joint
// Access: Published
// Description: Releases the named joint from the effects of a
// previous call to freeze_joint() or control_joint().
// It will henceforth once again follow whatever
// transforms are dictated by the animation.
//
// Returns true if the joint is released, or false if
// the named child was not previously controlled or
// frozen, or it does not exist.
//////////////////////////////////////////////////////////////////// 2 4 this 3 503 10 joint_name 1 469
191 14 Dtool_8NZBKsqa 0 6 218 492 0 14 Dtool_8NZBKsqa 482 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::update
// Access: Published
// Description: Updates all the parts in the bundle to reflect the
// data for the current frame (as set in each of the
// AnimControls).
//
// Returns true if any part has changed as a result of
// this, or false otherwise.
//////////////////////////////////////////////////////////////////// 1 4 this 3 503
192 14 Dtool_8NZB6YPx 0 6 219 492 0 14 Dtool_8NZB6YPx 375 ////////////////////////////////////////////////////////////////////
// Function: PartBundle::force_update
// Access: Published
// Description: Updates all the parts in the bundle to reflect the
// data for the current frame, whether we believe it
// needs it or not.
//////////////////////////////////////////////////////////////////// 1 4 this 3 503
193 14 Dtool_8NZB7Q2E 0 7 220 477 0 14 Dtool_8NZB7Q2E 0 0
194 14 Dtool_8NZBTdB6 0 6 223 472 0 14 Dtool_8NZBTdB6 604 ////////////////////////////////////////////////////////////////////
// Function: MovingPartBase::get_max_bound
// Access: Published
// Description: Returns the number of channels that might be bound to
// this PartGroup. This might not be the actual number
// of channels, since there might be holes in the list;
// it is one more than the index number of the highest
// bound channel. Thus, it is called get_max_bound()
// instead of get_num_bound().
//////////////////////////////////////////////////////////////////// 1 4 this 3 563
195 14 Dtool_8NZBY4V7 0 7 224 499 286 14 Dtool_8NZBY4V7 690 ////////////////////////////////////////////////////////////////////
// Function: MovingPartBase::get_bound
// Access: Published
// Description: Returns the nth bound channel on this PartGroup. n
// can be determined by iterating from 0 to one less
// than get_max_bound(); or n might be
// AnimControl::get_channel_index().
//
// This will return NULL if there is no channel bound on
// the indicated index. It is an error to call this if
// n is less than zero or greater than or equal to
// get_max_bound().
//////////////////////////////////////////////////////////////////// 2 4 this 3 563 1 n 1 472
196 14 Dtool_8NZBunKd 0 4 225 473 0 14 Dtool_8NZBunKd 0 2 4 this 3 563 3 out 1 474
197 14 Dtool_8NZBhPU6 0 7 226 477 0 14 Dtool_8NZBhPU6 0 0
198 14 Dtool_8NZB56Kh 0 7 234 477 0 14 Dtool_8NZB56Kh 0 0
199 14 Dtool_8NZB_XwN 0 7 230 477 0 14 Dtool_8NZB_XwN 0 0
200 14 Dtool_8NZB9Cqq 0 7 231 512 0 14 Dtool_8NZB9Cqq 0 1 4 this 3 565
201 14 Dtool_8NZBpgNw 0 7 232 512 0 14 Dtool_8NZBpgNw 0 1 4 this 3 565
202 14 Dtool_8NZBOseE 0 7 241 477 0 14 Dtool_8NZBOseE 0 0
203 14 Dtool_8NZBaeah 0 7 237 477 0 14 Dtool_8NZBaeah 0 0
204 14 Dtool_8NZBjrS_ 0 6 238 480 0 14 Dtool_8NZBjrS_ 0 1 4 this 3 567
205 14 Dtool_8NZBpo2D 0 6 239 480 0 14 Dtool_8NZBpo2D 0 1 4 this 3 567
206 14 Dtool_8NZBiUxe 0 7 244 569 0 14 Dtool_8NZBiUxe 721 // Filename: partBundleHandle.I
// Created by: drose (01Oct07)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundleHandle::Constructor
// Access: Published
// Description:
//////////////////////////////////////////////////////////////////// 1 6 bundle 1 503
207 14 Dtool_8NZB5Mw5 0 7 245 503 410 14 Dtool_8NZB5Mw5 302 ////////////////////////////////////////////////////////////////////
// Function: PartBundleHandle::get_bundle
// Access: Published
// Description: Returns the actual PartBundle embedded within the
// handle.
//////////////////////////////////////////////////////////////////// 1 4 this 3 569
208 14 Dtool_8NZBBXx_ 0 4 246 473 0 14 Dtool_8NZBBXx_ 302 ////////////////////////////////////////////////////////////////////
// Function: PartBundleHandle::set_bundle
// Access: Published
// Description: Changes the actual PartBundle embedded within the
// handle.
//////////////////////////////////////////////////////////////////// 2 4 this 3 569 6 bundle 1 503
209 14 Dtool_8NZBWbFa 0 7 248 562 0 14 Dtool_8NZBWbFa 991 // Filename: partBundleNode.I
// Created by: drose (06Mar02)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::Constructor
// Access: Public
// Description: The PartBundle and its node should be constructed
// together. Generally, the derived classes of
// PartBundleNode will automatically create a PartBundle
// of the appropriate type, and pass it up to this
// constructor.
//////////////////////////////////////////////////////////////////// 2 4 name 1 469 6 bundle 1 503
210 14 Dtool_8NZByDbo 0 6 249 472 0 14 Dtool_8NZByDbo 227 ////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::get_num_bundles
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 1 4 this 3 570
211 14 Dtool_8NZBibzW 0 7 250 503 410 14 Dtool_8NZBibzW 222 ////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::get_bundle
// Access: Public
// Description:
//////////////////////////////////////////////////////////////////// 2 4 this 3 570 1 n 1 472
212 14 Dtool_8NZBILd9 0 7 251 569 0 14 Dtool_8NZBILd9 469 ////////////////////////////////////////////////////////////////////
// Function: PartBundleNode::get_bundle_handle
// Access: Public
// Description: Returns the PartBundleHandle that wraps around the
// actual nth PartBundle. While the PartBundle pointer
// might later change due to a future flatten operation,
// the PartBundleHandle will not.
//////////////////////////////////////////////////////////////////// 2 4 this 3 570 1 n 1 472
213 14 Dtool_8NZBGgiE 0 7 252 477 0 14 Dtool_8NZBGgiE 0 0
214 14 Dtool_8NZBknU_ 0 4 171 473 0 14 Dtool_8NZBknU_ 480 ////////////////////////////////////////////////////////////////////
// Function: auto_bind
// Description: Walks the scene graph or subgraph beginning at the
// indicated node, and attempts to bind any AnimBundles
// found to their matching PartBundles, when possible.
//
// The list of all resulting AnimControls created is
// filled into controls.
//////////////////////////////////////////////////////////////////// 3 9 root_node 1 488 8 controls 1 539 21 hierarchy_match_flags 1 472
215 14 Dtool_8NZBP30i 0 4 171 473 0 14 Dtool_8NZBP30i 480 ////////////////////////////////////////////////////////////////////
// Function: auto_bind
// Description: Walks the scene graph or subgraph beginning at the
// indicated node, and attempts to bind any AnimBundles
// found to their matching PartBundles, when possible.
//
// The list of all resulting AnimControls created is
// filled into controls.
//////////////////////////////////////////////////////////////////// 2 9 root_node 1 488 8 controls 1 539
139
434 9 AnimGroup 0 26625 9 AnimGroup 9 AnimGroup 0 0 0 1 220 221 0 8 222 223 224 225 226 227 228 229 1 573 0 2 3 435 216 217 3 436 218 219 0 0 381
////////////////////////////////////////////////////////////////////
// Class : AnimGroup
// Description : This is the base class for AnimChannel and
// AnimBundle. It implements a hierarchy of
// AnimChannels. The root of the hierarchy must be an
// AnimBundle.
////////////////////////////////////////////////////////////////////
435 27 TypedWritableReferenceCount 0 2049 27 TypedWritableReferenceCount 27 TypedWritableReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 722
////////////////////////////////////////////////////////////////////
// Class : TypedWritableReferenceCount
// Description : A base class for things which need to inherit from
// both TypedWritable and from ReferenceCount. It's
// convenient to define this intermediate base class
// instead of multiply inheriting from the two classes
// each time they are needed, so that we can sensibly
// pass around pointers to things which are both
// TypedWritables and ReferenceCounters.
//
// See also TypedObject for detailed instructions.
////////////////////////////////////////////////////////////////////
436 7 Namable 0 2049 7 Namable 7 Namable 0 0 0 0 0 0 0 0 0 0 0 0 324
////////////////////////////////////////////////////////////////////
// Class : Namable
// Description : A base class for all things which can have a name.
// The name is either empty or nonempty, but it is never
// NULL.
////////////////////////////////////////////////////////////////////
437 10 AnimBundle 0 141313 10 AnimBundle 10 AnimBundle 0 0 0 1 230 235 0 4 231 232 233 234 0 0 1 0 434 0 0 0 0 369
////////////////////////////////////////////////////////////////////
// Class : AnimBundle
// Description : This is the root of an AnimChannel hierarchy. It
// knows the frame rate and number of frames of all the
// channels in the hierarchy (which must all match).
////////////////////////////////////////////////////////////////////
438 14 AnimBundleNode 0 141313 14 AnimBundleNode 14 AnimBundleNode 0 0 0 1 236 240 0 3 237 238 239 0 0 1 0 439 0 0 0 0 373
////////////////////////////////////////////////////////////////////
// Class : AnimBundleNode
// Description : This is a node that contains a pointer to an
// AnimBundle. Like PartBundleNode, it exists solely to
// make it easy to store AnimBundles in the scene graph.
////////////////////////////////////////////////////////////////////
439 9 PandaNode 0 2049 9 PandaNode 9 PandaNode 0 0 0 0 0 0 0 0 0 0 0 0 374
////////////////////////////////////////////////////////////////////
// Class : PandaNode
// Description : A basic node of the scene graph or data graph. This
// is the base class of all specialized nodes, and also
// serves as a generic node with no special properties.
////////////////////////////////////////////////////////////////////
440 9 PartGroup 0 26625 9 PartGroup 9 PartGroup 0 0 0 1 245 246 0 17 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 1 574 0 2 3 435 241 242 3 436 243 244 0 1 441 290
////////////////////////////////////////////////////////////////////
// Class : PartGroup
// Description : This is the base class for PartRoot and
// MovingPart. It defines a hierarchy of MovingParts.
////////////////////////////////////////////////////////////////////
441 19 HierarchyMatchFlags 0 794624 30 PartGroup::HierarchyMatchFlags 30 PartGroup::HierarchyMatchFlags 440 0 0 0 0 0 0 0 0 0 3 17 HMF_ok_part_extra 28 PartGroup::HMF_ok_part_extra 1 17 HMF_ok_anim_extra 28 PartGroup::HMF_ok_anim_extra 2 22 HMF_ok_wrong_root_name 33 PartGroup::HMF_ok_wrong_root_name 4 0 218
// This enum defines bits which may be passed into check_hierarchy()
// and PartBundle::bind_anim() to allow an inexact match of channel
// hierarchies. This specifies conditions that we don't care about
// enforcing.
442 11 AnimControl 0 26625 11 AnimControl 11 AnimControl 0 0 0 0 270 0 13 271 272 273 274 275 276 277 278 279 280 281 282 283 0 0 3 3 443 264 265 3 444 266 267 3 436 268 269 0 0 487
////////////////////////////////////////////////////////////////////
// Class : AnimControl
// Description : Controls the timing of a character animation. An
// AnimControl object is created for each
// character/bundle binding and manages the state of the
// animation: whether started, stopped, or looping, and
// the current frame number and play rate.
////////////////////////////////////////////////////////////////////
443 19 TypedReferenceCount 0 2049 19 TypedReferenceCount 19 TypedReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 710
////////////////////////////////////////////////////////////////////
// Class : TypedReferenceCount
// Description : A base class for things which need to inherit from
// both TypedObject and from ReferenceCount. It's
// convenient to define this intermediate base class
// instead of multiply inheriting from the two classes
// each time they are needed, so that we can sensibly
// pass around pointers to things which are both
// TypedObjects and ReferenceCounters.
//
// See also TypedObject for detailed instructions.
////////////////////////////////////////////////////////////////////
444 13 AnimInterface 0 2049 13 AnimInterface 13 AnimInterface 0 0 0 0 0 0 0 0 0 0 0 0 464
////////////////////////////////////////////////////////////////////
// Class : AnimInterface
// Description : This is the fundamental interface for things that
// have a play/loop/stop type interface for frame-based
// animation, such as animated characters. This is the
// base class for AnimControl and other, similar
// classes.
////////////////////////////////////////////////////////////////////
445 15 AnimChannelBase 0 141313 15 AnimChannelBase 15 AnimChannelBase 0 0 0 0 286 0 2 284 285 0 0 1 0 434 0 0 0 0 489
////////////////////////////////////////////////////////////////////
// Class : AnimChannelBase
// Description : Parent class for all animation channels. An
// AnimChannel is an arbitrary function that changes
// over time (actually, over frames), usually defined by
// a table read from an egg file (but possibly computed
// or generated in any other way).
////////////////////////////////////////////////////////////////////
446 17 AnimChannelMatrix 0 75777 33 AnimChannel< ACMatrixSwitchType > 33 AnimChannel< ACMatrixSwitchType > 0 0 0 0 286 0 9 287 288 289 290 291 292 293 294 295 0 0 1 0 445 0 0 0 0 0
447 17 AnimChannelScalar 0 75777 33 AnimChannel< ACScalarSwitchType > 33 AnimChannel< ACScalarSwitchType > 0 0 0 0 286 0 9 296 297 298 299 300 301 302 303 304 0 0 1 0 445 0 0 0 0 0
448 24 AnimChannelMatrixDynamic 0 141313 24 AnimChannelMatrixDynamic 24 AnimChannelMatrixDynamic 0 0 0 0 310 0 5 305 306 307 308 309 0 0 1 0 446 0 0 0 0 683
////////////////////////////////////////////////////////////////////
// Class : AnimChannelMatrixDynamic
// Description : An animation channel that accepts a matrix each frame
// from some dynamic input provided by code.
//
// This object operates in two modes: in explicit mode,
// the programmer should call set_value() each frame to
// indicate the new value; in implicit mode, the
// programmer should call set_value_node() to indicate
// the node whose transform will be copied to the joint
// each frame.
////////////////////////////////////////////////////////////////////
449 25 AnimChannelMatrixXfmTable 0 75777 25 AnimChannelMatrixXfmTable 25 AnimChannelMatrixXfmTable 0 0 0 1 311 286 0 7 312 313 314 315 316 317 318 0 0 1 0 446 0 0 0 0 509
////////////////////////////////////////////////////////////////////
// Class : AnimChannelMatrixXfmTable
// Description : An animation channel that issues a matrix each frame,
// read from a table such as might have been read from
// an egg file. The table actually consists of nine
// sub-tables, each representing one component of the
// transform: scale, rotate, translate.
////////////////////////////////////////////////////////////////////
450 24 AnimChannelScalarDynamic 0 141313 24 AnimChannelScalarDynamic 24 AnimChannelScalarDynamic 0 0 0 0 322 0 3 319 320 321 0 0 1 0 447 0 0 0 0 686
////////////////////////////////////////////////////////////////////
// Class : AnimChannelScalarDynamic
// Description : An animation channel that accepts a scalar each frame
// from some dynamic input provided by code.
//
// This object operates in two modes: in explicit mode,
// the programmer should call set_value() each frame to
// indicate the new value; in implicit mode, the
// programmer should call set_value_node() to indicate
// the node whose X component will be copied to the
// scalar each frame.
////////////////////////////////////////////////////////////////////
451 22 AnimChannelScalarTable 0 141313 22 AnimChannelScalarTable 22 AnimChannelScalarTable 0 0 0 0 328 0 5 323 324 325 326 327 0 0 1 0 447 0 0 0 0 347
////////////////////////////////////////////////////////////////////
// Class : AnimChannelScalarTable
// Description : An animation channel that issues a scalar each frame,
// read from a table such as might have been read from
// an egg file.
////////////////////////////////////////////////////////////////////
452 21 AnimControlCollection 0 26625 21 AnimControlCollection 21 AnimControlCollection 0 0 0 1 329 330 0 21 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 2 575 576 0 0 0 0 628
////////////////////////////////////////////////////////////////////
// Class : AnimControlCollection
// Description : This is a named collection of AnimControl pointers.
// An AnimControl may be added to the collection by
// name. While an AnimControl is associated, its
// reference count is maintained; associating a new
// AnimControl with the same name will decrement the
// previous control's reference count (and possibly
// delete it, unbinding its animation).
////////////////////////////////////////////////////////////////////
453 16 AnimPreloadTable 0 75777 16 AnimPreloadTable 16 AnimPreloadTable 0 0 0 1 352 0 0 12 353 354 355 356 357 358 359 360 361 362 363 364 0 0 1 0 454 0 0 0 0 514
////////////////////////////////////////////////////////////////////
// Class : AnimPreloadTable
// Description : This table records data about a list of animations
// for a particular model, such as number of frames and
// frame rate. It's used for implementating
// asynchronous binding.
//
// This table is normally built by an offline tool, such
// as egg-optchar.
////////////////////////////////////////////////////////////////////
454 17 CopyOnWriteObject 0 2049 17 CopyOnWriteObject 17 CopyOnWriteObject 0 0 0 0 0 0 0 0 0 0 0 0 376
////////////////////////////////////////////////////////////////////
// Class : CopyOnWriteObject
// Description : This base class provides basic reference counting,
// but also can be used with a CopyOnWritePointer to
// provide get_read_pointer() and get_write_pointer().
////////////////////////////////////////////////////////////////////
455 10 PartSubset 0 141313 10 PartSubset 10 PartSubset 0 0 0 1 366 375 0 8 367 368 369 370 371 372 373 374 0 0 0 0 0 406
////////////////////////////////////////////////////////////////////
// Class : PartSubset
// Description : This class is used to define a subset of part names
// to apply to the PartBundle::bind_anim() operation.
// Only those part names within the subset will be
// included in the bind.
////////////////////////////////////////////////////////////////////
456 15 BindAnimRequest 0 141313 15 BindAnimRequest 15 BindAnimRequest 0 0 0 1 376 378 0 1 377 0 0 1 0 457 0 0 0 0 344
////////////////////////////////////////////////////////////////////
// Class : BindAnimRequest
// Description : This class object manages an asynchronous
// load-and-bind animation request, as issued through
// PartBundle::load_bind_anim().
////////////////////////////////////////////////////////////////////
457 16 ModelLoadRequest 0 2049 16 ModelLoadRequest 16 ModelLoadRequest 0 0 0 0 0 0 0 0 0 0 0 0 415
////////////////////////////////////////////////////////////////////
// Class : ModelLoadRequest
// Description : A class object that manages a single asynchronous
// model load request. Create a new ModelLoadRequest,
// and add it to the loader via load_async(), to begin
// an asynchronous load.
////////////////////////////////////////////////////////////////////
458 10 PartBundle 0 141313 10 PartBundle 10 PartBundle 0 0 0 1 379 410 0 30 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 1 577 0 1 0 440 0 0 0 1 459 337
////////////////////////////////////////////////////////////////////
// Class : PartBundle
// Description : This is the root of a MovingPart hierarchy. It
// defines the hierarchy of moving parts that make up an
// animatable object.
////////////////////////////////////////////////////////////////////
459 9 BlendType 0 794624 21 PartBundle::BlendType 21 PartBundle::BlendType 458 0 0 0 0 0 0 0 0 0 4 9 BT_linear 21 PartBundle::BT_linear 0 20 BT_normalized_linear 32 PartBundle::BT_normalized_linear 1 16 BT_componentwise 28 PartBundle::BT_componentwise 2 21 BT_componentwise_quat 33 PartBundle::BT_componentwise_quat 3 0 240
// This is the parameter to set_blend_type() and specifies the kind
// of blending operation to be performed when multiple controls are
// in effect simultaneously (see set_control_effect()) or between
// sequential frames of the animation.
460 14 MovingPartBase 0 141313 14 MovingPartBase 14 MovingPartBase 0 0 0 0 415 0 4 411 412 413 414 0 0 1 0 440 0 0 0 0 580
////////////////////////////////////////////////////////////////////
// Class : MovingPartBase
// Description : This is the base class for a single animatable piece
// that may be bound to one channel (or more, if
// blending is in effect). It corresponds to, for
// instance, a single joint or slider of a character.
//
// MovingPartBase does not have a particular value type.
// See the derived template class, MovingPart, for this.
////////////////////////////////////////////////////////////////////
461 16 MovingPartMatrix 0 75777 16 MovingPartMatrix 16 MovingPartMatrix 0 0 0 0 419 0 1 420 0 0 1 0 462 0 0 0 0 279
////////////////////////////////////////////////////////////////////
// Class : MovingPartMatrix
// Description : This is a particular kind of MovingPart that accepts
// a matrix each frame.
////////////////////////////////////////////////////////////////////
462 32 MovingPart< ACMatrixSwitchType > 0 141313 32 MovingPart< ACMatrixSwitchType > 32 MovingPart< ACMatrixSwitchType > 0 0 0 0 419 0 3 416 417 418 0 0 1 0 460 0 0 0 0 0
463 16 MovingPartScalar 0 75777 16 MovingPartScalar 16 MovingPartScalar 0 0 0 0 424 0 1 425 0 0 1 0 464 0 0 0 0 279
////////////////////////////////////////////////////////////////////
// Class : MovingPartScalar
// Description : This is a particular kind of MovingPart that accepts
// a scalar each frame.
////////////////////////////////////////////////////////////////////
464 32 MovingPart< ACScalarSwitchType > 0 141313 32 MovingPart< ACScalarSwitchType > 32 MovingPart< ACScalarSwitchType > 0 0 0 0 424 0 3 421 422 423 0 0 1 0 460 0 0 0 0 0
465 16 PartBundleHandle 0 75777 16 PartBundleHandle 16 PartBundleHandle 0 0 0 1 426 0 0 2 427 428 0 0 1 0 466 0 0 0 0 890
////////////////////////////////////////////////////////////////////
// Class : PartBundleHandle
// Description : This is a trivial class returned by
// PartBundleNode::get_bundle(). Its purpose is to hold
// the actual PartBundle pointer contained within the
// PartBundleNode, so that scene graph flatten
// operations can safely combine or duplicate
// PartBundles as necessary without affecting high-level
// bundle operations.
//
// The high-level Actor class defined in
// direct/src/actor, for instance, will store a list of
// PartBundleHandles instead of on actual PartBundles,
// so that it will be immune to changes from these
// flatten operations.
////////////////////////////////////////////////////////////////////
466 14 ReferenceCount 0 2049 14 ReferenceCount 14 ReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 425
////////////////////////////////////////////////////////////////////
// Class : ReferenceCount
// Description : A base class for all things that want to be
// reference-counted. ReferenceCount works in
// conjunction with PointerTo to automatically delete
// objects when the last pointer to them goes away.
////////////////////////////////////////////////////////////////////
467 14 PartBundleNode 0 75777 14 PartBundleNode 14 PartBundleNode 0 0 0 1 429 0 0 4 430 431 432 433 2 578 579 0 1 0 439 0 0 0 0 605
////////////////////////////////////////////////////////////////////
// Class : PartBundleNode
// Description : This is a node that contains a pointer to an
// PartBundle. Like AnimBundleNode, it exists to make
// it easy to store PartBundles in the scene graph.
//
// (Unlike AnimBundleNode, however, PartBundleNode has
// an additional function: it is also the base class of
// the Character node type, which adds additional
// functionality.)
////////////////////////////////////////////////////////////////////
468 11 AnimGroup * 0 8576 11 AnimGroup * 11 AnimGroup * 0 0 434 0 0 0 0 0 0 0 0 0 0
469 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0
470 17 AnimGroup const * 0 8576 17 AnimGroup const * 17 AnimGroup const * 0 0 471 0 0 0 0 0 0 0 0 0 0
471 15 AnimGroup const 0 8832 15 AnimGroup const 15 AnimGroup const 0 0 434 0 0 0 0 0 0 0 0 0 0
472 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0
473 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0
474 9 ostream * 0 8576 9 ostream * 9 ostream * 0 0 475 0 0 0 0 0 0 0 0 0 0
475 7 ostream 0 2048 7 ostream 7 ostream 0 0 0 0 0 0 0 0 0 0 0 0 0
476 10 TypeHandle 0 2048 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 1098
////////////////////////////////////////////////////////////////////
// Class : TypeHandle
// Description : TypeHandle is the identifier used to differentiate
// C++ class types. Any C++ classes that inherit from
// some base class, and must be differentiated at run
// time, should store a static TypeHandle object that
// can be queried through a static member function
// named get_class_type(). Most of the time, it is also
// desirable to inherit from TypedObject, which provides
// some virtual functions to return the TypeHandle for a
// particular instance.
//
// At its essence, a TypeHandle is simply a unique
// identifier that is assigned by the TypeRegistry. The
// TypeRegistry stores a tree of TypeHandles, so that
// ancestry of a particular type may be queried, and the
// type name may be retrieved for run-time display.
////////////////////////////////////////////////////////////////////
477 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 476 0 0 0 0 0 0 0 0 0 0
478 29 TypedWritableReferenceCount * 0 8576 29 TypedWritableReferenceCount * 29 TypedWritableReferenceCount * 0 0 435 0 0 0 0 0 0 0 0 0 0
479 9 Namable * 0 8576 9 Namable * 9 Namable * 0 0 436 0 0 0 0 0 0 0 0 0 0
480 5 float 0 8194 5 float 5 float 0 2 0 0 0 0 0 0 0 0 0 0 0
481 12 AnimBundle * 0 8576 12 AnimBundle * 12 AnimBundle * 0 0 437 0 0 0 0 0 0 0 0 0 0
482 18 AnimBundle const * 0 8576 18 AnimBundle const * 18 AnimBundle const * 0 0 483 0 0 0 0 0 0 0 0 0 0
483 16 AnimBundle const 0 8832 16 AnimBundle const 16 AnimBundle const 0 0 437 0 0 0 0 0 0 0 0 0 0
484 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0
485 16 AnimBundleNode * 0 8576 16 AnimBundleNode * 16 AnimBundleNode * 0 0 438 0 0 0 0 0 0 0 0 0 0
486 22 AnimBundleNode const * 0 8576 22 AnimBundleNode const * 22 AnimBundleNode const * 0 0 487 0 0 0 0 0 0 0 0 0 0
487 20 AnimBundleNode const 0 8832 20 AnimBundleNode const 20 AnimBundleNode const 0 0 438 0 0 0 0 0 0 0 0 0 0
488 11 PandaNode * 0 8576 11 PandaNode * 11 PandaNode * 0 0 439 0 0 0 0 0 0 0 0 0 0
489 11 PartGroup * 0 8576 11 PartGroup * 11 PartGroup * 0 0 440 0 0 0 0 0 0 0 0 0 0
490 17 PartGroup const * 0 8576 17 PartGroup const * 17 PartGroup const * 0 0 491 0 0 0 0 0 0 0 0 0 0
491 15 PartGroup const 0 8832 15 PartGroup const 15 PartGroup const 0 0 440 0 0 0 0 0 0 0 0 0 0
492 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0
493 22 TransformState const * 0 8576 22 TransformState const * 22 TransformState const * 0 0 494 0 0 0 0 0 0 0 0 0 0
494 20 TransformState const 0 8832 20 TransformState const 20 TransformState const 0 0 495 0 0 0 0 0 0 0 0 0 0
495 14 TransformState 0 2048 14 TransformState 14 TransformState 0 0 0 0 0 0 0 0 0 0 0 0 1138
////////////////////////////////////////////////////////////////////
// Class : TransformState
// Description : Indicates a coordinate-system transform on vertices.
// TransformStates are the primary means for storing
// transformations on the scene graph.
//
// Transforms may be specified in one of two ways:
// componentwise, with a pos-hpr-scale, or with an
// arbitrary transform matrix. If you specify a
// transform componentwise, it will remember its
// original components.
//
// TransformState objects are managed very much like
// RenderState objects. They are immutable and
// reference-counted automatically.
//
// You should not attempt to create or modify a
// TransformState object directly. Instead, call one of
// the make() functions to create one for you. And
// instead of modifying a TransformState object, create a
// new one.
////////////////////////////////////////////////////////////////////
496 18 LVecBase3f const * 0 8576 18 LVecBase3f const * 18 LVecBase3f const * 0 0 497 0 0 0 0 0 0 0 0 0 0
497 16 LVecBase3f const 0 8832 16 LVecBase3f const 16 LVecBase3f const 0 0 498 0 0 0 0 0 0 0 0 0 0
498 10 LVecBase3f 0 2048 10 LVecBase3f 10 LVecBase3f 0 0 0 0 0 0 0 0 0 0 0 0 754
// Filename: lvecBase3_src.h
// Created by: drose (08Mar00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : LVecBase3
// Description : This is the base class for all three-component
// vectors and points.
////////////////////////////////////////////////////////////////////
499 17 AnimChannelBase * 0 8576 17 AnimChannelBase * 17 AnimChannelBase * 0 0 445 0 0 0 0 0 0 0 0 0 0
500 19 AnimControl const * 0 8576 19 AnimControl const * 19 AnimControl const * 0 0 501 0 0 0 0 0 0 0 0 0 0
501 17 AnimControl const 0 8832 17 AnimControl const 17 AnimControl const 0 0 442 0 0 0 0 0 0 0 0 0 0
502 13 AnimControl * 0 8576 13 AnimControl * 13 AnimControl * 0 0 442 0 0 0 0 0 0 0 0 0 0
503 12 PartBundle * 0 8576 12 PartBundle * 12 PartBundle * 0 0 458 0 0 0 0 0 0 0 0 0 0
504 16 BitArray const * 0 8576 16 BitArray const * 16 BitArray const * 0 0 505 0 0 0 0 0 0 0 0 0 0
505 14 BitArray const 0 8832 14 BitArray const 14 BitArray const 0 0 506 0 0 0 0 0 0 0 0 0 0
506 8 BitArray 0 2048 8 BitArray 8 BitArray 0 0 0 0 0 0 0 0 0 0 0 0 425
////////////////////////////////////////////////////////////////////
// Class : BitArray
// Description : A dynamic array with an unlimited number of bits.
//
// This is similar to a BitMask, except it appears to
// contain an infinite number of bits. You can use it
// very much as you would use a BitMask.
////////////////////////////////////////////////////////////////////
507 21 TypedReferenceCount * 0 8576 21 TypedReferenceCount * 21 TypedReferenceCount * 0 0 443 0 0 0 0 0 0 0 0 0 0
508 15 AnimInterface * 0 8576 15 AnimInterface * 15 AnimInterface * 0 0 444 0 0 0 0 0 0 0 0 0 0
509 23 AnimChannelBase const * 0 8576 23 AnimChannelBase const * 23 AnimChannelBase const * 0 0 510 0 0 0 0 0 0 0 0 0 0
510 21 AnimChannelBase const 0 8832 21 AnimChannelBase const 21 AnimChannelBase const 0 0 445 0 0 0 0 0 0 0 0 0 0
511 35 AnimChannel< ACMatrixSwitchType > * 0 8576 35 AnimChannel< ACMatrixSwitchType > * 35 AnimChannel< ACMatrixSwitchType > * 0 0 446 0 0 0 0 0 0 0 0 0 0
512 11 LMatrix4f * 0 8576 11 LMatrix4f * 11 LMatrix4f * 0 0 513 0 0 0 0 0 0 0 0 0 0
513 9 LMatrix4f 0 2048 9 LMatrix4f 9 LMatrix4f 0 0 0 0 0 0 0 3 580 581 582 0 0 0 0 215
////////////////////////////////////////////////////////////////////
// Class : LMatrix4
// Description : This is a 4-by-4 transform matrix.
////////////////////////////////////////////////////////////////////
514 12 LVecBase3f * 0 8576 12 LVecBase3f * 12 LVecBase3f * 0 0 498 0 0 0 0 0 0 0 0 0 0
515 14 LQuaternionf * 0 8576 14 LQuaternionf * 14 LQuaternionf * 0 0 516 0 0 0 0 0 0 0 0 0 0
516 12 LQuaternionf 0 2048 12 LQuaternionf 12 LQuaternionf 0 0 0 0 0 0 0 0 0 0 0 0 719
// Filename: lquaternion_src.h
// Created by: frang (06Jun00)
//
////////////////////////////////////////////////////////////////////
//
// PANDA 3D SOFTWARE
// Copyright (c) Carnegie Mellon University. All rights reserved.
//
// All use of this software is subject to the terms of the revised BSD
// license. You should have received a copy of this license along
// with this source code in a file named "LICENSE."
//
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
// Class : FLOATNAME(LQuaternion)
// Description : This is the base quaternion class
////////////////////////////////////////////////////////////////////
517 41 AnimChannel< ACMatrixSwitchType > const * 0 8576 41 AnimChannel< ACMatrixSwitchType > const * 41 AnimChannel< ACMatrixSwitchType > const * 0 0 518 0 0 0 0 0 0 0 0 0 0
518 39 AnimChannel< ACMatrixSwitchType > const 0 8832 39 AnimChannel< ACMatrixSwitchType > const 39 AnimChannel< ACMatrixSwitchType > const 0 0 446 0 0 0 0 0 0 0 0 0 0
519 35 AnimChannel< ACScalarSwitchType > * 0 8576 35 AnimChannel< ACScalarSwitchType > * 35 AnimChannel< ACScalarSwitchType > * 0 0 447 0 0 0 0 0 0 0 0 0 0
520 41 AnimChannel< ACScalarSwitchType > const * 0 8576 41 AnimChannel< ACScalarSwitchType > const * 41 AnimChannel< ACScalarSwitchType > const * 0 0 521 0 0 0 0 0 0 0 0 0 0
521 39 AnimChannel< ACScalarSwitchType > const 0 8832 39 AnimChannel< ACScalarSwitchType > const 39 AnimChannel< ACScalarSwitchType > const 0 0 447 0 0 0 0 0 0 0 0 0 0
522 26 AnimChannelMatrixDynamic * 0 8576 26 AnimChannelMatrixDynamic * 26 AnimChannelMatrixDynamic * 0 0 448 0 0 0 0 0 0 0 0 0 0
523 17 LMatrix4f const * 0 8576 17 LMatrix4f const * 17 LMatrix4f const * 0 0 524 0 0 0 0 0 0 0 0 0 0
524 15 LMatrix4f const 0 8832 15 LMatrix4f const 15 LMatrix4f const 0 0 513 0 0 0 0 0 0 0 0 0 0
525 32 AnimChannelMatrixDynamic const * 0 8576 32 AnimChannelMatrixDynamic const * 32 AnimChannelMatrixDynamic const * 0 0 526 0 0 0 0 0 0 0 0 0 0
526 30 AnimChannelMatrixDynamic const 0 8832 30 AnimChannelMatrixDynamic const 30 AnimChannelMatrixDynamic const 0 0 448 0 0 0 0 0 0 0 0 0 0
527 27 AnimChannelMatrixXfmTable * 0 8576 27 AnimChannelMatrixXfmTable * 27 AnimChannelMatrixXfmTable * 0 0 449 0 0 0 0 0 0 0 0 0 0
528 4 char 0 8194 4 char 4 char 0 5 0 0 0 0 0 0 0 0 0 0 0
529 36 ConstPointerToArray< float > const * 0 8576 36 ConstPointerToArray< float > const * 36 ConstPointerToArray< float > const * 0 0 530 0 0 0 0 0 0 0 0 0 0
530 34 ConstPointerToArray< float > const 0 8832 34 ConstPointerToArray< float > const 34 ConstPointerToArray< float > const 0 0 531 0 0 0 0 0 0 0 0 0 0
531 10 CPTA_float 0 2048 28 ConstPointerToArray< float > 28 ConstPointerToArray< float > 0 0 0 0 0 0 0 0 0 0 0 0 0
532 33 AnimChannelMatrixXfmTable const * 0 8576 33 AnimChannelMatrixXfmTable const * 33 AnimChannelMatrixXfmTable const * 0 0 533 0 0 0 0 0 0 0 0 0 0
533 31 AnimChannelMatrixXfmTable const 0 8832 31 AnimChannelMatrixXfmTable const 31 AnimChannelMatrixXfmTable const 0 0 449 0 0 0 0 0 0 0 0 0 0
534 30 ConstPointerToArray< float > * 0 8576 30 ConstPointerToArray< float > * 30 ConstPointerToArray< float > * 0 0 531 0 0 0 0 0 0 0 0 0 0
535 26 AnimChannelScalarDynamic * 0 8576 26 AnimChannelScalarDynamic * 26 AnimChannelScalarDynamic * 0 0 450 0 0 0 0 0 0 0 0 0 0
536 24 AnimChannelScalarTable * 0 8576 24 AnimChannelScalarTable * 24 AnimChannelScalarTable * 0 0 451 0 0 0 0 0 0 0 0 0 0
537 30 AnimChannelScalarTable const * 0 8576 30 AnimChannelScalarTable const * 30 AnimChannelScalarTable const * 0 0 538 0 0 0 0 0 0 0 0 0 0
538 28 AnimChannelScalarTable const 0 8832 28 AnimChannelScalarTable const 28 AnimChannelScalarTable const 0 0 451 0 0 0 0 0 0 0 0 0 0
539 23 AnimControlCollection * 0 8576 23 AnimControlCollection * 23 AnimControlCollection * 0 0 452 0 0 0 0 0 0 0 0 0 0
540 29 AnimControlCollection const * 0 8576 29 AnimControlCollection const * 29 AnimControlCollection const * 0 0 541 0 0 0 0 0 0 0 0 0 0
541 27 AnimControlCollection const 0 8832 27 AnimControlCollection const 27 AnimControlCollection const 0 0 452 0 0 0 0 0 0 0 0 0 0
542 18 AnimPreloadTable * 0 8576 18 AnimPreloadTable * 18 AnimPreloadTable * 0 0 453 0 0 0 0 0 0 0 0 0 0
543 24 AnimPreloadTable const * 0 8576 24 AnimPreloadTable const * 24 AnimPreloadTable const * 0 0 544 0 0 0 0 0 0 0 0 0 0
544 22 AnimPreloadTable const 0 8832 22 AnimPreloadTable const 22 AnimPreloadTable const 0 0 453 0 0 0 0 0 0 0 0 0 0
545 12 PartSubset * 0 8576 12 PartSubset * 12 PartSubset * 0 0 455 0 0 0 0 0 0 0 0 0 0
546 18 PartSubset const * 0 8576 18 PartSubset const * 18 PartSubset const * 0 0 547 0 0 0 0 0 0 0 0 0 0
547 16 PartSubset const 0 8832 16 PartSubset const 16 PartSubset const 0 0 455 0 0 0 0 0 0 0 0 0 0
548 19 GlobPattern const * 0 8576 19 GlobPattern const * 19 GlobPattern const * 0 0 549 0 0 0 0 0 0 0 0 0 0
549 17 GlobPattern const 0 8832 17 GlobPattern const 17 GlobPattern const 0 0 550 0 0 0 0 0 0 0 0 0 0
550 11 GlobPattern 0 2048 11 GlobPattern 11 GlobPattern 0 0 0 0 0 0 0 0 0 0 0 0 859
////////////////////////////////////////////////////////////////////
// Class : GlobPattern
// Description : This class can be used to test for string matches
// against standard Unix-shell filename globbing
// conventions. It serves as a portable standin for the
// Posix fnmatch() call.
//
// A GlobPattern is given a pattern string, which can
// contain operators like *, ?, and []. Then it can be
// tested against any number of candidate strings; for
// each candidate, it will indicate whether the string
// matches the pattern or not. It can be used, for
// example, to scan a directory for all files matching a
// particular pattern.
////////////////////////////////////////////////////////////////////
551 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 552 0 0 0 0 0 0 0 0 0 0
552 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 553 0 0 0 0 0 0 0 0 0 0
553 8 Filename 0 2048 8 Filename 8 Filename 0 0 0 0 0 0 0 0 0 0 0 0 869
////////////////////////////////////////////////////////////////////
// Class : Filename
// Description : The name of a file, such as a texture file or an Egg
// file. Stores the full pathname, and includes
// functions for extracting out the directory prefix
// part and the file extension and stuff.
//
// A Filename is also aware of the mapping between the
// Unix-like filename convention we use internally, and
// the local OS's specific filename convention, and it
// knows how to perform basic OS-specific I/O, like
// testing for file existence and searching a
// searchpath, as well as the best way to open an
// fstream for reading or writing.
////////////////////////////////////////////////////////////////////
554 21 LoaderOptions const * 0 8576 21 LoaderOptions const * 21 LoaderOptions const * 0 0 555 0 0 0 0 0 0 0 0 0 0
555 19 LoaderOptions const 0 8832 19 LoaderOptions const 19 LoaderOptions const 0 0 556 0 0 0 0 0 0 0 0 0 0
556 13 LoaderOptions 0 2048 13 LoaderOptions 13 LoaderOptions 0 0 0 0 0 0 0 0 0 0 0 0 257
////////////////////////////////////////////////////////////////////
// Class : LoaderOptions
// Description : Specifies parameters that may be passed to the
// loader.
////////////////////////////////////////////////////////////////////
557 8 Loader * 0 8576 8 Loader * 8 Loader * 0 0 558 0 0 0 0 0 0 0 0 0 0
558 6 Loader 0 2048 6 Loader 6 Loader 0 0 0 0 0 0 0 0 0 0 0 0 819
////////////////////////////////////////////////////////////////////
// Class : Loader
// Description : A convenient class for loading models from disk, in
// bam or egg format (or any of a number of other
// formats implemented by a LoaderFileType, such as
// ptloader).
//
// This class supports synchronous as well as
// asynchronous loading. In asynchronous loading, the
// model is loaded in the background by a thread, and an
// event will be generated when the model is available.
// If threading is not available, the asynchronous
// loading interface may be used, but it loads
// synchronously.
////////////////////////////////////////////////////////////////////
559 17 BindAnimRequest * 0 8576 17 BindAnimRequest * 17 BindAnimRequest * 0 0 456 0 0 0 0 0 0 0 0 0 0
560 18 PartBundle const * 0 8576 18 PartBundle const * 18 PartBundle const * 0 0 561 0 0 0 0 0 0 0 0 0 0
561 16 PartBundle const 0 8832 16 PartBundle const 16 PartBundle const 0 0 458 0 0 0 0 0 0 0 0 0 0
562 16 PartBundleNode * 0 8576 16 PartBundleNode * 16 PartBundleNode * 0 0 467 0 0 0 0 0 0 0 0 0 0
563 22 MovingPartBase const * 0 8576 22 MovingPartBase const * 22 MovingPartBase const * 0 0 564 0 0 0 0 0 0 0 0 0 0
564 20 MovingPartBase const 0 8832 20 MovingPartBase const 20 MovingPartBase const 0 0 460 0 0 0 0 0 0 0 0 0 0
565 40 MovingPart< ACMatrixSwitchType > const * 0 8576 40 MovingPart< ACMatrixSwitchType > const * 40 MovingPart< ACMatrixSwitchType > const * 0 0 566 0 0 0 0 0 0 0 0 0 0
566 38 MovingPart< ACMatrixSwitchType > const 0 8832 38 MovingPart< ACMatrixSwitchType > const 38 MovingPart< ACMatrixSwitchType > const 0 0 462 0 0 0 0 0 0 0 0 0 0
567 40 MovingPart< ACScalarSwitchType > const * 0 8576 40 MovingPart< ACScalarSwitchType > const * 40 MovingPart< ACScalarSwitchType > const * 0 0 568 0 0 0 0 0 0 0 0 0 0
568 38 MovingPart< ACScalarSwitchType > const 0 8832 38 MovingPart< ACScalarSwitchType > const 38 MovingPart< ACScalarSwitchType > const 0 0 464 0 0 0 0 0 0 0 0 0 0
569 18 PartBundleHandle * 0 8576 18 PartBundleHandle * 18 PartBundleHandle * 0 0 465 0 0 0 0 0 0 0 0 0 0
570 22 PartBundleNode const * 0 8576 22 PartBundleNode const * 22 PartBundleNode const * 0 0 571 0 0 0 0 0 0 0 0 0 0
571 20 PartBundleNode const 0 8832 20 PartBundleNode const 20 PartBundleNode const 0 0 467 0 0 0 0 0 0 0 0 0 0
572 6 string 0 2048 20 basic_string< char > 20 basic_string< char > 0 0 0 0 0 0 0 0 0 0 0 0 0
0
0
10
573 0 0 1 12 get_children 16 get_num_children 9 get_child
574 0 0 32 12 get_children 16 get_num_children 9 get_child
575 0 0 132 9 get_anims 13 get_num_anims 8 get_anim
576 0 0 132 14 get_anim_names 13 get_num_anims 13 get_anim_name
577 0 0 188 9 get_nodes 13 get_num_nodes 8 get_node
578 0 0 247 11 get_bundles 15 get_num_bundles 10 get_bundle
579 0 0 247 18 get_bundle_handles 15 get_num_bundles 17 get_bundle_handle
580 0 0 366 8 get_rows 4 size 7 get_row
581 0 0 366 8 get_cols 4 size 7 get_col
582 0 0 366 9 get_row3s 4 size 8 get_row3