|
openscenegraph
|
Classes | |
| struct | NewVertex |
| struct | Prim |
| struct | Vec3d |
Public Types | |
| 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 | TessellationType { TESS_TYPE_GEOMETRY, TESS_TYPE_DRAWABLE, TESS_TYPE_POLYGONS } |
| typedef std::vector< osg::Vec3 * > | VertexPointList |
| typedef std::vector < osg::ref_ptr< Prim > > | PrimList |
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 | collectTessellation (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) |
Protected Member Functions inherited from osg::Referenced | |
| virtual | ~Referenced () |
| void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
| void | deleteUsingDeleteHandler () const |
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 | |
| osg::GLUtesselator * | _tobj |
| PrimList | _primList |
| Vec3dList | _coordData |
| NewVertexList | _newVertexList |
| GLenum | _errorCode |
| WindingType | _wtype |
| TessellationType | _ttype |
| bool | _boundaryOnly |
| unsigned int | _numberVerts |
| osg::Geometry::PrimitiveSetList | _Contours |
| unsigned int | _index |
| osg::Vec3 | tessNormal |
| unsigned int | _extraPrimitives |
Protected Attributes inherited from osg::Referenced | |
| OpenThreads::AtomicPtr | _observerSet |
| OpenThreads::Atomic | _refCount |
Additional Inherited Members | |
Static Public Member Functions inherited from osg::Referenced | |
| static OpenThreads::Mutex * | getGlobalReferencedMutex () |
| static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
| static bool | getThreadSafeReferenceCounting () |
| static void | setDeleteHandler (DeleteHandler *handler) |
| static DeleteHandler * | getDeleteHandler () |
Originally a simple class for tessellating a single polygon boundary. Using old style glu tessellation functions for portability. Upgraded Jan 2004 to use the modern glu tessellation functions.
|
protected |
| typedef std::vector< osg::ref_ptr<Prim> > osgUtil::Tessellator::PrimList |
|
protected |
| typedef std::vector<osg::Vec3*> osgUtil::Tessellator::VertexPointList |
|
protected |
| osgUtil::Tessellator::Tessellator | ( | ) |
| osgUtil::Tessellator::~Tessellator | ( | ) |
|
protected |
|
protected |
| void osgUtil::Tessellator::addVertex | ( | osg::Vec3 * | vertex | ) |
|
protected |
|
staticprotected |
| void osgUtil::Tessellator::beginContour | ( | ) |
| void osgUtil::Tessellator::beginTessellation | ( | ) |
|
protected |
|
protected |
|
staticprotected |
|
protected |
|
staticprotected |
| void osgUtil::Tessellator::endContour | ( | ) |
| void osgUtil::Tessellator::endTessellation | ( | ) |
|
protected |
|
staticprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
|
protected |
remove unused parts of the array, eg for wehn retessellating tessellation can introduce extra vertices for concave or crossing boundaries, these will leak memory if not removed when retessellating.
| void osgUtil::Tessellator::reset | ( | ) |
| void osgUtil::Tessellator::retessellatePolygons | ( | osg::Geometry & | cxgeom | ) |
Change the contours lists of the geometry into tessellated primitives (the list of primitives in the original geometry is stored in the Tessellator for possible re-use. The name remains retessellatePolygons although it now handles trifans, strips, quads etc. as well as Polygons so as to not break old codes relying on this function name.
|
inline |
Set and get tessellation request boundary only on/off
|
inline |
Define the normal to the tessellated polygon - this provides a hint how to tessellate 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."
|
inline |
Set and get tessellation type
|
inline |
Set and get tessellation windong rule
|
protected |
|
staticprotected |
|
protected |
|
protected |
List of primitives that define the contours
|
protected |
|
protected |
|
protected |
count of number of extra primitives added
|
protected |
count number of primitives in a geometry to get right no. of norms/colurs etc for per_primitive attributes.
|
protected |
|
protected |
number of vertices that are part of the 'original' set of contours
|
protected |
|
protected |
|
protected |
tessellation rule, which parts will become solid
|
protected |
winding rule, which parts will become solid
|
protected |
the gluTessNormal for tessellation hint
1.8.1.2