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

PartGroup Class Reference

#include <partGroup.h>

Inheritance diagram for PartGroup:

TypedWritableReferenceCount Namable TypedWritable ReferenceCount TypedObject MovingPartBase PartBundle MovingPart< SwitchType > MovingPart< ACMatrixSwitchType > MovingPart< ACScalarSwitchType > CharacterJointBundle MovingPartMatrix MovingPartScalar CharacterJoint CharacterSlider List of all members.

Public Types

enum  HierarchyMatchFlags { HMF_ok_part_extra = 0x01, HMF_ok_anim_extra = 0x02, HMF_ok_wrong_root_name = 0x04 }

Public Member Functions

 PartGroup (PartGroup *parent, const string &name)
virtual ~PartGroup ()
virtual PartGroup * make_copy () const
PartGroup * copy_subgraph () const
PartGroup * get_child (int n) const
PartGroup * find_child (const string &name) const
virtual void write (ostream &out, int indent_level) const
virtual void write_with_value (ostream &out, int indent_level) const
virtual TypeHandle get_value_type () const
void sort_descendants ()
bool check_hierarchy (const AnimGroup *anim, const PartGroup *parent, int hierarchy_match_flags=0) const
virtual bool do_update (PartBundle *root, PartGroup *parent, bool parent_changed, bool anim_changed)
virtual void write_datagram (BamWriter *manager, Datagram &me)
virtual int complete_pointers (TypedWritable **p_list, BamReader *manager)
virtual TypeHandle get_type () const
virtual TypeHandle force_init_type ()

Static Public Member Functions

void register_with_read_factory (void)
TypedWritablemake_PartGroup (const FactoryParams &params)
TypeHandle get_class_type ()
void init_type ()

Public Attributes

PUBLISHED __pad0__: int get_num_children() const

Protected Types

typedef pvector< PT(PartGroup) Children )

Protected Member Functions

INLINE PartGroup (const string &name="")
INLINE PartGroup (const PartGroup &copy)
void write_descendants (ostream &out, int indent_level) const
void write_descendants_with_value (ostream &out, int indent_level) const
virtual void pick_channel_index (plist< int > &holes, int &next) const
virtual void bind_hierarchy (AnimGroup *anim, int channel_index)
void fillin (DatagramIterator &scan, BamReader *manager)

Protected Attributes

Children _children

Private Attributes

int _num_children

Static Private Attributes

TypeHandle _type_handle

Friends

class Character

Member Typedef Documentation

typedef pvector< PT(PartGroup) PartGroup::Children) [protected]
 

Definition at line 96 of file partGroup.h.


Member Enumeration Documentation

enum PartGroup::HierarchyMatchFlags
 

Enumeration values:
HMF_ok_part_extra 
HMF_ok_anim_extra 
HMF_ok_wrong_root_name 

Definition at line 48 of file partGroup.h.


Constructor & Destructor Documentation

INLINE PartGroup::PartGroup const string &  name = ""  )  [protected]
 

Referenced by make_copy().

INLINE PartGroup::PartGroup const PartGroup &  copy  )  [protected]
 

PartGroup::PartGroup PartGroup *  parent,
const string &  name
 

Definition at line 42 of file partGroup.cxx.

References _children, and NULL.

PartGroup::~PartGroup  )  [virtual]
 

Definition at line 54 of file partGroup.cxx.


Member Function Documentation

void PartGroup::bind_hierarchy AnimGroup anim,
int  channel_index
[protected, virtual]
 

Reimplemented in MovingPartBase.

Definition at line 435 of file partGroup.cxx.

References get_child(), and NULL.

Referenced by MovingPartBase::bind_hierarchy().

bool PartGroup::check_hierarchy const AnimGroup anim,
const PartGroup *  parent,
int  hierarchy_match_flags = 0
const
 

Definition at line 196 of file partGroup.cxx.

References AnimGroup::get_child(), get_child(), Namable::get_name(), get_value_type(), AnimGroup::get_value_type(), HMF_ok_anim_extra, and HMF_ok_part_extra.

int PartGroup::complete_pointers TypedWritable **  p_list,
BamReader manager
[virtual]
 

Reimplemented from TypedWritable.

Reimplemented in CharacterJoint.

Definition at line 512 of file partGroup.cxx.

References _children, _num_children, DCAST, TypeHandle::get_name(), get_type(), and TypedWritable::Null.

Referenced by CharacterJoint::complete_pointers().

PartGroup * PartGroup::copy_subgraph  )  const
 

Definition at line 75 of file partGroup.cxx.

References _children, get_type(), make_copy(), and root.

