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

Public Member Functions

 HE_MeshStructure ()
 
String getName ()
 
void setName (final String name)
 
 HE_MeshStructure (final HE_MeshStructure ms)
 
final int getNumberOfFaces ()
 
final int getNumberOfHalfedges ()
 
int getNumberOfEdges ()
 
final int getNumberOfVertices ()
 
final HE_Face getFaceWithKey (final long key)
 
final HE_Halfedge getHalfedgeWithKey (final long key)
 
final HE_Halfedge getEdgeWithKey (final long key)
 
final HE_Vertex getVertexWithKey (final long key)
 
final HE_Face getFaceWithIndex (final int i)
 
final HE_Halfedge getHalfedgeWithIndex (final int i)
 
final HE_Halfedge getEdgeWithIndex (final int i)
 
final HE_Vertex getVertexWithIndex (final int i)
 
final void add (final HE_Element el)
 
final void add (final HE_Face f)
 
void add (final HE_Halfedge he)
 
final void add (final HE_Vertex v)
 
void add (final HE_Mesh mesh)
 
final void addFaces (final HE_Face[] faces)
 
final void addFaces (final Collection<?extends HE_Face > faces)
 
final void addFaces (final HE_MeshStructure source)
 
final void addHalfedges (final HE_Halfedge[] halfedges)
 
final void addHalfedges (final Collection<?extends HE_Halfedge > halfedges)
 
final void addHalfedges (final HE_MeshStructure source)
 
final void addEdges (final HE_MeshStructure source)
 
final void addVertices (final HE_Vertex[] vertices)
 
final void addVertices (final HE_MeshStructure source)
 
final void addVertices (final Collection<?extends HE_Vertex > vertices)
 
void remove (final HE_Face f)
 
void remove (final HE_Halfedge he)
 
void remove (final HE_Vertex v)
 
final void removeFaces (final HE_Face[] faces)
 
final void removeFaces (final Collection<?extends HE_Face > faces)
 
final void removeHalfedges (final HE_Halfedge[] halfedges)
 
final void removeHalfedges (final Collection<?extends HE_Halfedge > halfedges)
 
final void removeVertices (final HE_Vertex[] vertices)
 
final void removeVertices (final Collection<?extends HE_Vertex > vertices)
 
void clear ()
 
void clearFaces ()
 
void clearHalfedges ()
 
void clearVertices ()
 
final boolean contains (final HE_Element el)
 
final boolean contains (final HE_Face f)
 
final boolean contains (final HE_Halfedge he)
 
final boolean contains (final HE_Vertex v)
 
final WB_AABB getAABB ()
 
final WB_Sphere getBoundingSphere ()
 
final double[] getLimits ()
 
final List< HE_VertexgetVertices ()
 
final HE_Vertex[] getVerticesAsArray ()
 
final List< HE_HalfedgegetHalfedges ()
 
final HE_Halfedge[] getHalfedgesAsArray ()
 
final List< HE_HalfedgegetEdges ()
 
final HE_Halfedge[] getEdgesAsArray ()
 
final List< HE_FacegetFaces ()
 
final HE_Face[] getFacesAsArray ()
 
final boolean containsFace (final long key)
 
final boolean containsHalfedge (final long key)
 
final boolean containsEdge (final long key)
 
final boolean containsVertex (final long key)
 
final int getIndex (final HE_Face f)
 
final int getIndex (final HE_Halfedge edge)
 
final int getIndex (final HE_Vertex v)
 
HE_VertexIterator vItr ()
 
HE_EdgeIterator eItr ()
 
HE_HalfedgeIterator heItr ()
 
HE_FaceIterator fItr ()
 
void setFace (final HE_Halfedge he, final HE_Face f)
 
void clearFace (final HE_Halfedge he)
 
void setPair (final HE_Halfedge he1, final HE_Halfedge he2)
 
void clearPair (final HE_Halfedge he)
 
void setNext (final HE_Halfedge he, final HE_Halfedge hen)
 
void setVertex (final HE_Halfedge he, final HE_Vertex v)
 
void setHalfedge (final HE_Face f, final HE_Halfedge he)
 
void clearHalfedge (final HE_Face f)
 
void setHalfedge (final HE_Vertex v, final HE_Halfedge he)
 
void clearHalfedge (final HE_Vertex v)
 
void clearNext (final HE_Halfedge he)
 
void clearPrev (final HE_Halfedge he)
 
void clearVertex (final HE_Halfedge he)
 
void sort ()
 
void sort (final HE_FaceSort faceSort, final HE_VertexSort vertexSort)
 
void setVerticesFromDouble (final double[][] values)
 
void setVerticesFromFloat (final double[] values)
 
void setVerticesFromFloat (final float[] values)
 
void setVerticesFromFloat (final float[][] values)
 
void setVerticesFromFloat (final int[] values)
 
void setVerticesFromInt (final int[][] values)
 
void setVerticesFromPoint (final List<?extends WB_Coord > values)
 
void setVerticesFromPoint (final WB_Coord[] values)
 
void setVertex (final HE_Vertex v, final WB_Coord c)
 
void setVertexWithKey (final long key, final WB_Coord c)
 
void setVertexWithIndex (final int index, final WB_Coord c)
 
void setVertex (final HE_Vertex v, final double x, final double y, final double z)
 
void setVertexWithKey (final long key, final double x, final double y, final double z)
 
void setVertexWithIndex (final int index, final double x, final double y, final double z)
 
void setVertex (final HE_Vertex v, final double x, final double y)
 
void setVertexWithKey (final long key, final double x, final double y)
 
void setVertexWithIndex (final int index, final double x, final double y)
 
