HE_Mesh  6.0.1
wblut.hemesh.HE_Vertex Class Reference
+ Inheritance diagram for wblut.hemesh.HE_Vertex:

Public Member Functions

 HE_Vertex ()
 
 HE_Vertex (final double x, final double y, final double z)
 
 HE_Vertex (final WB_Coord v)
 
WB_Point getPosition ()
 
HE_VertexEdgeCirculator veCrc ()
 
HE_VertexFaceCirculator vfCrc ()
 
HE_VertexVertexCirculator vvCrc ()
 
HE_VertexHalfedgeInCirculator vheiCrc ()
 
HE_VertexHalfedgeOutCirculator vheoCrc ()
 
HE_VertexEdgeRevCirculator veRevCrc ()
 
HE_VertexFaceRevCirculator vfRevCrc ()
 
HE_VertexVertexRevCirculator vvRevCrc ()
 
HE_VertexHalfedgeInRevCirculator vheiRevCrc ()
 
HE_VertexHalfedgeOutRevCirculator vheoRevCrc ()
 
HE_Vertex copy ()
 
HE_Halfedge getHalfedge ()
 
void set (final HE_Vertex v)
 
WB_Point getOffset (final double d)
 
HE_Vertex getNextInFace ()
 
HE_Vertex getPrevInFace ()
 
WB_Classification getVertexType ()
 
long key ()
 
List< HE_HalfedgegetHalfedgeStar ()
 
List< HE_HalfedgegetEdgeStar ()
 
List< HE_FacegetFaceStar ()
 
List< HE_VertexgetNeighborVertices ()
 
List< HE_VertexgetVertexStar ()
 
List< HE_VertexgetNextNeighborVertices ()
 
WB_Coord[] getNeighborsAsPoints ()
 
int getVertexDegree ()
 
double getVertexArea ()
 
double getBarycentricDualArea ()
 
double getCircumcentricDualArea ()
 
boolean isBoundary ()
 
boolean isIsolated ()
 
double xd ()
 
double yd ()
 
double zd ()
 
double wd ()
 
double getd (final int i)
 
float xf ()
 
float yf ()
 
float zf ()
 
float wf ()
 
float getf (final int i)
 
void setX (final double x)
 
void setY (final double y)
 
void setZ (final double z)
 
void setW (final double w)
 
void setCoord (final int i, final double v)
 
void set (final WB_Coord p)
 
void set (final double x, final double y)
 
void set (final double x, final double y, final double z)
 
void set (final double x, final double y, final double z, final double w)
 
WB_CoordinateSystem3D getVertexCS ()
 
WB_Coord getVertexNormal ()
 
WB_Coord getVertexNormalAverage ()
 
WB_Coord getVertexNormalArea ()
 
WB_Coord getVertexNormalAngle ()
 
WB_Coord getVertexNormalGaussCurvature ()
 
WB_Coord getVertexNormalMeanCurvature ()
 
WB_Coord getVertexNormalSphereInscribed ()
 
double getGaussianCurvature (final WB_Vector meanCurvatureVector)
 
double getGaussCurvature ()
 
WB_CoordinateSystem3D getCurvatureDirections ()
 
void copyProperties (final HE_Vertex el)
 
void clear ()
 
double getUmbrellaAngle ()
 
double getAngleDefect ()
 
double getScalarGaussCurvature ()
 
double getScalarMeanCurvature ()
 
HE_Halfedge getHalfedge (final HE_Face f)
 
void clearUVW ()
 
void setUVW (final double u, final double v, final double w)
 
void setUVW (final WB_Coord uvw)
 
void setUVW (final HE_TextureCoordinate uvw)
 
void setUVW (final double u, final double v, final double w, final HE_Face face)
 
void setUVW (final WB_Coord uvw, final HE_Face face)
 
void setUVW (final HE_TextureCoordinate uvw, final HE_Face face)
 
void clearUVW (final HE_Face face)
 
boolean hasUVW (final HE_Face f)
 
boolean hasVertexUVW ()
 
boolean hasHalfedgeUVW (final HE_Face f)
 
HE_TextureCoordinate getVertexUVW ()
 
HE_TextureCoordinate getHalfedgeUVW (final HE_Face f)
 
HE_TextureCoordinate getUVW (final HE_Face f)
 
void cleanUVW ()
 
boolean isNeighbor (final HE_Vertex v)
 
double[] coords ()
 
