Class RobustDeterminant
- Namespace
- NetTopologySuite.Algorithm
- Assembly
- NetTopologySuite.dll
Implements an algorithm to compute the sign of a 2x2 determinant for double precision values robustly. It is a direct translation of code developed by Olivier Devillers.
The original code carries the following copyright notice:
Author : Olivier Devillers Olivier.Devillers@sophia.inria.fr http:/www.inria.fr:/prisme/personnel/devillers/anglais/determinant.html
Olivier Devillers has allowed the code to be distributed under the LGPL (2012-02-16) saying "It is ok for LGPL distribution."
Copyright (c) 1995 by INRIA Prisme Project BP 93 06902 Sophia Antipolis Cedex, France. All rights reserved
public class RobustDeterminant
- Inheritance
-
RobustDeterminant
- Inherited Members
Constructors
RobustDeterminant()
public RobustDeterminant()
Methods
OrientationIndex(Coordinate, Coordinate, Coordinate)
Returns the index of the direction of the point q
relative to
a vector specified by p1-p2
.
public static int OrientationIndex(Coordinate p1, Coordinate p2, Coordinate q)
Parameters
p1
CoordinateThe origin point of the vector
p2
CoordinateThe final point of the vector
q
Coordinatethe point to compute the direction to
Returns
- int
- 1 if q is counter-clockwise (left) from p1-p2
- -1 if q is clockwise (right) from p1-p2
- 0 if q is collinear with p1-p2
SignOfDet2x2(double, double, double, double)
Computes the sign of the determinant of the 2x2 matrix with the given entries, in a robust way.
public static int SignOfDet2x2(double x1, double y1, double x2, double y2)
Parameters
Returns
- int
- -1 if the determinant is negative,
- 1 if the determinant is positive,
- 0 if the determinant is null.