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

EggVertexPool Class Reference

#include <eggVertexPool.h>

Inheritance diagram for EggVertexPool:

EggNode EggNamedObject EggObject Namable TypedReferenceCount TypedObject ReferenceCount List of all members.

Public Types

typedef second_of_pair_iterator<
IndexVertices::const_iterator > 
iterator
typedef iterator const_iterator
typedef IndexVertices::size_type size_type

Public Member Functions

 EggVertexPool (const string &name)
 EggVertexPool (const EggVertexPool &copy)
 ~EggVertexPool ()
EggVertexget_vertex (int index) const
INLINE EggVertexoperator[] (int index) const
int get_highest_index () const
iterator begin () const
iterator end () const
bool empty () const
size_type size () const
void add_vertex (EggVertex *vertex, int index=-1)
INLINE EggVertexmake_new_vertex ()
INLINE EggVertexmake_new_vertex (double pos)
INLINE EggVertexmake_new_vertex (const LPoint2d &pos)
INLINE EggVertexmake_new_vertex (const LPoint3d &pos)
INLINE EggVertexmake_new_vertex (const LPoint4d &pos)
EggVertexcreate_unique_vertex (const EggVertex &copy)
void remove_vertex (EggVertex *vertex)
int remove_unused_vertices ()
void transform (const LMatrix4d &mat)
void write (ostream &out, int indent_level) const
virtual TypeHandle get_type () const
virtual TypeHandle force_init_type ()

Static Public Member Functions

TypeHandle get_class_type ()
void init_type ()

Protected Member Functions

virtual void r_transform (const LMatrix4d &mat, const LMatrix4d &inv, CoordinateSystem to_cs)
virtual void r_transform_vertices (const LMatrix4d &mat)

Private Types

typedef pmap< int, PT_EggVertexIndexVertices
typedef pmultiset< EggVertex *,
UniqueEggVertices
UniqueVertices

Private Attributes

UniqueVertices _unique_vertices
IndexVertices _index_vertices

Static Private Attributes

TypeHandle _type_handle

Friends

class EggVertex

Member Typedef Documentation

typedef iterator EggVertexPool::const_iterator
 

Definition at line 70 of file eggVertexPool.h.

typedef pmap<int, PT_EggVertex> EggVertexPool::IndexVertices [private]
 

Definition at line 59 of file eggVertexPool.h.

Referenced by remove_unused_vertices().

typedef second_of_pair_iterator<IndexVertices::const_iterator> EggVertexPool::iterator
 

Definition at line 69 of file eggVertexPool.h.

Referenced by begin(), EggVertexPool(), end(), transform(), write(), and ~EggVertexPool().

typedef IndexVertices::size_type EggVertexPool::size_type
 

Definition at line 71 of file eggVertexPool.h.

typedef pmultiset<EggVertex *, UniqueEggVertices> EggVertexPool::UniqueVertices [private]
 

Definition at line 66 of file eggVertexPool.h.

Referenced by remove_unused_vertices().


Constructor & Destructor Documentation

EggVertexPool::EggVertexPool const string &  name  ) 
 

Definition at line 33 of file eggVertexPool.cxx.

EggVertexPool::EggVertexPool const EggVertexPool &  copy  ) 
 

Definition at line 45 of file eggVertexPool.cxx.

References add_vertex(), EggVertex, and iterator.

EggVertexPool::~EggVertexPool  ) 
 

Definition at line 59 of file eggVertexPool.cxx.

References _index_vertices, _unique_vertices, begin(), end(), get_vertex(), iterator, and NULL.


Member Function Documentation

void EggVertexPool::add_vertex EggVertex vertex,
int  index = -1
 

Definition at line 171 of file eggVertexPool.cxx.

References _index_vertices, EggVertex::_pool, _unique_vertices, get_highest_index(), index, and NULL.

Referenced by create_unique_vertex(), and EggVertexPool().

EggVertexPool::iterator EggVertexPool::begin  )  const
 

Definition at line 121 of file eggVertexPool.cxx.

References _index_vertices, _unique_vertices, and iterator.

Referenced by transform(), write(), and ~EggVertexPool().

EggVertex * EggVertexPool::create_unique_vertex const EggVertex copy  ) 
 

Definition at line 201 of file eggVertexPool.cxx.

References _unique_vertices, add_vertex(), and EggVertex.

Referenced by EggGroupNode::do_compute_vertex_normals(), EggPrimitive::r_apply_texmats(), EggPrimitive::r_flatten_transforms(), EggGroupNode::recompute_polygon_normals(), and EggGroupNode::strip_normals().

bool EggVertexPool::empty  )  const
 

