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.
ファイルを表示 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