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

EggPrimitive Class Reference

#include <eggPrimitive.h>

Inheritance diagram for EggPrimitive:

EggNode EggAttributes EggRenderMode EggNamedObject EggObject Namable TypedReferenceCount TypedObject ReferenceCount EggCurve EggPoint EggPolygon EggSurface EggNurbsCurve EggNurbsSurface List of all members.

Public Types

typedef Vertices::const_pointer pointer
typedef Vertices::const_pointer const_pointer
typedef Vertices::const_reference reference
typedef Vertices::const_reference const_reference
typedef Vertices::const_iterator iterator
typedef Vertices::const_iterator const_iterator
typedef Vertices::const_reverse_iterator reverse_iterator
typedef Vertices::const_reverse_iterator const_reverse_iterator
typedef Vertices::size_type size_type
typedef Vertices::difference_type difference_type

Public Member Functions

INLINE EggPrimitive (const string &name="")
INLINE EggPrimitive (const EggPrimitive &copy)
INLINE EggPrimitive & operator= (const EggPrimitive &copy)
INLINE ~EggPrimitive ()
virtual EggRenderModedetermine_alpha_mode ()
virtual EggRenderModedetermine_depth_write_mode ()
virtual EggRenderModedetermine_depth_test_mode ()
virtual EggRenderModedetermine_draw_order ()
virtual EggRenderModedetermine_bin ()
INLINE void set_texture (EggTexture *texture)
INLINE void clear_texture ()
INLINE EggTextureget_texture () const
INLINE bool has_texture () const
INLINE void set_material (EggMaterial *material)
INLINE void clear_material ()
INLINE EggMaterialget_material () const
INLINE bool has_material () const
INLINE void set_bface_flag (bool flag)
INLINE bool get_bface_flag () const
bool has_vertex_normal () const
bool has_vertex_color () const
virtual void reverse_vertex_ordering ()
virtual bool cleanup ()
void remove_doubled_verts (bool closed)
void remove_nonunique_verts ()
INLINE iterator begin () const
INLINE iterator end () const
INLINE reverse_iterator rbegin () const
INLINE reverse_iterator rend () const
INLINE bool empty () const
INLINE size_type size () const
INLINE EggVertexoperator[] (int index) const
INLINE iterator insert (iterator position, EggVertex *x)
INLINE iterator erase (iterator position)
iterator erase (iterator first, iterator last)
INLINE void replace (iterator position, EggVertex *vertex)
INLINE void clear ()
EggVertexadd_vertex (EggVertex *vertex)
EggVertexremove_vertex (EggVertex *vertex)
void copy_vertices (const EggPrimitive &other)
INLINE void set_vertex (int index, EggVertex *vertex)
INLINE EggVertexget_vertex (int index) const
INLINE EggVertexPoolget_pool () const
void test_vref_integrity () 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

void write_body (ostream &out, int indent_level) const
virtual bool egg_start_parse_body ()
virtual void r_transform (const LMatrix4d &mat, const LMatrix4d &inv, CoordinateSystem to_cs)
virtual void r_flatten_transforms ()
virtual void r_apply_texmats (EggTextureCollection &textures)

Private Types

typedef vector_PT_EggVertex Vertices

Private Member Functions

void prepare_add_vertex (EggVertex *vertex)
void prepare_remove_vertex (EggVertex *vertex)

Private Attributes

Vertices _vertices
PT_EggTexture _texture
PT_EggMaterial _material
bool _bface

Static Private Attributes

TypeHandle _type_handle

Member Typedef Documentation

typedef Vertices::const_iterator EggPrimitive::const_iterator
 

Definition at line 115 of file eggPrimitive.h.

Referenced by EggPolygon::calculate_normal(), EggLoader::create_collision_plane(), EggLoader::create_collision_polygons(), CharacterMaker::determine_primitive_home(), EggLoader::make_collision_sphere(), EggLoader::make_indexed_primitive(), EggLoader::make_node(), EggLoader::make_nonindexed_primitive(), EggLoader::setup_bucket(), and write_body().

typedef Vertices::const_pointer EggPrimitive::const_pointer
 

Definition at line 110 of file eggPrimitive.h.

typedef Vertices::const_reference EggPrimitive::const_reference
 

Definition at line 113 of file eggPrimitive.h.