Definition at line 144 of file eggVertexPool.cxx.

References _index_vertices.

Referenced by EggGroupNode::remove_unused_vertices().

EggVertexPool::iterator EggVertexPool::end  )  const
 

Definition at line 134 of file eggVertexPool.cxx.

References _index_vertices, and iterator.

Referenced by transform(), write(), and ~EggVertexPool().

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

Reimplemented from EggNode.

Definition at line 140 of file eggVertexPool.h.

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

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

Reimplemented from EggNode.

Definition at line 129 of file eggVertexPool.h.

Referenced by EggPoolUniquifier::get_category(), and EggGroupNode::remove_unused_vertices().

int EggVertexPool::get_highest_index  )  const
 

Definition at line 105 of file eggVertexPool.cxx.

References _index_vertices.

Referenced by add_vertex().

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

Reimplemented from EggNode.

Definition at line 137 of file eggVertexPool.h.

References EggNode::get_class_type().

EggVertex * EggVertexPool::get_vertex int  index  )  const
 

Definition at line 88 of file eggVertexPool.cxx.

References _index_vertices, index, and NULL.

Referenced by remove_vertex(), and ~EggVertexPool().

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

Reimplemented from EggNode.

Definition at line 132 of file eggVertexPool.h.

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

Referenced by init_libegg().

INLINE EggVertex* EggVertexPool::make_new_vertex const LPoint4d &  pos  ) 
 

INLINE EggVertex* EggVertexPool::make_new_vertex const LPoint3d &  pos  ) 
 

INLINE EggVertex* EggVertexPool::make_new_vertex const LPoint2d &  pos  ) 
 

INLINE EggVertex* EggVertexPool::make_new_vertex double  pos  ) 
 

INLINE EggVertex* EggVertexPool::make_new_vertex  ) 
 

INLINE EggVertex* EggVertexPool::operator[] int  index  )  const
 

void EggVertexPool::r_transform const LMatrix4d &  mat,
const LMatrix4d &  inv,
CoordinateSystem  to_cs
[protected, virtual]
 

Reimplemented from EggNode.

Definition at line 417 of file eggVertexPool.cxx.

References transform().

void EggVertexPool::r_transform_vertices const LMatrix4d &  mat  )  [protected, virtual]
 

Reimplemented from EggNode.

Definition at line 431 of file eggVertexPool.cxx.

References transform().

int EggVertexPool::remove_unused_vertices  ) 
 

Definition at line 265 of file eggVertexPool.cxx.

References EggVertex::_index, _index_vertices, EggVertex::_pool, _unique_vertices, EggVertex::clear_grefs(), IndexVertices, NULL, EggVertex::pref_size(), and UniqueVertices.

Referenced by EggGroupNode::remove_unused_vertices().

void EggVertexPool::remove_vertex EggVertex vertex  ) 
 

Definition at line 224 of file eggVertexPool.cxx.

References EggVertex::_index, _index_vertices, EggVertex::_pool, _unique_vertices, get_vertex(), and NULL.

EggVertexPool::size_type EggVertexPool::size  )  const
 

Definition at line 154 of file eggVertexPool.cxx.

References _index_vertices, and _unique_vertices.

Referenced by transform().

void EggVertexPool::transform const LMatrix4d &  mat  ) 
 

Reimplemented from EggNode.

Definition at line 319 of file eggVertexPool.cxx.

References begin(), end(), EggVertex::get_num_global_coord(), EggVertex::get_num_local_coord(), iterator, size(), split_vertex(), and EggVertex::transform().

Referenced by r_transform(), and r_transform_vertices().

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

Implements EggNode.

Definition at line 390 of file eggVertexPool.cxx.

References begin(), end(), indent(), iterator, and EggNamedObject::write_header().


Friends And Related Function Documentation

friend class EggVertex [friend]
 

Definition at line 145 of file eggVertexPool.h.

Referenced by create_unique_vertex(), and EggVertexPool().


Member Data Documentation

IndexVertices EggVertexPool::_index_vertices [private]
 

Definition at line 124 of file eggVertexPool.h.

Referenced by add_vertex(), begin(), empty(), end(), get_highest_index(), get_vertex(), remove_unused_vertices(), remove_vertex(), size(), and ~EggVertexPool().

TypeHandle EggVertexPool::_type_handle [static, private]
 

Reimplemented from EggNode.

Definition at line 25 of file eggVertexPool.cxx.

UniqueVertices EggVertexPool::_unique_vertices [private]
 

Definition at line 123 of file eggVertexPool.h.

Referenced by add_vertex(), begin(), create_unique_vertex(), remove_unused_vertices(), remove_vertex(), size(), and ~EggVertexPool().


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