HE_Mesh2014  2.0.11
Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Static Private Attributes | List of all members
wblut.geom.WB_TriangleMesh Class Reference
+ Inheritance diagram for wblut.geom.WB_TriangleMesh:

Public Member Functions

boolean isBoundary (final int v)
 
double k1 (final int i)
 
double k2 (final int i)
 
double K (final int i)
 
double k1min ()
 
double k2min ()
 
double Kmin ()
 
double k1max ()
 
double k2max ()
 
double Kmax ()
 
WB_Vector k1dir (final int i)
 
WB_Vector k2dir (final int i)
 
double[] DCurv (final int i)
 
double DCurvInvariant (final int i)
 
WB_GeometryType getType ()
 
int[] vfNeighbors (final int i)
 
- Public Member Functions inherited from wblut.geom.WB_FacelistMesh
WB_FacelistMesh get ()
 
int[][] getFacesAsInt ()
 
int[][] getEdgesAsInt ()
 
WB_Plane getPlane (final int id, final double d)
 
WB_Plane getPlane (final int id)
 
List< WB_PlanegetPlanes (final double d)
 
List< WB_PlanegetPlanes ()
 
WB_Polygon getPolygon (final int id)
 
List< WB_PolygongetPolygons ()
 
WB_Point getCenter ()
 
WB_AABB getAABB ()
 
WB_FacelistMesh isoFitInAABB (final WB_AABB AABB)
 
WB_FacelistMesh triangulate ()
 
WB_FacelistMesh triangulateForceST ()
 
WB_FacelistMesh triangulateForceMT ()
 
WB_Vector getFaceNormal (final int id)
 
WB_Point getFaceCenter (final int id)
 
WB_Vector getVertexNormal (final int i)
 
int getNumberOfFaces ()
 
int getNumberOfVertices ()
 
WB_Coord getVertex (final int i)
 
List< WB_CoordgetPoints ()
 
int[] vfNeighbors (final int i)
 
int[] getFace (final int i)
 
WB_FacelistMesh apply (final WB_Transform WB_Point)
 
WB_GeometryType getType ()
 
double k1 (final int i)
 
double k2 (final int i)
 
double K (final int i)
 
double k1min ()
 
double k2min ()
 
double Kmin ()
 
double k1max ()
 
double k2max ()
 
double Kmax ()
 
WB_Vector k1dir (final int i)
 
WB_Vector k2dir (final int i)
 
double[] DCurv (final int i)
 
double DCurvInvariant (final int i)
 
- Public Member Functions inherited from wblut.geom.WB_Geometry
WB_Geometry apply (WB_Transform T)
 

Static Public Attributes

static final WB_GeometryFactory geometryfactory = WB_GeometryFactory.instance()
 
- Static Public Attributes inherited from wblut.geom.WB_FacelistMesh
static final WB_GeometryFactory geometryfactory = WB_GeometryFactory.instance()
 
- Static Public Attributes inherited from wblut.geom.WB_Geometry
static final WB_GeometryFactory geometryfactory
 

Protected Member Functions

 WB_TriangleMesh (final Collection<?extends WB_Coord > points, final int[][] faces)
 
 WB_TriangleMesh (final WB_Coord[] points, final int[][] faces)
 
 WB_TriangleMesh (final WB_FacelistMesh mesh)
 
void updateCurvatures ()
 
void updateDCurvatures ()
 
- Protected Member Functions inherited from wblut.geom.WB_FacelistMesh
 WB_FacelistMesh ()
 
 WB_FacelistMesh (final WB_FacelistMesh mesh)
 
 WB_FacelistMesh (final Collection<?extends WB_Coord > points, final int[][] faces)
 
 WB_FacelistMesh (final WB_Coord[] points, final int[][] faces)
 

Private Member Functions

void updateFaceNormals ()
 
void updateVertexNormals ()
 
void updateVertexNormalsSqLength ()
 
void updateVertexNormalsArea ()
 
void updateVertexNormalsAngle ()
 
void updateVertexNormalsNoWeight ()
 
void updatePointAreas ()
 
void updatevvNeighbors ()
 
void updatevfNeighbors ()
 
void updateffNeighbors ()
 

Static Private Attributes