int compareTo (final WB_Coord p)
 
int compareToY1st (final WB_Coord p)
 
boolean equals (final Object o)
 
int hashCode ()
 
String toString ()
 
void clearPrecomputed ()
 
- Public Member Functions inherited from wblut.hemesh.HE_MeshElement
 HE_MeshElement ()
 
void clearVisited ()
 
void setVisited ()
 
void setVisited (final boolean b)
 
boolean isVisited ()
 
void setVisible (final boolean b)
 
boolean isVisible ()
 
int hashCode ()
 
boolean equals (final Object other)
 
void copyProperties (final HE_MeshElement el)
 
int getColor ()
 
void setColor (final int color)
 
- Public Member Functions inherited from wblut.hemesh.HE_Element
 HE_Element ()
 
final void setUserLabel (final int label)
 
final long getKey ()
 
final int getInternalLabel ()
 
final int getUserLabel ()
 
int hashCode ()
 
boolean equals (final Object other)
 
void copyProperties (final HE_Element el)
 
- Public Member Functions inherited from wblut.geom.WB_MutableCoord
void setX (double x)
 
void setY (double y)
 
void setZ (double z)
 
void setW (double w)
 
void setCoord (int i, double v)
 
void set (WB_Coord p)
 
void set (double x, double y)
 
void set (double x, double y, double z)
 
void set (double x, double y, double z, double w)
 
- Public Member Functions inherited from wblut.geom.WB_Coord
double getd (int i)
 
float getf (int i)
 

Protected Member Functions

void _setHalfedge (final HE_Halfedge halfedge)
 
void _clearHalfedge ()
 
- Protected Member Functions inherited from wblut.hemesh.HE_MeshElement
abstract void clear ()
 
- Protected Member Functions inherited from wblut.hemesh.HE_Element
final void setInternalLabel (final int label)
 
abstract void clear ()
 
abstract void clearPrecomputed ()
 

Private Attributes

WB_Point pos
 
HE_Halfedge _halfedge
 
HE_TextureCoordinate uvw = null
 

Additional Inherited Members

- Protected Attributes inherited from wblut.hemesh.HE_MeshElement
volatile boolean visited
 
boolean visible
 
int color
 
- Protected Attributes inherited from wblut.hemesh.HE_Element
final long key
 
int internalLabel
 
int userLabel
 
- Static Protected Attributes inherited from wblut.hemesh.HE_MeshElement
static final WB_GeometryFactory gf = new WB_GeometryFactory()
 
static final WB_ProgressTracker tracker = WB_ProgressTracker.instance()
 
- Static Protected Attributes inherited from wblut.hemesh.HE_Element
static AtomicLong currentKey = new AtomicLong(0)
 

Detailed Description

Vertex element of half-edge mesh.

Author
Frederik Vanhoutte (W:Blut)

Constructor & Destructor Documentation

wblut.hemesh.HE_Vertex.HE_Vertex ( )

Instantiates a new HE_Vertex.

wblut.hemesh.HE_Vertex.HE_Vertex ( final double  x,
final double  y,
final double  z 
)

Instantiates a new HE_Vertex at position x, y, z.

Parameters
xx-coordinate of vertex
yy-coordinate of vertex
zz-coordinate of vertex
wblut.hemesh.HE_Vertex.HE_Vertex ( final WB_Coord  v)

Instantiates a new HE_Vertex at position v.

Parameters
vposition of vertex

Member Function Documentation

void wblut.hemesh.HE_Vertex._clearHalfedge ( )
protected

Clear halfedge.

void wblut.hemesh.HE_Vertex._setHalfedge ( final HE_Halfedge  halfedge)
protected

Sets the halfedge associated with this vertex.

Parameters
halfedgethe new halfedge
void wblut.hemesh.HE_Vertex.clear ( )
void wblut.hemesh.HE_Vertex.clearPrecomputed ( )
void wblut.hemesh.HE_Vertex.clearUVW ( )

Clear vertex UVW.

void wblut.hemesh.HE_Vertex.clearUVW ( final HE_Face  face)

Clear UVW in halfedge in this vertex, belonging to face. If no such halfedge exists, nothing happens.

Parameters
face

References wblut.hemesh.HE_Halfedge.clearUVW(), and wblut.hemesh.HE_Vertex.getHalfedge().