typedef Vertices::const_reverse_iterator EggPrimitive::const_reverse_iterator
 

Definition at line 117 of file eggPrimitive.h.

typedef Vertices::difference_type EggPrimitive::difference_type
 

Definition at line 119 of file eggPrimitive.h.

typedef Vertices::const_iterator EggPrimitive::iterator
 

Definition at line 114 of file eggPrimitive.h.

Referenced by copy_vertices(), erase(), remove_vertex(), EggVertex::test_pref_integrity(), and test_vref_integrity().

typedef Vertices::const_pointer EggPrimitive::pointer
 

Definition at line 109 of file eggPrimitive.h.

typedef Vertices::const_reference EggPrimitive::reference
 

Definition at line 112 of file eggPrimitive.h.

typedef Vertices::const_reverse_iterator EggPrimitive::reverse_iterator
 

Definition at line 116 of file eggPrimitive.h.

typedef Vertices::size_type EggPrimitive::size_type
 

Definition at line 118 of file eggPrimitive.h.

typedef vector_PT_EggVertex EggPrimitive::Vertices [private]
 

Definition at line 61 of file eggPrimitive.h.

Referenced by remove_doubled_verts(), and remove_nonunique_verts().


Constructor & Destructor Documentation

INLINE EggPrimitive::EggPrimitive const string &  name = ""  ) 
 

INLINE EggPrimitive::EggPrimitive const EggPrimitive &  copy  ) 
 

INLINE EggPrimitive::~EggPrimitive  ) 
 


Member Function Documentation

EggVertex * EggPrimitive::add_vertex EggVertex vertex  ) 
 

Definition at line 324 of file eggPrimitive.cxx.

References _vertices, prepare_add_vertex(), EggVertex::test_pref_integrity(), and test_vref_integrity().

Referenced by copy_vertices().

INLINE iterator EggPrimitive::begin  )  const
 

Referenced by EggPolygon::calculate_normal(), copy_vertices(), EggLoader::create_collision_plane(), EggLoader::create_collision_polygons(), CharacterMaker::determine_primitive_home(), EggLoader::make_collision_sphere(), EggLoader::make_indexed_primitive(), EggLoader::make_node(), EggLoader::make_nonindexed_primitive(), remove_vertex(), EggLoader::setup_bucket(), EggVertex::test_pref_integrity(), test_vref_integrity(), and write_body().

bool EggPrimitive::cleanup  )  [virtual]
 

Reimplemented in EggPoint, and EggPolygon.

Definition at line 213 of file eggPrimitive.cxx.

References empty().

Referenced by EggLoader::make_node(), and EggGroupNode::remove_invalid_primitives().

INLINE void EggPrimitive::clear  ) 
 

Referenced by copy_vertices().

INLINE void EggPrimitive::clear_material  ) 
 

INLINE void EggPrimitive::clear_texture  ) 
 

void EggPrimitive::copy_vertices const EggPrimitive &  other  ) 
 

Definition at line 368 of file eggPrimitive.cxx.

References _vertices, add_vertex(), begin(), clear(), end(), iterator, size(), and test_vref_integrity().

EggRenderMode * EggPrimitive::determine_alpha_mode  )  [virtual]
 

Reimplemented from EggNode.

Definition at line 41 of file eggPrimitive.cxx.

References EggRenderMode::AM_unspecified, EggNode::determine_alpha_mode(), EggRenderMode::get_alpha_mode(), get_texture(), has_texture(), and NULL.

Referenced by EggLoader::setup_bucket().

EggRenderMode * EggPrimitive::determine_bin  )  [virtual]
 

Reimplemented from EggNode.

Definition at line 139 of file eggPrimitive.cxx.

References EggNode::determine_bin(), get_texture(), EggRenderMode::has_bin(), has_texture(), and NULL.

Referenced by EggLoader::setup_bucket().

EggRenderMode * EggPrimitive::determine_depth_test_mode  )  [virtual]
 

Reimplemented from EggNode.

Definition at line 90 of file eggPrimitive.cxx.

References EggNode::determine_depth_test_mode(), EggRenderMode::DTM_unspecified, EggRenderMode::get_depth_test_mode(), get_texture(), has_texture(), and NULL.

Referenced by EggLoader::setup_bucket().

EggRenderMode * EggPrimitive::determine_depth_write_mode  )  [virtual]
 

