Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

EggJointData Class Reference

This is one node of a hierarchy of EggJointData nodes, each of which represents a single joint of the character hierarchy across all loaded files: the various models, the LOD's of each model, and the various animation channel files. More...

#include <eggJointData.h>

Inheritance diagram for EggJointData:

EggComponentData Namable List of all members.

Public Member Functions

 EggJointData (EggCharacterCollection *collection, EggCharacterData *char_data)
int get_num_children () const
EggJointData * get_child (int n) const
EggJointData * find_joint (const string &name)
 Returns the first descendent joint found with the indicated name, or NULL if no joint has that name.

int get_num_frames (int model_index) const
 Returns the number of frames of animation for this particular joint in the indicated model.

LMatrix4d get_frame (int model_index, int n) const
 Returns the local transform matrix corresponding to this joint position in the nth frame in the indicated model.

LMatrix4d get_net_frame (int model_index, int n) const
 Returns the complete transform from the root corresponding to this joint position in the nth frame in the indicated model.

bool do_rebuild ()
 Calls do_rebuild() on all models, and recursively on all joints at this node and below.

void optimize ()
 Calls optimize() on all models, and recursively on all joints at this node and below.

virtual void add_back_pointer (int model_index, EggObject *egg_object)
 Adds the indicated model joint or anim table to the data.

virtual void write (ostream &out, int indent_level=0) const
void add_name (const string &name)
 Adds the indicated name to the set of names that this component can be identified with.

bool matches_name (const string &name) const
 Returns true if the indicated name matches any name that was ever matched with this particular joint, false otherwise.

int get_num_models () const
 Returns the maximum number of back pointers this component may have.

bool has_model (int model_index) const
 Returns true if the component has a back pointer to an egg file somewhere for the indicated model, false otherwise.

EggBackPointerget_model (int model_index) const
 Returns the back pointer to an egg file for the indicated model if it exists, or NULL if it does not.

void set_model (int model_index, EggBackPointer *back)
 Sets the back_pointer associated with the given model_index.

void set_name (const string &name)
void clear_name ()
bool has_name () const
const string & get_name () const
void output (ostream &out) const

Static Public Member Functions

TypeHandle get_class_type ()
void init_type ()

Protected Types

typedef pvector< EggJointData * > Children
typedef pvector< EggBackPointer * > BackPointers

Protected Attributes

Children _children
EggJointData * _parent
BackPointers _back_pointers
EggCharacterCollection_collection
EggCharacterData_char_data
string _name

Static Protected Attributes

TypeHandle _type_handle

Friends

class EggCharacterCollection

Detailed Description

This is one node of a hierarchy of EggJointData nodes, each of which represents a single joint of the character hierarchy across all loaded files: the various models, the LOD's of each model, and the various animation channel files.

Definition at line 46 of file eggJointData.h.


Member Typedef Documentation

typedef pvector<EggBackPointer *> EggComponentData::BackPointers [protected, inherited]
 

Definition at line 70 of file eggComponentData.h.

typedef pvector<EggJointData *> EggJointData::Children [protected]
 

Definition at line 66 of file eggJointData.h.


Constructor & Destructor Documentation

EggJointData::EggJointData EggCharacterCollection collection,
EggCharacterData char_data
 

Definition at line 40 of file eggJointData.cxx.


Member Function Documentation

void EggJointData::add_back_pointer int  model_index,
EggObject egg_object
[virtual]
 

Adds the indicated model joint or anim table to the data.

Implements EggComponentData.

Definition at line 222 of file eggJointData.cxx.

void EggComponentData::add_name const string &  name  )  [inherited]
 

Adds the indicated name to the set of names that this component can be identified with.

If this is the first name added, it becomes the primary name of the component; later names added do not replace the primary name, but do get added to the list of names that will be accepted by matched_name().

Definition at line 80 of file eggComponentData.cxx.

bool EggJointData::do_rebuild  ) 
 

Calls do_rebuild() on all models, and recursively on all joints at this node and below.

Returns true if all models returned true, false otherwise.

Definition at line 156 of file eggJointData.cxx.

References EggComponentData::_back_pointers, _children, DCAST_INTO_V, NULL, optimize(), and EggJointPointer::optimize().