bool PartGroup::do_update PartBundle root,
PartGroup *  parent,
bool  parent_changed,
bool  anim_changed
[virtual]
 

Reimplemented in MovingPartBase.

Definition at line 363 of file partGroup.cxx.

References _children, and root.

Referenced by PartBundle::finalize(), PartBundle::force_update(), and PartBundle::update().

void PartGroup::fillin DatagramIterator scan,
BamReader manager
[protected]
 

Reimplemented from TypedWritable.

Reimplemented in MovingPart< SwitchType >, CharacterJoint, MovingPart< ACScalarSwitchType >, and MovingPart< ACMatrixSwitchType >.

Definition at line 493 of file partGroup.cxx.

References _num_children, DatagramIterator::get_string(), DatagramIterator::get_uint16(), BamReader::read_pointer(), and Namable::set_name().

Referenced by CharacterJointBundle::make_CharacterJointBundle(), PartBundle::make_PartBundle(), and make_PartGroup().

PartGroup * PartGroup::find_child const string &  name  )  const
 

Definition at line 122 of file partGroup.cxx.

References _children, and NULL.

virtual TypeHandle PartGroup::force_init_type void   )  [inline, virtual]
 

Reimplemented from TypedWritableReferenceCount.

Reimplemented in MovingPart< SwitchType >, MovingPartBase, MovingPartMatrix, MovingPartScalar, PartBundle, CharacterJoint, CharacterJointBundle, CharacterSlider, MovingPart< ACScalarSwitchType >, and MovingPart< ACMatrixSwitchType >.

Definition at line 118 of file partGroup.h.

References Namable::get_class_type(), and Namable::init_type().

PartGroup * PartGroup::get_child int  n  )  const
 

Definition at line 110 of file partGroup.cxx.

References _children, n, and NULL.

Referenced by bind_hierarchy(), check_hierarchy(), and CharacterMaker::parent_joint_nodes().

TypeHandle PartGroup::get_class_type void   )  [inline, static]
 

Reimplemented from Namable.

Reimplemented in MovingPartScalar, PartBundle, CharacterJoint, CharacterJointBundle, and CharacterSlider.

Definition at line 119 of file partGroup.h.

Referenced by PartBundle::force_init_type(), MovingPartScalar::force_init_type(), MovingPartMatrix::force_init_type(), MovingPartBase::force_init_type(), MovingPart< ACMatrixSwitchType >::force_init_type(), CharacterJoint::force_init_type(), PartBundle::get_type(), MovingPartScalar::get_type(), MovingPartMatrix::get_type(), MovingPartBase::get_type(), MovingPart< ACMatrixSwitchType >::get_type(), CharacterJoint::get_type(), PartBundle::init_type(), MovingPartScalar::init_type(), MovingPartMatrix::init_type(), MovingPartBase::init_type(), MovingPart< ACMatrixSwitchType >::init_type(), CharacterJoint::init_type(), register_with_read_factory(), and MovingPartMatrix::register_with_read_factory().

virtual TypeHandle PartGroup::get_type void   )  const [inline, virtual]
 

Reimplemented from TypedWritableReferenceCount.

Reimplemented in MovingPart< SwitchType >, MovingPartBase, MovingPartMatrix, MovingPartScalar, PartBundle, CharacterJoint, CharacterJointBundle, CharacterSlider, MovingPart< ACScalarSwitchType >, and MovingPart< ACMatrixSwitchType >.

Definition at line 115 of file partGroup.h.

References Namable::get_class_type().

Referenced by complete_pointers(), Character::copy_joints(), copy_subgraph(), write(), and write_with_value().

TypeHandle PartGroup::get_value_type  )  const [virtual]
 

Reimplemented in MovingPart< SwitchType >, MovingPartBase, MovingPart< ACScalarSwitchType >, and MovingPart< ACMatrixSwitchType >.

Definition at line 147 of file partGroup.cxx.

References TypeHandle::none().

Referenced by check_hierarchy().

void PartGroup::init_type void   )  [inline, static]
 

Reimplemented from Namable.

Reimplemented in MovingPart< SwitchType >, MovingPartBase, MovingPartMatrix, MovingPartScalar, PartBundle, CharacterJoint, CharacterJointBundle, CharacterSlider, MovingPart< ACScalarSwitchType >, and MovingPart< ACMatrixSwitchType >.

Definition at line 124 of file partGroup.h.

References ReferenceCount::get_class_type(), TypedWritableReferenceCount::init_type(), and register_type().

Referenced by ConfigureFn(), PartBundle::force_init_type(), MovingPartBase::force_init_type(), PartBundle::init_type(), and MovingPartBase::init_type().

