Visualization Library

A lightweight C++ OpenGL middleware for 2D/3D graphics
[Home] [Tutorials] [All Classes] [Grouped Classes]
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes

vl::Tessellator Class Reference

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>

Inheritance diagram for vl::Tessellator:
vl::Object

List of all members.

Public Member Functions

 Tessellator ()
 Constructor.
 ~Tessellator ()
const std::vector< dvec3 > & contourVerts () const
 The contours that specify the complex polygon to be tessellated.
std::vector< dvec3 > & contourVerts ()
 The contours that specify the complex polygon to be tessellated.
const std::vector< int > & contours () const
 The contours that specify the complex polygon to be tessellated.
std::vector< int > & contours ()
 The contours that specify the complex polygon to be tessellated.
const std::vector< fvec3 > & tessellatedTris () const
 A set of triangles representing the tessellated polygon.
std::vector< fvec3 > & tessellatedTris ()
 A set of triangles representing the tessellated polygon.
void setTessNormal (const fvec3 &normal)
 See gluTessNormal documentation.
const fvec3tessNormal () const
 See gluTessNormal documentation.
void setBoundaryOnly (bool on)
 See gluTessProperty documentation (GLU_TESS_BOUNDARY_ONLY)
bool boundaryOnly () const
 See gluTessProperty documentation (GLU_TESS_BOUNDARY_ONLY)
double tolerance () const
 See gluTessProperty documentation (GLU_TESS_TOLERANCE)
void setTolerance (double tolerance)
 See gluTessProperty documentation (GLU_TESS_TOLERANCE)
ETessellationWinding windingRule () const
 See gluTessProperty documentation (GLU_TESS_WINDING_RULE)
void setWindingRule (ETessellationWinding rule)
 See gluTessProperty documentation (GLU_TESS_WINDING_RULE)
bool tessellate (bool append_tessellated_tris=false)
ref< GeometrytessellateGeometry (bool append_tessellated_tris=false)
 Utility function that calls tessellate() and creates a Geometry with the tessellated triangles.
bool tessellateIntoSinglePolygon () const
void setTessellateIntoSinglePolygon (bool on)

Protected Member Functions

void freeCombinedVertices ()

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< dvec3mContourVerts
std::vector< fvec3mTessellatedTris
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

Detailed Description

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".


Constructor & Destructor Documentation

Tessellator::Tessellator (  )

Constructor.

Tessellator::~Tessellator (  )

Member Function Documentation

const std::vector<dvec3>& vl::Tessellator::contourVerts (  ) const [inline]

The contours that specify the complex polygon to be tessellated.

std::vector<dvec3>& vl::Tessellator::contourVerts (  ) [inline]

The contours that specify the complex polygon to be tessellated.

const std::vector<int>& vl::Tessellator::contours (  ) const [inline]

The contours that specify the complex polygon to be tessellated.

std::vector<int>& vl::Tessellator::contours (  ) [inline]

The contours that specify the complex polygon to be tessellated.

const std::vector<fvec3>& vl::Tessellator::tessellatedTris (  ) const [inline]

A set of triangles representing the tessellated polygon.

std::vector<fvec3>& vl::Tessellator::tessellatedTris (  ) [inline]

A set of triangles representing the tessellated polygon.

void vl::Tessellator::setTessNormal ( const fvec3 normal ) [inline]

See gluTessNormal documentation.

const fvec3& vl::Tessellator::tessNormal (  ) const [inline]

See gluTessNormal documentation.

void vl::Tessellator::setBoundaryOnly ( bool  on ) [inline]

See gluTessProperty documentation (GLU_TESS_BOUNDARY_ONLY)

bool vl::Tessellator::boundaryOnly (  ) const [inline]

See gluTessProperty documentation (GLU_TESS_BOUNDARY_ONLY)

double vl::Tessellator::tolerance (  ) const [inline]

See gluTessProperty documentation (GLU_TESS_TOLERANCE)

void vl::Tessellator::setTolerance ( double  tolerance ) [inline]

See gluTessProperty documentation (GLU_TESS_TOLERANCE)

ETessellationWinding vl::Tessellator::windingRule (  ) const [inline]

See gluTessProperty documentation (GLU_TESS_WINDING_RULE)

void vl::Tessellator::setWindingRule ( ETessellationWinding  rule ) [inline]

See gluTessProperty documentation (GLU_TESS_WINDING_RULE)

bool Tessellator::tessellate ( bool  append_tessellated_tris = false )
ref< Geometry > Tessellator::tessellateGeometry ( bool  append_tessellated_tris = false )

Utility function that calls tessellate() and creates a Geometry with the tessellated triangles.

bool vl::Tessellator::tessellateIntoSinglePolygon (  ) const [inline]
void vl::Tessellator::setTessellateIntoSinglePolygon ( bool  on ) [inline]
void CALLBACK Tessellator::tessBeginData ( GLenum  type,
Tessellator tessellator 
) [static, protected]
void CALLBACK Tessellator::tessVertexData ( dvec3 vec,
Tessellator tessellator 
) [static, protected]
void CALLBACK Tessellator::tessCombineData ( GLdouble  coords[3],
dvec3 d[4],
GLfloat  w[4],
dvec3 **  dataOut,
Tessellator tessellator 
) [static, protected]
void CALLBACK Tessellator::tessEnd ( void   ) [static, protected]
void CALLBACK Tessellator::tessError ( GLenum  errno ) [static, protected]
void Tessellator::freeCombinedVertices (  ) [protected]

Member Data Documentation

std::vector<int> vl::Tessellator::mContours [protected]
std::vector<dvec3> vl::Tessellator::mContourVerts [protected]
std::vector<fvec3> vl::Tessellator::mTessellatedTris [protected]
std::vector< std::vector<fvec3> > vl::Tessellator::mFans [protected]
std::vector< std::vector<fvec3> > vl::Tessellator::mTriStrips [protected]
std::vector< std::vector<fvec3> > vl::Tessellator::mLineLoops [protected]
std::vector< dvec3* > vl::Tessellator::mCombinedVertices [protected]
GLenum vl::Tessellator::mPrimitiveType [protected]
double vl::Tessellator::mTolerance [protected]

The documentation for this class was generated from the following files:

Visualization Library v2010.11.1123 Reference Documentation
Copyright 2005-2009 Michele Bosi. All rights reserved.
Updated on Thu Nov 18 2010 02:08:15.
Permission is granted to use this page to write and publish articles regarding Visualization Library.