void setFaceColor (final int color)
 
void setVertexColor (final int color)
 
void setHalfedgeColor (final int color)
 
void setFaceColorWithUserLabel (final int color, final int i)
 
void setFaceColorWithOtherUserLabel (final int color, final int i)
 
void setFaceColorWithInternalLabel (final int color, final int i)
 
void setFaceColorWithOtherInternalLabel (final int color, final int i)
 
void setVertexColorWithUserLabel (final int color, final int i)
 
void setVertexColorWithOtherUserLabel (final int color, final int i)
 
void setVertexColorWithInternalLabel (final int color, final int i)
 
void setVertexColorWithOtherInternalLabel (final int color, final int i)
 
void setHalfedgeColorWithUserLabel (final int color, final int i)
 
void setHalfedgeColorWithOtherUserLabel (final int color, final int i)
 
void setHalfedgeColorWithInternalLabel (final int color, final int i)
 
void setHalfedgeColorWithOtherInternalLabel (final int color, final int i)
 
void resetUserLabels ()
 
void resetVertexUserLabels ()
 
void resetFaceUserLabels ()
 
void resetEdgeUserLabels ()
 
void resetHalfedgeUserLabels ()
 
void setVertexUserLabels (final int label)
 
void setFaceUserLabels (final int label)
 
void setEdgeUserLabels (final int label)
 
void setHalfedgeUserLabels (final int label)
 
float[][] getVerticesAsFloat ()
 
double[][] getVerticesAsDouble ()
 
List< WB_CoordgetVerticesAsCoord ()
 
Map< Long, Integer > getVertexKeyToIndexMap ()
 
WB_Coord[] getVertexNormals ()
 
int[] getVertexColors ()
 
int[] getVertexUserLabels ()
 
int[] getVertexInternalLabels ()
 
boolean[] getVertexVisibility ()
 
Map< Long, WB_CoordgetKeyedVertexNormals ()
 
int[][] getFacesAsInt ()
 
WB_Coord[] getFaceNormals ()
 
Map< Long, WB_CoordgetKeyedFaceNormals ()
 
WB_Coord[] getFaceCenters ()
 
Map< Long, WB_CoordgetKeyedFaceCenters ()
 
WB_Polygon[] getPolygons ()
 
int[] getFaceColors ()
 
int[] getFaceTextureIds ()
 
int[] getFaceUserLabels ()
 
int[] getFaceInternalLabels ()
 
boolean[] getFaceVisibility ()
 
List< WB_PolygongetPolygonList ()
 
int[][] getEdgesAsInt ()
 
WB_Coord[] getEdgeNormals ()
 
Map< Long, WB_CoordgetKeyedEdgeNormals ()
 
WB_Coord[] getEdgeCenters ()
 
Map< Long, WB_CoordgetKeyedEdgeCenters ()
 
WB_Segment[] getSegments ()
 
HE_Path[] getBoundaryAsPath ()
 
List< WB_PolygongetBoundaryAsPolygons ()
 
List< HE_HalfedgegetBoundaryHalfedges ()
 
List< HE_VertexgetBoundaryVertices ()
 
List< HE_HalfedgegetBoundaryLoopHalfedges ()
 
HE_MeshStructure cleanUnusedElementsByFace ()
 
HE_Path createPathFromIndices (final int[] vertices, final boolean loop)
 
void cycleHalfedges (final List< HE_Halfedge > halfedges)
 
void cycleHalfedgesReverse (final List< HE_Halfedge > halfedges)
 
void orderHalfedges (final List< HE_Halfedge > halfedges)
 
void orderHalfedgesReverse (final List< HE_Halfedge > halfedges)
 
void uncapBoundaryHalfedges ()
 
void capHalfedges ()
 
void fixHalfedgeVertexAssignment ()
 
void fixHalfedgeFaceAssignment ()
 
List< HE_HalfedgegetUnpairedHalfedges ()
 
List< HE_HalfedgepairHalfedgesOnePass ()
 
void pairHalfedges ()
 
void pairHalfedges (final List< HE_Halfedge > unpairedHalfedges)
 
HE_Halfedge getHalfedgeFromTo (final HE_Vertex v0, final HE_Vertex v1)
 
List< HE_FacegetSharedFaces (final HE_Vertex v1, final HE_Vertex v2)
 
int getNumberOfBoundaryComponents ()
 
int getEulerCharacteristic ()
 
int getGenus ()
 
void clearVisitedElements ()
 
void clearPrecomputed ()
 
void clearPrecomputedFaces ()
 
void clearPrecomputedVertices ()
 
void clearPrecomputedHalfedges ()
 
- 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)
 

Protected Member Functions

final void clearEdges ()
 
void resetInternalLabels ()
 
void resetFaceInternalLabels ()
 
void resetHalfedgeInternalLabels ()
 
void resetEdgeInternalLabels ()
 
void resetVertexInternalLabels ()
 
void setFaceInternalLabels (final int label)
 
void setHalfedgeInternalLabels (final int label)
 
void setEdgeInternalLabels (final int label)
 
void setVertexInternalLabels (final int label)
 
- 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 ()
 

Protected Attributes

WB_GeometryFactory gf = new WB_GeometryFactory()
 
HE_RAS< HE_Vertexvertices
 
HE_RAS< HE_Halfedgehalfedges
 
HE_RAS< HE_Halfedgeedges
 
HE_RAS< HE_HalfedgeunpairedHalfedges
 
HE_RAS< HE_Facefaces
 
- 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
 

Additional Inherited Members

- 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

Collection of mesh elements. Contains methods to manipulate the data structures.

Author
Frederik Vanhoutte (W:Blut)

