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

EggMaterialCollection Class Reference

#include <eggMaterialCollection.h>

List of all members.

Public Types

typedef OrderedMaterials::const_iterator iterator
typedef iterator const_iterator
typedef OrderedMaterials::size_type size_type
typedef pmap< PT_EggMaterial,
PT_EggMaterial
MaterialReplacement

Public Member Functions

 EggMaterialCollection ()
 EggMaterialCollection (const EggMaterialCollection &copy)
EggMaterialCollection & operator= (const EggMaterialCollection &copy)
 ~EggMaterialCollection ()
void clear ()
int extract_materials (EggGroupNode *node)
EggGroupNode::iterator insert_materials (EggGroupNode *node)
EggGroupNode::iterator insert_materials (EggGroupNode *node, EggGroupNode::iterator position)
int find_used_materials (EggNode *node)
void remove_unused_materials (EggNode *node)
int collapse_equivalent_materials (int eq, EggGroupNode *node)
int collapse_equivalent_materials (int eq, MaterialReplacement &removed)
void uniquify_mrefs ()
void sort_by_mref ()
INLINE iterator begin () const
INLINE iterator end () const
INLINE bool empty () const
INLINE size_type size () const
bool add_material (EggMaterial *material)
bool remove_material (EggMaterial *material)
EggMaterialcreate_unique_material (const EggMaterial &copy, int eq)
EggMaterialfind_mref (const string &mref_name) const

Static Public Member Functions

void replace_materials (EggGroupNode *node, const MaterialReplacement &replace)

Private Types

typedef pmap< PT_EggMaterial,
int > 
Materials
typedef vector_PT_EggMaterial OrderedMaterials

Private Attributes

Materials _materials
OrderedMaterials _ordered_materials


Member Typedef Documentation

typedef iterator EggMaterialCollection::const_iterator
 

Definition at line 51 of file eggMaterialCollection.h.

typedef OrderedMaterials::const_iterator EggMaterialCollection::iterator
 

Definition at line 50 of file eggMaterialCollection.h.

typedef pmap<PT_EggMaterial, PT_EggMaterial > EggMaterialCollection::MaterialReplacement
 

Definition at line 54 of file eggMaterialCollection.h.

Referenced by collapse_equivalent_materials().

typedef pmap<PT_EggMaterial, int> EggMaterialCollection::Materials [private]
 

Definition at line 46 of file eggMaterialCollection.h.

typedef vector_PT_EggMaterial EggMaterialCollection::OrderedMaterials [private]
 

Definition at line 47 of file eggMaterialCollection.h.

typedef OrderedMaterials::size_type EggMaterialCollection::size_type
 

Definition at line 52 of file eggMaterialCollection.h.


Constructor & Destructor Documentation

EggMaterialCollection::EggMaterialCollection  ) 
 

Definition at line 34 of file eggMaterialCollection.cxx.

EggMaterialCollection::EggMaterialCollection const EggMaterialCollection &  copy  ) 
 

Definition at line 43 of file eggMaterialCollection.cxx.

EggMaterialCollection::~EggMaterialCollection  ) 
 

Definition at line 67 of file eggMaterialCollection.cxx.


Member Function Documentation

bool EggMaterialCollection::add_material EggMaterial material  ) 
 

Definition at line 365 of file eggMaterialCollection.cxx.

References _materials, _ordered_materials, and PT.

Referenced by collapse_equivalent_materials(), create_unique_material(), and EggGroupNode::find_materials().

INLINE iterator EggMaterialCollection::begin  )  const
 

void EggMaterialCollection::clear  ) 
 

Definition at line 76 of file eggMaterialCollection.cxx.

References _materials, and _ordered_materials.

Referenced by collapse_equivalent_materials(), and remove_unused_materials().

int EggMaterialCollection::collapse_equivalent_materials int  eq,
MaterialReplacement removed
 

Definition at line 252 of file eggMaterialCollection.cxx.

References _ordered_materials, add_material(), clear(), first, and tex.

int EggMaterialCollection::collapse_equivalent_materials int  eq,
EggGroupNode node
 

Definition at line 223 of file eggMaterialCollection.cxx.