double [] wblut.hemesh.HE_Vertex.coords ( )
void wblut.hemesh.HE_Vertex.copyProperties ( final HE_Vertex  el)
Parameters
el

References wblut.hemesh.HE_Vertex.getVertexUVW().

double wblut.hemesh.HE_Vertex.getAngleDefect ( )
double wblut.hemesh.HE_Vertex.getBarycentricDualArea ( )

Get the barycentric dual area. Triangles only.

Returns

References wblut.hemesh.HET_MeshOp.getBarycentricDualVertexArea().

double wblut.hemesh.HE_Vertex.getCircumcentricDualArea ( )

Get the circumcentric dual area. Triangles only.

Returns

References wblut.hemesh.HET_MeshOp.getCircumcentricDualVertexArea().

WB_CoordinateSystem3D wblut.hemesh.HE_Vertex.getCurvatureDirections ( )
double wblut.hemesh.HE_Vertex.getd ( final int  i)
List<HE_Halfedge> wblut.hemesh.HE_Vertex.getEdgeStar ( )
float wblut.hemesh.HE_Vertex.getf ( final int  i)
List<HE_Face> wblut.hemesh.HE_Vertex.getFaceStar ( )
double wblut.hemesh.HE_Vertex.getGaussCurvature ( )

Returns the discrete Gaussian curvature. These discrete operators are described in "Discrete Differential-Geometry Operators for Triangulated 2-Manifolds", Mark Meyer, Mathieu Desbrun, Peter Schr???der, and Alan H. Barr. http://www.cs.caltech.edu/~mmeyer/Publications/diffGeomOps.pdf http://www.cs.caltech.edu/~mmeyer/Publications/diffGeomOps.pdf Note: on a sphere, the Gaussian curvature is very accurate, but not the mean curvature. Guoliang Xu suggests improvements in his papers http://lsec.cc.ac.cn/~xuguo/xuguo3.htm

Returns

References wblut.hemesh.HET_MeshOp.getGaussCurvature().

double wblut.hemesh.HE_Vertex.getGaussianCurvature ( final WB_Vector  meanCurvatureVector)

Returns the discrete Gaussian curvature and the mean normal. These discrete operators are described in "Discrete Differential-Geometry Operators for Triangulated 2-Manifolds", Mark Meyer, Mathieu Desbrun, Peter Schr???der, and Alan H. Barr. http://www.cs.caltech.edu/~mmeyer/Publications/diffGeomOps.pdf http://www.cs.caltech.edu/~mmeyer/Publications/diffGeomOps.pdf Note: on a sphere, the Gaussian curvature is very accurate, but not the mean curvature. Guoliang Xu suggests improvements in his papers http://lsec.cc.ac.cn/~xuguo/xuguo3.htm

Parameters
meanCurvatureVector
Returns

References wblut.hemesh.HET_MeshOp.getGaussianCurvature().

HE_Halfedge wblut.hemesh.HE_Vertex.getHalfedge ( )

Get halfedge associated with this vertex.

Returns
halfedge

References wblut.hemesh.HE_Vertex._halfedge.

HE_Halfedge wblut.hemesh.HE_Vertex.getHalfedge ( final HE_Face  f)
List<HE_Halfedge> wblut.hemesh.HE_Vertex.getHalfedgeStar ( )

Get halfedges in vertex.

Returns
halfedges

References wblut.hemesh.HE_Vertex.getHalfedge(), and wblut.hemesh.HE_Halfedge.getNextInVertex().

HE_TextureCoordinate wblut.hemesh.HE_Vertex.getHalfedgeUVW ( final HE_Face  f)

Get the halfedge UVW belonging to a face. If none exists, return zero coordinates.

Parameters
f
Returns

References wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Halfedge.hasHalfedgeUVW(), and wblut.hemesh.HE_TextureCoordinate.ZERO.

WB_Coord [] wblut.hemesh.HE_Vertex.getNeighborsAsPoints ( )
List<HE_Vertex> wblut.hemesh.HE_Vertex.getNeighborVertices ( )
List<HE_Vertex> wblut.hemesh.HE_Vertex.getNextNeighborVertices ( )
WB_Point wblut.hemesh.HE_Vertex.getOffset ( final double  d)
WB_Point wblut.hemesh.HE_Vertex.getPosition ( )
double wblut.hemesh.HE_Vertex.getScalarGaussCurvature ( )
double wblut.hemesh.HE_Vertex.getScalarMeanCurvature ( )
double wblut.hemesh.HE_Vertex.getUmbrellaAngle ( )
HE_TextureCoordinate wblut.hemesh.HE_Vertex.getUVW ( final HE_Face  f)

