Public Types | Public Member Functions | Public Attributes | Protected Attributes

Geometry::IndexedGeometry Class Reference

List of all members.

Public Types

enum  Type { Lines, Triangles, TriangleStrip, TriangleFan }
enum  NormalBinding { PerVertex, PerFace }

Public Member Functions

 IndexedGeometry (Type, NormalBinding=PerFace, Coord3List *coords=0, Coord3List *normals=0, Coord3List *texturecoords=0)
virtual ~IndexedGeometry ()
void removeAll ()
bool isEmpty () const
bool isHidden () const
void hide (bool yn)

Public Attributes

Threads::Mutex lock_
Type type_
NormalBinding normalbinding_
TypeSet< int > coordindices_
TypeSet< int > texturecoordindices_
TypeSet< int > normalindices_
bool ischanged_

Protected Attributes

bool ishidden_
Coord3List * coordlist_
Coord3List * texturecoordlist_
Coord3List * normallist_

Detailed Description

A geomtetry that is defined by a number of coordinates (defined outside the class), by specifying connections between the coordiates.


Member Enumeration Documentation

Enumerator:
PerVertex 
PerFace 
Enumerator:
Lines 
Triangles 
TriangleStrip 
TriangleFan 

Constructor & Destructor Documentation

Geometry::IndexedGeometry::IndexedGeometry ( Type  ,
NormalBinding  = PerFace,
Coord3List *  coords = 0,
Coord3List *  normals = 0,
Coord3List *  texturecoords = 0 
)

If coords or normals are given, used indices will be removed when object deleted or removeAll is called. If multiple geometries are sharing the coords/normals, this is probably not what you want.

virtual Geometry::IndexedGeometry::~IndexedGeometry (  )  [virtual]

Member Function Documentation

void Geometry::IndexedGeometry::hide ( bool  yn  )  [inline]
bool Geometry::IndexedGeometry::isEmpty (  )  const
bool Geometry::IndexedGeometry::isHidden (  )  const [inline]
void Geometry::IndexedGeometry::removeAll (  ) 

Member Data Documentation

Coord3List* Geometry::IndexedGeometry::coordlist_ [protected]
Coord3List* Geometry::IndexedGeometry::normallist_ [protected]