References MaterialReplacement, and replace_materials().

Referenced by EggData::collapse_equivalent_materials(), and EggData::pre_write().

EggMaterial * EggMaterialCollection::create_unique_material const EggMaterial copy,
int  eq
 

Definition at line 424 of file eggMaterialCollection.cxx.

References _ordered_materials, add_material(), EggMaterial::is_equivalent_to(), and tex.

INLINE bool EggMaterialCollection::empty  )  const
 

INLINE iterator EggMaterialCollection::end  )  const
 

int EggMaterialCollection::extract_materials EggGroupNode node  ) 
 

Definition at line 90 of file eggMaterialCollection.cxx.

References EggGroupNode::find_materials().

Referenced by EggData::pre_write().

EggMaterial * EggMaterialCollection::find_mref const string &  mref_name  )  const
 

Definition at line 449 of file eggMaterialCollection.cxx.

References _ordered_materials, NULL, and tex.

int EggMaterialCollection::find_used_materials EggNode node  ) 
 

Definition at line 157 of file eggMaterialCollection.cxx.

References _materials, _ordered_materials, EggGroupNode::begin(), DCAST, EggGroupNode::end(), EggGroupNode::get_class_type(), EggPrimitive::get_class_type(), EggPrimitive::get_material(), EggPrimitive::has_material(), TypedObject::is_of_type(), EggGroupNode::iterator, and tex.

Referenced by EggData::collapse_equivalent_materials(), and remove_unused_materials().

EggGroupNode::iterator EggMaterialCollection::insert_materials EggGroupNode node,
EggGroupNode::iterator  position
 

Definition at line 118 of file eggMaterialCollection.cxx.

References _ordered_materials, and EggGroupNode::insert().

EggGroupNode::iterator EggMaterialCollection::insert_materials EggGroupNode node  ) 
 

Definition at line 105 of file eggMaterialCollection.cxx.

References EggGroupNode::begin().

Referenced by EggData::pre_write().

EggMaterialCollection & EggMaterialCollection::operator= const EggMaterialCollection &  copy  ) 
 

Definition at line 55 of file eggMaterialCollection.cxx.

References _materials, and _ordered_materials.

bool EggMaterialCollection::remove_material EggMaterial material  ) 
 

Definition at line 392 of file eggMaterialCollection.cxx.

References _materials, _ordered_materials, and PT.

void EggMaterialCollection::remove_unused_materials EggNode node  ) 
 

Definition at line 201 of file eggMaterialCollection.cxx.

References clear(), and find_used_materials().

Referenced by EggData::pre_write().

void EggMaterialCollection::replace_materials EggGroupNode node,
const MaterialReplacement replace
[static]
 

Definition at line 297 of file eggMaterialCollection.cxx.

References EggGroupNode::begin(), DCAST, EggGroupNode::end(), EggGroupNode::get_class_type(), EggPrimitive::get_class_type(), EggPrimitive::get_material(), EggPrimitive::has_material(), TypedObject::is_of_type(), EggGroupNode::iterator, PT, EggPrimitive::set_material(), and tex.

Referenced by collapse_equivalent_materials().

INLINE size_type EggMaterialCollection::size  )  const
 

void EggMaterialCollection::sort_by_mref  ) 
 

Definition at line 352 of file eggMaterialCollection.cxx.

References _ordered_materials.

Referenced by EggData::pre_write().

void EggMaterialCollection::uniquify_mrefs  ) 
 

Definition at line 331 of file eggMaterialCollection.cxx.

References _ordered_materials, NameUniquifier::add_name(), and tex.

Referenced by EggData::pre_write().


Member Data Documentation

Materials EggMaterialCollection::_materials [private]
 

Definition at line 101 of file eggMaterialCollection.h.

Referenced by add_material(), clear(), find_used_materials(), operator=(), and remove_material().

OrderedMaterials EggMaterialCollection::_ordered_materials [private]
 

Definition at line 102 of file eggMaterialCollection.h.

Referenced by add_material(), clear(), collapse_equivalent_materials(), create_unique_material(), find_mref(), find_used_materials(), insert_materials(), operator=(), remove_material(), sort_by_mref(), and uniquify_mrefs().


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