58 explicit PartBundle(
const std::string &name =
"");
64 INLINE
void clear_anim_preload();
65 void merge_anim_preloads(
const PartBundle *other);
95 BT_componentwise_quat,
98 INLINE
void set_blend_type(BlendType bt);
99 INLINE BlendType get_blend_type()
const;
101 void set_anim_blend_flag(
bool anim_blend_flag);
102 INLINE
bool get_anim_blend_flag()
const;
104 INLINE
void set_frame_blend_flag(
bool frame_blend_flag);
105 INLINE
bool get_frame_blend_flag()
const;
107 INLINE
void set_root_xform(
const LMatrix4 &root_xform);
108 INLINE
void xform(
const LMatrix4 &mat);
109 INLINE
const LMatrix4 &get_root_xform()
const;
112 INLINE
int get_num_nodes()
const;
114 MAKE_SEQ(get_nodes, get_num_nodes, get_node);
116 MAKE_PROPERTY(blend_type, get_blend_type, set_blend_type);
117 MAKE_PROPERTY(anim_blend_flag, get_anim_blend_flag, set_anim_blend_flag);
118 MAKE_PROPERTY(frame_blend_flag, get_frame_blend_flag, set_frame_blend_flag);
119 MAKE_PROPERTY(root_xform, get_root_xform, set_root_xform);
120 MAKE_SEQ_PROPERTY(nodes, get_num_nodes, get_node);
122 void clear_control_effects();
123 INLINE
void set_control_effect(
AnimControl *control, PN_stdfloat effect);
124 INLINE PN_stdfloat get_control_effect(
AnimControl *control)
const;
126 virtual void output(std::ostream &out)
const;
127 virtual void write(std::ostream &out,
int indent_level)
const;
130 int hierarchy_match_flags = 0,
134 int hierarchy_match_flags,
139 bool freeze_joint(
const std::string &joint_name,
const TransformState *transform);
140 bool freeze_joint(
const std::string &joint_name,
const LVecBase3 &pos,
const LVecBase3 &hpr,
const LVecBase3 &scale);
141 bool freeze_joint(
const std::string &joint_name, PN_stdfloat value);
142 bool control_joint(
const std::string &joint_name,
PandaNode *node);
143 bool release_joint(
const std::string &joint_name);
151 virtual void control_activated(
AnimControl *control);
153 INLINE
void set_update_delay(
double delay);
156 int hierarchy_match_flags,
const PartSubset &subset);
165 void do_set_control_effect(
AnimControl *control, PN_stdfloat effect, CData *cdata);
166 PN_stdfloat do_get_control_effect(
AnimControl *control,
const CData *cdata)
const;
167 void recompute_net_blend(CData *cdata);
168 void clear_and_stop_intersecting(
AnimControl *control, CData *cdata);
178 double _update_delay;
184 CData(
const CData ©);
190 return PartBundle::get_class_type();
193 BlendType _blend_type;
194 bool _anim_blend_flag;
195 bool _frame_blend_flag;
196 LMatrix4 _root_xform;
199 PN_stdfloat _net_blend;
224 return get_class_type();
226 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
230 static void init_type() {
231 PartGroup::init_type();
233 PartGroup::get_class_type());
246inline std::ostream &operator <<(std::ostream &out,
const PartBundle &bundle) {
251EXPCL_PANDA_CHAN std::ostream &operator <<(std::ostream &out, PartBundle::BlendType blend_type);
252EXPCL_PANDA_CHAN std::istream &operator >>(std::istream &in, PartBundle::BlendType &blend_type);
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is the root of an AnimChannel hierarchy.
Controls the timing of a character animation.
This table records data about a list of animations for a particular model, such as number of frames a...
This 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 ...
An animated character, with skeleton-morph animation and either soft- skinned or hard-skinned vertice...
This template class calls PipelineCycler::read() in the constructor and PipelineCycler::release_read(...
This template class calls PipelineCycler::read_unlocked(), and then provides a transparent read-only ...
This class is similar to CycleDataWriter, except it allows writing to a particular stage of the pipel...
This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_writ...
A single page of data maintained by a PipelineCycler.
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...
The name of a file, such as a texture file or an Egg file.
A convenient class for loading models from disk, in bam or egg format (or any of a number of other fo...
This is the base class for a single animatable piece that may be bound to one channel (or more,...
This is a particular kind of MovingPart that accepts a matrix each frame.
This is a particular kind of MovingPart that accepts a scalar each frame.
void output(std::ostream &out) const
Outputs the Namable.
A basic node of the scene graph or data graph.
This is a node that contains a pointer to an PartBundle.
This is the root of a MovingPart hierarchy.
virtual void output(std::ostream &out) const
Writes a one-line description of the bundle.
This is the base class for PartRoot and MovingPart.
virtual void write(std::ostream &out, int indent_level) const
Writes a brief description of the group and all of its descendants.
virtual PartGroup * make_copy() const
Allocates and returns a new copy of the node.
virtual void write_datagram(BamWriter *manager, Datagram &me)
Function to write the important information in the particular object to a Datagram.
static void register_with_read_factory()
Factory method to generate a PartGroup object.
virtual int complete_pointers(TypedWritable **p_list, BamReader *manager)
Takes in a vector of pointers to TypedWritable objects that correspond to all the requests for pointe...
This class is used to define a subset of part names to apply to the PartBundle::bind_anim() operation...
TypeHandle is the identifier used to differentiate C++ class types.
Base class for objects that can be written to and read from Bam files.
virtual void finalize(BamReader *manager)
Called by the BamReader to perform any final actions needed for setting up the object after all objec...
This is our own Panda specialization on the default STL map.
This is our own Panda specialization on the default STL vector.
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.
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.
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(),...
This class maintains different copies of a page of data between stages of the graphics pipeline (or a...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.