15 #ifndef EGGCHARACTERDATA_H 16 #define EGGCHARACTERDATA_H 18 #include "pandatoolbase.h" 20 #include "eggJointData.h" 23 #include "pointerTo.h" 25 #include "nameUniquifier.h" 95 virtual void write(ostream &out,
int indent_level = 0)
const;
111 SlidersByName _sliders_by_name;
120 Components _components;
127 #include "eggCharacterData.I" EggSliderData * make_slider(const string &name)
Returns the slider matching the indicated name.
int get_num_joints() const
Returns the total number of joints in the character joint hierarchy.
EggJointData * find_joint(const string &name) const
Returns the first joint found with the indicated name, or NULL if no joint has that name...
EggJointData * get_root_joint() const
Returns the root joint of the character hierarchy.
bool do_reparent()
Begins the process of restructuring the joint hierarchy according to the previous calls to reparent_t...
int get_num_frames(int model_index) const
Returns the number of frames of animation of the indicated model.
bool check_num_frames(int model_index)
Walks through each component and ensures that all have the same number of frames of animation (except...
EggSliderData * find_slider(const string &name) const
Returns the slider with the indicated name, or NULL if no slider has that name.
void rename_char(const string &name)
Renames all of the models in the character data to the indicated name.
This corresponds to a single morph slider control.
int get_num_models() const
Returns the total number of models associated with this character.
This is the primary interface into all the egg data, and the root of the egg file structure...
EggData * get_egg_data(int n) const
Returns the EggData representing the egg file that defined this particular model. ...
This is the base class of both EggJointData and EggSliderData.
A handy class for converting a list of arbitrary names (strings) so that each name is guaranteed to b...
A base class for all things which can have a name.
This class is used during joint optimization or restructuring to store the table of interim joint com...
EggSliderData * get_slider(int n) const
Returns the nth slider in the character slider list.
EggComponentData * get_component(int n) const
Returns the nth joint or slider in the character.
Represents a set of characters, as read and collected from possibly several model and/or animation eg...
int get_num_components() const
Returns the total number of joints and sliders in the character.
void choose_optimal_hierarchy()
Chooses the best possible parent joint for each of the joints in the hierarchy, based on the score co...
EggNode * get_model_root(int n) const
Returns the model_root of the nth model associated with this character.
Represents a single character, as read and collected from several models and animation files...
This is one node of a hierarchy of EggJointData nodes, each of which represents a single joint of the...
EggJointData * get_joint(int n) const
Returns the nth joint in the character joint hierarchy.
A base class for things that may be directly added into the egg hierarchy.
int get_num_sliders() const
Returns the number of sliders in the character slider list.
void add_model(int model_index, EggNode *model_root, EggData *egg_data)
Indicates that the given model_index (with the indicated model_root) is associated with this characte...
double get_frame_rate(int model_index) const
Returns the stated frame rate of the specified model.
size_t estimate_db_size() const
Returns the estimated amount of memory, in megabytes, that will be required to perform the do_reparen...
EggJointData * make_new_joint(const string &name, EggJointData *parent)
Creates a new joint as a child of the indicated joint and returns it.
int get_model_index(int n) const
Returns the model_index of the nth model associated with this character.