40 Character(
const Character ©,
bool copy_bundles);
43 explicit Character(
const std::string &name);
56 Thread *current_thread)
const;
67 PN_stdfloat far_distance, PN_stdfloat near_distance,
68 PN_stdfloat delay_factor);
82 virtual void r_copy_children(
const PandaNode *from, InstanceMap &inst_map,
90 void set_lod_current_delay(
double delay);
92 typedef pmap<const PandaNode *, PandaNode *> NodeMap;
93 typedef pmap<const PartGroup *, PartGroup *> JointMap;
94 typedef pmap<const GeomVertexData *, GeomVertexData *> GeomVertexMap;
99 void r_merge_bundles(Character::JointMap &joint_map,
101 void r_copy_char(PandaNode *dest,
const PandaNode *source,
102 const Character *from, NodeMap &node_map,
103 const JointMap &joint_map, GeomVertexMap &gvmap,
104 GeomJointMap &gjmap, GeomSliderMap &gsmap);
105 void r_update_geom(PandaNode *node,
106 const JointMap &joint_map, GeomVertexMap &gvmap,
107 GeomJointMap &gjmap, GeomSliderMap &gsmap);
108 PT(
Geom) copy_geom(
const Geom *source,
109 const JointMap &joint_map, GeomVertexMap &gvmap,
110 GeomJointMap &gjmap, GeomSliderMap &gsmap);
111 void copy_node_pointers(
const Character::NodeMap &node_map,
115 const JointMap &joint_map,
116 GeomJointMap &gjmap);
119 GeomJointMap &gjmap);
121 GeomSliderMap &gsmap);
124 const JointMap &joint_map,
125 GeomJointMap &gjmap);
128 void r_clear_joint_characters(
PartGroup *part);
133 double _last_auto_update;
136 double _view_distance2;
139 PN_stdfloat _lod_far_distance;
140 PN_stdfloat _lod_near_distance;
141 PN_stdfloat _lod_delay_factor;
142 bool _do_lod_animation;
150 unsigned int _temp_num_parts;
164 return get_class_type();
166 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
170 static void init_type() {
171 PartBundleNode::init_type();
173 PartBundleNode::get_class_type());
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
The collection of all the joints and sliders in the character.
This represents one joint of the character's animation, containing an animating transform matrix.
This is a morph slider within the character.
This is a specialization on VertexSlider that returns the slider value associated with a particular C...
void write_part_values(std::ostream &out) const
Writes a list of the Character's joints and sliders, along with each current position,...
void set_lod_animation(const LPoint3 ¢er, PN_stdfloat far_distance, PN_stdfloat near_distance, PN_stdfloat delay_factor)
Activates a special mode in which the character animates less frequently as it gets further from the ...
void write_parts(std::ostream &out) const
Writes a list of the Character's joints and sliders, in their hierchical structure,...
CharacterSlider * find_slider(const std::string &name) const
Returns a pointer to the slider with the given name, if there is such a slider, or NULL if there is n...
void force_update()
Recalculates the character even if we think it doesn't need it.
void update_to_now()
Advances the character's frame to the current time, and then calls update().
void clear_lod_animation()
Undoes the effect of a recent call to set_lod_animation().
void update()
Recalculates the Character's joints and vertices for the current frame.
CharacterJoint * find_joint(const std::string &name) const
Returns a pointer to the joint with the given name, if there is such a joint, or NULL if there is no ...
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling,...
A class to retrieve the individual data elements previously stored in a Datagram.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
An instance of this class is passed to the Factory when requesting it to do its business and construc...
A container for geometry primitives.
A lightweight class that represents a single element that may be timed and/or counted via stats.
virtual bool cull_callback(CullTraverser *trav, CullTraverserData &data)
This function will be called during the cull traversal to perform any additional operations that shou...
virtual PandaNode * combine_with(PandaNode *other)
Collapses this PandaNode with the other PandaNode, if possible, and returns a pointer to the combined...
static void register_with_read_factory()
Tells the BamReader how to create objects of type PandaNode.
virtual PandaNode * dupe_for_flatten() const
This is similar to make_copy(), but it makes a copy for the specific purpose of flatten.
virtual ConstPointerTo< TransformState > calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point, bool &found_any, const TransformState *transform, Thread *current_thread=Thread::get_current_thread()) const
This is used to support NodePath::calc_tight_bounds().
virtual PandaNode * make_copy() const
Returns a newly-allocated PandaNode that is a shallow copy of this one.
This is a trivial class returned by PartBundleNode::get_bundle().
virtual int complete_pointers(TypedWritable **p_list, BamReader *manager)
Receives an array of pointers, one for each time manager->read_pointer() was called in fillin().
PartBundleNode(const std::string &name, PartBundle *bundle)
The PartBundle and its node should be constructed together.
virtual void write_datagram(BamWriter *manager, Datagram &me)
Writes the contents of this object to the datagram for shipping out to a Bam file.
This is the root of a MovingPart hierarchy.
This is the base class for PartRoot and MovingPart.
Stores the total set of VertexSliders that the vertices in a particular GeomVertexData object might d...
A thread; that is, a lightweight process.
TypeHandle is the identifier used to differentiate C++ class types.
Base class for objects that can be written to and read from Bam files.
This is an abstract base class that retains some slider value, which is a linear value that typically...
This is our own Panda specialization on the default STL list.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.