Inheritance diagram for osgUtil::Tesselator:

Public Types | |
| typedef std::vector< osg::Vec3 * > | VertexPointList |
| typedef std::vector< osg::ref_ptr< Prim > > | PrimList |
| TESS_WINDING_ODD = GLU_TESS_WINDING_ODD | |
| TESS_WINDING_NONZERO = GLU_TESS_WINDING_NONZERO | |
| TESS_WINDING_POSITIVE = GLU_TESS_WINDING_POSITIVE | |
| TESS_WINDING_NEGATIVE = GLU_TESS_WINDING_NEGATIVE | |
| TESS_WINDING_ABS_GEQ_TWO = GLU_TESS_WINDING_ABS_GEQ_TWO | |
| TESS_TYPE_GEOMETRY | |
| TESS_TYPE_DRAWABLE | |
| TESS_TYPE_POLYGONS | |
| enum | WindingType { TESS_WINDING_ODD = GLU_TESS_WINDING_ODD, TESS_WINDING_NONZERO = GLU_TESS_WINDING_NONZERO, TESS_WINDING_POSITIVE = GLU_TESS_WINDING_POSITIVE, TESS_WINDING_NEGATIVE = GLU_TESS_WINDING_NEGATIVE, TESS_WINDING_ABS_GEQ_TWO = GLU_TESS_WINDING_ABS_GEQ_TWO } |
| enum | TesselationType { TESS_TYPE_GEOMETRY, TESS_TYPE_DRAWABLE, TESS_TYPE_POLYGONS } |
Public Member Functions | |
| Tesselator () | |
| ~Tesselator () | |
| void | setBoundaryOnly (const bool tt) |
| const bool | getBoundaryOnly () |
| void | setWindingType (const WindingType wt) |
| const WindingType | getWindingType () |
| void | setTesselationType (const TesselationType tt) |
| const TesselationType | getTesselationType () |
| void | retesselatePolygons (osg::Geometry &cxgeom) |
| void | setTesselationNormal (const osg::Vec3 norm) |
| osg::Geometry::PrimitiveSetList | getContours () |
| void | beginTesselation () |
| void | beginContour () |
| void | addVertex (osg::Vec3 *vertex) |
| void | endContour () |
| void | endTesselation () |
| PrimList & | getPrimList () |
| void | reset () |
Protected Types | |
| typedef std::map< osg::Vec3 *, unsigned int > | VertexPtrToIndexMap |
| typedef std::vector< NewVertex > | NewVertexList |
| typedef std::vector< Vec3d * > | Vec3dList |
Protected Member Functions | |
| void | reduceArray (osg::Array *cold, const unsigned int nnu) |
| void | collectTesselation (osg::Geometry &cxgeom, unsigned int originalIndex) |
| void | addContour (GLenum mode, unsigned int first, unsigned int last, osg::Vec3Array *vertices) |
| void | addContour (osg::PrimitiveSet *primitive, osg::Vec3Array *vertices) |
| void | handleNewVertices (osg::Geometry &geom, VertexPtrToIndexMap &vertexPtrToIndexMap) |
| void | begin (GLenum mode) |
| void | vertex (osg::Vec3 *vertex) |
| void | combine (osg::Vec3 *vertex, void *vertex_data[4], GLfloat weight[4]) |
| void | end () |
| void | error (GLenum errorCode) |
Static Protected Member Functions | |
| static void CALLBACK | beginCallback (GLenum which, void *userData) |
| static void CALLBACK | vertexCallback (GLvoid *data, void *userData) |
| static void CALLBACK | combineCallback (GLdouble coords[3], void *vertex_data[4], GLfloat weight[4], void **outData, void *useData) |
| static void CALLBACK | endCallback (void *userData) |
| static void CALLBACK | errorCallback (GLenum errorCode, void *userData) |
Protected Attributes | |
| GLUtesselator * | _tobj |
| PrimList | _primList |
| Vec3dList | _coordData |
| NewVertexList | _newVertexList |
| GLenum | _errorCode |
| WindingType | _wtype |
| TesselationType | _ttype |
| bool | _boundaryOnly |
| unsigned int | _numberVerts |
| osg::Geometry::PrimitiveSetList | _Contours |
| unsigned int | _index |
| osg::Vec3 | tessNormal |
| unsigned int | _extraPrimitives |
Classes | |
| struct | NewVertex |
| struct | Prim |
| struct | Vec3d |
typedef std::vector<NewVertex> osgUtil::Tesselator::NewVertexList [protected] |
| typedef std::vector< osg::ref_ptr<Prim> > osgUtil::Tesselator::PrimList |
typedef std::vector<Vec3d*> osgUtil::Tesselator::Vec3dList [protected] |
| typedef std::vector<osg::Vec3*> osgUtil::Tesselator::VertexPointList |
typedef std::map<osg::Vec3*,unsigned int> osgUtil::Tesselator::VertexPtrToIndexMap [protected] |
| osgUtil::Tesselator::Tesselator | ( | ) |
| osgUtil::Tesselator::~Tesselator | ( | ) |
| void osgUtil::Tesselator::addContour | ( | osg::PrimitiveSet * | primitive, | |
| osg::Vec3Array * | vertices | |||
| ) | [protected] |
| void osgUtil::Tesselator::addContour | ( | GLenum | mode, | |
| unsigned int | first, | |||
| unsigned int | last, | |||
| osg::Vec3Array * | vertices | |||
| ) | [protected] |
| void osgUtil::Tesselator::addVertex | ( | osg::Vec3 * | vertex | ) |
| void osgUtil::Tesselator::begin | ( | GLenum | mode | ) | [protected] |
| static void CALLBACK osgUtil::Tesselator::beginCallback | ( | GLenum | which, | |
| void * | userData | |||
| ) | [static, protected] |
| void osgUtil::Tesselator::beginContour | ( | ) |
| void osgUtil::Tesselator::beginTesselation | ( | ) |
| void osgUtil::Tesselator::collectTesselation | ( | osg::Geometry & | cxgeom, | |
| unsigned int | originalIndex | |||
| ) | [protected] |
| void osgUtil::Tesselator::combine | ( | osg::Vec3 * | vertex, | |
| void * | vertex_data[4], | |||
| GLfloat | weight[4] | |||
| ) | [protected] |
| static void CALLBACK osgUtil::Tesselator::combineCallback | ( | GLdouble | coords[3], | |
| void * | vertex_data[4], | |||
| GLfloat | weight[4], | |||
| void ** | outData, | |||
| void * | useData | |||
| ) | [static, protected] |
| void osgUtil::Tesselator::end | ( | ) | [protected] |
| static void CALLBACK osgUtil::Tesselator::endCallback | ( | void * | userData | ) | [static, protected] |
| void osgUtil::Tesselator::endContour | ( | ) |
| void osgUtil::Tesselator::endTesselation | ( | ) |
| void osgUtil::Tesselator::error | ( | GLenum | errorCode | ) | [protected] |
| static void CALLBACK osgUtil::Tesselator::errorCallback | ( | GLenum | errorCode, | |
| void * | userData | |||
| ) | [static, protected] |
| const bool osgUtil::Tesselator::getBoundaryOnly | ( | ) | [inline] |
| osg::Geometry::PrimitiveSetList osgUtil::Tesselator::getContours | ( | ) | [inline] |
| PrimList& osgUtil::Tesselator::getPrimList | ( | ) | [inline] |
| const TesselationType osgUtil::Tesselator::getTesselationType | ( | ) | [inline] |
| const WindingType osgUtil::Tesselator::getWindingType | ( | ) | [inline] |
| void osgUtil::Tesselator::handleNewVertices | ( | osg::Geometry & | geom, | |
| VertexPtrToIndexMap & | vertexPtrToIndexMap | |||
| ) | [protected] |
| void osgUtil::Tesselator::reduceArray | ( | osg::Array * | cold, | |
| const unsigned int | nnu | |||
| ) | [protected] |
remove unused parts of the array, eg for wehn retesselating tesselation can introduce extra vertices for concave or crossing boundaries, these will leak memory if not removed when retesselating.
| void osgUtil::Tesselator::reset | ( | ) |
| void osgUtil::Tesselator::retesselatePolygons | ( | osg::Geometry & | cxgeom | ) |
Change the contours lists of the geometry into tesselated primitives (the list of primitives in the original geometry is stored in the tesselator for possible re-use. The name remains retesselatePolygons although it now handles trifans, strips, quads etc. as well as Polygons so as to not break old codes relying on this function name.
| void osgUtil::Tesselator::setBoundaryOnly | ( | const bool | tt | ) | [inline] |
Set and get tesselation request boundary only on/off
| void osgUtil::Tesselator::setTesselationNormal | ( | const osg::Vec3 | norm | ) | [inline] |
Define the normal to the tesselated polygon - this provides a hint how to tesselate the contours; see gluTessNormal in red book or man pages. GWM July 2005. Can improve teselation "For example, if you know that all polygons lie in the x-y plane, call gluTessNormal(tess, 0.0, 0.0, 1.0) before rendering any polygons."
| void osgUtil::Tesselator::setTesselationType | ( | const TesselationType | tt | ) | [inline] |
Set and get tesselation type
| void osgUtil::Tesselator::setWindingType | ( | const WindingType | wt | ) | [inline] |
Set and get tesselation windong rule
| void osgUtil::Tesselator::vertex | ( | osg::Vec3 * | vertex | ) | [protected] |
| static void CALLBACK osgUtil::Tesselator::vertexCallback | ( | GLvoid * | data, | |
| void * | userData | |||
| ) | [static, protected] |
bool osgUtil::Tesselator::_boundaryOnly [protected] |
List of primitives that define the contours
Vec3dList osgUtil::Tesselator::_coordData [protected] |
GLenum osgUtil::Tesselator::_errorCode [protected] |
unsigned int osgUtil::Tesselator::_extraPrimitives [protected] |
count of number of extra primitives added
unsigned int osgUtil::Tesselator::_index [protected] |
count number of primitives in a geometry to get right no. of norms/colurs etc for per_primitive attributes.
NewVertexList osgUtil::Tesselator::_newVertexList [protected] |
unsigned int osgUtil::Tesselator::_numberVerts [protected] |
number of vertices that are part of the 'original' set of contours
PrimList osgUtil::Tesselator::_primList [protected] |
GLUtesselator* osgUtil::Tesselator::_tobj [protected] |
TesselationType osgUtil::Tesselator::_ttype [protected] |
tesselation rule, which parts will become solid
WindingType osgUtil::Tesselator::_wtype [protected] |
winding rule, which parts will become solid
osg::Vec3 osgUtil::Tesselator::tessNormal [protected] |
the gluTessNormal for tesselation hint
1.4.7