Constructor & Destructor Documentation

wblut.hemesh.HE_MeshStructure.HE_MeshStructure ( )

Instantiates a new HE_MeshStructure.

wblut.hemesh.HE_MeshStructure.HE_MeshStructure ( final HE_MeshStructure  ms)

Member Function Documentation

final void wblut.hemesh.HE_MeshStructure.add ( final HE_Element  el)
final void wblut.hemesh.HE_MeshStructure.add ( final HE_Face  f)

Add face.

Parameters
fface to add

References wblut.hemesh.HE_RAS< E extends HE_Element >.add().

void wblut.hemesh.HE_MeshStructure.add ( final HE_Halfedge  he)
final void wblut.hemesh.HE_MeshStructure.add ( final HE_Vertex  v)

Add vertex.

Parameters
vvertex to add

References wblut.hemesh.HE_RAS< E extends HE_Element >.add().

void wblut.hemesh.HE_MeshStructure.add ( final HE_Mesh  mesh)

Add all mesh elements to this mesh. No copies are made.

Parameters
meshmesh to add

References wblut.hemesh.HE_MeshStructure.addFaces(), wblut.hemesh.HE_MeshStructure.addHalfedges(), and wblut.hemesh.HE_MeshStructure.addVertices().

final void wblut.hemesh.HE_MeshStructure.addEdges ( final HE_MeshStructure  source)
Parameters
source

References wblut.hemesh.HE_MeshStructure.edges.

final void wblut.hemesh.HE_MeshStructure.addFaces ( final HE_Face[]  faces)

Adds faces.

Parameters
facesfaces to add as HE_Face[]

References wblut.hemesh.HE_MeshStructure.add().

final void wblut.hemesh.HE_MeshStructure.addFaces ( final Collection<?extends HE_Face faces)

Adds faces.

Parameters
facesfaces to add as Collection<? extends HE_Face>

References wblut.hemesh.HE_MeshStructure.add().

final void wblut.hemesh.HE_MeshStructure.addFaces ( final HE_MeshStructure  source)
Parameters
source

References wblut.hemesh.HE_MeshStructure.faces.

final void wblut.hemesh.HE_MeshStructure.addHalfedges ( final HE_Halfedge[]  halfedges)

Adds halfedges.

Parameters
halfedgeshalfedges to add as HE_Halfedge[]

References wblut.hemesh.HE_MeshStructure.add().

final void wblut.hemesh.HE_MeshStructure.addHalfedges ( final Collection<?extends HE_Halfedge halfedges)

Adds halfedges.

Parameters
halfedgeshalfedges to add as Collection<? extends HE_Halfedge>

References wblut.hemesh.HE_MeshStructure.add().

final void wblut.hemesh.HE_MeshStructure.addHalfedges ( final HE_MeshStructure  source)
final void wblut.hemesh.HE_MeshStructure.addVertices ( final HE_Vertex[]  vertices)

Adds vertices.

Parameters
verticesvertices to add as HE_Vertex[]

References wblut.hemesh.HE_MeshStructure.add().

final void wblut.hemesh.HE_MeshStructure.addVertices ( final HE_MeshStructure  source)
Parameters
source

References wblut.hemesh.HE_MeshStructure.vertices.

final void wblut.hemesh.HE_MeshStructure.addVertices ( final Collection<?extends HE_Vertex vertices)

Adds vertices.

Parameters
verticesvertices to add as Collection<? extends HE_Vertex>

References wblut.hemesh.HE_MeshStructure.add().

HE_MeshStructure wblut.hemesh.HE_MeshStructure.cleanUnusedElementsByFace ( )

Clean all mesh elements not used by any faces.

Returns
self

References wblut.hemesh.HET_MeshOp.cleanUnusedElementsByFace().

void wblut.hemesh.HE_MeshStructure.clear ( )
final void wblut.hemesh.HE_MeshStructure.clearEdges ( )
protected

Clear edges.

void wblut.hemesh.HE_MeshStructure.clearFace ( final HE_Halfedge  he)
void wblut.hemesh.HE_MeshStructure.clearFaces ( )

Clear faces.

void wblut.hemesh.HE_MeshStructure.clearHalfedge ( final HE_Face  f)

Unlink halfedge from face

Parameters
f

References wblut.hemesh.HE_Face._clearHalfedge().

void wblut.hemesh.HE_MeshStructure.clearHalfedge ( final HE_Vertex  v)

Unlink halfedge from vertex

Parameters
v

References wblut.hemesh.HE_Vertex._clearHalfedge().

void wblut.hemesh.HE_MeshStructure.clearHalfedges ( )

Clear halfedges.

void wblut.hemesh.HE_MeshStructure.clearNext ( final HE_Halfedge  he)

Unlink next halfedge from halfedge, unlinks the corresponding "previous" relationship.

Parameters
he

References wblut.hemesh.HE_Halfedge._clearNext(), wblut.hemesh.HE_Halfedge._clearPrev(), and wblut.hemesh.HE_Halfedge.getNextInFace().

void wblut.hemesh.HE_MeshStructure.clearPair ( final HE_Halfedge  he)

Unpair halfedge. If the halfedge was paired, its pair is unpaired as well.

Parameters
he

References wblut.hemesh.HE_Halfedge._clearPair(), wblut.hemesh.HE_MeshStructure.add(), and wblut.hemesh.HE_Halfedge.getPair().

void wblut.hemesh.HE_MeshStructure.clearPrev ( final HE_Halfedge  he)

Unlink previous halfedge from halfedge, unlinks the corresponding "next" relationship.

Parameters
he

