Visualization Library

A lightweight C++ OpenGL middleware for 2D/3D graphics
[Home] [Tutorials] [All Classes] [Grouped Classes]

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.06 Reference Documentation
Copyright 2005-2009 Michele Bosi. All rights reserved.
Updated on Tue Jun 1 00:57:28 2010.
Permission is granted to use this page to write and publish articles regarding Visualization Library.