Squeak Class Documentation category index | class index  
 
SubdivisionHalfEdge
  category: Graphics-Tools-Triangulation
  superclass: Object
  subclasses: PoohHalfEdge

I represent a half-edge within a subdivision.

instance methods
  accessing
  center
classificationColor
classificationIndex
destNext
destPrev
destination
destination:
end
inverseRotated
isBorderEdge
isBorderEdge:
isExteriorEdge
isExteriorEdge:
isInteriorEdge
isInteriorEdge:
leftNext
leftPrev
length
next:
nextBorderEdge
origin
origin:
originNext
originPrev
quadEdge
rightNext
rightPrev
rotated
squaredLength
start
symmetric
timeStamp

  enumeration
  edgesDo:stamp:
markExteriorEdges:
triangleEdges:do:

  initialize-release
  id:owner:

  printing
  printOn:

  private
  ccw:with:with:
collectQuadEdgesInto:
displayOn:at:withSize:stamp:
isLeftPoint:
isPointOn:
isRightPoint:
quadEdgeClass
triArea:with:with:

  topological operators
  connectEdge:
deleteEdge
spliceEdge:
swapEdge

class methods
  accessing
  splice:with:

instance methods
  accessing top  
 

center


 

classificationColor


 

classificationIndex

Return the classification index of the receiver


 

destNext

Return the next ccw edge around (into) the destination of the current edge.


 

destPrev

Return the next cw edge around (into) the destination of the current edge.


 

destination


 

destination:


 

end


 

inverseRotated

Return the dual of the current edge, directed from its left to its right.


 

isBorderEdge


 

isBorderEdge:


 

isExteriorEdge


 

isExteriorEdge:


 

isInteriorEdge


 

isInteriorEdge:


 

leftNext

Return the ccw edge around the left face following the current edge.


 

leftPrev

Return the ccw edge around the left face before the current edge.


 

length


 

next:


 

nextBorderEdge


 

origin


 

origin:


 

originNext

Return the next ccw edge around (from) the origin of the current edge.


 

originPrev

Return the next cw edge around (from) the origin of the current edge.


 

quadEdge


 

rightNext

Return the edge around the right face ccw following the current edge.


 

rightPrev

Return the edge around the right face ccw before the current edge.


 

rotated

Return the dual of the current edge, directed from its right to its left


 

squaredLength


 

start


 

symmetric

Return the edge from the destination to the origin of the current edge.


 

timeStamp


  enumeration top  
 

edgesDo:stamp:


 

markExteriorEdges:


 

triangleEdges:do:

Evaluate aBlock with all edges making up triangles


  initialize-release top  
 

id:owner:


  printing top  
 

printOn:

Append to the argument, aStream, a sequence of characters that
identifies the receiver.


  private top  
 

ccw:with:with:


 

collectQuadEdgesInto:


 

displayOn:at:withSize:stamp:


 

isLeftPoint:


 

isPointOn:

A predicate that determines if the point x is on the edge e.
The point is considered on if it is in the EPS-neighborhood
of the edge


 

isRightPoint:


 

quadEdgeClass


 

triArea:with:with:

Returns twice the area of the oriented triangle (a, b, c), i.e., the
area is positive if the triangle is oriented counterclockwise.


  topological operators top  
 

connectEdge:

Add a new edge e connecting the destination of a to the
origin of b, in such a way that all three have the same
left face after the connection is complete.
Additionally, the data pointers of the new edge are set.


 

deleteEdge


 

spliceEdge:

This operator affects the two edge rings around the origins of a and b,
and, independently, the two edge rings around the left faces of a and b.
In each case, (i) if the two rings are distinct, Splice will combine
them into one; (ii) if the two are the same ring, Splice will break it
into two separate pieces.
Thus, Splice can be used both to attach the two edges together, and
to break them apart. See Guibas and Stolfi (1985) p.96 for more details
and illustrations.


 

swapEdge

Essentially turns edge e counterclockwise inside its enclosing
quadrilateral. The data pointers are modified accordingly.


class methods
  accessing top  
 

splice:with:

This operator affects the two edge rings around the origins of a and b,
and, independently, the two edge rings around the left faces of a and b.
In each case, (i) if the two rings are distinct, Splice will combine
them into one; (ii) if the two are the same ring, Splice will break it
into two separate pieces.
Thus, Splice can be used both to attach the two edges together, and
to break them apart. See Guibas and Stolfi (1985) p.96 for more details
and illustrations.