References wblut.hemesh.HE_Halfedge._clearNext(), wblut.hemesh.HE_Halfedge._clearPrev(), and wblut.hemesh.HE_Halfedge.getPrevInFace().

void wblut.hemesh.HE_MeshStructure.clearVertex ( final HE_Halfedge  he)

Unlink vertex from halfedge

Parameters
he

References wblut.hemesh.HE_Halfedge._clearVertex().

void wblut.hemesh.HE_MeshStructure.clearVertices ( )

Clear vertices.

final boolean wblut.hemesh.HE_MeshStructure.contains ( final HE_Element  el)
final boolean wblut.hemesh.HE_MeshStructure.contains ( final HE_Face  f)

Check if structure contains face.

Parameters
fface
Returns
true, if successful

References wblut.hemesh.HE_RAS< E extends HE_Element >.contains().

final boolean wblut.hemesh.HE_MeshStructure.contains ( final HE_Halfedge  he)

Check if structure contains halfedge.

Parameters
hehalfedge
Returns
true, if successful

References wblut.hemesh.HE_RAS< E extends HE_Element >.contains().

final boolean wblut.hemesh.HE_MeshStructure.contains ( final HE_Vertex  v)

Check if structure contains vertex.

Parameters
vvertex
Returns
true, if successful

References wblut.hemesh.HE_RAS< E extends HE_Element >.contains().

final boolean wblut.hemesh.HE_MeshStructure.containsEdge ( final long  key)
final boolean wblut.hemesh.HE_MeshStructure.containsFace ( final long  key)
final boolean wblut.hemesh.HE_MeshStructure.containsHalfedge ( final long  key)
final boolean wblut.hemesh.HE_MeshStructure.containsVertex ( final long  key)
HE_Path wblut.hemesh.HE_MeshStructure.createPathFromIndices ( final int[]  vertices,
final boolean  loop 
)
void wblut.hemesh.HE_MeshStructure.cycleHalfedges ( final List< HE_Halfedge halfedges)

Cycle halfedges.

Parameters
halfedgeshalfedges to cycle

References wblut.hemesh.HE_MeshStructure.setNext().

void wblut.hemesh.HE_MeshStructure.cycleHalfedgesReverse ( final List< HE_Halfedge halfedges)

Cycle halfedges.

Parameters
halfedgeshalfedges to cycle

References wblut.hemesh.HE_MeshStructure.setNext().

HE_EdgeIterator wblut.hemesh.HE_MeshStructure.eItr ( )

Edge iterator.

Returns
edge iterator
HE_FaceIterator wblut.hemesh.HE_MeshStructure.fItr ( )

Face iterator.

Returns
face iterator
void wblut.hemesh.HE_MeshStructure.fixHalfedgeFaceAssignment ( )

Iterate through all halfedges and reset the halfedge link to its face to itself. f=he.getFace() f.setHalfedge(he)

References wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_MeshStructure.heItr(), and wblut.hemesh.HE_MeshStructure.setHalfedge().

void wblut.hemesh.HE_MeshStructure.fixHalfedgeVertexAssignment ( )

Iterate through all halfedges and reset the halfedge link to its vertex to itself. v=he.getVertex() v.setHalfedge(he)

References wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_MeshStructure.heItr(), and wblut.hemesh.HE_MeshStructure.setHalfedge().

final WB_AABB wblut.hemesh.HE_MeshStructure.getAABB ( )

Get axis-aligned bounding box surrounding mesh.

Returns
WB_AABB axis-aligned bounding box

References wblut.geom.WB_GeometryFactory3D.createPoint(), and wblut.hemesh.HE_MeshStructure.getLimits().

HE_Path [] wblut.hemesh.HE_MeshStructure.getBoundaryAsPath ( )
List<HE_Halfedge> wblut.hemesh.HE_MeshStructure.getBoundaryHalfedges ( )

Collect all boundary halfedges.

Returns
boundary halfedges

References wblut.hemesh.HE_MeshStructure.heItr().

List<HE_Halfedge> wblut.hemesh.HE_MeshStructure.getBoundaryLoopHalfedges ( )
List<HE_Vertex> wblut.hemesh.HE_MeshStructure.getBoundaryVertices ( )

Collect all boundary vertices.

Returns
boundary vertices

References wblut.hemesh.HE_MeshStructure.heItr().

final WB_Sphere wblut.hemesh.HE_MeshStructure.getBoundingSphere ( )
WB_Coord [] wblut.hemesh.HE_MeshStructure.getEdgeCenters ( )
WB_Coord [] wblut.hemesh.HE_MeshStructure.getEdgeNormals ( )
final List<HE_Halfedge> wblut.hemesh.HE_MeshStructure.getEdges ( )
final HE_Halfedge [] wblut.hemesh.HE_MeshStructure.getEdgesAsArray ( )
final HE_Halfedge wblut.hemesh.HE_MeshStructure.getEdgeWithIndex ( final int  i)

Get edge with index. Indices of mesh elements are not fixed and will change when the mesh is modified.

Parameters
iedge index
Returns

References wblut.hemesh.HE_RAS< E extends HE_Element >.get().

final HE_Halfedge wblut.hemesh.HE_MeshStructure.getEdgeWithKey ( final long  key)

Get edge with key. The key of a mesh element is unique and never changes.

Parameters
keyhalfedge key
Returns
halfedge

References wblut.hemesh.HE_RAS< E extends HE_Element >.getWithKey().

