MyNormalVisitor Class Reference
#include <MyNormalVisitor.h>
List of all members.
Public Types |
enum | GenerateMethods {
MWE = 0,
MWA,
MWSELR,
MWAAT,
MWELR,
MWSRELR
} |
Public Member Functions |
| MyNormalVisitor (int method=MWE, bool flip=false) |
virtual | ~MyNormalVisitor () |
void | setMethod (int m) |
int | getMethod () const |
void | setThreshold (double t) |
double | getThreshold () const |
virtual void | apply (osg::Geode &geode) |
Static Public Member Functions |
static void | buildNormal (osg::Geometry &geoset, bool flip=false, int method=MWE, double threshold=1e-6) |
static void | buildNormalZ (osg::Geometry &geoset, bool flip=false, int method=MWE, double threshold=1e-6) |
Public Attributes |
int | done |
Static Protected Member Functions |
static bool | checkPrimitives (osg::Geometry &geom) |
Protected Attributes |
double | _threshold |
int | _method |
bool | _flip |
Member Enumeration Documentation
- Enumerator:
MWE |
|
MWA |
|
MWSELR |
|
MWAAT |
|
MWELR |
|
MWSRELR |
|
Constructor & Destructor Documentation
MyNormalVisitor::MyNormalVisitor |
( |
int |
method = MWE , |
|
|
bool |
flip = false | |
|
) |
| | |
MyNormalVisitor::~MyNormalVisitor |
( |
|
) |
[virtual] |
Member Function Documentation
void MyNormalVisitor::apply |
( |
osg::Geode & |
geode |
) |
[virtual] |
void MyNormalVisitor::buildNormal |
( |
osg::Geometry & |
geoset, |
|
|
bool |
flip = false , |
|
|
int |
method = MWE , |
|
|
double |
threshold = 1e-6 | |
|
) |
| | [static] |
Create normals for geometry.
void MyNormalVisitor::buildNormalZ |
( |
osg::Geometry & |
geoset, |
|
|
bool |
flip = false , |
|
|
int |
method = MWE , |
|
|
double |
threshold = 1e-6 | |
|
) |
| | [static] |
bool MyNormalVisitor::checkPrimitives |
( |
osg::Geometry & |
geom |
) |
[static, protected] |
int MyNormalVisitor::getMethod |
( |
|
) |
const [inline] |
double MyNormalVisitor::getThreshold |
( |
|
) |
const [inline] |
void MyNormalVisitor::setMethod |
( |
int |
m |
) |
[inline] |
Set normal algorithm to use. There are 6 methods at present:
- MWE: "Mean Weighted Equally" (Henri Gouraud, 1971), also known as the smoothing normal.
- MWA: "Mean Weighted by Angle" (Thurmer and Wuthrich, 1998).
- MWSELR: "Mean Weighted by Sine and Edge Length Reciprocals" (Max, 1999).
- MWAAT: "Mean Weighted by Areas of Adjacent Triangles" (Max, 1999).
- MWELR: "Mean Weighted by Edge Length Reciprocals" (Max, 1999).
- MWSRELR: "Mean Weighted by Square Root of Edge Length Reciprocals" (Max, 1999).
void MyNormalVisitor::setThreshold |
( |
double |
t |
) |
[inline] |
Set a threshold to decide whether to include a triangle's for calculating. The threshold will be compared with the dot product of normals of 2 triangles sharing same vertex, and the normal will be included in the averaging if the dot product greater than the threshold. A corner vertex of a sharp crease (with a cosine 90 degree) will not be smoothing then. If you want a totally smooth geometry, just set the threshold to be greater than 1.
Member Data Documentation
The documentation for this class was generated from the following files:
- C:/Users/Robert/Documents/Visual Studio 2008/Projects/ferprojekt/TerrainEditor/TerrainEditor/MyNormalVisitor.h
- C:/Users/Robert/Documents/Visual Studio 2008/Projects/ferprojekt/TerrainEditor/TerrainEditor/MyNormalVisitor.cpp