# 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:

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 fvec3 & | tessNormal () 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< Geometry > | tessellateGeometry (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< 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

## 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]`

fvec3 vl::Tessellator::mTessNormal`[protected]`

bool vl::Tessellator::mBoundaryOnly`[protected]`

double vl::Tessellator::mTolerance`[protected]`

ETessellationWinding vl::Tessellator::mWindingRule`[protected]`

bool vl::Tessellator::mTessellateIntoSinglePolygon`[protected]`

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

- E:/VisualizationLibrary/BuildSystem/VL_DISTRO/Visualization_Library_SDK/src/vl/Tessellator.hpp
- E:/VisualizationLibrary/BuildSystem/VL_DISTRO/Visualization_Library_SDK/src/vl/Tessellator.cpp

Visualization Library v2009.07 Reference Documentation
Copyright 2005-2009 Michele Bosi. All rights reserved.
Updated on Mon Aug 10 21:41:43 2009.
Permission is granted to use this page to write and publish articles regarding Visualization Library.