WB_Coord [] wblut.hemesh.HE_MeshStructure.getFaceCenters ( )
int [] wblut.hemesh.HE_MeshStructure.getFaceInternalLabels ( )
WB_Coord [] wblut.hemesh.HE_MeshStructure.getFaceNormals ( )
final List<HE_Face> wblut.hemesh.HE_MeshStructure.getFaces ( )
final HE_Face [] wblut.hemesh.HE_MeshStructure.getFacesAsArray ( )
int [][] wblut.hemesh.HE_MeshStructure.getFacesAsInt ( )
int [] wblut.hemesh.HE_MeshStructure.getFaceTextureIds ( )
boolean [] wblut.hemesh.HE_MeshStructure.getFaceVisibility ( )
final HE_Face wblut.hemesh.HE_MeshStructure.getFaceWithIndex ( final int  i)

Get face with index. Indices of mesh elements are not fixed and will change when the mesh is modified.

Parameters
iface index
Returns

References wblut.hemesh.HE_RAS< E extends HE_Element >.get().

final HE_Face wblut.hemesh.HE_MeshStructure.getFaceWithKey ( final long  key)

Get face with key. The key of a mesh element is unique and never changes.

Parameters
keyface key
Returns
face

References wblut.hemesh.HE_RAS< E extends HE_Element >.getWithKey().

HE_Halfedge wblut.hemesh.HE_MeshStructure.getHalfedgeFromTo ( final HE_Vertex  v0,
final HE_Vertex  v1 
)

Return a halfedge from vertex v0 to vertex v1. If no such halfedge exists return null.

Parameters
v0
v1
Returns

References wblut.hemesh.HE_Halfedge.getEndVertex(), and wblut.hemesh.HE_Vertex.getHalfedgeStar().

final List<HE_Halfedge> wblut.hemesh.HE_MeshStructure.getHalfedges ( )
final HE_Halfedge [] wblut.hemesh.HE_MeshStructure.getHalfedgesAsArray ( )

Halfedges as array.

Returns
all halfedges as HE_Halfedge[]

References wblut.hemesh.HE_MeshStructure.getHalfedges(), and wblut.hemesh.HE_MeshStructure.halfedges.

final HE_Halfedge wblut.hemesh.HE_MeshStructure.getHalfedgeWithIndex ( final int  i)

Get halfedge with index. Indices of mesh elements are not fixed and will change when the mesh is modified.

Parameters
ihalfedge index
Returns

References wblut.hemesh.HE_RAS< E extends HE_Element >.get(), and wblut.hemesh.HE_RAS< E extends HE_Element >.size().

final HE_Halfedge wblut.hemesh.HE_MeshStructure.getHalfedgeWithKey ( final long  key)

Get halfedge with key. The key of a mesh element is unique and never changes.

Parameters
keyhalfedge key
Returns
halfedge

References wblut.hemesh.HE_RAS< E extends HE_Element >.getWithKey().

final int wblut.hemesh.HE_MeshStructure.getIndex ( final HE_Face  f)
final int wblut.hemesh.HE_MeshStructure.getIndex ( final HE_Halfedge  edge)
Parameters
edge
Returns

References wblut.hemesh.HE_RAS< E extends HE_Element >.indexOf().

final int wblut.hemesh.HE_MeshStructure.getIndex ( final HE_Vertex  v)
Map<Long, WB_Coord> wblut.hemesh.HE_MeshStructure.getKeyedEdgeCenters ( )

Return all edge centers.

Returns
UnifiedMap of WB_Coordinate.

References wblut.hemesh.HE_MeshStructure.eItr().

Map<Long, WB_Coord> wblut.hemesh.HE_MeshStructure.getKeyedEdgeNormals ( )

Return all edge normals.

Returns
UnifiedMap of WB_Coordinate.

References wblut.hemesh.HE_MeshStructure.eItr().

Map<Long, WB_Coord> wblut.hemesh.HE_MeshStructure.getKeyedFaceCenters ( )

Return all face centers.

Returns
UnifiedMap of WB_Coordinate.

References wblut.hemesh.HE_MeshStructure.fItr().

Map<Long, WB_Coord> wblut.hemesh.HE_MeshStructure.getKeyedFaceNormals ( )

Return all face normals.

Returns
UnifiedMap of WB_Coordinate.

References wblut.hemesh.HE_MeshStructure.fItr().

Map<Long, WB_Coord> wblut.hemesh.HE_MeshStructure.getKeyedVertexNormals ( )

Get vertex normals mapped on vertex key

Returns

References wblut.hemesh.HE_MeshStructure.vItr().

final double [] wblut.hemesh.HE_MeshStructure.getLimits ( )

Get range of vertex coordinates.

Returns
array of limit values: min x, min y, min z, max x, max y, max z

References wblut.hemesh.HE_MeshStructure.getVertexWithIndex(), wblut.hemesh.HE_RAS< E extends HE_Element >.size(), wblut.hemesh.HE_Vertex.xd(), wblut.hemesh.HE_Vertex.yd(), and wblut.hemesh.HE_Vertex.zd().

String wblut.hemesh.HE_MeshStructure.getName ( )
int wblut.hemesh.HE_MeshStructure.getNumberOfBoundaryComponents ( )
int wblut.hemesh.HE_MeshStructure.getNumberOfEdges ( )

Number of edges.

Returns
the number of edges

References wblut.hemesh.HE_RAS< E extends HE_Element >.size().

final int wblut.hemesh.HE_MeshStructure.getNumberOfFaces ( )

Number of faces.

Returns
the number of faces

References wblut.hemesh.HE_RAS< E extends HE_Element >.size().

final int wblut.hemesh.HE_MeshStructure.getNumberOfHalfedges ( )

Number of halfedges.

Returns
the number of halfedges

References wblut.hemesh.HE_RAS< E extends HE_Element >.size().

