library of assembled shared sources |
http://lass.cocamware.com |
#include <triangle_mesh_3d.h>
Data Structures | |
struct | IntersectionContext |
struct | LogicalEdge |
struct | PositionalEdge |
struct | Rebind |
struct | Triangle |
struct | TriangleTraits |
Public Types | |
enum | { dimension = TPoint::dimension } |
typedef TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics > | TSelf |
typedef Point3D< T > | TPoint |
typedef TPoint::TVector | TVector |
typedef Point2D< T > | TUv |
typedef Aabb3D< T > | TAabb |
typedef Ray3D< T > | TRay |
typedef TPoint::TValue | TValue |
typedef TPoint::TParam | TParam |
typedef TPoint::TReference | TReference |
typedef TPoint::TConstReference | TConstReference |
typedef TPoint::TNumTraits | TNumTraits |
typedef IntersectionContext | TIntersectionContext |
typedef Triangle | TTriangle |
typedef IndexTriangle | TIndexTriangle |
typedef std::vector< Triangle > | TTriangles |
typedef std::vector< TPoint > | TVertices |
typedef std::vector< TVector > | TNormals |
typedef std::vector< TUv > | TUvs |
typedef TTriangles::const_iterator | TTriangleIterator |
typedef TVertices::const_iterator | TVertexIterator |
typedef TNormals::const_iterator | TNormalIterator |
typedef TUvs::const_iterator | TUvIterator |
Public Member Functions | |
TriangleMesh3D () | |
template<typename VertexInputRange , typename IndexTriangleInputRange > | |
TriangleMesh3D (const VertexInputRange &vertices, const IndexTriangleInputRange &triangles) | |
template<typename VertexInputRange , typename NormalInputRange , typename UvInputRange , typename IndexTriangleInputRange > | |
TriangleMesh3D (const VertexInputRange &vertices, const NormalInputRange &normals, const UvInputRange &uvs, const IndexTriangleInputRange &triangles) | |
const TTriangles & | triangles () const |
const TVertices & | vertices () const |
const TNormals & | normals () const |
const TUvs & | uvs () const |
template<typename OutputIterator > | |
OutputIterator | indexTriangles (OutputIterator triangles) const |
const TAabb | aabb () const |
const TValue | area () const |
void | smoothNormals (TParam maxAngleInRadians) |
void | flatFaces () |
remove all normals, so that faces become flat | |
void | loopSubdivision (unsigned level) |
void | autoSew () |
automatically sews (unconnected) triangles by comparing geometrical vertices and normals | |
void | autoCrease (unsigned level) |
automatically assign crease levels to edges with discontinued normals | |
const Result | intersect (const TRay &ray, TTriangleIterator &triangle, TReference t, TParam tMin=0, IntersectionContext *context=0) const |
const bool | intersects (const TRay &ray, TParam tMin, TParam tMax) const |
void | swap (TSelf &other) |
Private Types | |
typedef spat::DefaultAabbRayTraits < TAabb, TRay > | TAabbRayTraits |
typedef BoundingVolumeHierarchy < TTriangle, TriangleTraits, SplitHeuristics > | TTriangleTree |
typedef std::vector< const Triangle * > | TVertexTriangles |
typedef std::vector< TPoint > | TVertexRing |
typedef std::vector< TVector > | TNormalRing |
typedef std::vector< TUv > | TUvRing |
Private Member Functions | |
template<typename IndexTriangleInputRange > | |
void | buildMesh (const IndexTriangleInputRange &triangles) |
void | connectTriangles () |
void | findVertexTriangles (TVertexTriangles &vertexTriangles) const |
void | findVertexRing (const TPoint &vertex, const Triangle *vertexTriangle, TVertexRing &ring, TVertexRing &creases, TNormalRing &normals, TUvRing &uvs) const |
void | subdivide () |
subdivide every triangle in 4 new ones by splitting the edges | |
Private Attributes | |
TTriangleTree | tree_ |
TTriangles | triangles_ |
TVertices | vertices_ |
TNormals | normals_ |
TUvs | uvs_ |
unsigned | numBoundaryEdges_ |
Definition at line 83 of file triangle_mesh_3d.h.
typedef TriangleMesh3D<T, BoundingVolumeHierarchy, SplitHeuristics> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TSelf |
Definition at line 87 of file triangle_mesh_3d.h.
typedef Point3D<T> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TPoint |
Definition at line 89 of file triangle_mesh_3d.h.
typedef TPoint::TVector lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TVector |
Definition at line 90 of file triangle_mesh_3d.h.
typedef Point2D<T> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TUv |
Definition at line 91 of file triangle_mesh_3d.h.
typedef Aabb3D<T> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TAabb |
Definition at line 92 of file triangle_mesh_3d.h.
typedef Ray3D<T> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TRay |
Definition at line 93 of file triangle_mesh_3d.h.
typedef TPoint::TValue lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TValue |
Definition at line 95 of file triangle_mesh_3d.h.
typedef TPoint::TParam lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TParam |
Definition at line 96 of file triangle_mesh_3d.h.
typedef TPoint::TReference lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TReference |
Definition at line 97 of file triangle_mesh_3d.h.
typedef TPoint::TConstReference lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TConstReference |
Definition at line 98 of file triangle_mesh_3d.h.
typedef TPoint::TNumTraits lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TNumTraits |
Definition at line 99 of file triangle_mesh_3d.h.
typedef IntersectionContext lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TIntersectionContext |
Definition at line 132 of file triangle_mesh_3d.h.
typedef Triangle lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TTriangle |
Definition at line 133 of file triangle_mesh_3d.h.
typedef IndexTriangle lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TIndexTriangle |
Definition at line 134 of file triangle_mesh_3d.h.
typedef std::vector<Triangle> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TTriangles |
Definition at line 135 of file triangle_mesh_3d.h.
typedef std::vector<TPoint> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TVertices |
Definition at line 136 of file triangle_mesh_3d.h.
typedef std::vector<TVector> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TNormals |
Definition at line 137 of file triangle_mesh_3d.h.
typedef std::vector<TUv> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TUvs |
Definition at line 138 of file triangle_mesh_3d.h.
typedef TTriangles::const_iterator lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TTriangleIterator |
Definition at line 140 of file triangle_mesh_3d.h.
typedef TVertices::const_iterator lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TVertexIterator |
Definition at line 141 of file triangle_mesh_3d.h.
typedef TNormals::const_iterator lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TNormalIterator |
Definition at line 142 of file triangle_mesh_3d.h.
typedef TUvs::const_iterator lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TUvIterator |
Definition at line 143 of file triangle_mesh_3d.h.
typedef spat::DefaultAabbRayTraits<TAabb, TRay> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TAabbRayTraits [private] |
Definition at line 179 of file triangle_mesh_3d.h.
typedef BoundingVolumeHierarchy<TTriangle, TriangleTraits, SplitHeuristics> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TTriangleTree [private] |
Definition at line 219 of file triangle_mesh_3d.h.
typedef std::vector<const Triangle*> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TVertexTriangles [private] |
Definition at line 265 of file triangle_mesh_3d.h.
typedef std::vector<TPoint> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TVertexRing [private] |
Definition at line 266 of file triangle_mesh_3d.h.
typedef std::vector<TVector> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TNormalRing [private] |
Definition at line 267 of file triangle_mesh_3d.h.
typedef std::vector<TUv> lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TUvRing [private] |
Definition at line 268 of file triangle_mesh_3d.h.
anonymous enum |
lass::prim::TriangleMesh3D< T, BHV, SH >::TriangleMesh3D | ( | ) | [inline] |
Definition at line 64 of file triangle_mesh_3d.inl.
lass::prim::TriangleMesh3D< T, BHV, SH >::TriangleMesh3D | ( | const VertexInputRange & | vertices, | |
const IndexTriangleInputRange & | triangles | |||
) | [inline] |
Definition at line 75 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::buildMesh().
lass::prim::TriangleMesh3D< T, BHV, SH >::TriangleMesh3D | ( | const VertexInputRange & | vertices, | |
const NormalInputRange & | normals, | |||
const UvInputRange & | uvs, | |||
const IndexTriangleInputRange & | triangles | |||
) | [inline] |
Definition at line 92 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::buildMesh().
const TriangleMesh3D< T, BHV, SH >::TTriangles & lass::prim::TriangleMesh3D< T, BHV, SH >::triangles | ( | ) | const [inline] |
Definition at line 106 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_.
const TriangleMesh3D< T, BHV, SH >::TVertices & lass::prim::TriangleMesh3D< T, BHV, SH >::vertices | ( | ) | const [inline] |
Definition at line 115 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices_.
const TriangleMesh3D< T, BHV, SH >::TNormals & lass::prim::TriangleMesh3D< T, BHV, SH >::normals | ( | ) | const [inline] |
Definition at line 124 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals_.
const TriangleMesh3D< T, BHV, SH >::TUvs & lass::prim::TriangleMesh3D< T, BHV, SH >::uvs | ( | ) | const [inline] |
Definition at line 133 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::uvs_.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::loopSubdivision().
OutputIterator lass::prim::TriangleMesh3D< T, BHV, SH >::indexTriangles | ( | OutputIterator | triangles | ) | const [inline] |
Definition at line 142 of file triangle_mesh_3d.inl.
References LASS_ASSERT, lass::prim::IndexTriangle::normals, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals_, lass::prim::IndexTriangle::null(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, lass::prim::IndexTriangle::uvs, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::uvs_, lass::prim::IndexTriangle::vertices, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices_.
const TriangleMesh3D< T, BHV, SH >::TAabb lass::prim::TriangleMesh3D< T, BHV, SH >::aabb | ( | ) | const [inline] |
Definition at line 166 of file triangle_mesh_3d.inl.
References LASS_ASSERT, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::tree_, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_.
const TriangleMesh3D< T, BHV, SH >::TValue lass::prim::TriangleMesh3D< T, BHV, SH >::area | ( | ) | const [inline] |
Definition at line 176 of file triangle_mesh_3d.inl.
References lass::prim::cross(), lass::prim::Vector3D< T >::norm(), and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_.
void lass::prim::TriangleMesh3D< T, BHV, SH >::smoothNormals | ( | TParam | maxAngleInRadians | ) | [inline] |
Definition at line 195 of file triangle_mesh_3d.inl.
References lass::num::acos(), lass::prim::cos(), lass::prim::cross(), lass::prim::dot(), lass::stde::for_each_r(), lass::prim::Vector3D< T >::isNaN(), lass::prim::Vector3D< T >::isZero(), LASS_ASSERT, lass::prim::Vector3D< T >::normalize(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::normals, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals_, lass::prim::IndexTriangle::null(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::vertices, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices_.
void lass::prim::TriangleMesh3D< T, BHV, SH >::flatFaces | ( | ) | [inline] |
remove all normals, so that faces become flat
Definition at line 313 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals_, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_.
void lass::prim::TriangleMesh3D< T, BHV, SH >::loopSubdivision | ( | unsigned | level | ) | [inline] |
Definition at line 325 of file triangle_mesh_3d.inl.
References lass::num::cos(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::findVertexRing(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::findVertexTriangles(), LASS_ASSERT, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals_, lass::num::NumTraits< C >::pi, lass::prim::Point2D< T >::position(), lass::prim::Point3D< T >::position(), sqr(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::subdivide(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::tree_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::uvs(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::uvs_, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices_.
void lass::prim::TriangleMesh3D< T, BHV, SH >::autoSew | ( | ) | [inline] |
automatically sews (unconnected) triangles by comparing geometrical vertices and normals
Definition at line 425 of file triangle_mesh_3d.inl.
References LASS_ASSERT, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::numBoundaryEdges_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::others, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::side(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::vertices.
void lass::prim::TriangleMesh3D< T, BHV, SH >::autoCrease | ( | unsigned | level | ) | [inline] |
automatically assign crease levels to edges with discontinued normals
Definition at line 500 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::creaseLevel, LASS_ASSERT, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::normals, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::others, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::vertices.
const Result lass::prim::TriangleMesh3D< T, BHV, SH >::intersect | ( | const TRay & | ray, | |
TTriangleIterator & | triangle, | |||
TReference | t, | |||
TParam | tMin = 0 , |
|||
IntersectionContext * | context = 0 | |||
) | const [inline] |
const bool lass::prim::TriangleMesh3D< T, BHV, SH >::intersects | ( | const TRay & | ray, | |
TParam | tMin, | |||
TParam | tMax | |||
) | const [inline] |
Definition at line 553 of file triangle_mesh_3d.inl.
References LASS_ASSERT, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::tree_, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_.
void lass::prim::TriangleMesh3D< T, BHV, SH >::swap | ( | TSelf & | other | ) | [inline] |
Definition at line 562 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::tree_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::uvs_, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices_.
void lass::prim::TriangleMesh3D< T, BHV, SH >::buildMesh | ( | const IndexTriangleInputRange & | triangles | ) | [inline, private] |
Definition at line 654 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::connectTriangles(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::creaseLevel, LASS_ENFORCE_INDEX, LASS_THROW, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::normals, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals_, lass::prim::IndexTriangle::null(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::others, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::tree_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::uvs, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::uvs_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::vertices, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices_.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::TriangleMesh3D().
void lass::prim::TriangleMesh3D< T, BHV, SH >::connectTriangles | ( | ) | [inline, private] |
Definition at line 735 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::numBoundaryEdges_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::others, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::vertices.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::buildMesh().
void lass::prim::TriangleMesh3D< T, BHV, SH >::findVertexTriangles | ( | TVertexTriangles & | vertexTriangles | ) | const [inline, private] |
Definition at line 715 of file triangle_mesh_3d.inl.
References LASS_ASSERT, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::vertices, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices_.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::loopSubdivision().
void lass::prim::TriangleMesh3D< T, BHV, SH >::findVertexRing | ( | const TPoint & | vertex, | |
const Triangle * | vertexTriangle, | |||
TVertexRing & | ring, | |||
TVertexRing & | creases, | |||
TNormalRing & | normals, | |||
TUvRing & | uvs | |||
) | const [inline, private] |
Definition at line 788 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::creaseLevel, LASS_ASSERT, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::others, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::side(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::uvs, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::vertices.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::loopSubdivision().
void lass::prim::TriangleMesh3D< T, BHV, SH >::subdivide | ( | ) | [inline, private] |
subdivide every triangle in 4 new ones by splitting the edges
Definition at line 866 of file triangle_mesh_3d.inl.
References lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::creaseLevel, LASS_ASSERT, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::normals, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::numBoundaryEdges_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::others, lass::prim::Point2D< T >::position(), lass::prim::Point3D< T >::position(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::side(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::tree_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::uvs, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::uvs_, lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::Triangle::vertices, and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices_.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::loopSubdivision().
TTriangleTree lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::tree_ [private] |
Definition at line 278 of file triangle_mesh_3d.h.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::aabb(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::buildMesh(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::intersect(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::intersects(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::loopSubdivision(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::subdivide(), and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::swap().
TTriangles lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles_ [private] |
Definition at line 279 of file triangle_mesh_3d.h.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::aabb(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::area(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::autoCrease(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::autoSew(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::buildMesh(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::connectTriangles(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::findVertexTriangles(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::flatFaces(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::indexTriangles(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::intersect(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::intersects(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::loopSubdivision(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::smoothNormals(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::subdivide(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::swap(), and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::triangles().
TVertices lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices_ [private] |
Definition at line 280 of file triangle_mesh_3d.h.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::buildMesh(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::findVertexTriangles(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::indexTriangles(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::loopSubdivision(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::smoothNormals(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::subdivide(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::swap(), and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::vertices().
TNormals lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals_ [private] |
Definition at line 281 of file triangle_mesh_3d.h.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::buildMesh(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::flatFaces(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::indexTriangles(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::loopSubdivision(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::normals(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::smoothNormals(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::subdivide(), and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::swap().
TUvs lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::uvs_ [private] |
Definition at line 282 of file triangle_mesh_3d.h.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::buildMesh(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::indexTriangles(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::loopSubdivision(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::subdivide(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::swap(), and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::uvs().
unsigned lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::numBoundaryEdges_ [private] |
Definition at line 283 of file triangle_mesh_3d.h.
Referenced by lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::autoSew(), lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::connectTriangles(), and lass::prim::TriangleMesh3D< T, BoundingVolumeHierarchy, SplitHeuristics >::subdivide().
Generated on Mon Nov 10 14:22:14 2008 for Library of Assembled Shared Sources by 1.5.7.1 |