HE_Mesh
5.1.2
|
Public Member Functions | |
HE_Path (final HE_Halfedge loop) | |
HE_Path (final HE_Face face) | |
HE_Path (final HE_Vertex v) | |
HE_Path (final List< HE_Halfedge > halfedges, final boolean loop) | |
long | key () |
int | getPathOrder () |
double | getPathLength () |
double[] | getPathIncLengths () |
List< HE_Halfedge > | getHalfedges () |
List< HE_Vertex > | getPathVertices () |
List< HE_Halfedge > | getPathEdges () |
HE_PathHalfedge | getPathHalfedge () |
void | setPathHalfedge (final HE_PathHalfedge phalfedge) |
void | clearPathHalfedge () |
List< HE_Face > | getPathInnerFaces () |
List< HE_Face > | getPathOuterFaces () |
String | toString () |
void | clear () |
boolean | isLoop () |
boolean | isCut () |
void | clearPrecomputed () |
![]() | |
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) |
![]() | |
HE_Element () | |
final void | setLabel (final int label) |
final long | getKey () |
final int | getInternalLabel () |
final int | getLabel () |
int | hashCode () |
boolean | equals (final Object other) |
void | copyProperties (final HE_Element el) |
Static Public Member Functions | |
static HE_Path | getShortestPath (final HE_Vertex v0, final HE_Vertex v1, final HE_Mesh mesh) |
Protected Attributes | |
HE_PathHalfedge | _phalfedge |
![]() | |
volatile boolean | visited |
boolean | visible |
int | color |
![]() | |
final long | key |
long | labels |
Private Member Functions | |
void | createFromList (final List< HE_Halfedge > halfedges, final boolean loop) |
Additional Inherited Members | |
![]() | |
abstract void | clear () |
![]() | |
final void | setInternalLabel (final int label) |
abstract void | clear () |
abstract void | clearPrecomputed () |
![]() | |
static final WB_GeometryFactory | gf = new WB_GeometryFactory() |
static final WB_ProgressTracker | tracker = WB_ProgressTracker.instance() |
![]() | |
static AtomicLong | currentKey = new AtomicLong(0) |
A HE_Path is a sequence of edges, or rather halfedges, in a mesh. It can be a loop or open.
A HE_Path consists of a double linked list of HE_PathHalfedges, a wrapper for a HE_Halfedge that can have different connectivity than the HE_Halfedge itself. The constructors do not check if the path is valid, i.e. a non-interrupted loop or sequence of halfedges.
wblut.hemesh.HE_Path.HE_Path | ( | final HE_Halfedge | loop | ) |
Create a looping path using the halfedge 'loop' as starting point. The path is created by calling getNextInFace() until 'loop' is reached.
loop | starting halfegde; |
wblut.hemesh.HE_Path.HE_Path | ( | final HE_Face | face | ) |
Create a looping path from a single face .
face | single face |
wblut.hemesh.HE_Path.HE_Path | ( | final HE_Vertex | v | ) |
Create a looping path around a single vertex.
v | single vertex |
wblut.hemesh.HE_Path.HE_Path | ( | final List< HE_Halfedge > | halfedges, |
final boolean | loop | ||
) |
Create a path from a list of halfedges. The list is assumed to be a proper sequence or loop. No checking is performed.
halfedges | List of HE_Halfedge |
loop | true/false, is the list supposed to be a loop? |
void wblut.hemesh.HE_Path.clear | ( | ) |
void wblut.hemesh.HE_Path.clearPathHalfedge | ( | ) |
Clear the HE_PathHalfedge.
void wblut.hemesh.HE_Path.clearPrecomputed | ( | ) |
|
private |
Internally creates a looping path from a list of halfedges. The list is assumed to be a proper sequence or loop. No checking is performed.
halfedges | List of HE_Halfedge |
loop | true/false, is the list supposed to be a loop? |
List<HE_Halfedge> wblut.hemesh.HE_Path.getHalfedges | ( | ) |
List<HE_Halfedge> wblut.hemesh.HE_Path.getPathEdges | ( | ) |
HE_PathHalfedge wblut.hemesh.HE_Path.getPathHalfedge | ( | ) |
double [] wblut.hemesh.HE_Path.getPathIncLengths | ( | ) |
List<HE_Face> wblut.hemesh.HE_Path.getPathInnerFaces | ( | ) |
double wblut.hemesh.HE_Path.getPathLength | ( | ) |
int wblut.hemesh.HE_Path.getPathOrder | ( | ) |
List<HE_Face> wblut.hemesh.HE_Path.getPathOuterFaces | ( | ) |
List<HE_Vertex> wblut.hemesh.HE_Path.getPathVertices | ( | ) |
|
static |
boolean wblut.hemesh.HE_Path.isCut | ( | ) |
Does this path cut a mesh in two halves? Automatically true for a loop. An open path must have its start and end vertex on a boundary. Assumes that the path is constructed correctly. One of the "halves" can be degenerate, for example when looping around a single edge. NOTE: not sure if this is always correct for meshes with holes...
boolean wblut.hemesh.HE_Path.isLoop | ( | ) |
Is this path a loop? Only checks if first path halfedge has a valid getPrevInPath(). Assumes that the path is constructed correctly.
long wblut.hemesh.HE_Path.key | ( | ) |
void wblut.hemesh.HE_Path.setPathHalfedge | ( | final HE_PathHalfedge | phalfedge | ) |
Set the starting HE_PathHalfedge.
phalfedge |
String wblut.hemesh.HE_Path.toString | ( | ) |
|
protected |
The HE_PathHalfedge that is the start of this path. If getPrevInPath() is null, the path is assumed to be open. If getPrevInPath() is not null, the path should be a single loop