final int wblut.hemesh.HE_MeshStructure.getNumberOfVertices ( )

Number of vertices.

Returns
the number of vertices

References wblut.hemesh.HE_RAS< E extends HE_Element >.size().

List<WB_Polygon> wblut.hemesh.HE_MeshStructure.getPolygonList ( )

Gets the polygon list.

Returns
the polygon list

References wblut.hemesh.HE_MeshStructure.fItr(), and wblut.hemesh.HE_Face.toPolygon().

WB_Polygon [] wblut.hemesh.HE_MeshStructure.getPolygons ( )

Return the mesh as polygon soup.

Returns
array of WB_polygon

References wblut.hemesh.HE_MeshStructure.fItr(), wblut.hemesh.HE_MeshStructure.getNumberOfFaces(), and wblut.hemesh.HE_Face.toPolygon().

WB_Segment [] wblut.hemesh.HE_MeshStructure.getSegments ( )
List<HE_Face> wblut.hemesh.HE_MeshStructure.getSharedFaces ( final HE_Vertex  v1,
final HE_Vertex  v2 
)
Parameters
v1
v2
Returns

References wblut.hemesh.HE_Vertex.getFaceStar().

List<HE_Halfedge> wblut.hemesh.HE_MeshStructure.getUnpairedHalfedges ( )

Collect all unpaired halfedges.

Returns
the unpaired halfedges

References wblut.hemesh.HE_MeshStructure.halfedges.

int [] wblut.hemesh.HE_MeshStructure.getVertexInternalLabels ( )
Map<Long, Integer> wblut.hemesh.HE_MeshStructure.getVertexKeyToIndexMap ( )

Vertex key to index.

Returns
the map

References wblut.hemesh.HE_MeshStructure.vItr().

WB_Coord [] wblut.hemesh.HE_MeshStructure.getVertexNormals ( )
boolean [] wblut.hemesh.HE_MeshStructure.getVertexVisibility ( )
final HE_Vertex wblut.hemesh.HE_MeshStructure.getVertexWithIndex ( final int  i)

Get vertex with index. Indices of mesh elements are not fixed and will change when the mesh is modified.

Parameters
ivertex index
Returns

References wblut.hemesh.HE_RAS< E extends HE_Element >.get(), and wblut.hemesh.HE_RAS< E extends HE_Element >.size().

final HE_Vertex wblut.hemesh.HE_MeshStructure.getVertexWithKey ( final long  key)

Get vertex with key. The key of a mesh element is unique and never changes.

Parameters
keyvertex key
Returns
vertex

References wblut.hemesh.HE_RAS< E extends HE_Element >.getWithKey().

final List<HE_Vertex> wblut.hemesh.HE_MeshStructure.getVertices ( )
final HE_Vertex [] wblut.hemesh.HE_MeshStructure.getVerticesAsArray ( )
List<WB_Coord> wblut.hemesh.HE_MeshStructure.getVerticesAsCoord ( )

Return all vertex positions as an immutable List of immutable WB_Coord.

Returns
array of WB_Coord.

References wblut.hemesh.HE_Vertex.add(), and wblut.hemesh.HE_MeshStructure.vItr().

double [][] wblut.hemesh.HE_MeshStructure.getVerticesAsDouble ( )

Return all vertex positions as an array .

Returns
2D array of double. First index gives vertex. Second index gives x-,y- or z-coordinate.

References wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_MeshStructure.vItr(), wblut.hemesh.HE_Vertex.xd(), wblut.hemesh.HE_Vertex.yd(), and wblut.hemesh.HE_Vertex.zd().

float [][] wblut.hemesh.HE_MeshStructure.getVerticesAsFloat ( )

Return all vertex positions as an array .

Returns
2D array of float. First index gives vertex. Second index gives x-,y- or z-coordinate.

References wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_MeshStructure.vItr(), wblut.hemesh.HE_Vertex.xf(), wblut.hemesh.HE_Vertex.yf(), and wblut.hemesh.HE_Vertex.zf().

HE_HalfedgeIterator wblut.hemesh.HE_MeshStructure.heItr ( )

Halfedge iterator.

Returns
halfedge iterator
void wblut.hemesh.HE_MeshStructure.orderHalfedges ( final List< HE_Halfedge halfedges)
void wblut.hemesh.HE_MeshStructure.orderHalfedgesReverse ( final List< HE_Halfedge halfedges)

Cycle halfedges.

Parameters
halfedgeshalfedges to cycle

References wblut.hemesh.HE_MeshStructure.setNext().

void wblut.hemesh.HE_MeshStructure.pairHalfedges ( )
void wblut.hemesh.HE_MeshStructure.pairHalfedges ( final List< HE_Halfedge unpairedHalfedges)
void wblut.hemesh.HE_MeshStructure.remove ( final HE_Face  f)

Removes face.

Parameters
fface to remove

References wblut.hemesh.HE_RAS< E extends HE_Element >.remove().

void wblut.hemesh.HE_MeshStructure.remove ( final HE_Halfedge  he)

Removes halfedge.

Parameters
hehalfedge to remove

References wblut.hemesh.HE_RAS< E extends HE_Element >.remove().

void wblut.hemesh.HE_MeshStructure.remove ( final HE_Vertex  v)

Removes vertex.

Parameters
vvertex to remove

References wblut.hemesh.HE_RAS< E extends HE_Element >.remove().

final void wblut.hemesh.HE_MeshStructure.removeFaces ( final HE_Face[]  faces)

Removes faces.

Parameters
facesfaces to remove as HE_Face[]
final void wblut.hemesh.HE_MeshStructure.removeFaces ( final Collection<?extends HE_Face faces)

