14 #ifndef MOVINGPARTBASE_H 15 #define MOVINGPARTBASE_H 39 INLINE
int get_max_bound()
const;
50 virtual void write(std::ostream &out,
int indent_level)
const;
52 virtual void output_value(std::ostream &out)
const=0;
57 bool anim_changed,
Thread *current_thread);
59 virtual void get_blend_value(
const PartBundle *root)=0;
61 bool self_changed,
bool parent_changed,
67 virtual void pick_channel_index(
plist<int> &holes,
int &next)
const;
68 virtual void bind_hierarchy(
AnimGroup *anim,
int channel_index,
69 int &joint_index,
bool is_included,
72 virtual void find_bound_joints(
int &joint_index,
bool is_included,
83 int _num_effective_channels;
105 return get_class_type();
107 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
113 static void init_type() {
114 PartGroup::init_type();
116 PartGroup::get_class_type());
virtual AnimChannelBase * get_forced_channel() const
Returns the AnimChannelBase that has been forced to this joint by a previous call to apply_freeze() o...
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
virtual bool do_update(PartBundle *root, const CycleData *root_cdata, PartGroup *parent, bool parent_changed, bool anim_changed, Thread *current_thread)
Recursively update this particular part and all of its descendents for the current frame.
A single page of data maintained by a PipelineCycler.
Base class for objects that can be written to and read from Bam files.
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.
This is the base class for a single animatable piece that may be bound to one channel (or more,...
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL vector.
A dynamic array with an unlimited number of bits.
Parent class for all animation channels.
virtual void write(std::ostream &out, int indent_level) const
Writes a brief description of the group and all of its descendants.
This is the base class for AnimChannel and AnimBundle.
virtual void determine_effective_channels(const CycleData *root_cdata)
Should be called whenever the ChannelBlend values have changed, this recursively updates the _effecti...
virtual void write_with_value(std::ostream &out, int indent_level) const
Writes a brief description of the group, showing its current value, and that of all of its descendant...
virtual TypeHandle get_value_type() const
Returns the TypeHandle associated with the ValueType we are concerned with.
This class is used to define a subset of part names to apply to the PartBundle::bind_anim() operation...
A thread; that is, a lightweight process.
This is the root of a MovingPart hierarchy.
virtual bool clear_forced_channel()
Undoes the effect of a previous call to apply_freeze() or apply_control().
Controls the timing of a character animation.
A class to retrieve the individual data elements previously stored in a Datagram.
TypeHandle is the identifier used to differentiate C++ class types.
virtual void write_datagram(BamWriter *manager, Datagram &me)
Function to write the important information in the particular object to a Datagram.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
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...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is the base class for PartRoot and MovingPart.