Get the UVW belonging to a face. If approprate halfedge UVW exists, the vertex UVW is retrieved.* If neither exist, zero coordinates are returned.

Parameters
f
Returns

References wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Vertex.uvw, and wblut.hemesh.HE_TextureCoordinate.ZERO.

double wblut.hemesh.HE_Vertex.getVertexArea ( )

Get area of faces bounding vertex.

Returns
area

References wblut.hemesh.HET_MeshOp.getVertexArea().

WB_CoordinateSystem3D wblut.hemesh.HE_Vertex.getVertexCS ( )
int wblut.hemesh.HE_Vertex.getVertexDegree ( )

Get number of edges in vertex.

Returns
number of edges

References wblut.hemesh.HE_Vertex.getHalfedge(), and wblut.hemesh.HE_Halfedge.getNextInVertex().

WB_Coord wblut.hemesh.HE_Vertex.getVertexNormal ( )
WB_Coord wblut.hemesh.HE_Vertex.getVertexNormalAngle ( )
WB_Coord wblut.hemesh.HE_Vertex.getVertexNormalArea ( )
WB_Coord wblut.hemesh.HE_Vertex.getVertexNormalAverage ( )
WB_Coord wblut.hemesh.HE_Vertex.getVertexNormalGaussCurvature ( )
WB_Coord wblut.hemesh.HE_Vertex.getVertexNormalMeanCurvature ( )
WB_Coord wblut.hemesh.HE_Vertex.getVertexNormalSphereInscribed ( )
List<HE_Vertex> wblut.hemesh.HE_Vertex.getVertexStar ( )
WB_Classification wblut.hemesh.HE_Vertex.getVertexType ( )

Get vertex type. Returns stored value if update status is true.

Returns
HE.VertexType.FLAT: vertex is flat in all faces, HE.VertexType.CONVEX: vertex is convex in all faces, HE.VertexType.CONCAVE: vertex is concave in all faces, HE.VertexType.FLATCONVEX: vertex is convex or flat in all faces, HE.VertexType.FLATCONCAVE: vertex is concave or flat in all faces, HE.VertexType.SADDLE: vertex is convex and concave in at least one face each

References wblut.hemesh.HET_MeshOp.getVertexType().

HE_TextureCoordinate wblut.hemesh.HE_Vertex.getVertexUVW ( )

Get the vertex UVW. If none exists, return zero coordinates.

Returns

References wblut.hemesh.HE_Vertex.uvw, and wblut.hemesh.HE_TextureCoordinate.ZERO.

boolean wblut.hemesh.HE_Vertex.hasHalfedgeUVW ( final HE_Face  f)

Check if this vertex has a halfedge UVW for this face.

Parameters
f
Returns

References wblut.hemesh.HE_Vertex.getHalfedge(), and wblut.hemesh.HE_Halfedge.hasHalfedgeUVW().

boolean wblut.hemesh.HE_Vertex.hasUVW ( final HE_Face  f)

Check if this vertex has a UVW for this face, either a halfedge UVW or a vertex UVW.

Parameters
f
Returns

References wblut.hemesh.HE_Vertex.getHalfedge(), and wblut.hemesh.HE_Halfedge.hasHalfedgeUVW().

boolean wblut.hemesh.HE_Vertex.hasVertexUVW ( )

Check if this vertex has a vertex UVW.

Returns
boolean wblut.hemesh.HE_Vertex.isBoundary ( )

Checks if is boundary.

Returns
true, if is boundary

References wblut.hemesh.HE_Vertex._halfedge, wblut.hemesh.HE_Halfedge.getFace(), and wblut.hemesh.HE_Halfedge.getNextInVertex().

boolean wblut.hemesh.HE_Vertex.isIsolated ( )
long wblut.hemesh.HE_Vertex.key ( )

Get key.

Returns
key
void wblut.hemesh.HE_Vertex.set ( final HE_Vertex  v)

Set position to v.

Parameters
vposition

References wblut.geom.WB_MutableCoordinate.set().

