C# Class RobustGeometry.Predicates.GeometricPredicates

Implements the four geometric predicates described by Shewchuck, and implemented in predicates.c. For each predicate, exports a ~Fast version that is a non-robust implementation directly with double arithmetic, an ~Exact version which completed the full calculation in exact arithmetic, and the preferred version which implements the adaptive routines returning the correct sign and an approximate value.
Datei anzeigen Open project: govert/RobustGeometry.NET Class Usage Examples

Public Methods

Method Description
InCircle ( double pa, double pb, double pc, double pd ) : double
InCircleFast ( double pa, double pb, double pc, double pd ) : double
InSphere ( double pa, double pb, double pc, double pd, double pe ) : double
InSphereFast ( double pa, double pb, double pc, double pd, double pe ) : double
Orient2D ( double pa, double pb, double pc ) : double

Adaptive, robust 2D orientation test.

Orient2DFast ( double pa, double pb, double pc ) : double

Non-robust approximate 2D orientation test.

The implementation computed the determinant using simple double arithmetic.

Orient3D ( double pa, double pb, double pc, double pd ) : double
Orient3DFast ( double pa, double pb, double pc, double pd ) : double

Private Methods

Method Description
InCircleAdapt ( double pa, double pb, double pc, double pd, double permanent ) : double
InCircleExact ( double pa, double pb, double pc, double pd ) : double
InCircleSlow ( double pa, double pb, double pc, double pd ) : double
InSphereAdapt ( double pa, double pb, double pc, double pd, double pe, double permanent ) : double
InSphereExact ( double pa, double pb, double pc, double pd, double pe ) : double
InSphereSlow ( double pa, double pb, double pc, double pd, double pe ) : double
Orient2DAdapt ( double pa, double pb, double pc, double detsum ) : double
Orient2DExact ( double pa, double pb, double pc ) : double
Orient2DSlow ( double pa, double pb, double pc ) : double
Orient3DAdapt ( double pa, double pb, double pc, double pd, double permanent ) : double
Orient3DExact ( double pa, double pb, double pc, double pd ) : double
Orient3DSlow ( double pa, double pb, double pc, double pd ) : double

Method Details

InCircle() public static method

public static InCircle ( double pa, double pb, double pc, double pd ) : double
pa double
pb double
pc double
pd double
return double

InCircleFast() public static method

public static InCircleFast ( double pa, double pb, double pc, double pd ) : double
pa double
pb double
pc double
pd double
return double

InSphere() public static method

public static InSphere ( double pa, double pb, double pc, double pd, double pe ) : double
pa double
pb double
pc double
pd double
pe double
return double

InSphereFast() public static method

public static InSphereFast ( double pa, double pb, double pc, double pd, double pe ) : double
pa double
pb double
pc double
pd double
pe double
return double

Orient2D() public static method

Adaptive, robust 2D orientation test.
public static Orient2D ( double pa, double pb, double pc ) : double
pa double array with x and y coordinates of pa.
pb double array with x and y coordinates of pb.
pc double array with x and y coordinates of pc.
return double

Orient2DFast() public static method

Non-robust approximate 2D orientation test.
The implementation computed the determinant using simple double arithmetic.
public static Orient2DFast ( double pa, double pb, double pc ) : double
pa double array with x and y coordinates of pa.
pb double array with x and y coordinates of pb.
pc double array with x and y coordinates of pc.
return double

Orient3D() public static method

public static Orient3D ( double pa, double pb, double pc, double pd ) : double
pa double
pb double
pc double
pd double
return double

Orient3DFast() public static method

public static Orient3DFast ( double pa, double pb, double pc, double pd ) : double
pa double
pb double
pc double
pd double
return double