Class RobustDeterminant


  • public class RobustDeterminant
    extends java.lang.Object
    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
    
     Relicensed under EDL and EPL with Permission from Olivier Devillers
     
    
    
    
                  Copyright (c) 1995  by  INRIA Prisme Project
                      BP 93 06902 Sophia Antipolis Cedex, France.
                               All rights reserved
    
     
    Version:
    1.7
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static int orientationIndex​(Coordinate p1, Coordinate p2, Coordinate q)
      Returns the index of the direction of the point q relative to a vector specified by p1-p2.
      static int signOfDet2x2​(double x1, double y1, double x2, double y2)
      Computes the sign of the determinant of the 2x2 matrix with the given entries, in a robust way.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RobustDeterminant

        public RobustDeterminant()
    • Method Detail

      • signOfDet2x2

        public static int signOfDet2x2​(double x1,
                                       double y1,
                                       double x2,
                                       double y2)
        Computes the sign of the determinant of the 2x2 matrix with the given entries, in a robust way.
        Returns:
        -1 if the determinant is negative,
      • orientationIndex

        public static int orientationIndex​(Coordinate p1,
                                           Coordinate p2,
                                           Coordinate q)
        Returns the index of the direction of the point q relative to a vector specified by p1-p2.
        Parameters:
        p1 - the origin point of the vector
        p2 - the final point of the vector
        q - the point to compute the direction to
        Returns:
        1 if q is counter-clockwise (left) from p1-p2