void wblut.hemesh.HE_Vertex.set ( final WB_Coord  p)
void wblut.hemesh.HE_Vertex.set ( final double  x,
final double  y 
)
void wblut.hemesh.HE_Vertex.set ( final double  x,
final double  y,
final double  z 
)
void wblut.hemesh.HE_Vertex.set ( final double  x,
final double  y,
final double  z,
final double  w 
)
void wblut.hemesh.HE_Vertex.setCoord ( final int  i,
final double  v 
)
void wblut.hemesh.HE_Vertex.setUVW ( final double  u,
final double  v,
final double  w 
)

Set vertex UVW.

Parameters
u
v
w
void wblut.hemesh.HE_Vertex.setUVW ( final WB_Coord  uvw)

Set vertex UVW.

Parameters
uvwWB_Coord
void wblut.hemesh.HE_Vertex.setUVW ( final HE_TextureCoordinate  uvw)

Set vertex UVW.

Parameters
uvwHE_TextureCoordinate
void wblut.hemesh.HE_Vertex.setUVW ( final double  u,
final double  v,
final double  w,
final HE_Face  face 
)

Set UVW in halfedge in this vertex, belonging to face. If no such halfedge exists, nothing happens.

Parameters
u
v
w
face

References wblut.hemesh.HE_Vertex.getHalfedge(), and wblut.hemesh.HE_Halfedge.setUVW().

void wblut.hemesh.HE_Vertex.setUVW ( final WB_Coord  uvw,
final HE_Face  face 
)

Set UVW in halfedge in this vertex, belonging to face. If no such halfedge exists, nothing happens.

Parameters
uvwWB_Coord
face

References wblut.hemesh.HE_Vertex.getHalfedge(), and wblut.hemesh.HE_Halfedge.setUVW().

void wblut.hemesh.HE_Vertex.setUVW ( final HE_TextureCoordinate  uvw,
final HE_Face  face 
)

Set UVW in halfedge in this vertex, belonging to face. If no such halfedge exists, nothing happens.

Parameters
uvwHE_TextureCoordinate
face

References wblut.hemesh.HE_Vertex.getHalfedge(), and wblut.hemesh.HE_Halfedge.setUVW().

void wblut.hemesh.HE_Vertex.setW ( final double  w)
void wblut.hemesh.HE_Vertex.setX ( final double  x)
void wblut.hemesh.HE_Vertex.setY ( final double  y)
void wblut.hemesh.HE_Vertex.setZ ( final double  z)
HE_VertexEdgeCirculator wblut.hemesh.HE_Vertex.veCrc ( )
Returns
HE_VertexEdgeRevCirculator wblut.hemesh.HE_Vertex.veRevCrc ( )
Returns
HE_VertexFaceCirculator wblut.hemesh.HE_Vertex.vfCrc ( )
Returns
HE_VertexFaceRevCirculator wblut.hemesh.HE_Vertex.vfRevCrc ( )
Returns
HE_VertexHalfedgeInCirculator wblut.hemesh.HE_Vertex.vheiCrc ( )
Returns
HE_VertexHalfedgeInRevCirculator wblut.hemesh.HE_Vertex.vheiRevCrc ( )
Returns
HE_VertexHalfedgeOutCirculator wblut.hemesh.HE_Vertex.vheoCrc ( )
Returns
HE_VertexHalfedgeOutRevCirculator wblut.hemesh.HE_Vertex.vheoRevCrc ( )
Returns
HE_VertexVertexCirculator wblut.hemesh.HE_Vertex.vvCrc ( )
Returns
HE_VertexVertexRevCirculator wblut.hemesh.HE_Vertex.vvRevCrc ( )
Returns
double wblut.hemesh.HE_Vertex.wd ( )

Get w as double.

Returns
w

Implements wblut.geom.WB_Coord.

float wblut.hemesh.HE_Vertex.wf ( )

Get w as float.

Returns
w

Implements wblut.geom.WB_Coord.

double wblut.hemesh.HE_Vertex.xd ( )
float wblut.hemesh.HE_Vertex.xf ( )
double wblut.hemesh.HE_Vertex.yd ( )
float wblut.hemesh.HE_Vertex.yf ( )
double wblut.hemesh.HE_Vertex.zd ( )
float wblut.hemesh.HE_Vertex.zf ( )

Member Data Documentation

HE_Halfedge wblut.hemesh.HE_Vertex._halfedge
private

Halfedge associated with this vertex.

WB_Point wblut.hemesh.HE_Vertex.pos
private
HE_TextureCoordinate wblut.hemesh.HE_Vertex.uvw = null
private

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