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());
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Parent class for all animation channels.
Controls the timing of a character animation.
This is the base class for AnimChannel and AnimBundle.
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 ...
A dynamic array with an unlimited number of bits.
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 ...
This is the base class for a single animatable piece that may be bound to one channel (or more,...
virtual TypeHandle get_value_type() const =0
Returns the TypeHandle associated with the ValueType we are concerned with.
This is the root of a MovingPart hierarchy.
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 void write_datagram(BamWriter *manager, Datagram &me)
Function to write the important information in the particular object to a Datagram.
virtual bool clear_forced_channel()
Undoes the effect of a previous call to apply_freeze() or apply_control().
virtual AnimChannelBase * get_forced_channel() const
Returns the AnimChannelBase that has been forced to this joint by a previous call to apply_freeze() o...
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 void determine_effective_channels(const CycleData *root_cdata)
Should be called whenever the ChannelBlend values have changed, this recursively updates the _effecti...
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.
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...
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 our own Panda specialization on the default STL list.
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.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...