Reimplemented from EggNode.

Definition at line 65 of file eggPrimitive.cxx.

References EggNode::determine_depth_write_mode(), EggRenderMode::DWM_unspecified, EggRenderMode::get_depth_write_mode(), get_texture(), has_texture(), and NULL.

Referenced by EggLoader::setup_bucket().

EggRenderMode * EggPrimitive::determine_draw_order  )  [virtual]
 

Reimplemented from EggNode.

Definition at line 115 of file eggPrimitive.cxx.

References EggNode::determine_draw_order(), get_texture(), EggRenderMode::has_draw_order(), has_texture(), and NULL.

Referenced by EggLoader::setup_bucket().

bool EggPrimitive::egg_start_parse_body  )  [protected, virtual]
 

Reimplemented from EggNode.

Definition at line 586 of file eggPrimitive.cxx.

References egg_start_primitive_body().

INLINE bool EggPrimitive::empty  )  const
 

Referenced by cleanup(), EggPoint::cleanup(), EggLoader::create_collision_plane(), EggLoader::create_collision_polygons(), CharacterMaker::make_geometry(), prepare_add_vertex(), and write_body().

INLINE iterator EggPrimitive::end  )  const
 

Referenced by EggPolygon::calculate_normal(), copy_vertices(), EggLoader::create_collision_plane(), EggLoader::create_collision_polygons(), CharacterMaker::determine_primitive_home(), EggLoader::make_collision_sphere(), EggLoader::make_indexed_primitive(), EggLoader::make_node(), EggLoader::make_nonindexed_primitive(), remove_vertex(), EggLoader::setup_bucket(), EggVertex::test_pref_integrity(), test_vref_integrity(), and write_body().

EggPrimitive::iterator EggPrimitive::erase iterator  first,
iterator  last
 

Definition at line 305 of file eggPrimitive.cxx.

References _vertices, first, iterator, prepare_remove_vertex(), and test_vref_integrity().

INLINE iterator EggPrimitive::erase iterator  position  ) 
 

Referenced by remove_vertex().

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

Reimplemented from EggNode.

Reimplemented in EggCurve, EggNurbsCurve, EggNurbsSurface, EggPoint, EggPolygon, and EggSurface.

Definition at line 194 of file eggPrimitive.h.

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

INLINE bool EggPrimitive::get_bface_flag  )  const
 

Referenced by EggLoader::setup_bucket(), EggPolysetMaker::sorts_less(), and write_body().

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

Reimplemented from EggAttributes.

Reimplemented in EggCurve, EggNurbsCurve, EggNurbsSurface, EggPoint, EggPolygon, and EggSurface.

Definition at line 179 of file eggPrimitive.h.

Referenced by EggMaterialCollection::find_used_materials(), EggTextureCollection::find_used_textures(), EggSurface::force_init_type(), EggPolygon::force_init_type(), EggPoint::force_init_type(), EggCurve::force_init_type(), get_textures_by_filename(), EggSurface::get_type(), EggPolygon::get_type(), EggPoint::get_type(), EggCurve::get_type(), EggSurface::init_type(), EggPolygon::init_type(), EggPoint::init_type(), EggNurbsSurface::init_type(), EggNurbsCurve::init_type(), EggCurve::init_type(), EggLoader::make_collision_sphere(), CharacterMaker::make_geometry(), EggLoader::make_node(), EggGroupNode::remove_invalid_primitives(), EggMaterialCollection::replace_materials(), EggTextureCollection::replace_textures(), EggGroupNode::reverse_vertex_ordering(), and EggGroupNode::strip_normals().

INLINE EggMaterial* EggPrimitive::get_material  )  const
 

Referenced by EggMaterialCollection::find_used_materials(), EggMaterialCollection::replace_materials(), EggLoader::setup_bucket(), EggPolysetMaker::sorts_less(), and write_body().

INLINE EggVertexPool* EggPrimitive::get_pool  )  const
 

Referenced by prepare_add_vertex(), and write_body().

INLINE EggTexture* EggPrimitive::get_texture  )  const
 

