TriangulationUtil
class TriangulationUtil
public TriangulationUtil()
public static bool InScanArea(TriangulationPoint pa, TriangulationPoint pb, TriangulationPoint pc, TriangulationPoint pd)
public static Orientation Orient2d(TriangulationPoint pa, TriangulationPoint pb, TriangulationPoint pc)
public static bool SmartIncircle(TriangulationPoint pa, TriangulationPoint pb, TriangulationPoint pc, TriangulationPoint pd)
Requirements:
1. a,b and c form a triangle.
2. a and d is know to be on opposite side of bc
a
+
/ \
/ \
b/ \c
+-------+
/ B \
/ \
Facts:
d has to be in area B to have a chance to be inside the circle formed by a,b and c
d is outside B if orient2d(a,b,d) or orient2d(c,a,d) is CW
This preknowledge gives us a way to optimize the incircle test