Visualization Library 2.0.0
A lightweight C++ OpenGL middleware for 2D/3D graphics
|
[Download] [Tutorials] [All Classes] [Grouped Classes] |
Tessellates a complex polygon defined by a set of outlines into a set of triangles that can be rendered by Visualization Library. More...
#include <Tessellator.hpp>
Public Member Functions | |
Tessellator () | |
Constructor. More... | |
~Tessellator () | |
Destructor. More... | |
const std::vector< dvec3 > & | contourVerts () const |
The contours that specify the complex polygon to be tessellated. More... | |
std::vector< dvec3 > & | contourVerts () |
The contours that specify the complex polygon to be tessellated. More... | |
const std::vector< int > & | contours () const |
The contours that specify the complex polygon to be tessellated. More... | |
std::vector< int > & | contours () |
The contours that specify the complex polygon to be tessellated. More... | |
const std::vector< fvec3 > & | tessellatedTris () const |
A set of triangles representing the tessellated polygon. More... | |
std::vector< fvec3 > & | tessellatedTris () |
A set of triangles representing the tessellated polygon. More... | |
void | setTessNormal (const fvec3 &normal) |
See gluTessNormal documentation. More... | |
const fvec3 & | tessNormal () const |
See gluTessNormal documentation. More... | |
void | setBoundaryOnly (bool on) |
See gluTessProperty documentation (GLU_TESS_BOUNDARY_ONLY) More... | |
bool | boundaryOnly () const |
See gluTessProperty documentation (GLU_TESS_BOUNDARY_ONLY) More... | |
double | tolerance () const |
See gluTessProperty documentation (GLU_TESS_TOLERANCE) More... | |
void | setTolerance (double tolerance) |
See gluTessProperty documentation (GLU_TESS_TOLERANCE) More... | |
ETessellationWinding | windingRule () const |
See gluTessProperty documentation (GLU_TESS_WINDING_RULE) More... | |
void | setWindingRule (ETessellationWinding rule) |
See gluTessProperty documentation (GLU_TESS_WINDING_RULE) More... | |
bool | tessellate (bool append_tessellated_tris=false) |
ref< Geometry > | tessellateGeometry (bool append_tessellated_tris=false) |
Utility function that calls tessellate() and creates a Geometry with the tessellated triangles. More... | |
void | setTessellateIntoSinglePolygon (bool on) |
bool | tessellateIntoSinglePolygon () const |
Public Member Functions inherited from vl::Object | |
Object () | |
Constructor. More... | |
Object (const Object &other) | |
Copy constructor: copies the name, ref count mutex and user data. More... | |
Object & | operator= (const Object &other) |
Copy operator: copies the object's name, ref count mutex and user data. More... | |
const std::string & | objectName () const |
The name of the object, by default set to the object's class name. More... | |
void | setObjectName (const char *name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setObjectName (const std::string &name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setRefCountMutex (IMutex *mutex) |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
IMutex * | refCountMutex () |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
const IMutex * | refCountMutex () const |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
int | referenceCount () const |
Returns the number of references of an object. More... | |
void | incReference () const |
Increments the reference count of an object. More... | |
void | decReference () |
Decrements the reference count of an object and deletes it if both automaticDelete() is true the count reaches 0. More... | |
void | setAutomaticDelete (bool autodel_on) |
If set to true the Object is deleted when its reference count reaches 0. More... | |
bool | automaticDelete () const |
If set to true the Object is deleted when its reference count reaches 0. More... | |
template<class T > | |
T * | as () |
Casts an Object to the specified class. More... | |
template<class T > | |
const T * | as () const |
Casts an Object to the specified class. More... | |
Protected Member Functions | |
void | freeCombinedVertices () |
Protected Member Functions inherited from vl::Object | |
virtual | ~Object () |
Static Protected Member Functions | |
static void CALLBACK | tessBeginData (GLenum type, Tessellator *tessellator) |
static void CALLBACK | tessVertexData (dvec3 *vec, Tessellator *tessellator) |
static void CALLBACK | tessCombineData (GLdouble coords[3], dvec3 *d[4], GLfloat w[4], dvec3 **dataOut, Tessellator *tessellator) |
static void CALLBACK | tessEnd (void) |
static void CALLBACK | tessError (GLenum errno) |
Protected Attributes | |
std::vector< int > | mContours |
std::vector< dvec3 > | mContourVerts |
std::vector< fvec3 > | mTessellatedTris |
std::vector< std::vector< fvec3 > > | mFans |
std::vector< std::vector< fvec3 > > | mTriStrips |
std::vector< std::vector< fvec3 > > | mLineLoops |
std::vector< dvec3 *> | mCombinedVertices |
GLenum | mPrimitiveType |
fvec3 | mTessNormal |
bool | mBoundaryOnly |
double | mTolerance |
ETessellationWinding | mWindingRule |
bool | mTessellateIntoSinglePolygon |
Protected Attributes inherited from vl::Object | |
std::string | mObjectName |
IMutex * | mRefCountMutex |
int | mReferenceCount |
bool | mAutomaticDelete |
Tessellates a complex polygon defined by a set of outlines into a set of triangles that can be rendered by Visualization Library.
For more information see the OpenGL Programmer's Guide chapter #11 "Tessellators and Quadrics".
Definition at line 50 of file Tessellator.hpp.
Tessellator::Tessellator | ( | ) |
Constructor.
Definition at line 37 of file Tessellator.cpp.
References mBoundaryOnly, mTessellateIntoSinglePolygon, mTessNormal, mTolerance, mWindingRule, and vl::TW_TESS_WINDING_ODD.
Tessellator::~Tessellator | ( | ) |
|
inline |
See gluTessProperty documentation (GLU_TESS_BOUNDARY_ONLY)
Definition at line 91 of file Tessellator.hpp.
Referenced by tessellate().
|
inline |
The contours that specify the complex polygon to be tessellated.
Definition at line 70 of file Tessellator.hpp.
Referenced by vl::Extrusion::extrude(), and vl::Extrusions::extrude().
|
inline |
The contours that specify the complex polygon to be tessellated.
Definition at line 73 of file Tessellator.hpp.
|
inline |
The contours that specify the complex polygon to be tessellated.
Definition at line 64 of file Tessellator.hpp.
Referenced by vl::Extrusion::extrude(), and vl::Extrusions::extrude().
|
inline |
The contours that specify the complex polygon to be tessellated.
Definition at line 67 of file Tessellator.hpp.
|
protected |
Definition at line 148 of file Tessellator.cpp.
References mCombinedVertices.
Referenced by tessellate(), and ~Tessellator().
|
inline |
See gluTessProperty documentation (GLU_TESS_BOUNDARY_ONLY)
Definition at line 88 of file Tessellator.hpp.
|
inline |
Definition at line 118 of file Tessellator.hpp.
|
inline |
See gluTessNormal documentation.
Definition at line 82 of file Tessellator.hpp.
|
inline |
See gluTessProperty documentation (GLU_TESS_TOLERANCE)
Definition at line 97 of file Tessellator.hpp.
|
inline |
See gluTessProperty documentation (GLU_TESS_WINDING_RULE)
Definition at line 103 of file Tessellator.hpp.
Referenced by vl::Extrusion::extrude(), and vl::Extrusions::extrude().
|
staticprotected |
Definition at line 175 of file Tessellator.cpp.
References vl::Log::error(), mFans, mLineLoops, mPrimitiveType, and mTriStrips.
Referenced by tessellate().
|
staticprotected |
Definition at line 216 of file Tessellator.cpp.
References mCombinedVertices, vl::Vector3< T_Scalar >::x(), vl::Vector3< T_Scalar >::y(), and vl::Vector3< T_Scalar >::z().
Referenced by tessellate().
bool Tessellator::tessellate | ( | bool | append_tessellated_tris = false | ) |
Definition at line 52 of file Tessellator.cpp.
References boundaryOnly(), vl::Log::error(), freeCombinedVertices(), mContours, mContourVerts, mFans, mLineLoops, mPrimitiveType, mTessellatedTris, mTriStrips, tessBeginData(), tessCombineData(), tessellatedTris(), tessellateIntoSinglePolygon(), tessEnd(), tessError(), tessNormal(), tessVertexData(), tolerance(), vl::Log::warning(), and windingRule().
Referenced by vl::Extrusion::extrude(), vl::Extrusions::extrude(), and tessellateGeometry().
|
inline |
A set of triangles representing the tessellated polygon.
Definition at line 76 of file Tessellator.hpp.
Referenced by vl::Extrusion::extrude(), vl::Extrusions::extrude(), and tessellate().
|
inline |
A set of triangles representing the tessellated polygon.
Definition at line 79 of file Tessellator.hpp.
Utility function that calls tessellate() and creates a Geometry with the tessellated triangles.
Definition at line 155 of file Tessellator.cpp.
References vl::Geometry::computeNormals(), vl::Geometry::drawCalls(), vl::ref< T >::get(), vl::Array< T_VectorType, T_Scalar, T_GL_Size, T_GL_Type >::initFrom(), mTessellatedTris, NULL, vl::PT_TRIANGLES, vl::Geometry::setVertexArray(), vl::Array< T_VectorType, T_Scalar, T_GL_Size, T_GL_Type >::size(), and tessellate().
|
inline |
|
staticprotected |
Definition at line 226 of file Tessellator.cpp.
Referenced by tessellate().
|
staticprotected |
Definition at line 230 of file Tessellator.cpp.
References vl::Log::error().
Referenced by tessellate().
|
inline |
See gluTessNormal documentation.
Definition at line 85 of file Tessellator.hpp.
Referenced by tessellate().
|
staticprotected |
Definition at line 197 of file Tessellator.cpp.
References vl::Log::error(), mFans, mLineLoops, mPrimitiveType, mTessellatedTris, and mTriStrips.
Referenced by tessellate().
|
inline |
See gluTessProperty documentation (GLU_TESS_TOLERANCE)
Definition at line 94 of file Tessellator.hpp.
Referenced by tessellate().
|
inline |
See gluTessProperty documentation (GLU_TESS_WINDING_RULE)
Definition at line 100 of file Tessellator.hpp.
Referenced by tessellate().
|
protected |
Definition at line 145 of file Tessellator.hpp.
Referenced by Tessellator().
|
protected |
Definition at line 140 of file Tessellator.hpp.
Referenced by freeCombinedVertices(), and tessCombineData().
|
protected |
Definition at line 132 of file Tessellator.hpp.
Referenced by tessellate().
|
protected |
Definition at line 133 of file Tessellator.hpp.
Referenced by tessellate().
|
protected |
Definition at line 137 of file Tessellator.hpp.
Referenced by tessBeginData(), tessellate(), and tessVertexData().
|
protected |
Definition at line 139 of file Tessellator.hpp.
Referenced by tessBeginData(), tessellate(), and tessVertexData().
|
protected |
Definition at line 141 of file Tessellator.hpp.
Referenced by tessBeginData(), tessellate(), and tessVertexData().
|
protected |
Definition at line 135 of file Tessellator.hpp.
Referenced by tessellate(), tessellateGeometry(), and tessVertexData().
|
protected |
Definition at line 151 of file Tessellator.hpp.
Referenced by Tessellator().
|
protected |
Definition at line 143 of file Tessellator.hpp.
Referenced by Tessellator().
|
protected |
Definition at line 147 of file Tessellator.hpp.
Referenced by Tessellator().
|
protected |
Definition at line 138 of file Tessellator.hpp.
Referenced by tessBeginData(), tessellate(), and tessVertexData().
|
protected |
Definition at line 149 of file Tessellator.hpp.
Referenced by Tessellator().
Visualization Library 2.0.0 Reference Documentation
Updated on Wed Dec 23 2020 12:44:12.
© Copyright Michele Bosi. All rights reserved.