OpenWalnut
1.2.5
|
Triangle mesh data structure allowing for convenient access of the elements. More...
#include <WTriangleMesh.h>
Public Types | |
typedef boost::shared_ptr < WTriangleMesh > | SPtr |
Shared pointer. | |
typedef boost::shared_ptr < const WTriangleMesh > | ConstSPtr |
Const shared pointer. |
Public Member Functions | |
WTriangleMesh (size_t vertNum, size_t triangleNum) | |
constructor that already reserves space for a given number of triangles and vertexes | |
WTriangleMesh (osg::ref_ptr< osg::Vec3Array > vertices, const std::vector< size_t > &triangles) | |
Constructs a new mesh out of the given vertices and triangles. | |
virtual | ~WTriangleMesh () |
destructor | |
virtual const std::string | getName () const |
Gets the name of this prototype. | |
virtual const std::string | getDescription () const |
Gets the description for this prototype. | |
void | addVertex (osg::Vec3 vert) |
adds a vertex position to the mesh | |
void | addVertex (float x, float y, float z) |
adds a vertex position to the mesh | |
void | addVertex (WPosition vert) |
adds a vertex position to the mesh | |
void | addTextureCoordinate (osg::Vec3 texCoord) |
Adds a texture coordinate for the vertex. | |
void | addTextureCoordinate (float x, float y, float z) |
Adds a texture coordinate for the vertex. | |
void | addTriangle (size_t vert0, size_t vert1, size_t vert2) |
adds a tringle to the mesh | |
void | addTriangle (osg::Vec3 vert0, osg::Vec3 vert1, osg::Vec3 vert2) |
adds a tringle and its 3 vertexes to the mesh | |
void | setVertex (size_t index, osg::Vec3 vert) |
sets a vertex to a new position | |
void | setVertexNormal (size_t index, osg::Vec3 normal) |
sets the normal for a given vertex | |
void | setVertexNormal (size_t index, WPosition normal) |
sets the normal for a given vertex | |
void | setVertexColor (size_t index, osg::Vec4 color) |
sets the color for a given vertex | |
void | setTriangleColor (size_t index, osg::Vec4 color) |
sets the color for a given triangle | |
osg::ref_ptr< osg::Vec4Array > | getTriangleColors () const |
Return triangle colors. | |
osg::ref_ptr< osg::Vec3Array > | getVertexArray () |
getter | |
osg::ref_ptr< const osg::Vec3Array > | getVertexArray () const |
Returns a const reference pointer to the vertex array. | |
osg::ref_ptr< osg::Vec3Array > | getTextureCoordinateArray () |
Returns a reference pointer to the texture coordinate array. | |
osg::ref_ptr< const osg::Vec3Array > | getTextureCoordinateArray () const |
Returns a const reference pointer to the texture coordinate array. | |
osg::ref_ptr< osg::Vec3Array > | getVertexNormalArray (bool forceRecalc=false) |
getter | |
osg::ref_ptr< osg::Vec4Array > | getVertexColorArray () |
getter | |
const std::vector< size_t > & | getTriangles () const |
Returns a const reference to the vertex ids of the triangles. | |
osg::ref_ptr< osg::Vec3Array > | getTriangleNormalArray (bool forceRecalc=false) |
getter | |
osg::Vec3 | getVertex (size_t index) const |
getter | |
osg::Vec4 | getVertColor (size_t index) const |
getter | |
osg::Vec3 | getTriVert (size_t triId, size_t vertNum) |
getter | |
WVector3d | getNormal (size_t index) const |
getter | |
size_t | vertSize () const |
getter | |
size_t | triangleSize () const |
getter | |
void | doLoopSubD () |
performs a loop subdivision on the triangle mesh | |
size_t | getTriVertId0 (size_t triId) const |
returns the id of the first vertex of a triangle | |
size_t | getTriVertId1 (size_t triId) const |
returns the id of the second vertex of a triangle | |
size_t | getTriVertId2 (size_t triId) const |
return the id of the third vertex of a triangle | |
void | addMesh (boost::shared_ptr< WTriangleMesh > mesh, float xOff=0., float yOff=0., float zOff=0.) |
adds a mesh to the existing, no check for duplicate vertexes is performed, an additional vector may be specified to move the mesh to add | |
void | translateMesh (float xOff, float yOff, float zOff) |
moves the entire mesh to a new postion | |
void | zoomMesh (float zoom) |
multiplies the vertex vectors of the mesh with a given number | |
bool | operator== (const WTriangleMesh &rhs) const |
Checks if two meshes are exactly the same. | |
![]() | |
WTransferable () | |
Default constructor. | |
virtual | ~WTransferable () |
Destructor. | |
![]() | |
WPrototyped () | |
Default constructor. | |
virtual | ~WPrototyped () |
Destructor. | |
template<typename T > | |
bool | isA () |
Checks whether the actual prototype has the specified runtime type. |
Static Public Member Functions | |
static boost::shared_ptr < WPrototyped > | getPrototype () |
Returns a prototype instantiated with the true type of the deriving class. |
Static Protected Attributes | |
static boost::shared_ptr < WPrototyped > | m_prototype = boost::shared_ptr< WPrototyped >() |
The prototype as singleton. |
Private Member Functions | |
WTriangleMesh () | |
we don't allow the standard constructor | |
void | removeVertex (size_t index) |
removes a vertex from the vertex array, if any triangles still index that vertex they will be removed if forceRemoveTriangle is true | |
void | removeTriangle (size_t index) |
removes a triangle from the mesh | |
void | recalcVertNormals () |
recalculates the vertex normals | |
osg::Vec3 | calcTriangleNormal (size_t triangle) |
calculates a normal from the 3 points in space defining a triangle | |
osg::Vec3 | calcNormal (osg::Vec3 vert0, osg::Vec3 vert1, osg::Vec3 vert2) |
calculates a normal from the 3 points in space | |
void | updateVertsInTriangles () |
updates the list for which vertexes appear in which triangle | |
void | calcNeighbors () |
calculates neighbor information for triangles | |
size_t | getNeighbor (const size_t coVert1, const size_t coVert2, const size_t triangleNum) |
returns the triangle index of a triangle neighboring a given edge of a vertex | |
void | setTriVert0 (size_t triId, size_t vertId) |
higher level access function to the triangle vector, sets the first vertex of a triangle to a given vertex id | |
void | setTriVert1 (size_t triId, size_t vertId) |
higher level access function to the triangle vector, sets the second vertex of a triangle to a given vertex id | |
void | setTriVert2 (size_t triId, size_t vertId) |
higher level access function to the triangle vector, sets the third vertex of a triangle to a given vertex id | |
void | loopSetTriangle (size_t triId, size_t vertId1, size_t vertId2, size_t vertId3) |
changes the vertex ids of a triangle | |
void | loopEraseTriangleFromVertex (size_t triId, size_t vertId) |
erases a triangle from the vertexe's list of triangles it is part of | |
osg::Vec3 | loopCalcNewPosition (size_t vertId) |
calculates the new position of a vertex depending on it's location in the grid and number of neighbors | |
void | loopInsertCenterTriangle (size_t triId) |
inserts the center triangle in a given triangle, | |
void | loopInsertCornerTriangles (size_t triId) |
inserts the 3 corner triangles in a given triangle | |
size_t | loopCalcEdgeVert (size_t triId, size_t edgeV1, size_t edgeV2, size_t V3) |
calculates the vertex id for a given edge, inserts a new vertex of none exists yet | |
double | loopGetAlpha (int n) |
loop helper function | |
size_t | loopGetNextVertex (size_t triNum, size_t vertNum) |
returns the id of the next vertex int he triangle | |
size_t | loopGetThirdVert (size_t coVert1, size_t coVert2, size_t triangleNum) |
returns the id of the third vertex of a triangle for two given vertexes |
Private Attributes | |
size_t | m_countVerts |
number of vertexes in the mesh | |
size_t | m_countTriangles |
number of triangles in the mesh | |
bool | m_meshDirty |
flag indicating a change took place which requires a recalculation of components | |
bool | m_neighborsCalculated |
flag indicating whether the neighbor information has been calculated yet | |
osg::ref_ptr< osg::Vec3Array > | m_verts |
array containing the vertices | |
osg::ref_ptr< osg::Vec3Array > | m_textureCoordinates |
array containing the texture coordinates | |
osg::ref_ptr< osg::Vec3Array > | m_vertNormals |
array containing the vertex normals | |
osg::ref_ptr< osg::Vec4Array > | m_vertColors |
array containing vertex colors | |
std::vector< size_t > | m_triangles |
array containing the triangles | |
osg::ref_ptr< osg::Vec3Array > | m_triangleNormals |
array containing the triangle normals | |
osg::ref_ptr< osg::Vec4Array > | m_triangleColors |
array containing the triangle colors | |
std::vector< std::vector < size_t > > | m_vertexIsInTriangle |
for each vertex, list of triangles it is part of | |
std::vector< std::vector < size_t > > | m_triangleNeighbors |
edge neighbors for each triangle | |
size_t | m_numTriVerts |
stores the number of vertexes before the loop subdivion is run, needed by the loop algorithm | |
size_t | m_numTriFaces |
stores the number of triangles before the loop subdivion is run, needed by the loop algorithm |
Friends | |
class | WTriangleMeshTest |
Triangle mesh data structure allowing for convenient access of the elements.
Definition at line 43 of file WTriangleMesh.h.
typedef boost::shared_ptr< const WTriangleMesh > WTriangleMesh::ConstSPtr |
Const shared pointer.
Definition at line 56 of file WTriangleMesh.h.
typedef boost::shared_ptr< WTriangleMesh > WTriangleMesh::SPtr |
Shared pointer.
Definition at line 51 of file WTriangleMesh.h.
WTriangleMesh::WTriangleMesh | ( | size_t | vertNum, |
size_t | triangleNum | ||
) |
constructor that already reserves space for a given number of triangles and vertexes
vertNum | |
triangleNum |
Definition at line 52 of file WTriangleMesh.cpp.
References m_textureCoordinates, m_triangleColors, m_triangleNormals, m_triangles, m_vertColors, m_vertNormals, and m_verts.
WTriangleMesh::WTriangleMesh | ( | osg::ref_ptr< osg::Vec3Array > | vertices, |
const std::vector< size_t > & | triangles | ||
) |
Constructs a new mesh out of the given vertices and triangles.
vertices | Vec3Array storing all vertices |
triangles | Vector of consecutive vertex indices where each 3 IDs are a triangle starting at 0,1,2 for first triangle 3,4,5 for the second |
Definition at line 68 of file WTriangleMesh.cpp.
|
virtual |
destructor
Definition at line 84 of file WTriangleMesh.cpp.
|
private |
we don't allow the standard constructor
Referenced by getPrototype().
void WTriangleMesh::addMesh | ( | boost::shared_ptr< WTriangleMesh > | mesh, |
float | xOff = 0. , |
||
float | yOff = 0. , |
||
float | zOff = 0. |
||
) |
adds a mesh to the existing, no check for duplicate vertexes is performed, an additional vector may be specified to move the mesh to add
mesh | |
xOff | |
yOff | |
zOff |
Definition at line 576 of file WTriangleMesh.cpp.
References addTriangle(), addVertex(), m_countVerts, m_meshDirty, and setVertexColor().
|
inline |
Adds a texture coordinate for the vertex.
texCoord | the texture coordinate |
Definition at line 620 of file WTriangleMesh.h.
References m_countVerts.
Referenced by addTextureCoordinate().
|
inline |
Adds a texture coordinate for the vertex.
x | texture coordinate X |
y | texture coordinate Y |
z | texture coordinate Z |
Definition at line 625 of file WTriangleMesh.h.
References addTextureCoordinate().
void WTriangleMesh::addTriangle | ( | size_t | vert0, |
size_t | vert1, | ||
size_t | vert2 | ||
) |
adds a tringle to the mesh
vert0 | index of the first vertex |
vert1 | index of the second vertex |
vert2 | index of the third vertex |
Definition at line 98 of file WTriangleMesh.cpp.
References m_countTriangles, and m_triangles.
Referenced by addMesh(), addTriangle(), loopInsertCenterTriangle(), loopInsertCornerTriangles(), WTriangleMeshTest::testComponentDecomposition(), and WTriangleMeshTest::testEqualityOperator().
void WTriangleMesh::addTriangle | ( | osg::Vec3 | vert0, |
osg::Vec3 | vert1, | ||
osg::Vec3 | vert2 | ||
) |
adds a tringle and its 3 vertexes to the mesh
vert0 | position of the first vertex |
vert1 | position of the second vertex |
vert2 | position of the third vertex |
Definition at line 110 of file WTriangleMesh.cpp.
References addTriangle(), addVertex(), and m_countVerts.
|
inline |
adds a vertex position to the mesh
vert |
Definition at line 630 of file WTriangleMesh.h.
References m_countVerts.
Referenced by addMesh(), addTriangle(), addVertex(), loopCalcEdgeVert(), WTriangleMeshTest::testComponentDecomposition(), and WTriangleMeshTest::testEqualityOperator().
void WTriangleMesh::addVertex | ( | float | x, |
float | y, | ||
float | z | ||
) |
adds a vertex position to the mesh
x | |
y | |
z |
Definition at line 88 of file WTriangleMesh.cpp.
References addVertex().
void WTriangleMesh::addVertex | ( | WPosition | vert | ) |
adds a vertex position to the mesh
vert |
Definition at line 93 of file WTriangleMesh.cpp.
References addVertex().
|
private |
calculates neighbor information for triangles
Definition at line 319 of file WTriangleMesh.cpp.
References getNeighbor(), getTriVertId0(), getTriVertId1(), getTriVertId2(), m_countTriangles, m_neighborsCalculated, and m_triangleNeighbors.
|
private |
calculates a normal from the 3 points in space
vert0 | vertex 1 |
vert1 | vertex 2 |
vert2 | vertex 3 |
Definition at line 293 of file WTriangleMesh.cpp.
|
private |
calculates a normal from the 3 points in space defining a triangle
triangle |
Definition at line 277 of file WTriangleMesh.cpp.
References getTriVert().
Referenced by recalcVertNormals().
void WTriangleMesh::doLoopSubD | ( | ) |
performs a loop subdivision on the triangle mesh
Definition at line 355 of file WTriangleMesh.cpp.
References loopCalcNewPosition(), loopInsertCenterTriangle(), loopInsertCornerTriangles(), m_countTriangles, m_countVerts, m_meshDirty, m_numTriFaces, m_numTriVerts, m_triangleColors, m_triangles, m_vertColors, m_vertexIsInTriangle, m_vertNormals, m_verts, and updateVertsInTriangles().
|
inlinevirtual |
Gets the description for this prototype.
Implements WPrototyped.
Definition at line 650 of file WTriangleMesh.h.
|
inlinevirtual |
Gets the name of this prototype.
Implements WPrototyped.
Definition at line 645 of file WTriangleMesh.h.
|
private |
returns the triangle index of a triangle neighboring a given edge of a vertex
coVert1 | |
coVert2 | |
triangleNum |
Definition at line 337 of file WTriangleMesh.cpp.
References m_vertexIsInTriangle.
Referenced by calcNeighbors(), and loopCalcEdgeVert().
WVector3d WTriangleMesh::getNormal | ( | size_t | index | ) | const |
getter
index |
Definition at line 203 of file WTriangleMesh.cpp.
References m_countVerts, and m_vertNormals.
|
static |
Returns a prototype instantiated with the true type of the deriving class.
Definition at line 40 of file WTriangleMesh.cpp.
References m_prototype, and WTriangleMesh().
osg::ref_ptr< osg::Vec3Array > WTriangleMesh::getTextureCoordinateArray | ( | ) |
Returns a reference pointer to the texture coordinate array.
Definition at line 152 of file WTriangleMesh.cpp.
References m_textureCoordinates.
osg::ref_ptr< const osg::Vec3Array > WTriangleMesh::getTextureCoordinateArray | ( | ) | const |
Returns a const reference pointer to the texture coordinate array.
Definition at line 157 of file WTriangleMesh.cpp.
References m_textureCoordinates.
osg::ref_ptr< osg::Vec4Array > WTriangleMesh::getTriangleColors | ( | ) | const |
Return triangle colors.
Definition at line 719 of file WTriangleMesh.cpp.
References m_triangleColors.
osg::ref_ptr< osg::Vec3Array > WTriangleMesh::getTriangleNormalArray | ( | bool | forceRecalc = false | ) |
getter
forceRecalc |
Definition at line 171 of file WTriangleMesh.cpp.
References m_meshDirty, m_triangleNormals, and recalcVertNormals().
const std::vector< size_t > & WTriangleMesh::getTriangles | ( | ) | const |
Returns a const reference to the vertex ids of the triangles.
Definition at line 186 of file WTriangleMesh.cpp.
References m_triangles.
Referenced by tm_utils::componentDecomposition(), and tm_utils::operator<<().
|
inline |
getter
triId | |
vertNum |
Definition at line 676 of file WTriangleMesh.h.
References m_countTriangles, m_triangles, and m_verts.
Referenced by calcTriangleNormal().
|
inline |
returns the id of the first vertex of a triangle
triId | id of the triangle |
Definition at line 682 of file WTriangleMesh.h.
References m_countTriangles, and m_triangles.
Referenced by calcNeighbors(), loopCalcEdgeVert(), loopGetNextVertex(), loopGetThirdVert(), loopInsertCenterTriangle(), loopInsertCornerTriangles(), and updateVertsInTriangles().
|
inline |
returns the id of the second vertex of a triangle
triId | id of the triangle |
Definition at line 688 of file WTriangleMesh.h.
References m_countTriangles, and m_triangles.
Referenced by calcNeighbors(), loopCalcEdgeVert(), loopGetNextVertex(), loopGetThirdVert(), loopInsertCenterTriangle(), loopInsertCornerTriangles(), loopSetTriangle(), and updateVertsInTriangles().
|
inline |
return the id of the third vertex of a triangle
triId | id of the triangle |
Definition at line 694 of file WTriangleMesh.h.
References m_countTriangles, and m_triangles.
Referenced by calcNeighbors(), loopCalcEdgeVert(), loopGetNextVertex(), loopGetThirdVert(), loopInsertCenterTriangle(), loopInsertCornerTriangles(), loopSetTriangle(), and updateVertsInTriangles().
osg::Vec4 WTriangleMesh::getVertColor | ( | size_t | index | ) | const |
getter
index |
Definition at line 197 of file WTriangleMesh.cpp.
References m_countVerts, and m_vertColors.
osg::Vec3 WTriangleMesh::getVertex | ( | size_t | index | ) | const |
getter
index |
Definition at line 191 of file WTriangleMesh.cpp.
References m_countVerts, and m_verts.
Referenced by loopCalcNewPosition().
osg::ref_ptr< osg::Vec3Array > WTriangleMesh::getVertexArray | ( | ) |
getter
Definition at line 142 of file WTriangleMesh.cpp.
References m_verts.
Referenced by tm_utils::componentDecomposition(), and tm_utils::operator<<().
osg::ref_ptr< const osg::Vec3Array > WTriangleMesh::getVertexArray | ( | ) | const |
Returns a const reference pointer to the vertex array.
Definition at line 147 of file WTriangleMesh.cpp.
References m_verts.
osg::ref_ptr< osg::Vec4Array > WTriangleMesh::getVertexColorArray | ( | ) |
getter
Definition at line 181 of file WTriangleMesh.cpp.
References m_vertColors.
osg::ref_ptr< osg::Vec3Array > WTriangleMesh::getVertexNormalArray | ( | bool | forceRecalc = false | ) |
getter
forceRecalc |
Definition at line 162 of file WTriangleMesh.cpp.
References m_meshDirty, m_vertNormals, and recalcVertNormals().
|
private |
calculates the vertex id for a given edge, inserts a new vertex of none exists yet
triId | the triangle id |
edgeV1 | |
edgeV2 | |
V3 |
Definition at line 440 of file WTriangleMesh.cpp.
References addVertex(), getNeighbor(), getTriVertId0(), getTriVertId1(), getTriVertId2(), loopGetThirdVert(), m_countVerts, and m_numTriFaces.
Referenced by loopInsertCenterTriangle().
|
private |
calculates the new position of a vertex depending on it's location in the grid and number of neighbors
vertId | the vertex id |
Definition at line 404 of file WTriangleMesh.cpp.
References getVertex(), loopGetAlpha(), loopGetNextVertex(), and m_vertexIsInTriangle.
Referenced by doLoopSubD().
|
private |
erases a triangle from the vertexe's list of triangles it is part of
triId | |
vertId |
Definition at line 524 of file WTriangleMesh.cpp.
References m_vertexIsInTriangle.
Referenced by loopSetTriangle().
|
private |
loop helper function
n |
Definition at line 535 of file WTriangleMesh.cpp.
Referenced by loopCalcNewPosition().
|
private |
returns the id of the next vertex int he triangle
triNum | id of the triangle |
vertNum | id of the vertex |
Definition at line 550 of file WTriangleMesh.cpp.
References getTriVertId0(), getTriVertId1(), and getTriVertId2().
Referenced by loopCalcNewPosition().
|
private |
returns the id of the third vertex of a triangle for two given vertexes
coVert1 | |
coVert2 | |
triangleNum |
Definition at line 563 of file WTriangleMesh.cpp.
References getTriVertId0(), getTriVertId1(), and getTriVertId2().
Referenced by loopCalcEdgeVert().
|
private |
inserts the center triangle in a given triangle,
triId | the triangle id |
Definition at line 428 of file WTriangleMesh.cpp.
References addTriangle(), getTriVertId0(), getTriVertId1(), getTriVertId2(), and loopCalcEdgeVert().
Referenced by doLoopSubD().
|
private |
inserts the 3 corner triangles in a given triangle
triId | the triangle id |
Definition at line 489 of file WTriangleMesh.cpp.
References addTriangle(), getTriVertId0(), getTriVertId1(), getTriVertId2(), loopSetTriangle(), and m_numTriFaces.
Referenced by doLoopSubD().
|
private |
changes the vertex ids of a triangle
triId | |
vertId1 | |
vertId2 | |
vertId3 |
Definition at line 511 of file WTriangleMesh.cpp.
References getTriVertId1(), getTriVertId2(), loopEraseTriangleFromVertex(), m_vertexIsInTriangle, setTriVert0(), setTriVert1(), and setTriVert2().
Referenced by loopInsertCornerTriangles().
|
inline |
Checks if two meshes are exactly the same.
Same number of triangles, and points, and indices as well as same ordering. Keep in mind different ordering might result in the same structure but is considered different here.
rhs | The other mesh to compare with |
Definition at line 614 of file WTriangleMesh.h.
References m_triangles, and m_verts.
|
private |
recalculates the vertex normals
Definition at line 235 of file WTriangleMesh.cpp.
References calcTriangleNormal(), m_countTriangles, m_countVerts, m_meshDirty, m_vertexIsInTriangle, and updateVertsInTriangles().
Referenced by getTriangleNormalArray(), and getVertexNormalArray().
|
private |
removes a triangle from the mesh
index | the triangle to remove |
Definition at line 228 of file WTriangleMesh.cpp.
References m_countTriangles, m_meshDirty, and m_triangles.
|
private |
removes a vertex from the vertex array, if any triangles still index that vertex they will be removed if forceRemoveTriangle is true
index | the index of the vertex to remove |
Definition at line 209 of file WTriangleMesh.cpp.
References m_countTriangles, m_countVerts, m_meshDirty, m_triangles, and m_vertexIsInTriangle.
void WTriangleMesh::setTriangleColor | ( | size_t | index, |
osg::Vec4 | color | ||
) |
sets the color for a given triangle
index | |
color |
Definition at line 136 of file WTriangleMesh.cpp.
References m_countTriangles.
|
inlineprivate |
higher level access function to the triangle vector, sets the first vertex of a triangle to a given vertex id
triId | the id of the triangle to modify |
vertId | new id of the first vertex |
Definition at line 655 of file WTriangleMesh.h.
References m_countTriangles, m_countVerts, and m_triangles.
Referenced by loopSetTriangle().
|
inlineprivate |
higher level access function to the triangle vector, sets the second vertex of a triangle to a given vertex id
triId | the id of the triangle to modify |
vertId | new id of the second vertex |
Definition at line 662 of file WTriangleMesh.h.
References m_countTriangles, m_countVerts, and m_triangles.
Referenced by loopSetTriangle().
|
inlineprivate |
higher level access function to the triangle vector, sets the third vertex of a triangle to a given vertex id
triId | the id of the triangle to modify |
vertId | new id of the third vertex |
Definition at line 669 of file WTriangleMesh.h.
References m_countTriangles, m_countVerts, and m_triangles.
Referenced by loopSetTriangle().
|
inline |
sets a vertex to a new position
index | |
vert |
Definition at line 700 of file WTriangleMesh.h.
void WTriangleMesh::setVertexColor | ( | size_t | index, |
osg::Vec4 | color | ||
) |
sets the color for a given vertex
index | |
color |
Definition at line 130 of file WTriangleMesh.cpp.
References m_countVerts.
Referenced by addMesh().
void WTriangleMesh::setVertexNormal | ( | size_t | index, |
osg::Vec3 | normal | ||
) |
sets the normal for a given vertex
index | |
normal |
Definition at line 118 of file WTriangleMesh.cpp.
References m_countVerts.
Referenced by setVertexNormal().
void WTriangleMesh::setVertexNormal | ( | size_t | index, |
WPosition | normal | ||
) |
sets the normal for a given vertex
index | |
normal |
Definition at line 124 of file WTriangleMesh.cpp.
References m_countVerts, and setVertexNormal().
void WTriangleMesh::translateMesh | ( | float | xOff, |
float | yOff, | ||
float | zOff | ||
) |
moves the entire mesh to a new postion
xOff | |
yOff | |
zOff |
Definition at line 597 of file WTriangleMesh.cpp.
size_t WTriangleMesh::triangleSize | ( | ) | const |
getter
Definition at line 314 of file WTriangleMesh.cpp.
References m_countTriangles.
Referenced by tm_utils::componentDecomposition(), and tm_utils::operator<<().
|
private |
updates the list for which vertexes appear in which triangle
Definition at line 263 of file WTriangleMesh.cpp.
References getTriVertId0(), getTriVertId1(), getTriVertId2(), m_countTriangles, and m_vertexIsInTriangle.
Referenced by doLoopSubD(), and recalcVertNormals().
size_t WTriangleMesh::vertSize | ( | ) | const |
getter
Definition at line 309 of file WTriangleMesh.cpp.
References m_countVerts.
Referenced by tm_utils::componentDecomposition(), and tm_utils::operator<<().
void WTriangleMesh::zoomMesh | ( | float | zoom | ) |
multiplies the vertex vectors of the mesh with a given number
zoom |
Definition at line 606 of file WTriangleMesh.cpp.
|
private |
number of triangles in the mesh
Definition at line 559 of file WTriangleMesh.h.
Referenced by addTriangle(), calcNeighbors(), doLoopSubD(), getTriVert(), getTriVertId0(), getTriVertId1(), getTriVertId2(), recalcVertNormals(), removeTriangle(), removeVertex(), setTriangleColor(), setTriVert0(), setTriVert1(), setTriVert2(), triangleSize(), and updateVertsInTriangles().
|
private |
number of vertexes in the mesh
Definition at line 557 of file WTriangleMesh.h.
Referenced by addMesh(), addTextureCoordinate(), addTriangle(), addVertex(), doLoopSubD(), getNormal(), getVertColor(), getVertex(), loopCalcEdgeVert(), recalcVertNormals(), removeVertex(), setTriVert0(), setTriVert1(), setTriVert2(), setVertexColor(), setVertexNormal(), and vertSize().
|
private |
flag indicating a change took place which requires a recalculation of components
Definition at line 561 of file WTriangleMesh.h.
Referenced by addMesh(), doLoopSubD(), getTriangleNormalArray(), getVertexNormalArray(), recalcVertNormals(), removeTriangle(), and removeVertex().
|
private |
flag indicating whether the neighbor information has been calculated yet
Definition at line 563 of file WTriangleMesh.h.
Referenced by calcNeighbors().
|
private |
stores the number of triangles before the loop subdivion is run, needed by the loop algorithm
Definition at line 586 of file WTriangleMesh.h.
Referenced by doLoopSubD(), loopCalcEdgeVert(), and loopInsertCornerTriangles().
|
private |
stores the number of vertexes before the loop subdivion is run, needed by the loop algorithm
Definition at line 584 of file WTriangleMesh.h.
Referenced by doLoopSubD().
|
staticprotected |
The prototype as singleton.
Definition at line 379 of file WTriangleMesh.h.
Referenced by getPrototype().
|
private |
array containing the texture coordinates
Definition at line 567 of file WTriangleMesh.h.
Referenced by getTextureCoordinateArray(), and WTriangleMesh().
|
private |
array containing the triangle colors
Definition at line 577 of file WTriangleMesh.h.
Referenced by doLoopSubD(), getTriangleColors(), and WTriangleMesh().
|
private |
edge neighbors for each triangle
Definition at line 582 of file WTriangleMesh.h.
Referenced by calcNeighbors().
|
private |
array containing the triangle normals
Definition at line 575 of file WTriangleMesh.h.
Referenced by getTriangleNormalArray(), and WTriangleMesh().
|
private |
array containing the triangles
Definition at line 573 of file WTriangleMesh.h.
Referenced by addTriangle(), doLoopSubD(), getTriangles(), getTriVert(), getTriVertId0(), getTriVertId1(), getTriVertId2(), operator==(), removeTriangle(), removeVertex(), setTriVert0(), setTriVert1(), setTriVert2(), WTriangleMeshTest::testEqualityOperator(), and WTriangleMesh().
|
private |
array containing vertex colors
Definition at line 571 of file WTriangleMesh.h.
Referenced by doLoopSubD(), getVertColor(), getVertexColorArray(), and WTriangleMesh().
|
private |
for each vertex, list of triangles it is part of
Definition at line 580 of file WTriangleMesh.h.
Referenced by doLoopSubD(), getNeighbor(), loopCalcNewPosition(), loopEraseTriangleFromVertex(), loopSetTriangle(), recalcVertNormals(), removeVertex(), and updateVertsInTriangles().
|
private |
array containing the vertex normals
Definition at line 569 of file WTriangleMesh.h.
Referenced by doLoopSubD(), getNormal(), getVertexNormalArray(), and WTriangleMesh().
|
private |
array containing the vertices
Definition at line 565 of file WTriangleMesh.h.
Referenced by doLoopSubD(), getTriVert(), getVertex(), getVertexArray(), operator==(), and WTriangleMesh().