933 lines
38 KiB
Text
933 lines
38 KiB
Text
1565844201
|
|
3 3
|
|
9 libp3char 4 uMZI 12 panda3d.core
|
|
44
|
|
47 14 CharacterJoint 0 4 91 30 CharacterJoint::CharacterJoint 0 1 1 57
|
|
/**
|
|
* For internal use only.
|
|
*/
|
|
|
|
/**
|
|
*
|
|
*/
|
|
|
|
/**
|
|
*
|
|
*/
|
|
155
|
|
explicit CharacterJoint::CharacterJoint(Character *character, PartBundle *root, PartGroup *parent, std::string const &name, LMatrix4 const &default_value);
|
|
|
|
48 17 add_net_transform 0 4 91 33 CharacterJoint::add_net_transform 0 1 2 334
|
|
/**
|
|
* Adds the indicated node to the list of nodes that will be updated each
|
|
* frame with the joint's net transform from the root. Returns true if the
|
|
* node is successfully added, false if it had already been added.
|
|
*
|
|
* A CharacterJointEffect for this joint's Character will automatically be
|
|
* added to the specified node.
|
|
*/
|
|
56
|
|
bool CharacterJoint::add_net_transform(PandaNode *node);
|
|
|
|
49 20 remove_net_transform 0 4 91 36 CharacterJoint::remove_net_transform 0 1 3 333
|
|
/**
|
|
* Removes the indicated node from the list of nodes that will be updated each
|
|
* frame with the joint's net transform from the root. Returns true if the
|
|
* node is successfully removed, false if it was not on the list.
|
|
*
|
|
* If the node has a CharacterJointEffect that matches this joint's Character,
|
|
* it will be cleared.
|
|
*/
|
|
59
|
|
bool CharacterJoint::remove_net_transform(PandaNode *node);
|
|
|
|
50 17 has_net_transform 0 4 91 33 CharacterJoint::has_net_transform 0 1 4 157
|
|
/**
|
|
* Returns true if the node is on the list of nodes that will be updated each
|
|
* frame with the joint's net transform from the root, false otherwise.
|
|
*/
|
|
62
|
|
bool CharacterJoint::has_net_transform(PandaNode *node) const;
|
|
|
|
51 20 clear_net_transforms 0 4 91 36 CharacterJoint::clear_net_transforms 0 1 5 132
|
|
/**
|
|
* Removes all nodes from the list of nodes that will be updated each frame
|
|
* with the joint's net transform from the root.
|
|
*/
|
|
48
|
|
void CharacterJoint::clear_net_transforms(void);
|
|
|
|
52 18 get_net_transforms 0 4 91 34 CharacterJoint::get_net_transforms 0 1 6 183
|
|
/**
|
|
* Returns a list of the net transforms set for this node. Note that this
|
|
* returns a list of NodePaths, even though the net transforms are actually a
|
|
* list of PandaNodes.
|
|
*/
|
|
60
|
|
NodePathCollection CharacterJoint::get_net_transforms(void);
|
|
|
|
53 19 add_local_transform 0 4 91 35 CharacterJoint::add_local_transform 0 1 7 539
|
|
/**
|
|
* Adds the indicated node to the list of nodes that will be updated each
|
|
* frame with the joint's local transform from its parent. Returns true if
|
|
* the node is successfully added, false if it had already been added.
|
|
*
|
|
* The Character pointer should be the Character object that owns this joint;
|
|
* this will be used to create a CharacterJointEffect for this node. If it is
|
|
* NULL, no such effect will be created.
|
|
*
|
|
* A CharacterJointEffect for this joint's Character will automatically be
|
|
* added to the specified node.
|
|
*/
|
|
58
|
|
bool CharacterJoint::add_local_transform(PandaNode *node);
|
|
|
|
54 22 remove_local_transform 0 4 91 38 CharacterJoint::remove_local_transform 0 1 8 337
|
|
/**
|
|
* Removes the indicated node from the list of nodes that will be updated each
|
|
* frame with the joint's local transform from its parent. Returns true if
|
|
* the node is successfully removed, false if it was not on the list.
|
|
*
|
|
* If the node has a CharacterJointEffect that matches this joint's Character,
|
|
* it will be cleared.
|
|
*/
|
|
61
|
|
bool CharacterJoint::remove_local_transform(PandaNode *node);
|
|
|
|
55 19 has_local_transform 0 4 91 35 CharacterJoint::has_local_transform 0 1 9 161
|
|
/**
|
|
* Returns true if the node is on the list of nodes that will be updated each
|
|
* frame with the joint's local transform from its parent, false otherwise.
|
|
*/
|
|
64
|
|
bool CharacterJoint::has_local_transform(PandaNode *node) const;
|
|
|
|
56 22 clear_local_transforms 0 4 91 38 CharacterJoint::clear_local_transforms 0 1 10 136
|
|
/**
|
|
* Removes all nodes from the list of nodes that will be updated each frame
|
|
* with the joint's local transform from its parent.
|
|
*/
|
|
50
|
|
void CharacterJoint::clear_local_transforms(void);
|
|
|
|
57 20 get_local_transforms 0 4 91 36 CharacterJoint::get_local_transforms 0 1 11 187
|
|
/**
|
|
* Returns a list of the local transforms set for this node. Note that this
|
|
* returns a list of NodePaths, even though the local transforms are actually
|
|
* a list of PandaNodes.
|
|
*/
|
|
62
|
|
NodePathCollection CharacterJoint::get_local_transforms(void);
|
|
|
|
58 13 get_transform 0 4 91 29 CharacterJoint::get_transform 0 2 12 13 128
|
|
/**
|
|
* Returns the transform matrix of the joint
|
|
*/
|
|
|
|
/**
|
|
* Copies the joint's current transform into the indicated matrix.
|
|
*/
|
|
128
|
|
void CharacterJoint::get_transform(LMatrix4 &transform) const;
|
|
inline LMatrix4 const &CharacterJoint::get_transform(void) const;
|
|
|
|
59 19 get_transform_state 0 4 91 35 CharacterJoint::get_transform_state 0 1 14 0
|
|
81
|
|
ConstPointerTo< TransformState > CharacterJoint::get_transform_state(void) const;
|
|
|
|
60 17 get_net_transform 0 4 91 33 CharacterJoint::get_net_transform 0 1 15 139
|
|
/**
|
|
* Copies the joint's current net transform (composed from the root of the
|
|
* character joint hierarchy) into the indicated matrix.
|
|
*/
|
|
66
|
|
void CharacterJoint::get_net_transform(LMatrix4 &transform) const;
|
|
|
|
61 13 get_character 0 4 91 29 CharacterJoint::get_character 0 1 16 54
|
|
/**
|
|
* Returns the Character that owns this joint.
|
|
*/
|
|
53
|
|
Character *CharacterJoint::get_character(void) const;
|
|
|
|
62 14 get_class_type 0 4 91 30 CharacterJoint::get_class_type 0 1 17 0
|
|
55
|
|
static TypeHandle CharacterJoint::get_class_type(void);
|
|
|
|
63 15 CharacterSlider 0 4 93 32 CharacterSlider::CharacterSlider 0 1 18 57
|
|
/**
|
|
* For internal use only.
|
|
*/
|
|
|
|
/**
|
|
*
|
|
*/
|
|
|
|
/**
|
|
*
|
|
*/
|
|
86
|
|
explicit CharacterSlider::CharacterSlider(PartGroup *parent, std::string const &name);
|
|
|
|
64 14 get_class_type 0 4 93 31 CharacterSlider::get_class_type 0 1 19 0
|
|
56
|
|
static TypeHandle CharacterSlider::get_class_type(void);
|
|
|
|
65 21 CharacterVertexSlider 0 4 95 44 CharacterVertexSlider::CharacterVertexSlider 0 1 20 216
|
|
/**
|
|
* Constructs an invalid object; used only by the bam loader.
|
|
*/
|
|
|
|
/**
|
|
* Constructs a new object that converts vertices from the indicated joint's
|
|
* coordinate space, into the other indicated joint's space.
|
|
*/
|
|
75
|
|
CharacterVertexSlider::CharacterVertexSlider(CharacterSlider *char_slider);
|
|
|
|
66 15 get_char_slider 0 4 95 38 CharacterVertexSlider::get_char_slider 0 1 21 96
|
|
/**
|
|
* Returns the CharacterSlider object for which this object returns the slider
|
|
* value.
|
|
*/
|
|
81
|
|
inline CharacterSlider const *CharacterVertexSlider::get_char_slider(void) const;
|
|
|
|
67 14 get_class_type 0 4 95 37 CharacterVertexSlider::get_class_type 0 1 22 0
|
|
62
|
|
static TypeHandle CharacterVertexSlider::get_class_type(void);
|
|
|
|
68 20 JointVertexTransform 0 4 97 42 JointVertexTransform::JointVertexTransform 0 1 23 216
|
|
/**
|
|
* Constructs an invalid object; used only by the bam loader.
|
|
*/
|
|
|
|
/**
|
|
* Constructs a new object that converts vertices from the indicated joint's
|
|
* coordinate space, into the other indicated joint's space.
|
|
*/
|
|
66
|
|
JointVertexTransform::JointVertexTransform(CharacterJoint *joint);
|
|
|
|
69 9 get_joint 0 4 97 31 JointVertexTransform::get_joint 0 1 24 73
|
|
/**
|
|
* Returns the joint for which this object returns the transform.
|
|
*/
|
|
73
|
|
inline CharacterJoint const *JointVertexTransform::get_joint(void) const;
|
|
|
|
70 14 get_class_type 0 4 97 36 JointVertexTransform::get_class_type 0 1 25 0
|
|
61
|
|
static TypeHandle JointVertexTransform::get_class_type(void);
|
|
|
|
71 9 Character 0 4 99 20 Character::Character 0 2 26 27 78
|
|
/**
|
|
* Use make_copy() or copy_subgraph() to copy a Character.
|
|
*/
|
|
|
|
/**
|
|
*
|
|
*/
|
|
113
|
|
explicit Character::Character(std::string const &name);
|
|
inline Character::Character(Character const &) = default;
|
|
|
|
72 10 get_bundle 0 4 99 21 Character::get_bundle 0 1 28 10
|
|
/**
|
|
*
|
|
*/
|
|
64
|
|
inline CharacterJointBundle *Character::get_bundle(int i) const;
|
|
|
|
73 13 merge_bundles 0 4 99 24 Character::merge_bundles 0 2 29 30 1325
|
|
/**
|
|
* Merges old_bundle with new_bundle. old_bundle must be one of the
|
|
* PartBundles within this node. At the end of this call, the old_bundle
|
|
* pointer within this node will be replaced with the new_bundle pointer, and
|
|
* all geometry within this node will be updated to reference new_bundle.
|
|
*
|
|
* This method is deprecated. Use the newer version of this method, below.
|
|
*/
|
|
|
|
/**
|
|
* Merges old_bundle_handle->get_bundle() with new_bundle. old_bundle_handle
|
|
* must be one of the PartBundleHandle within this node. At the end of this
|
|
* call, the bundle pointer within the old_bundle_handle will be replaced with
|
|
* that within the new_bundle_handle pointer, and all geometry within this
|
|
* node will be updated to reference new_bundle.
|
|
*
|
|
* Normally, this is called when the two bundles have the same, or nearly the
|
|
* same, hierarchies. In this case, new_bundle will simply be assigned over
|
|
* the old_bundle position. However, if any joints are present in one bundle
|
|
* or the other, new_bundle will be modified to contain the union of all
|
|
* joints.
|
|
*
|
|
* The geometry below this node is also updated to reference new_bundle,
|
|
* instead of the original old_bundle.
|
|
*
|
|
* This method is intended to unify two different models that share a common
|
|
* skeleton, for instance, different LOD's of the same model.
|
|
*/
|
|
187
|
|
void Character::merge_bundles(PartBundle *old_bundle, PartBundle *other_bundle);
|
|
void Character::merge_bundles(PartBundleHandle *old_bundle_handle, PartBundleHandle *other_bundle_handle);
|
|
|
|
74 17 set_lod_animation 0 4 99 28 Character::set_lod_animation 0 1 31 1171
|
|
/**
|
|
* Activates a special mode in which the character animates less frequently as
|
|
* it gets further from the camera. This is intended as a simple optimization
|
|
* to minimize the effort of computing animation for lots of characters that
|
|
* may not necessarily be very important to animate every frame.
|
|
*
|
|
* If the character is closer to the camera than near_distance, then it is
|
|
* animated its normal rate, every frame. If the character is exactly
|
|
* far_distance away, it is animated only every delay_factor seconds (which
|
|
* should be a number greater than 0). If the character is between
|
|
* near_distance and far_distance, its animation rate is linearly interpolated
|
|
* according to its distance between the two. The interpolation function
|
|
* continues beyond far_distance, so that the character is animated
|
|
* increasingly less frequently as it gets farther away.
|
|
*
|
|
* The distance calculations are made from center, which is a fixed point
|
|
* relative to the character node, to the camera's lod center or cull center
|
|
* node (or to the camera node itself).
|
|
*
|
|
* If multiple cameras are viewing the character in any given frame, the
|
|
* closest one counts.
|
|
*/
|
|
136
|
|
void Character::set_lod_animation(LPoint3 const ¢er, PN_stdfloat far_distance, PN_stdfloat near_distance, PN_stdfloat delay_factor);
|
|
|
|
75 19 clear_lod_animation 0 4 99 30 Character::clear_lod_animation 0 1 32 172
|
|
/**
|
|
* Undoes the effect of a recent call to set_lod_animation(). Henceforth, the
|
|
* character will animate every frame, regardless of its distance from the
|
|
* camera.
|
|
*/
|
|
42
|
|
void Character::clear_lod_animation(void);
|
|
|
|
76 10 find_joint 0 4 99 21 Character::find_joint 0 1 33 174
|
|
/**
|
|
* Returns a pointer to the joint with the given name, if there is such a
|
|
* joint, or NULL if there is no such joint. This will not return a pointer
|
|
* to a slider.
|
|
*/
|
|
69
|
|
CharacterJoint *Character::find_joint(std::string const &name) const;
|
|
|
|
77 11 find_slider 0 4 99 22 Character::find_slider 0 1 34 176
|
|
/**
|
|
* Returns a pointer to the slider with the given name, if there is such a
|
|
* slider, or NULL if there is no such slider. This will not return a pointer
|
|
* to a joint.
|
|
*/
|
|
71
|
|
CharacterSlider *Character::find_slider(std::string const &name) const;
|
|
|
|
78 11 write_parts 0 4 99 22 Character::write_parts 0 1 35 129
|
|
/**
|
|
* Writes a list of the Character's joints and sliders, in their hierchical
|
|
* structure, to the indicated output stream.
|
|
*/
|
|
53
|
|
void Character::write_parts(std::ostream &out) const;
|
|
|
|
79 17 write_part_values 0 4 99 28 Character::write_part_values 0 1 36 166
|
|
/**
|
|
* Writes a list of the Character's joints and sliders, along with each
|
|
* current position, in their hierchical structure, to the indicated output
|
|
* stream.
|
|
*/
|
|
59
|
|
void Character::write_part_values(std::ostream &out) const;
|
|
|
|
80 13 update_to_now 0 4 99 24 Character::update_to_now 0 1 37 326
|
|
/**
|
|
* Advances the character's frame to the current time, and then calls
|
|
* update(). This can be used by show code to force an update of the
|
|
* character's position to the current frame, regardless of whether the
|
|
* character is currently onscreen and animating.
|
|
*
|
|
* This method is deprecated. Call update() instead.
|
|
*/
|
|
36
|
|
void Character::update_to_now(void);
|
|
|
|
81 6 update 0 4 99 17 Character::update 0 1 38 182
|
|
/**
|
|
* Recalculates the Character's joints and vertices for the current frame.
|
|
* Normally this is performed automatically during the render and need not be
|
|
* called explicitly.
|
|
*/
|
|
29
|
|
void Character::update(void);
|
|
|
|
82 12 force_update 0 4 99 23 Character::force_update 0 1 39 74
|
|
/**
|
|
* Recalculates the character even if we think it doesn't need it.
|
|
*/
|
|
35
|
|
void Character::force_update(void);
|
|
|
|
83 14 get_class_type 0 4 99 25 Character::get_class_type 0 1 40 0
|
|
50
|
|
static TypeHandle Character::get_class_type(void);
|
|
|
|
84 20 CharacterJointBundle 0 4 101 42 CharacterJointBundle::CharacterJointBundle 0 1 41 232
|
|
/**
|
|
* Normally, you'd use make_copy() or copy_subgraph() to make a copy of this.
|
|
*/
|
|
|
|
/**
|
|
* Normally, there is no need to create a CharacterJointBundle directly. The
|
|
* Character node will automatically create one for itself.
|
|
*/
|
|
82
|
|
explicit CharacterJointBundle::CharacterJointBundle(std::string const &name = "");
|
|
|
|
85 8 get_node 0 4 101 30 CharacterJointBundle::get_node 0 1 42 69
|
|
/**
|
|
* Returns the nth Character associated with this PartBundle.
|
|
*/
|
|
62
|
|
inline Character *CharacterJointBundle::get_node(int n) const;
|
|
|
|
86 14 get_class_type 0 4 101 36 CharacterJointBundle::get_class_type 0 1 43 0
|
|
61
|
|
static TypeHandle CharacterJointBundle::get_class_type(void);
|
|
|
|
87 4 make 0 4 103 26 CharacterJointEffect::make 0 1 44 251
|
|
/**
|
|
* Constructs a new CharacterJointEffect object that references the indicated
|
|
* character. When a relative get_transform() is called on the node that
|
|
* contains the CharacterJointEffect, it will implicitly call
|
|
* character->update() first.
|
|
*/
|
|
87
|
|
static ConstPointerTo< RenderEffect > CharacterJointEffect::make(Character *character);
|
|
|
|
88 13 get_character 0 4 103 35 CharacterJointEffect::get_character 0 1 45 158
|
|
/**
|
|
* Returns the Character that will get update() called on it when this node's
|
|
* relative transform is queried, or NULL if there is no such character.
|
|
*/
|
|
78
|
|
inline PointerTo< Character > CharacterJointEffect::get_character(void) const;
|
|
|
|
89 14 get_class_type 0 4 103 36 CharacterJointEffect::get_class_type 0 1 46 0
|
|
61
|
|
static TypeHandle CharacterJointEffect::get_class_type(void);
|
|
|
|
90 21 ~CharacterJointEffect 0 4 103 43 CharacterJointEffect::~CharacterJointEffect 0 0 0
|
|
50
|
|
CharacterJointEffect::~CharacterJointEffect(void);
|
|
|
|
46
|
|
1 0 0 7 3 114 0 0 10 /**
|
|
*
|
|
*/ 5 9 character 1 105 4 root 1 106 6 parent 1 107 4 name 1 109 13 default_value 1 110
|
|
2 0 0 6 4 117 0 0 334 /**
|
|
* Adds the indicated node to the list of nodes that will be updated each
|
|
* frame with the joint's net transform from the root. Returns true if the
|
|
* node is successfully added, false if it had already been added.
|
|
*
|
|
* A CharacterJointEffect for this joint's Character will automatically be
|
|
* added to the specified node.
|
|
*/ 2 4 this 3 114 4 node 1 115
|
|
3 0 0 6 5 117 0 0 333 /**
|
|
* Removes the indicated node from the list of nodes that will be updated each
|
|
* frame with the joint's net transform from the root. Returns true if the
|
|
* node is successfully removed, false if it was not on the list.
|
|
*
|
|
* If the node has a CharacterJointEffect that matches this joint's Character,
|
|
* it will be cleared.
|
|
*/ 2 4 this 3 114 4 node 1 115
|
|
4 0 0 6 6 117 0 0 157 /**
|
|
* Returns true if the node is on the list of nodes that will be updated each
|
|
* frame with the joint's net transform from the root, false otherwise.
|
|
*/ 2 4 this 3 118 4 node 1 115
|
|
5 0 0 4 7 120 0 0 132 /**
|
|
* Removes all nodes from the list of nodes that will be updated each frame
|
|
* with the joint's net transform from the root.
|
|
*/ 1 4 this 3 114
|
|
6 0 0 7 8 122 0 0 183 /**
|
|
* Returns a list of the net transforms set for this node. Note that this
|
|
* returns a list of NodePaths, even though the net transforms are actually a
|
|
* list of PandaNodes.
|
|
*/ 1 4 this 3 114
|
|
7 0 0 6 9 117 0 0 539 /**
|
|
* Adds the indicated node to the list of nodes that will be updated each
|
|
* frame with the joint's local transform from its parent. Returns true if
|
|
* the node is successfully added, false if it had already been added.
|
|
*
|
|
* The Character pointer should be the Character object that owns this joint;
|
|
* this will be used to create a CharacterJointEffect for this node. If it is
|
|
* NULL, no such effect will be created.
|
|
*
|
|
* A CharacterJointEffect for this joint's Character will automatically be
|
|
* added to the specified node.
|
|
*/ 2 4 this 3 114 4 node 1 115
|
|
8 0 0 6 10 117 0 0 337 /**
|
|
* Removes the indicated node from the list of nodes that will be updated each
|
|
* frame with the joint's local transform from its parent. Returns true if
|
|
* the node is successfully removed, false if it was not on the list.
|
|
*
|
|
* If the node has a CharacterJointEffect that matches this joint's Character,
|
|
* it will be cleared.
|
|
*/ 2 4 this 3 114 4 node 1 115
|
|
9 0 0 6 11 117 0 0 161 /**
|
|
* Returns true if the node is on the list of nodes that will be updated each
|
|
* frame with the joint's local transform from its parent, false otherwise.
|
|
*/ 2 4 this 3 118 4 node 1 115
|
|
10 0 0 4 12 120 0 0 136 /**
|
|
* Removes all nodes from the list of nodes that will be updated each frame
|
|
* with the joint's local transform from its parent.
|
|
*/ 1 4 this 3 114
|
|
11 0 0 7 13 122 0 0 187 /**
|
|
* Returns a list of the local transforms set for this node. Note that this
|
|
* returns a list of NodePaths, even though the local transforms are actually
|
|
* a list of PandaNodes.
|
|
*/ 1 4 this 3 114
|
|
12 0 0 6 14 110 0 0 52 /**
|
|
* Returns the transform matrix of the joint
|
|
*/ 1 4 this 3 118
|
|
13 0 0 4 14 120 0 0 74 /**
|
|
* Copies the joint's current transform into the indicated matrix.
|
|
*/ 2 4 this 3 118 9 transform 1 123
|
|
14 0 0 7 15 126 0 0 0 1 4 this 3 118
|
|
15 0 0 4 16 120 0 0 139 /**
|
|
* Copies the joint's current net transform (composed from the root of the
|
|
* character joint hierarchy) into the indicated matrix.
|
|
*/ 2 4 this 3 118 9 transform 1 123
|
|
16 0 0 7 17 105 0 0 54 /**
|
|
* Returns the Character that owns this joint.
|
|
*/ 1 4 this 3 118
|
|
17 0 0 7 18 128 0 0 0 0
|
|
18 0 0 7 21 129 0 0 10 /**
|
|
*
|
|
*/ 2 6 parent 1 107 4 name 1 109
|
|
19 0 0 7 22 128 0 0 0 0
|
|
20 0 0 7 25 130 0 0 145 /**
|
|
* Constructs a new object that converts vertices from the indicated joint's
|
|
* coordinate space, into the other indicated joint's space.
|
|
*/ 1 11 char_slider 1 129
|
|
21 0 0 7 26 134 0 0 96 /**
|
|
* Returns the CharacterSlider object for which this object returns the slider
|
|
* value.
|
|
*/ 1 4 this 3 132
|
|
22 0 0 7 27 128 0 0 0 0
|
|
23 0 0 7 30 135 0 0 145 /**
|
|
* Constructs a new object that converts vertices from the indicated joint's
|
|
* coordinate space, into the other indicated joint's space.
|
|
*/ 1 5 joint 1 114
|
|
24 0 0 7 31 118 0 0 73 /**
|
|
* Returns the joint for which this object returns the transform.
|
|
*/ 1 4 this 3 136
|
|
25 0 0 7 32 128 0 0 0 0
|
|
26 0 0 7 35 105 0 0 0 1 6 param0 0 138
|
|
27 0 0 7 35 105 0 0 10 /**
|
|
*
|
|
*/ 1 4 name 1 109
|
|
28 0 0 7 36 141 0 0 10 /**
|
|
*
|
|
*/ 2 4 this 3 138 1 i 1 140
|
|
29 0 0 4 37 120 0 0 381 /**
|
|
* Merges old_bundle with new_bundle. old_bundle must be one of the
|
|
* PartBundles within this node. At the end of this call, the old_bundle
|
|
* pointer within this node will be replaced with the new_bundle pointer, and
|
|
* all geometry within this node will be updated to reference new_bundle.
|
|
*
|
|
* This method is deprecated. Use the newer version of this method, below.
|
|
*/ 3 4 this 3 105 10 old_bundle 1 106 12 other_bundle 1 106
|
|
30 0 0 4 37 120 0 0 942 /**
|
|
* Merges old_bundle_handle->get_bundle() with new_bundle. old_bundle_handle
|
|
* must be one of the PartBundleHandle within this node. At the end of this
|
|
* call, the bundle pointer within the old_bundle_handle will be replaced with
|
|
* that within the new_bundle_handle pointer, and all geometry within this
|
|
* node will be updated to reference new_bundle.
|
|
*
|
|
* Normally, this is called when the two bundles have the same, or nearly the
|
|
* same, hierarchies. In this case, new_bundle will simply be assigned over
|
|
* the old_bundle position. However, if any joints are present in one bundle
|
|
* or the other, new_bundle will be modified to contain the union of all
|
|
* joints.
|
|
*
|
|
* The geometry below this node is also updated to reference new_bundle,
|
|
* instead of the original old_bundle.
|
|
*
|
|
* This method is intended to unify two different models that share a common
|
|
* skeleton, for instance, different LOD's of the same model.
|
|
*/ 3 4 this 3 105 17 old_bundle_handle 1 142 19 other_bundle_handle 1 142
|
|
31 0 0 4 38 120 0 0 1171 /**
|
|
* Activates a special mode in which the character animates less frequently as
|
|
* it gets further from the camera. This is intended as a simple optimization
|
|
* to minimize the effort of computing animation for lots of characters that
|
|
* may not necessarily be very important to animate every frame.
|
|
*
|
|
* If the character is closer to the camera than near_distance, then it is
|
|
* animated its normal rate, every frame. If the character is exactly
|
|
* far_distance away, it is animated only every delay_factor seconds (which
|
|
* should be a number greater than 0). If the character is between
|
|
* near_distance and far_distance, its animation rate is linearly interpolated
|
|
* according to its distance between the two. The interpolation function
|
|
* continues beyond far_distance, so that the character is animated
|
|
* increasingly less frequently as it gets farther away.
|
|
*
|
|
* The distance calculations are made from center, which is a fixed point
|
|
* relative to the character node, to the camera's lod center or cull center
|
|
* node (or to the camera node itself).
|
|
*
|
|
* If multiple cameras are viewing the character in any given frame, the
|
|
* closest one counts.
|
|
*/ 5 4 this 3 105 6 center 1 144 12 far_distance 1 148 13 near_distance 1 148 12 delay_factor 1 148
|
|
32 0 0 4 39 120 0 0 172 /**
|
|
* Undoes the effect of a recent call to set_lod_animation(). Henceforth, the
|
|
* character will animate every frame, regardless of its distance from the
|
|
* camera.
|
|
*/ 1 4 this 3 105
|
|
33 0 0 7 40 114 0 0 174 /**
|
|
* Returns a pointer to the joint with the given name, if there is such a
|
|
* joint, or NULL if there is no such joint. This will not return a pointer
|
|
* to a slider.
|
|
*/ 2 4 this 3 138 4 name 1 109
|
|
34 0 0 7 41 129 0 0 176 /**
|
|
* Returns a pointer to the slider with the given name, if there is such a
|
|
* slider, or NULL if there is no such slider. This will not return a pointer
|
|
* to a joint.
|
|
*/ 2 4 this 3 138 4 name 1 109
|
|
35 0 0 4 42 120 0 0 129 /**
|
|
* Writes a list of the Character's joints and sliders, in their hierchical
|
|
* structure, to the indicated output stream.
|
|
*/ 2 4 this 3 138 3 out 1 150
|
|
36 0 0 4 43 120 0 0 166 /**
|
|
* Writes a list of the Character's joints and sliders, along with each
|
|
* current position, in their hierchical structure, to the indicated output
|
|
* stream.
|
|
*/ 2 4 this 3 138 3 out 1 150
|
|
37 0 0 4 44 120 0 0 326 /**
|
|
* Advances the character's frame to the current time, and then calls
|
|
* update(). This can be used by show code to force an update of the
|
|
* character's position to the current frame, regardless of whether the
|
|
* character is currently onscreen and animating.
|
|
*
|
|
* This method is deprecated. Call update() instead.
|
|
*/ 1 4 this 3 105
|
|
38 0 0 4 45 120 0 0 182 /**
|
|
* Recalculates the Character's joints and vertices for the current frame.
|
|
* Normally this is performed automatically during the render and need not be
|
|
* called explicitly.
|
|
*/ 1 4 this 3 105
|
|
39 0 0 4 46 120 0 0 74 /**
|
|
* Recalculates the character even if we think it doesn't need it.
|
|
*/ 1 4 this 3 105
|
|
40 0 0 7 47 128 0 0 0 0
|
|
41 0 0 7 50 141 0 0 145 /**
|
|
* Normally, there is no need to create a CharacterJointBundle directly. The
|
|
* Character node will automatically create one for itself.
|
|
*/ 1 4 name 1 109
|
|
42 0 0 7 51 105 0 0 69 /**
|
|
* Returns the nth Character associated with this PartBundle.
|
|
*/ 2 4 this 3 152 1 n 1 140
|
|
43 0 0 7 52 128 0 0 0 0
|
|
44 0 0 7 55 155 0 0 251 /**
|
|
* Constructs a new CharacterJointEffect object that references the indicated
|
|
* character. When a relative get_transform() is called on the node that
|
|
* contains the CharacterJointEffect, it will implicitly call
|
|
* character->update() first.
|
|
*/ 1 9 character 1 105
|
|
45 0 0 7 56 105 0 0 158 /**
|
|
* Returns the Character that will get update() called on it when this node's
|
|
* relative transform is queried, or NULL if there is no such character.
|
|
*/ 1 4 this 3 156
|
|
46 0 0 7 57 128 0 0 0 0
|
|
67
|
|
91 14 CharacterJoint 0 75777 14 CharacterJoint 14 CharacterJoint 0 0 0 1 47 0 0 15 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 0 0 1 0 92 0 0 0 0 111
|
|
/**
|
|
* This represents one joint of the character's animation, containing an
|
|
* animating transform matrix.
|
|
*/
|
|
|
|
92 16 MovingPartMatrix 0 2048 16 MovingPartMatrix 16 MovingPartMatrix 0 0 0 0 0 0 0 0 0 0 0 0 84
|
|
/**
|
|
* This is a particular kind of MovingPart that accepts a matrix each frame.
|
|
*/
|
|
|
|
93 15 CharacterSlider 0 75777 15 CharacterSlider 15 CharacterSlider 0 0 0 1 63 0 0 1 64 0 0 1 0 94 0 0 0 0 215
|
|
/**
|
|
* This is a morph slider within the character. It's simply a single
|
|
* floating-point value that animates generally between 0 and 1, that controls
|
|
* the effects of one or more morphs within the character.
|
|
*/
|
|
|
|
94 16 MovingPartScalar 0 2048 16 MovingPartScalar 16 MovingPartScalar 0 0 0 0 0 0 0 0 0 0 0 0 84
|
|
/**
|
|
* This is a particular kind of MovingPart that accepts a scalar each frame.
|
|
*/
|
|
|
|
95 21 CharacterVertexSlider 0 75777 21 CharacterVertexSlider 21 CharacterVertexSlider 0 0 0 1 65 0 0 2 66 67 0 0 1 0 96 0 0 0 0 137
|
|
/**
|
|
* This is a specialization on VertexSlider that returns the slider value
|
|
* associated with a particular CharacterSlider object.
|
|
*/
|
|
|
|
96 12 VertexSlider 0 2048 12 VertexSlider 12 VertexSlider 0 0 0 0 0 0 0 0 0 0 0 0 343
|
|
/**
|
|
* This is an abstract base class that retains some slider value, which is a
|
|
* linear value that typically ranges from 0.0 to 1.0, and is used to control
|
|
* the animation of morphs (blend shapes).
|
|
*
|
|
* It is similar to VertexTransform, which keeps a full 4x4 transform matrix,
|
|
* but the VertexSlider only keeps a single float value.
|
|
*/
|
|
|
|
97 20 JointVertexTransform 0 75777 20 JointVertexTransform 20 JointVertexTransform 0 0 0 1 68 0 0 2 69 70 0 0 1 0 98 0 0 0 0 486
|
|
/**
|
|
* This is a specialization on VertexTransform that returns the transform
|
|
* necessary to move vertices as if they were assigned to the indicated joint.
|
|
* The geometry itself should be parented to the scene graph at the level of
|
|
* the character's root joint; that is, it should not be parented under a node
|
|
* directly animated by any joints.
|
|
*
|
|
* Multiple combinations of these with different weights are used to implement
|
|
* soft-skinned vertices for an animated character.
|
|
*/
|
|
|
|
98 15 VertexTransform 0 2048 15 VertexTransform 15 VertexTransform 0 0 0 0 0 0 0 0 0 0 0 0 305
|
|
/**
|
|
* This is an abstract base class that holds a pointer to some transform,
|
|
* computed in some arbitrary way, that is to be applied to vertices during
|
|
* rendering. This is used to implement soft-skinned and animated vertices.
|
|
* Derived classes will define how the transform is actually computed.
|
|
*/
|
|
|
|
99 9 Character 0 75777 9 Character 9 Character 0 0 0 1 71 0 0 12 72 73 74 75 76 77 78 79 80 81 82 83 0 0 1 0 100 0 0 0 0 117
|
|
/**
|
|
* An animated character, with skeleton-morph animation and either soft-
|
|
* skinned or hard-skinned vertices.
|
|
*/
|
|
|
|
100 14 PartBundleNode 0 2048 14 PartBundleNode 14 PartBundleNode 0 0 0 0 0 0 0 0 0 0 0 0 342
|
|
/**
|
|
* 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.)
|
|
*/
|
|
|
|
101 20 CharacterJointBundle 0 75777 20 CharacterJointBundle 20 CharacterJointBundle 0 0 0 1 84 0 0 2 85 86 0 0 1 0 102 0 0 0 0 73
|
|
/**
|
|
* The collection of all the joints and sliders in the character.
|
|
*/
|
|
|
|
102 10 PartBundle 0 2048 10 PartBundle 10 PartBundle 0 0 0 0 0 0 0 0 0 0 0 0 134
|
|
/**
|
|
* This is the root of a MovingPart hierarchy. It defines the hierarchy of
|
|
* moving parts that make up an animatable object.
|
|
*/
|
|
|
|
103 20 CharacterJointEffect 0 141313 20 CharacterJointEffect 20 CharacterJointEffect 0 0 0 0 90 0 3 87 88 89 0 0 1 0 104 0 0 0 0 340
|
|
/**
|
|
* This effect will be added automatically to a node by
|
|
* CharacterJoint::add_net_transform() and
|
|
* CharacterJoint::add_local_transform().
|
|
*
|
|
* The effect binds the node back to the character, so that querying the
|
|
* relative transform of the affected node will automatically force the
|
|
* indicated character to be updated first.
|
|
*/
|
|
|
|
104 12 RenderEffect 0 2048 12 RenderEffect 12 RenderEffect 0 0 0 0 0 0 0 0 0 0 0 0 901
|
|
/**
|
|
* This is the base class for a number of special render effects that may be
|
|
* set on scene graph nodes to change the way they render. This includes
|
|
* BillboardEffect, DecalEffect, etc.
|
|
*
|
|
* RenderEffect represents render properties that must be applied as soon as
|
|
* they are encountered in the scene graph, rather than propagating down to
|
|
* the leaves. This is different from RenderAttrib, which represents
|
|
* properties like color and texture that don't do anything until they
|
|
* propagate down to a GeomNode.
|
|
*
|
|
* You should not attempt to create or modify a RenderEffect directly;
|
|
* instead, use the make() method of the appropriate kind of effect you want.
|
|
* This will allocate and return a new RenderEffect of the appropriate type,
|
|
* and it may share pointers if possible. Do not modify the new RenderEffect
|
|
* if you wish to change its properties; instead, create a new one.
|
|
*/
|
|
|
|
105 11 Character * 0 8576 11 Character * 11 Character * 0 0 99 0 0 0 0 0 0 0 0 0 0
|
|
|
|
106 12 PartBundle * 0 8576 12 PartBundle * 12 PartBundle * 0 0 102 0 0 0 0 0 0 0 0 0 0
|
|
|
|
107 11 PartGroup * 0 8576 11 PartGroup * 11 PartGroup * 0 0 108 0 0 0 0 0 0 0 0 0 0
|
|
|
|
108 9 PartGroup 0 2048 9 PartGroup 9 PartGroup 0 0 0 0 0 0 0 0 0 0 0 0 105
|
|
/**
|
|
* This is the base class for PartRoot and MovingPart. It defines a hierarchy
|
|
* of MovingParts.
|
|
*/
|
|
|
|
109 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0
|
|
|
|
110 16 LMatrix4 const * 0 8576 16 LMatrix4 const * 16 LMatrix4 const * 0 0 111 0 0 0 0 0 0 0 0 0 0
|
|
|
|
111 14 LMatrix4 const 0 8832 14 LMatrix4 const 14 LMatrix4 const 0 0 112 0 0 0 0 0 0 0 0 0 0
|
|
|
|
112 8 LMatrix4 0 2105344 8 LMatrix4 8 LMatrix4 0 0 113 0 0 0 0 0 0 0 0 0 0
|
|
|
|
113 9 LMatrix4f 0 2048 9 LMatrix4f 9 LMatrix4f 0 0 0 0 0 0 0 0 0 0 0 0 45
|
|
/**
|
|
* This is a 4-by-4 transform matrix.
|
|
*/
|
|
|
|
114 16 CharacterJoint * 0 8576 16 CharacterJoint * 16 CharacterJoint * 0 0 91 0 0 0 0 0 0 0 0 0 0
|
|
|
|
115 11 PandaNode * 0 8576 11 PandaNode * 11 PandaNode * 0 0 116 0 0 0 0 0 0 0 0 0 0
|
|
|
|
116 9 PandaNode 0 2048 9 PandaNode 9 PandaNode 0 0 0 0 0 0 0 0 0 0 0 0 175
|
|
/**
|
|
* 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.
|
|
*/
|
|
|
|
117 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0
|
|
|
|
118 22 CharacterJoint const * 0 8576 22 CharacterJoint const * 22 CharacterJoint const * 0 0 119 0 0 0 0 0 0 0 0 0 0
|
|
|
|
119 20 CharacterJoint const 0 8832 20 CharacterJoint const 20 CharacterJoint const 0 0 91 0 0 0 0 0 0 0 0 0 0
|
|
|
|
120 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0
|
|
|
|
121 18 NodePathCollection 0 2048 18 NodePathCollection 18 NodePathCollection 0 0 0 0 0 0 0 0 0 0 0 0 178
|
|
/**
|
|
* This is a set of zero or more NodePaths. It's handy for returning from
|
|
* functions that need to return multiple NodePaths (for instance,
|
|
* NodePaths::get_children).
|
|
*/
|
|
|
|
122 20 NodePathCollection * 0 8576 20 NodePathCollection * 20 NodePathCollection * 0 0 121 0 0 0 0 0 0 0 0 0 0
|
|
|
|
123 10 LMatrix4 * 0 8576 10 LMatrix4 * 10 LMatrix4 * 0 0 112 0 0 0 0 0 0 0 0 0 0
|
|
|
|
124 20 TransformState const 0 8832 20 TransformState const 20 TransformState const 0 0 125 0 0 0 0 0 0 0 0 0 0
|
|
|
|
125 14 TransformState 0 16779264 14 TransformState 14 TransformState 0 0 0 0 0 0 0 0 0 0 0 0 734
|
|
/**
|
|
* 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.
|
|
*/
|
|
|
|
126 22 TransformState const * 0 8576 22 TransformState const * 22 TransformState const * 0 0 124 0 0 0 0 0 0 0 0 0 0
|
|
|
|
127 10 TypeHandle 0 16779264 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 732
|
|
/**
|
|
* 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.
|
|
*/
|
|
|
|
128 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 127 0 0 0 0 0 0 0 0 0 0
|
|
|
|
129 17 CharacterSlider * 0 8576 17 CharacterSlider * 17 CharacterSlider * 0 0 93 0 0 0 0 0 0 0 0 0 0
|
|
|
|
130 23 CharacterVertexSlider * 0 8576 23 CharacterVertexSlider * 23 CharacterVertexSlider * 0 0 95 0 0 0 0 0 0 0 0 0 0
|
|
|
|
131 21 CharacterSlider const 0 8832 21 CharacterSlider const 21 CharacterSlider const 0 0 93 0 0 0 0 0 0 0 0 0 0
|
|
|
|
132 29 CharacterVertexSlider const * 0 8576 29 CharacterVertexSlider const * 29 CharacterVertexSlider const * 0 0 133 0 0 0 0 0 0 0 0 0 0
|
|
|
|
133 27 CharacterVertexSlider const 0 8832 27 CharacterVertexSlider const 27 CharacterVertexSlider const 0 0 95 0 0 0 0 0 0 0 0 0 0
|
|
|
|
134 23 CharacterSlider const * 0 8576 23 CharacterSlider const * 23 CharacterSlider const * 0 0 131 0 0 0 0 0 0 0 0 0 0
|
|
|
|
135 22 JointVertexTransform * 0 8576 22 JointVertexTransform * 22 JointVertexTransform * 0 0 97 0 0 0 0 0 0 0 0 0 0
|
|
|
|
136 28 JointVertexTransform const * 0 8576 28 JointVertexTransform const * 28 JointVertexTransform const * 0 0 137 0 0 0 0 0 0 0 0 0 0
|
|
|
|
137 26 JointVertexTransform const 0 8832 26 JointVertexTransform const 26 JointVertexTransform const 0 0 97 0 0 0 0 0 0 0 0 0 0
|
|
|
|
138 17 Character const * 0 8576 17 Character const * 17 Character const * 0 0 139 0 0 0 0 0 0 0 0 0 0
|
|
|
|
139 15 Character const 0 8832 15 Character const 15 Character const 0 0 99 0 0 0 0 0 0 0 0 0 0
|
|
|
|
140 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0
|
|
|
|
141 22 CharacterJointBundle * 0 8576 22 CharacterJointBundle * 22 CharacterJointBundle * 0 0 101 0 0 0 0 0 0 0 0 0 0
|
|
|
|
142 18 PartBundleHandle * 0 8576 18 PartBundleHandle * 18 PartBundleHandle * 0 0 143 0 0 0 0 0 0 0 0 0 0
|
|
|
|
143 16 PartBundleHandle 0 2048 16 PartBundleHandle 16 PartBundleHandle 0 0 0 0 0 0 0 0 0 0 0 0 546
|
|
/**
|
|
* 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.
|
|
*/
|
|
|
|
144 15 LPoint3 const * 0 8576 15 LPoint3 const * 15 LPoint3 const * 0 0 145 0 0 0 0 0 0 0 0 0 0
|
|
|
|
145 13 LPoint3 const 0 8832 13 LPoint3 const 13 LPoint3 const 0 0 146 0 0 0 0 0 0 0 0 0 0
|
|
|
|
146 7 LPoint3 0 2105344 7 LPoint3 7 LPoint3 0 0 147 0 0 0 0 0 0 0 0 0 0
|
|
|
|
147 8 LPoint3f 0 2048 8 LPoint3f 8 LPoint3f 0 0 0 0 0 0 0 0 0 0 0 0 337
|
|
/**
|
|
* This is a three-component point in space (as opposed to a three-component
|
|
* vector, which represents a direction and a distance). Some of the methods
|
|
* are slightly different between LPoint3 and LVector3; in particular,
|
|
* subtraction of two points yields a vector, while addition of a vector and a
|
|
* point yields a point.
|
|
*/
|
|
|
|
148 11 PN_stdfloat 0 2105344 11 PN_stdfloat 11 PN_stdfloat 0 0 149 0 0 0 0 0 0 0 0 0 0
|
|
|
|
149 5 float 0 8194 5 float 5 float 0 2 0 0 0 0 0 0 0 0 0 0 0
|
|
|
|
150 9 ostream * 0 8576 14 std::ostream * 14 std::ostream * 0 0 151 0 0 0 0 0 0 0 0 0 0
|
|
|
|
151 7 ostream 0 2048 12 std::ostream 12 std::ostream 0 0 0 0 0 0 0 0 0 0 0 0 0
|
|
|
|
152 28 CharacterJointBundle const * 0 8576 28 CharacterJointBundle const * 28 CharacterJointBundle const * 0 0 153 0 0 0 0 0 0 0 0 0 0
|
|
|
|
153 26 CharacterJointBundle const 0 8832 26 CharacterJointBundle const 26 CharacterJointBundle const 0 0 101 0 0 0 0 0 0 0 0 0 0
|
|
|
|
154 18 RenderEffect const 0 8832 18 RenderEffect const 18 RenderEffect const 0 0 104 0 0 0 0 0 0 0 0 0 0
|
|
|
|
155 20 RenderEffect const * 0 8576 20 RenderEffect const * 20 RenderEffect const * 0 0 154 0 0 0 0 0 0 0 0 0 0
|
|
|
|
156 28 CharacterJointEffect const * 0 8576 28 CharacterJointEffect const * 28 CharacterJointEffect const * 0 0 157 0 0 0 0 0 0 0 0 0 0
|
|
|
|
157 26 CharacterJointEffect const 0 8832 26 CharacterJointEffect const 26 CharacterJointEffect const 0 0 103 0 0 0 0 0 0 0 0 0 0
|
|
|
|
0
|
|
0
|
|
0
|