EggJointData * EggJointData::find_joint const string &  name  ) 
 

Returns the first descendent joint found with the indicated name, or NULL if no joint has that name.

Definition at line 58 of file eggJointData.cxx.

EggJointData * EggJointData::get_child int  n  )  const [inline]
 

Definition at line 43 of file eggJointData.I.

LMatrix4d EggJointData::get_frame int  model_index,
int  n
const
 

Returns the local transform matrix corresponding to this joint position in the nth frame in the indicated model.

Definition at line 110 of file eggJointData.cxx.

References _parent, get_net_frame(), and NULL.

EggBackPointer * EggComponentData::get_model int  model_index  )  const [inline, inherited]
 

Returns the back pointer to an egg file for the indicated model if it exists, or NULL if it does not.

Definition at line 77 of file eggComponentData.I.

Referenced by EggSliderData::EggSliderData(), and get_num_frames().

LMatrix4d EggJointData::get_net_frame int  model_index,
int  n
const
 

Returns the complete transform from the root corresponding to this joint position in the nth frame in the indicated model.

Definition at line 135 of file eggJointData.cxx.

Referenced by get_frame().

int EggJointData::get_num_children  )  const [inline]
 

Definition at line 31 of file eggJointData.I.

References _children, INLINE, nassertr, and NULL.

int EggJointData::get_num_frames int  model_index  )  const
 

Returns the number of frames of animation for this particular joint in the indicated model.

Definition at line 85 of file eggJointData.cxx.

References DCAST_INTO_R, EggJointPointer::get_frame(), EggComponentData::get_model(), and NULL.

int EggComponentData::get_num_models  )  const [inline, inherited]
 

Returns the maximum number of back pointers this component may have.

The component may store a back pointer for models indexed 0 .. num_models - 1. You must call has_model() on each model index to confirm whether a particular model in that range has a back pointer.

Definition at line 42 of file eggComponentData.I.

References EggComponentData::_back_pointers, INLINE, and NULL.

bool EggComponentData::has_model int  model_index  )  const [inline, inherited]
 

Returns true if the component has a back pointer to an egg file somewhere for the indicated model, false otherwise.

Definition at line 59 of file eggComponentData.I.

References EggComponentData::_back_pointers.

bool EggComponentData::matches_name const string &  name  )  const [inherited]
 

Returns true if the indicated name matches any name that was ever matched with this particular joint, false otherwise.

Definition at line 99 of file eggComponentData.cxx.

References EggComponentData::_back_pointers.

void EggJointData::optimize  ) 
 

Calls optimize() on all models, and recursively on all joints at this node and below.

Definition at line 193 of file eggJointData.cxx.

Referenced by do_rebuild().

void EggComponentData::set_model int  model_index,
EggBackPointer back
[inherited]
 

Sets the back_pointer associated with the given model_index.

Definition at line 114 of file eggComponentData.cxx.

Referenced by EggSliderData::EggSliderData().

void EggJointData::write ostream &  out,
int  indent_level = 0
const [virtual]
 

Implements EggComponentData.

Definition at line 246 of file eggJointData.cxx.


Friends And Related Function Documentation

friend class EggCharacterCollection [friend]
 

Definition at line 70 of file eggJointData.h.


Member Data Documentation

BackPointers EggComponentData::_back_pointers [protected, inherited]
 

Definition at line 71 of file eggComponentData.h.

Referenced by do_rebuild(), EggComponentData::get_num_models(), EggComponentData::has_model(), and EggComponentData::matches_name().

EggCharacterData* EggComponentData::_char_data [protected, inherited]
 

Definition at line 75 of file eggComponentData.h.

Children EggJointData::_children [protected]
 

Definition at line 67 of file eggJointData.h.

Referenced by do_rebuild(), get_num_children(), and EggCharacterCollection::scan_for_sliders().

EggCharacterCollection* EggComponentData::_collection [protected, inherited]
 

Definition at line 74 of file eggComponentData.h.

EggJointData* EggJointData::_parent [protected]
 

Definition at line 68 of file eggJointData.h.

Referenced by get_frame(), and EggCharacterCollection::scan_for_sliders().


The documentation for this class was generated from the following files:
Generated on Fri May 2 03:26:15 2003 for Panda-Tool by doxygen1.3