Removes faces.

Parameters
facesfaces to remove as Collection<? extends HE_Face>
final void wblut.hemesh.HE_MeshStructure.removeHalfedges ( final HE_Halfedge[]  halfedges)

Removes halfedges.

Parameters
halfedgeshalfedges to remove as HE_Halfedge[]
final void wblut.hemesh.HE_MeshStructure.removeHalfedges ( final Collection<?extends HE_Halfedge halfedges)

Removes halfedges.

Parameters
halfedgeshalfedges to remove as Collection<? extends HE_Halfedge>
final void wblut.hemesh.HE_MeshStructure.removeVertices ( final HE_Vertex[]  vertices)

Removes vertices.

Parameters
verticesvertices to remove as HE_Vertex[]
final void wblut.hemesh.HE_MeshStructure.removeVertices ( final Collection<?extends HE_Vertex vertices)

Removes vertices.

Parameters
verticesvertices to remove as Collection<? extends HE_Vertex>
void wblut.hemesh.HE_MeshStructure.resetEdgeInternalLabels ( )
protected

Reset all edge labels to -1.

References wblut.hemesh.HE_MeshStructure.eItr().

void wblut.hemesh.HE_MeshStructure.resetEdgeUserLabels ( )

Reset all edge labels to -1.

References wblut.hemesh.HE_MeshStructure.eItr().

void wblut.hemesh.HE_MeshStructure.resetFaceInternalLabels ( )
protected

Reset face labels to -1.

References wblut.hemesh.HE_MeshStructure.fItr().

void wblut.hemesh.HE_MeshStructure.resetFaceUserLabels ( )

Reset all face labels to -1.

References wblut.hemesh.HE_MeshStructure.fItr().

void wblut.hemesh.HE_MeshStructure.resetHalfedgeInternalLabels ( )
protected

Reset all halfedge labels to -1.

References wblut.hemesh.HE_MeshStructure.heItr().

void wblut.hemesh.HE_MeshStructure.resetHalfedgeUserLabels ( )

Reset all halfedge labels to -1.

References wblut.hemesh.HE_MeshStructure.heItr().

void wblut.hemesh.HE_MeshStructure.resetInternalLabels ( )
protected
void wblut.hemesh.HE_MeshStructure.resetVertexInternalLabels ( )
protected

Reset all vertex labels to -1.

References wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.resetVertexUserLabels ( )

Reset all vertex labels to -1.

References wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setEdgeInternalLabels ( final int  label)
protected

Set edge labels to value.

Parameters
label

References wblut.hemesh.HE_MeshStructure.eItr().

void wblut.hemesh.HE_MeshStructure.setEdgeUserLabels ( final int  label)

Reset all edge labels to value.

Parameters
label

References wblut.hemesh.HE_MeshStructure.eItr().

void wblut.hemesh.HE_MeshStructure.setFace ( final HE_Halfedge  he,
final HE_Face  f 
)
void wblut.hemesh.HE_MeshStructure.setFaceColor ( final int  color)
void wblut.hemesh.HE_MeshStructure.setFaceColorWithInternalLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setFaceColorWithOtherInternalLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setFaceColorWithOtherUserLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setFaceColorWithUserLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setFaceInternalLabels ( final int  label)
protected

Set face labels to value.

Parameters
label

References wblut.hemesh.HE_MeshStructure.fItr().

void wblut.hemesh.HE_MeshStructure.setFaceUserLabels ( final int  label)

Reset all face labels to value.

Parameters
label

References wblut.hemesh.HE_MeshStructure.fItr().

void wblut.hemesh.HE_MeshStructure.setHalfedge ( final HE_Face  f,
final HE_Halfedge  he 
)

Link halfedge to face

Parameters
f
he

References wblut.hemesh.HE_Face._setHalfedge().

void wblut.hemesh.HE_MeshStructure.setHalfedge ( final HE_Vertex  v,
final HE_Halfedge  he 
)

Link halfedge to vertex

Parameters
v
he

References wblut.hemesh.HE_Vertex._setHalfedge().

void wblut.hemesh.HE_MeshStructure.setHalfedgeColor ( final int  color)
void wblut.hemesh.HE_MeshStructure.setHalfedgeColorWithInternalLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setHalfedgeColorWithOtherInternalLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setHalfedgeColorWithOtherUserLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setHalfedgeColorWithUserLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setHalfedgeInternalLabels ( final int  label)
protected

Det edge labels to value.

Parameters
label

References wblut.hemesh.HE_MeshStructure.heItr().

void wblut.hemesh.HE_MeshStructure.setHalfedgeUserLabels ( final int  label)

Reset all halfedge labels to value.

Parameters
label

References wblut.hemesh.HE_MeshStructure.heItr().

void wblut.hemesh.HE_MeshStructure.setName ( final String  name)
void wblut.hemesh.HE_MeshStructure.setNext ( final HE_Halfedge  he,
final HE_Halfedge  hen 
)

Link hen to he as next halfedge, he is linked as previous halfedge to he.

Parameters
he
hen

References wblut.hemesh.HE_Halfedge._setNext(), and wblut.hemesh.HE_Halfedge._setPrev().

void wblut.hemesh.HE_MeshStructure.setPair ( final HE_Halfedge  he1,
final HE_Halfedge  he2 
)

Pair two halfedges

Parameters
he1
he2

References wblut.hemesh.HE_Halfedge._setPair(), and wblut.hemesh.HE_MeshStructure.add().

void wblut.hemesh.HE_MeshStructure.setVertex ( final HE_Halfedge  he,
final HE_Vertex  v 
)

Link vertex to halfedge

