Class: GluHalfEdge

libtess.GluHalfEdge(opt_nextEdgeopt)

new GluHalfEdge(opt_nextEdgeopt)

The fundamental data structure is the "half-edge". Two half-edges go together to make an edge, but they point in opposite directions. Each half-edge has a pointer to its mate (the "symmetric" half-edge sym), its origin vertex (org), the face on its left side (lFace), and the adjacent half-edges in the CCW direction around the origin vertex (oNext) and around the left face (lNext). There is also a "next" pointer for the global edge list (see below). The notation used for mesh navigation: sym = the mate of a half-edge (same edge, but opposite direction) oNext = edge CCW around origin vertex (keep same origin) dNext = edge CCW around destination vertex (keep same dest) lNext = edge CCW around left face (dest becomes new origin) rNext = edge CCW around right face (origin becomes new dest) "prev" means to substitute CW for CCW in the definitions above. The circular edge list is special; since half-edges always occur in pairs (e and e.sym), each half-edge stores a pointer in only one direction. Starting at eHead and following the e.next pointers will visit each *edge* once (ie. e or e.sym, but not both). e.sym stores a pointer in the opposite direction, thus it is always true that e.sym.next.sym.next === e.
Parameters:
Name Type Attributes Description
opt_nextEdge libtess.GluHalfEdge <optional>
Source:

Members

activeRegion :libtess.ActiveRegion

a region with this upper edge (see sweep.js)
Type:
Source:

lFace :libtess.GluFace

left face
Type:
Source:

lNext :libtess.GluHalfEdge

next edge CCW around left face
Type:
Source:

(non-null) next :libtess.GluHalfEdge

doubly-linked list (prev==sym->next)
Type:
Source:

oNext :libtess.GluHalfEdge

next edge CCW around origin
Type:
Source:

org :libtess.GluVertex

origin vertex (oVertex too long)
Type:
Source:

sym :libtess.GluHalfEdge

same edge, opposite direction
Type:
Source:

winding :number

change in winding number when crossing from the right face to the left face
Type:
  • number
Source:

Methods

dNext() → {libtess.GluHalfEdge}

[dNext description]
Source:
Returns:
[description].
Type
libtess.GluHalfEdge

dPrev() → {libtess.GluHalfEdge}

The edge clockwise around destination vertex (keep same dest).
Source:
Returns:
Type
libtess.GluHalfEdge

dst() → {libtess.GluVertex}

[dst description]
Source:
Returns:
[description].
Type
libtess.GluVertex

lPrev() → {libtess.GluHalfEdge}

[lPrev description]
Source:
Returns:
[description].
Type
libtess.GluHalfEdge

oPrev() → {libtess.GluHalfEdge}

[oPrev description]
Source:
Returns:
[description].
Type
libtess.GluHalfEdge

rFace() → {libtess.GluFace}

[rFace description]
Source:
Returns:
[description].
Type
libtess.GluFace

rNext() → {libtess.GluHalfEdge}

The edge CCW around the right face (origin of this becomes new dest).
Source:
Returns:
Type
libtess.GluHalfEdge

rPrev() → {libtess.GluHalfEdge}

[rPrev description]
Source:
Returns:
[description].
Type
libtess.GluHalfEdge