static final int[] PREV = new int[] { 2, 0, 1 }
 
static final int[] NEXT = new int[] { 1, 2, 0 }
 

Additional Inherited Members

- Protected Attributes inherited from wblut.geom.WB_FacelistMesh
int[][] faces
 
List< WB_Coordvertices
 
WB_AABB aabb
 

Constructor & Destructor Documentation

wblut.geom.WB_TriangleMesh.WB_TriangleMesh ( final Collection<?extends WB_Coord points,
final int  faces[][] 
)
protected
Parameters
points
faces
wblut.geom.WB_TriangleMesh.WB_TriangleMesh ( final WB_Coord[]  points,
final int  faces[][] 
)
protected
Parameters
points
faces
wblut.geom.WB_TriangleMesh.WB_TriangleMesh ( final WB_FacelistMesh  mesh)
protected
Parameters
mesh

Member Function Documentation

double [] wblut.geom.WB_TriangleMesh.DCurv ( final int  i)
double wblut.geom.WB_TriangleMesh.DCurvInvariant ( final int  i)
WB_GeometryType wblut.geom.WB_TriangleMesh.getType ( )
Returns

Implements wblut.geom.WB_Geometry.

boolean wblut.geom.WB_TriangleMesh.isBoundary ( final int  v)
Parameters
v
Returns
double wblut.geom.WB_TriangleMesh.K ( final int  i)
double wblut.geom.WB_TriangleMesh.k1 ( final int  i)
WB_Vector wblut.geom.WB_TriangleMesh.k1dir ( final int  i)
double wblut.geom.WB_TriangleMesh.k1max ( )
double wblut.geom.WB_TriangleMesh.k1min ( )
double wblut.geom.WB_TriangleMesh.k2 ( final int  i)
WB_Vector wblut.geom.WB_TriangleMesh.k2dir ( final int  i)
double wblut.geom.WB_TriangleMesh.k2max ( )
double wblut.geom.WB_TriangleMesh.k2min ( )
double wblut.geom.WB_TriangleMesh.Kmax ( )
double wblut.geom.WB_TriangleMesh.Kmin ( )
void wblut.geom.WB_TriangleMesh.updateCurvatures ( )
protected
void wblut.geom.WB_TriangleMesh.updateDCurvatures ( )
protected
void wblut.geom.WB_TriangleMesh.updateFaceNormals ( )
private
void wblut.geom.WB_TriangleMesh.updateffNeighbors ( )
private
void wblut.geom.WB_TriangleMesh.updatePointAreas ( )
private
void wblut.geom.WB_TriangleMesh.updateVertexNormals ( )
private
void wblut.geom.WB_TriangleMesh.updateVertexNormalsAngle ( )
private

The normal of a vertex v computed as a weighted sum f the incident face normals. The weight is simply the angle of the involved wedge. Described in:

G. Thurmer, C. A. Wuthrich "Computing vertex normals from polygonal facets" Journal of Graphics Tools, 1998

void wblut.geom.WB_TriangleMesh.updateVertexNormalsArea ( )
private
void wblut.geom.WB_TriangleMesh.updateVertexNormalsNoWeight ( )
private
void wblut.geom.WB_TriangleMesh.updateVertexNormalsSqLength ( )
private

The normal of a vertex v is computed according to the formula described by Nelson Max in Max, N., "Weights for Computing Vertex Normals from Facet Normals", Journal of Graphics Tools, 4(2) (1999) The weight for each wedge is the cross product of the two edge over the product of the square of the two edge lengths. According to the original paper it is perfect only for spherical surface, but it should perform well...

void wblut.geom.WB_TriangleMesh.updatevfNeighbors ( )
private
void wblut.geom.WB_TriangleMesh.updatevvNeighbors ( )
private
int [] wblut.geom.WB_TriangleMesh.vfNeighbors ( final int  i)

Member Data Documentation

final WB_GeometryFactory wblut.geom.WB_TriangleMesh.geometryfactory = WB_GeometryFactory.instance()
static
final int [] wblut.geom.WB_TriangleMesh.NEXT = new int[] { 1, 2, 0 }
staticprivate
final int [] wblut.geom.WB_TriangleMesh.PREV = new int[] { 2, 0, 1 }
staticprivate

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