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

EggBinMaker Class Reference

#include <eggBinMaker.h>

Inheritance diagram for EggBinMaker:

EggObject TypedReferenceCount TypedObject ReferenceCount EggBinner EggPolysetMaker List of all members.

Public Member Functions

 EggBinMaker ()
 ~EggBinMaker ()
int make_bins (EggGroupNode *root_group)
virtual int get_bin_number (const EggNode *node)=0
virtual bool sorts_less (int bin_number, const EggNode *a, const EggNode *b)
virtual bool collapse_group (const EggGroup *group, int bin_number)
virtual string get_bin_name (int bin_number)
virtual TypeHandle get_type () const
virtual TypeHandle force_init_type ()

Static Public Member Functions

TypeHandle get_class_type ()
void init_type ()

Private Types

typedef pmultiset< PT(EggNode),
EggBinMakerCompareNodes 
SortedNodes )
typedef pmap< EggGroupNode *,
SortedNodes
GroupNodes
typedef pvector< PT(EggNodeNodes )
typedef pvector< NodesBins

Private Member Functions

void collect_nodes (EggGroupNode *group)
int get_bins_for_group (GroupNodes::const_iterator gi)
void make_bins_for_group (EggGroupNode *group, const Bins &bins)
void setup_bin (EggBin *bin, const Nodes &nodes)

Private Attributes

GroupNodes _group_nodes

Static Private Attributes

TypeHandle _type_handle

Member Typedef Documentation

typedef pvector<Nodes> EggBinMaker::Bins [private]
 

Definition at line 281 of file eggBinMaker.h.

Referenced by get_bins_for_group().

typedef pmap<EggGroupNode *, SortedNodes> EggBinMaker::GroupNodes [private]
 

Definition at line 275 of file eggBinMaker.h.

typedef pvector< PT(EggNode) EggBinMaker::Nodes) [private]
 

Definition at line 280 of file eggBinMaker.h.

Referenced by get_bins_for_group(), and make_bins_for_group().

typedef pmultiset<PT(EggNode), EggBinMakerCompareNodes EggBinMaker::SortedNodes) [private]
 

Definition at line 274 of file eggBinMaker.h.

Referenced by collect_nodes(), and get_bins_for_group().


Constructor & Destructor Documentation

EggBinMaker::EggBinMaker  ) 
 

Definition at line 59 of file eggBinMaker.cxx.

EggBinMaker::~EggBinMaker  ) 
 

Definition at line 68 of file eggBinMaker.cxx.


Member Function Documentation

bool EggBinMaker::collapse_group const EggGroup group,
int  bin_number
[virtual]
 

Reimplemented in EggBinner.

Definition at line 119 of file eggBinMaker.cxx.

Referenced by make_bins_for_group().

void EggBinMaker::collect_nodes EggGroupNode group  )  [private]
 

Definition at line 142 of file eggBinMaker.cxx.

References _group_nodes, EggGroupNode::begin(), DCAST, EggGroupNode::end(), EggGroupNode::erase(), get_bin_number(), EggGroupNode::get_class_type(), TypedObject::is_of_type(), EggGroupNode::iterator, and SortedNodes.

Referenced by make_bins().

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

Reimplemented from EggObject.

Definition at line 304 of file eggBinMaker.h.

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

string EggBinMaker::get_bin_name int  bin_number  )  [virtual]
 

Definition at line 130 of file eggBinMaker.cxx.

Referenced by setup_bin().

virtual int EggBinMaker::get_bin_number const EggNode node  )  [pure virtual]
 

Implemented in EggPolysetMaker, and EggBinner.

Referenced by collect_nodes(), make_bins_for_group(), EggBinMakerCompareNodes::operator()(), and setup_bin().

int EggBinMaker::get_bins_for_group GroupNodes::const_iterator  gi  )  [private]
 

Definition at line 198 of file eggBinMaker.cxx.

References Bins, make_bins_for_group(), Nodes, and SortedNodes.

Referenced by make_bins().

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

Reimplemented from EggObject.

Definition at line 293 of file eggBinMaker.h.

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

Reimplemented from EggObject.

Definition at line 301 of file eggBinMaker.h.

References EggObject::get_class_type().

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

Reimplemented from EggObject.

Definition at line 296 of file eggBinMaker.h.

References EggObject::get_class_type(), EggObject::init_type(), and register_type().

Referenced by init_libegg().

int EggBinMaker::make_bins EggGroupNode root_group  ) 
 

Definition at line 81 of file eggBinMaker.cxx.

References _group_nodes, collect_nodes(), and get_bins_for_group().

Referenced by EggLoader::build_graph().

void EggBinMaker::make_bins_for_group EggGroupNode group,
const Bins bins
[private]
 

Definition at line 236 of file eggBinMaker.cxx.

References collapse_group(), DCAST, EggGroupNode::empty(), get_bin_number(), EggGroup::get_class_type(), EggNode::get_parent(), TypedObject::is_of_type(), Nodes, NULL, and setup_bin().

Referenced by get_bins_for_group().

void EggBinMaker::setup_bin EggBin bin,
const Nodes nodes
[private]
 

Definition at line 284 of file eggBinMaker.cxx.

References get_bin_name(), get_bin_number(), and EggBin::set_bin_number().

Referenced by make_bins_for_group().

bool EggBinMaker::sorts_less int  bin_number,
const EggNode a,
const EggNode b
[virtual]
 

Reimplemented in EggPolysetMaker, and EggBinner.

Definition at line 107 of file eggBinMaker.cxx.

Referenced by EggBinMakerCompareNodes::operator()().


Member Data Documentation

GroupNodes EggBinMaker::_group_nodes [private]
 

Definition at line 288 of file eggBinMaker.h.

Referenced by collect_nodes(), and make_bins().

TypeHandle EggBinMaker::_type_handle [static, private]
 

Reimplemented from EggObject.

Definition at line 27 of file eggBinMaker.cxx.


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