Referenced by determine_alpha_mode(), determine_bin(), determine_depth_test_mode(), determine_depth_write_mode(), determine_draw_order(), EggTextureCollection::find_used_textures(), get_textures_by_filename(), EggLoader::make_indexed_primitive(), EggLoader::make_nonindexed_primitive(), r_apply_texmats(), EggTextureCollection::replace_textures(), EggLoader::setup_bucket(), EggPolysetMaker::sorts_less(), and write_body().

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

Reimplemented from EggNode.

Reimplemented in EggCurve, EggNurbsCurve, EggNurbsSurface, EggPoint, EggPolygon, and EggSurface.

Definition at line 191 of file eggPrimitive.h.

References EggAttributes::get_class_type().

INLINE EggVertex* EggPrimitive::get_vertex int  index  )  const
 

Referenced by EggPolygon::decomp_concave(), r_apply_texmats(), EggGroupNode::r_collect_vertex_normals(), r_flatten_transforms(), EggGroupNode::recompute_polygon_normals(), EggGroupNode::strip_normals(), and EggPolygon::triangulate_poly().

INLINE bool EggPrimitive::has_material  )  const
 

Referenced by EggMaterialCollection::find_used_materials(), EggMaterialCollection::replace_materials(), EggLoader::setup_bucket(), EggPolysetMaker::sorts_less(), and write_body().

INLINE bool EggPrimitive::has_texture  )  const
 

Referenced by determine_alpha_mode(), determine_bin(), determine_depth_test_mode(), determine_depth_write_mode(), determine_draw_order(), EggTextureCollection::find_used_textures(), get_textures_by_filename(), EggLoader::make_indexed_primitive(), EggLoader::make_nonindexed_primitive(), r_apply_texmats(), EggTextureCollection::replace_textures(), EggLoader::setup_bucket(), EggPolysetMaker::sorts_less(), and write_body().

bool EggPrimitive::has_vertex_color  )  const
 

Definition at line 177 of file eggPrimitive.cxx.

References _vertices.

Referenced by EggPolysetMaker::sorts_less().

bool EggPrimitive::has_vertex_normal  )  const
 

Definition at line 160 of file eggPrimitive.cxx.

References _vertices.

Referenced by EggPolysetMaker::sorts_less().

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

Reimplemented from EggAttributes.

Reimplemented in EggCurve, EggNurbsCurve, EggNurbsSurface, EggPoint, EggPolygon, and EggSurface.

Definition at line 182 of file eggPrimitive.h.

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

Referenced by EggSurface::force_init_type(), EggPolygon::force_init_type(), EggPoint::force_init_type(), EggCurve::force_init_type(), init_libegg(), EggSurface::init_type(), EggPolygon::init_type(), EggPoint::init_type(), EggNurbsSurface::init_type(), EggNurbsCurve::init_type(), and EggCurve::init_type().

INLINE iterator EggPrimitive::insert iterator  position,
EggVertex x
 

INLINE EggPrimitive& EggPrimitive::operator= const EggPrimitive &  copy  ) 
 

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

void EggPrimitive::prepare_add_vertex EggVertex vertex  )  [private]
 

Definition at line 437 of file eggPrimitive.cxx.

References EggVertex::_pref, empty(), get_pool(), and EggVertex::get_pool().

Referenced by add_vertex().

void EggPrimitive::prepare_remove_vertex EggVertex vertex  )  [private]
 

Definition at line 466 of file eggPrimitive.cxx.

References EggVertex::_pref.

Referenced by erase(), remove_doubled_verts(), and remove_nonunique_verts().

void EggPrimitive::r_apply_texmats EggTextureCollection textures  )  [protected, virtual]
 

Reimplemented from EggNode.

Reimplemented in EggNurbsSurface.

Definition at line 642 of file eggPrimitive.cxx.

References EggTexture::clear_transform(), EggVertex::copy_grefs_from(), EggVertexPool::create_unique_vertex(), EggVertex::get_pool(), get_texture(), EggAttributes::get_uv(), get_vertex(), has_texture(), EggAttributes::has_uv(), set_texture(), EggAttributes::set_uv(), set_vertex(), size(), texture, and textures.

void EggPrimitive::r_flatten_transforms  )  [protected, virtual]
 

Reimplemented from EggNode.

Definition at line 615 of file eggPrimitive.cxx.

References EggVertex::copy_grefs_from(), EggVertexPool::create_unique_vertex(), EggVertex::get_pool(), get_vertex(), EggNode::get_vertex_frame(), EggNode::is_local_coord(), set_vertex(), size(), EggVertex::transform(), and EggAttributes::transform().

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