Parameters
he
v

References wblut.hemesh.HE_Halfedge._setVertex().

void wblut.hemesh.HE_MeshStructure.setVertex ( final HE_Vertex  v,
final WB_Coord  c 
)
void wblut.hemesh.HE_MeshStructure.setVertex ( final HE_Vertex  v,
final double  x,
final double  y,
final double  z 
)
void wblut.hemesh.HE_MeshStructure.setVertex ( final HE_Vertex  v,
final double  x,
final double  y 
)
void wblut.hemesh.HE_MeshStructure.setVertexColor ( final int  color)
void wblut.hemesh.HE_MeshStructure.setVertexColorWithInternalLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setVertexColorWithOtherInternalLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setVertexColorWithOtherUserLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setVertexColorWithUserLabel ( final int  color,
final int  i 
)
void wblut.hemesh.HE_MeshStructure.setVertexInternalLabels ( final int  label)
protected

Set all vertex labels to value.

Parameters
label

References wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setVertexUserLabels ( final int  label)

Set all vertex labels to value.

Parameters
label

References wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setVertexWithIndex ( final int  index,
final WB_Coord  c 
)
void wblut.hemesh.HE_MeshStructure.setVertexWithIndex ( final int  index,
final double  x,
final double  y,
final double  z 
)
void wblut.hemesh.HE_MeshStructure.setVertexWithIndex ( final int  index,
final double  x,
final double  y 
)
void wblut.hemesh.HE_MeshStructure.setVertexWithKey ( final long  key,
final WB_Coord  c 
)
void wblut.hemesh.HE_MeshStructure.setVertexWithKey ( final long  key,
final double  x,
final double  y,
final double  z 
)
void wblut.hemesh.HE_MeshStructure.setVertexWithKey ( final long  key,
final double  x,
final double  y 
)
void wblut.hemesh.HE_MeshStructure.setVerticesFromDouble ( final double  values[][])

Set vertex positions to values in a 2D array. If length of array is not the same as number of vertices, nothing happens.

Parameters
values2D array of double. First index is number of vertices, second index is 3 (x-,y- and z-coordinate)

References wblut.hemesh.HE_MeshStructure.clearPrecomputed(), wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_Vertex.set(), and wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setVerticesFromFloat ( final double[]  values)

Set vertex positions to values in a 1D array. If length of array is not 3* number of vertices, nothing happens.

Parameters
values1D array of float. 3 values, x,y, and z, per point

References wblut.hemesh.HE_MeshStructure.clearPrecomputed(), wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_Vertex.set(), and wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setVerticesFromFloat ( final float[]  values)

Set vertex positions to values in a 1D array. If length of array is not 3* number of vertices, nothing happens.

Parameters
values1D array of float. 3 values, x,y, and z, per point

References wblut.hemesh.HE_MeshStructure.clearPrecomputed(), wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_Vertex.set(), and wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setVerticesFromFloat ( final float  values[][])

Set vertex positions to values in a 2D array. If length of array is not the same as number of vertices, nothing happens.

Parameters
values2D array of float. First index is number of vertices, second index is 3 (x-,y- and z-coordinate)

References wblut.hemesh.HE_MeshStructure.clearPrecomputed(), wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_Vertex.set(), and wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setVerticesFromFloat ( final int[]  values)

Set vertex positions to values in a 1D array. If length of array is not 3* number of vertices, nothing happens.

Parameters
values1D array of float. 3 values, x,y, and z, per point

References wblut.hemesh.HE_MeshStructure.clearPrecomputed(), wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_Vertex.set(), and wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setVerticesFromInt ( final int  values[][])

Set vertex positions to values in a 2D array. If length of array is not the same as number of vertices, nothing happens.

Parameters
values2D array of int. First index is number of vertices, second index is 3 (x-,y- and z-coordinate)

References wblut.hemesh.HE_MeshStructure.clearPrecomputed(), wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_Vertex.set(), and wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setVerticesFromPoint ( final List<?extends WB_Coord values)

Set vertex positions to List of WB_Coord. If the size of the List is not the same as number of vertices, nothing happens.

Parameters
valuesarray of WB_Coord.

References wblut.hemesh.HE_MeshStructure.clearPrecomputed(), wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_Vertex.set(), and wblut.hemesh.HE_MeshStructure.vItr().

void wblut.hemesh.HE_MeshStructure.setVerticesFromPoint ( final WB_Coord[]  values)

Set vertex positions to array of WB_Coord. If length of array is not the same as number of vertices, nothing happens.

Parameters
valuesarray of WB_Coord.

References wblut.hemesh.HE_MeshStructure.clearPrecomputed(), wblut.hemesh.HE_MeshStructure.getNumberOfVertices(), wblut.hemesh.HE_Vertex.set(), and wblut.hemesh.HE_MeshStructure.vItr().

HE_VertexIterator wblut.hemesh.HE_MeshStructure.vItr ( )

Vertex iterator.

Returns
vertex iterator

Member Data Documentation

HE_RAS<HE_Halfedge> wblut.hemesh.HE_MeshStructure.edges
protected
HE_RAS<HE_Face> wblut.hemesh.HE_MeshStructure.faces
protected
WB_GeometryFactory wblut.hemesh.HE_MeshStructure.gf = new WB_GeometryFactory()
protected
HE_RAS<HE_Halfedge> wblut.hemesh.HE_MeshStructure.halfedges
protected
HE_RAS<HE_Halfedge> wblut.hemesh.HE_MeshStructure.unpairedHalfedges
protected
HE_RAS<HE_Vertex> wblut.hemesh.HE_MeshStructure.vertices
protected

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