Table of Contents

Class TriangulationUtil

The triangulation util class

internal class TriangulationUtil

Inheritance

Inherited Members

Fields

EPSILON

The epsilon

public static double EPSILON

Field Value

double

Methods

InScanArea(TriangulationPoint, TriangulationPoint, TriangulationPoint, TriangulationPoint)

Describes whether in scan area

public static bool InScanArea(TriangulationPoint pa, TriangulationPoint pb, TriangulationPoint pc, TriangulationPoint pd)

Parameters

pa TriangulationPoint

The pa

pb TriangulationPoint

The pb

pc TriangulationPoint

The pc

pd TriangulationPoint

The pd

Returns

bool

The bool

Orient2d(TriangulationPoint, TriangulationPoint, TriangulationPoint)

public static Orientation Orient2d(TriangulationPoint pa, TriangulationPoint pb, TriangulationPoint pc)

Parameters

pa TriangulationPoint
pb TriangulationPoint
pc TriangulationPoint

Returns

Orientation

SmartIncircle(TriangulationPoint, TriangulationPoint, TriangulationPoint, TriangulationPoint)

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

public static bool SmartIncircle(TriangulationPoint pa, TriangulationPoint pb, TriangulationPoint pc, TriangulationPoint pd)

Parameters

pa TriangulationPoint

triangle point, opposite d

pb TriangulationPoint

triangle point

pc TriangulationPoint

triangle point

pd TriangulationPoint

point opposite a

Returns

bool

true if d is inside circle, false if on circle edge