|
Public Types |
| typedef std::vector< osg::Vec3 * > | VertexPointList |
typedef std::vector< osg::ref_ptr<
Prim > > | PrimList |
| 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
} |
| | The winding rule, see red book ch 11. More...
|
| enum | TesselationType { TESS_TYPE_GEOMETRY,
TESS_TYPE_DRAWABLE,
TESS_TYPE_POLYGONS
} |
| | we interpret all contours in the geometry as a single set to be tesselated or each separate drawable's contours needs to be tesselated. More...
|
Public Member Functions |
| | Tesselator () |
| | ~Tesselator () |
| void | setBoundaryOnly (const bool tt) |
| | Set and get tesselation request boundary only on/off.
|
| const bool | getBoundaryOnly () |
| void | setWindingType (const WindingType wt) |
| | Set and get tesselation windong rule.
|
| const WindingType | getWindingType () |
| void | setTesselationType (const TesselationType tt) |
| | Set and get tesselation type.
|
| const TesselationType | getTesselationType () |
| void | 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.
|
| void | setTesselationNormal (const osg::Vec3 norm) |
| | Define the normal to the tesselated polygon - this provides a hint how to tesselate the contours; see gluTessNormal in red book or man pages.
|
| 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) |
| | 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 | collectTesselation (osg::Geometry &cxgeom) |
| 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 |
| void CALLBACK | beginCallback (GLenum which, void *userData) |
| void CALLBACK | vertexCallback (GLvoid *data, void *userData) |
| void CALLBACK | combineCallback (GLdouble coords[3], void *vertex_data[4], GLfloat weight[4], void **outData, void *useData) |
| void CALLBACK | endCallback (void *userData) |
| void CALLBACK | errorCallback (GLenum errorCode, void *userData) |
Protected Attributes |
| GLUtesselator * | _tobj |
| PrimList | _primList |
| Vec3dList | _coordData |
| NewVertexList | _newVertexList |
| GLenum | _errorCode |
| WindingType | _wtype |
| | winding rule, which parts will become solid
|
| TesselationType | _ttype |
| | tesselation rule, which parts will become solid
|
| bool | _boundaryOnly |
| unsigned int | _numberVerts |
| | number of vertices that are part of the 'original' set of contours
|
| osg::Geometry::PrimitiveSetList | _Contours |
| | List of primitives that define the contours.
|
| unsigned int | _index |
| | count number of primitives in a geometry to get right no.
|
| osg::Vec3 | tessNormal |
| | the gluTessNormal for tesselation hint
|
Using old style glu tessellation functions for portability. Upgraded Jan 2004 to use the modern glu tessellation functions.