Reimplemented from EggNode.

Definition at line 605 of file eggPrimitive.cxx.

References EggAttributes::transform().

INLINE reverse_iterator EggPrimitive::rbegin  )  const
 

void EggPrimitive::remove_doubled_verts bool  closed  ) 
 

Definition at line 235 of file eggPrimitive.cxx.

References _vertices, prepare_remove_vertex(), and Vertices.

Referenced by EggPolygon::cleanup().

void EggPrimitive::remove_nonunique_verts  ) 
 

Definition at line 277 of file eggPrimitive.cxx.

References _vertices, prepare_remove_vertex(), and Vertices.

Referenced by EggPoint::cleanup().

EggVertex * EggPrimitive::remove_vertex EggVertex vertex  ) 
 

Definition at line 343 of file eggPrimitive.cxx.

References begin(), end(), erase(), iterator, PT_EggVertex, and test_vref_integrity().

INLINE reverse_iterator EggPrimitive::rend  )  const
 

INLINE void EggPrimitive::replace iterator  position,
EggVertex vertex
 

void EggPrimitive::reverse_vertex_ordering  )  [virtual]
 

Definition at line 196 of file eggPrimitive.cxx.

References _vertices.

Referenced by EggGroupNode::reverse_vertex_ordering().

INLINE void EggPrimitive::set_bface_flag bool  flag  ) 
 

INLINE void EggPrimitive::set_material EggMaterial material  ) 
 

Referenced by EggMaterialCollection::replace_materials().

INLINE void EggPrimitive::set_texture EggTexture texture  ) 
 

Referenced by r_apply_texmats(), and EggTextureCollection::replace_textures().

INLINE void EggPrimitive::set_vertex int  index,
EggVertex vertex
 

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

INLINE size_type EggPrimitive::size  )  const
 

Referenced by copy_vertices(), EggPolygon::decomp_concave(), EggNurbsSurface::is_valid(), EggNurbsCurve::is_valid(), r_apply_texmats(), EggGroupNode::r_collect_vertex_normals(), r_flatten_transforms(), EggGroupNode::recompute_polygon_normals(), EggGroupNode::strip_normals(), EggPolygon::triangulate_poly(), and write_body().

void EggPrimitive::test_vref_integrity  )  const
 

Definition at line 390 of file eggPrimitive.cxx.

References begin(), count, end(), EggVertex::has_pref(), iterator, and ReferenceCount::test_ref_count_integrity().

Referenced by add_vertex(), copy_vertices(), erase(), remove_vertex(), and write_body().

void EggPrimitive::write_body ostream &  out,
int  indent_level
const [protected]
 

Definition at line 492 of file eggPrimitive.cxx.

References begin(), const_iterator, empty(), end(), enquote_string(), get_bface_flag(), EggVertex::get_index(), get_material(), EggVertex::get_pool(), get_pool(), get_texture(), has_material(), has_texture(), indent(), indices, NULL, size(), EggVertex::test_pref_integrity(), test_vref_integrity(), texture, EggRenderMode::write(), EggAttributes::write(), and write_long_list().

Referenced by EggPolygon::write(), EggPoint::write(), EggNurbsSurface::write(), and EggNurbsCurve::write().


Member Data Documentation

bool EggPrimitive::_bface [private]
 

Definition at line 175 of file eggPrimitive.h.

PT_EggMaterial EggPrimitive::_material [private]
 

Definition at line 174 of file eggPrimitive.h.

PT_EggTexture EggPrimitive::_texture [private]
 

Definition at line 173 of file eggPrimitive.h.

TypeHandle EggPrimitive::_type_handle [static, private]
 

Reimplemented from EggAttributes.

Reimplemented in EggCurve, EggNurbsCurve, EggNurbsSurface, EggPoint, EggPolygon, and EggSurface.

Definition at line 28 of file eggPrimitive.cxx.

Vertices EggPrimitive::_vertices [private]
 

Definition at line 153 of file eggPrimitive.h.

Referenced by add_vertex(), copy_vertices(), erase(), has_vertex_color(), has_vertex_normal(), remove_doubled_verts(), remove_nonunique_verts(), and reverse_vertex_ordering().


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