HE_Mesh  6.0.1
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)
 
int[] vfNeighbors (final int i)
 
- Public Member Functions inherited from wblut.geom.WB_Mesh
WB_Mesh 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_Mesh isoFitInAABB (final WB_AABB AABB)
 
WB_Mesh triangulate ()
 
WB_Mesh triangulateForceST ()
 
WB_Mesh 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)
 
WB_CoordCollection getPoints ()
 
int[] vfNeighbors (final int i)
 
int[] getFace (final int i)
 
WB_Mesh apply (final WB_Transform WB_Point)
 
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)
 
int[] getTriangles ()
 

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_Mesh mesh)
 
void updateCurvatures ()
 
void updateDCurvatures ()
 
- Protected Member Functions inherited from wblut.geom.WB_Mesh
 WB_Mesh ()
 
 WB_Mesh (final WB_Mesh mesh)
 
 WB_Mesh (final Collection<?extends WB_Coord > points, final int[][] faces)
 
 WB_Mesh (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 ()
 

Private Attributes

WB_GeometryFactory geometryfactory = new WB_GeometryFactory()
 

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_Mesh
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

References wblut.geom.WB_Mesh.triangulate().

wblut.geom.WB_TriangleMesh.WB_TriangleMesh ( final WB_Coord[]  points,
final int  faces[][] 
)
protected
Parameters
points
faces

References wblut.geom.WB_Mesh.triangulate().

Member Function Documentation

double [] wblut.geom.WB_TriangleMesh.DCurv ( final int  i)
double wblut.geom.WB_TriangleMesh.DCurvInvariant ( final int  i)
boolean wblut.geom.WB_TriangleMesh.isBoundary ( final int  v)
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.updateffNeighbors ( )
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

References wblut.geom.WB_Vector.addMulSelf(), wblut.geom.WB_GeometryFactory3D.createNormalizedVectorFromTo(), wblut.geom.WB_GeometryFactory3D.createVector(), wblut.geom.WB_Mesh.faces, wblut.geom.WB_Vector.getAngleNorm(), wblut.geom.WB_Vector.mulSelf(), wblut.geom.WB_Vector.normalizeSelf(), wblut.geom.WB_TriangleMesh.updateFaceNormals(), and wblut.geom.WB_Mesh.vertices.

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...

References wblut.geom.WB_Vector.addMulSelf(), wblut.geom.WB_GeometryFactory3D.createNormalizedVectorFromTo(), wblut.geom.WB_GeometryFactory3D.createVector(), wblut.geom.WB_Vector.cross(), wblut.geom.WB_Mesh.faces, wblut.geom.WB_Vector.getSqLength(), wblut.geom.WB_Vector.normalizeSelf(), wblut.geom.WB_TriangleMesh.updateFaceNormals(), and wblut.geom.WB_Mesh.vertices.

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

Member Data Documentation

WB_GeometryFactory wblut.geom.WB_TriangleMesh.geometryfactory = new WB_GeometryFactory()
private
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: