Visualization Library

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

vl::PolygonSimplifier Class Reference

The PolygonSimplifier class reduces the amount of polygons present in a Geometry using a quadric error metric. More...

#include <PolygonSimplifier.hpp>

Inheritance diagram for vl::PolygonSimplifier:
vl::Object

List of all members.

Classes

class  QErr
 The quadric error metric as defined by PolygonSimplifier. More...
class  Triangle
 A Triangle as defined by PolygonSimplifier. More...
class  Vertex
 A Vertex as defined by PolygonSimplifier. More...

Public Member Functions

 PolygonSimplifier ()
virtual const char * className ()
 Returns the name of the class.
void simplify (float simplification_ratio, Geometry *geom)
void simplify (int target_vertex_count, Geometry *geom)
void simplify (int target_vertex_count, std::vector< fvec3 > &in_out_verts, std::vector< int > &in_out_tris)
void setProtectedVertices (const std::vector< int > &protected_verts)
int simplifiedVerticesCount () const
VertexsimplifiedVertices (int index) const
int simplifiedTrianglesCount () const
TrianglesimplifiedTriangles (int index) const
void clearTrianglesAndVertices ()
bool removeDoubles () const
void setRemoveDoubles (bool remove_doubles)
bool verbose () const
void setVerbose (bool verbose)
bool quick () const
void setQuick (bool quick)

Protected Member Functions

void collapse (Vertex *v)
void computeCollapseInfo (Vertex *v)

Protected Attributes

std::vector< Vertex * > mSimplifiedVertices
std::vector< Triangle * > mSimplifiedTriangles
std::vector< int > mProtectedVerts
bool mRemoveDoubles
bool mVerbose
bool mQuick

Detailed Description

The PolygonSimplifier class reduces the amount of polygons present in a Geometry using a quadric error metric.

The algorithm simplifies only the position array of the Geometry all the other vertex attributes will be discarded.

Definition at line 52 of file PolygonSimplifier.hpp.


Constructor & Destructor Documentation

vl::PolygonSimplifier::PolygonSimplifier (  ) [inline]

Definition at line 319 of file PolygonSimplifier.hpp.


Member Function Documentation

virtual const char* vl::PolygonSimplifier::className (  ) [inline, virtual]

Returns the name of the class.

Reimplemented from vl::Object.

Definition at line 321 of file PolygonSimplifier.hpp.

void PolygonSimplifier::simplify ( float  simplification_ratio,
Geometry geom 
)
void PolygonSimplifier::simplify ( int  target_vertex_count,
Geometry geom 
)
void PolygonSimplifier::simplify ( int  target_vertex_count,
std::vector< fvec3 > &  in_out_verts,
std::vector< int > &  in_out_tris 
)
void vl::PolygonSimplifier::setProtectedVertices ( const std::vector< int > &  protected_verts ) [inline]

Definition at line 327 of file PolygonSimplifier.hpp.

int vl::PolygonSimplifier::simplifiedVerticesCount (  ) const [inline]

Definition at line 329 of file PolygonSimplifier.hpp.

Vertex* vl::PolygonSimplifier::simplifiedVertices ( int  index ) const [inline]

Definition at line 330 of file PolygonSimplifier.hpp.

int vl::PolygonSimplifier::simplifiedTrianglesCount (  ) const [inline]

Definition at line 332 of file PolygonSimplifier.hpp.

Triangle* vl::PolygonSimplifier::simplifiedTriangles ( int  index ) const [inline]

Definition at line 333 of file PolygonSimplifier.hpp.

void PolygonSimplifier::clearTrianglesAndVertices (  )

Definition at line 393 of file PolygonSimplifier.cpp.

References mProtectedVerts, mSimplifiedTriangles, and mSimplifiedVertices.

bool vl::PolygonSimplifier::removeDoubles (  ) const [inline]

Definition at line 337 of file PolygonSimplifier.hpp.

Referenced by simplify().

void vl::PolygonSimplifier::setRemoveDoubles ( bool  remove_doubles ) [inline]

Definition at line 338 of file PolygonSimplifier.hpp.

bool vl::PolygonSimplifier::verbose (  ) const [inline]

Definition at line 340 of file PolygonSimplifier.hpp.

Referenced by simplify().

void vl::PolygonSimplifier::setVerbose ( bool  verbose ) [inline]

Definition at line 341 of file PolygonSimplifier.hpp.

bool vl::PolygonSimplifier::quick (  ) const [inline]

Definition at line 343 of file PolygonSimplifier.hpp.

Referenced by collapse(), and computeCollapseInfo().

void vl::PolygonSimplifier::setQuick ( bool  quick ) [inline]

Definition at line 344 of file PolygonSimplifier.hpp.

void vl::PolygonSimplifier::collapse ( Vertex v ) [inline, protected]
void vl::PolygonSimplifier::computeCollapseInfo ( Vertex v ) [inline, protected]

Member Data Documentation

Definition at line 351 of file PolygonSimplifier.hpp.

Referenced by clearTrianglesAndVertices(), and simplify().

Definition at line 352 of file PolygonSimplifier.hpp.

Referenced by clearTrianglesAndVertices(), and simplify().

std::vector<int> vl::PolygonSimplifier::mProtectedVerts [protected]

Definition at line 353 of file PolygonSimplifier.hpp.

Referenced by clearTrianglesAndVertices(), and simplify().

Definition at line 354 of file PolygonSimplifier.hpp.

Definition at line 355 of file PolygonSimplifier.hpp.

Definition at line 356 of file PolygonSimplifier.hpp.


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

Visualization Library v2011.05.1144 Reference Documentation
Copyright 2005-2011 Michele Bosi. All rights reserved.
Updated on Tue Sep 13 2011 21:59:15.
Permission is granted to use this page to write and publish articles regarding Visualization Library.