PartGroup * PartGroup::make_copy  )  const [virtual]
 

Reimplemented in PartBundle, CharacterJoint, CharacterJointBundle, and CharacterSlider.

Definition at line 64 of file partGroup.cxx.

References PartGroup().

Referenced by Character::copy_joints(), and copy_subgraph().

TypedWritable * PartGroup::make_PartGroup const FactoryParams params  )  [static]
 

Definition at line 537 of file partGroup.cxx.

References fillin(), params, and parse_params().

Referenced by register_with_read_factory().

void PartGroup::pick_channel_index plist< int > &  holes,
int &  next
const [protected, virtual]
 

Reimplemented in MovingPartBase.

Definition at line 420 of file partGroup.cxx.

References _children.

Referenced by MovingPartBase::pick_channel_index().

void PartGroup::register_with_read_factory void   )  [static]
 

Reimplemented in MovingPartMatrix, MovingPartScalar, PartBundle, CharacterJoint, CharacterJointBundle, and CharacterSlider.

Definition at line 554 of file partGroup.cxx.

References get_class_type(), BamReader::get_factory(), make_PartGroup(), and Factory< TypedWritable >::register_factory().

Referenced by ConfigureFn().

void PartGroup::sort_descendants  ) 
 

Definition at line 170 of file partGroup.cxx.

References _children.

Referenced by CharacterMaker::make_bundle().

void PartGroup::write ostream &  out,
int  indent_level
const [virtual]
 

Reimplemented in MovingPartBase, and PartBundle.

Definition at line 328 of file partGroup.cxx.

References Namable::get_name(), get_type(), indent(), and write_descendants().

void PartGroup::write_datagram BamWriter manager,
Datagram me
[virtual]
 

Implements TypedWritableReferenceCount.

Reimplemented in MovingPart< SwitchType >, CharacterJoint, MovingPart< ACScalarSwitchType >, and MovingPart< ACMatrixSwitchType >.

Definition at line 473 of file partGroup.cxx.

References _children, Datagram::add_string(), Datagram::add_uint16(), Namable::get_name(), and BamWriter::write_pointer().

void PartGroup::write_descendants ostream &  out,
int  indent_level
const [protected]
 

Definition at line 385 of file partGroup.cxx.

References _children.

Referenced by write(), PartBundle::write(), and MovingPartBase::write().

void PartGroup::write_descendants_with_value ostream &  out,
int  indent_level
const [protected]
 

Definition at line 400 of file partGroup.cxx.

References _children.

Referenced by write_with_value(), and MovingPartBase::write_with_value().

void PartGroup::write_with_value ostream &  out,
int  indent_level
const [virtual]
 

Reimplemented in MovingPartBase.

Definition at line 342 of file partGroup.cxx.

References Namable::get_name(), get_type(), indent(), and write_descendants_with_value().


Friends And Related Function Documentation

friend class Character [friend]
 

Reimplemented in CharacterJoint.

Definition at line 133 of file partGroup.h.


Member Data Documentation

PUBLISHED PartGroup::__pad0__
 

Reimplemented from Namable.

Reimplemented in MovingPart< SwitchType >, MovingPartBase, MovingPartMatrix, PartBundle, CharacterJoint, CharacterJointBundle, MovingPart< ACScalarSwitchType >, and MovingPart< ACMatrixSwitchType >.

Definition at line 71 of file partGroup.h.

Children PartGroup::_children [protected]
 

Definition at line 97 of file partGroup.h.

Referenced by complete_pointers(), Character::copy_joints(), copy_subgraph(), do_update(), MovingPartBase::do_update(), find_child(), get_child(), PartGroup(), pick_channel_index(), sort_descendants(), MovingPartBase::write(), write_datagram(), write_descendants(), write_descendants_with_value(), and MovingPartBase::write_with_value().

int PartGroup::_num_children [private]
 

Definition at line 111 of file partGroup.h.

Referenced by complete_pointers(), and fillin().

TypeHandle PartGroup::_type_handle [static, private]
 

Reimplemented from Namable.

Reimplemented in MovingPart< SwitchType >, MovingPartBase, MovingPartMatrix, MovingPartScalar, PartBundle, CharacterJoint, CharacterJointBundle, CharacterSlider, MovingPart< ACScalarSwitchType >, and MovingPart< ACMatrixSwitchType >.

Definition at line 32 of file partGroup.cxx.


The documentation for this class was generated from the following files:
Generated on Fri Apr 18 00:13:03 2003 for Panda by doxygen1.3