com.vividsolutions.jts.algorithm
Class NonRobustCGAlgorithms

java.lang.Object
  extended by com.vividsolutions.jts.algorithm.CGAlgorithms
      extended by com.vividsolutions.jts.algorithm.NonRobustCGAlgorithms

public class NonRobustCGAlgorithms
extends CGAlgorithms

Non-robust versions of various fundamental Computational Geometric algorithms, FOR TESTING PURPOSES ONLY!. The non-robustness is due to rounding error in floating point computation.

Version:
1.7

Field Summary
 
Fields inherited from class com.vividsolutions.jts.algorithm.CGAlgorithms
CLOCKWISE, COLLINEAR, COUNTERCLOCKWISE, LEFT, RIGHT, STRAIGHT
 
Constructor Summary
NonRobustCGAlgorithms()
           
 
Method Summary
static int computeOrientation(Coordinate p1, Coordinate p2, Coordinate q)
          Computes the orientation of a point q to the directed line segment p1-p2.
static double distanceLineLine(Coordinate A, Coordinate B, Coordinate C, Coordinate D)
          Computes the distance from a line segment AB to a line segment CD Note: NON-ROBUST!
static boolean isCCW(Coordinate[] ring)
          Computes whether a ring defined by an array of Coordinate is oriented counter-clockwise.
static boolean isPointInRing(Coordinate p, Coordinate[] ring)
          Computes whether a ring defined by an array of Coordinate is oriented counter-clockwise.
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.
 
Methods inherited from class com.vividsolutions.jts.algorithm.CGAlgorithms
distancePointLine, distancePointLine, distancePointLinePerpendicular, isOnLine, length, locatePointInRing, signedArea, signedArea
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NonRobustCGAlgorithms

public NonRobustCGAlgorithms()
Method Detail

isPointInRing

public static boolean isPointInRing(Coordinate p,
                                    Coordinate[] ring)
Computes whether a ring defined by an array of Coordinate is oriented counter-clockwise.

This will handle coordinate lists which contain repeated points.

Parameters:
ring - an array of coordinates forming a ring
Returns:
true if the ring is oriented counter-clockwise.
Throws:
IllegalArgumentException - if the ring is degenerate (does not contain 3 different points)

isCCW

public static boolean isCCW(Coordinate[] ring)
Computes whether a ring defined by an array of Coordinate is oriented counter-clockwise.

This will handle coordinate lists which contain repeated points.

Parameters:
ring - an array of coordinates forming a ring
Returns:
true if the ring is oriented counter-clockwise.
Throws:
IllegalArgumentException - if the ring is degenerate (does not contain 3 different points)

computeOrientation

public static int computeOrientation(Coordinate p1,
                                     Coordinate p2,
                                     Coordinate q)
Computes the orientation of a point q to the directed line segment p1-p2. The orientation of a point relative to a directed line segment indicates which way you turn to get to q after travelling from p1 to p2.

Returns:
1 if q is counter-clockwise from p1-p2

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

distanceLineLine

public static double distanceLineLine(Coordinate A,
                                      Coordinate B,
                                      Coordinate C,
                                      Coordinate D)
Computes the distance from a line segment AB to a line segment CD Note: NON-ROBUST!

Parameters:
A - a point of one line
B - the second point of (must be different to A)
C - one point of the line
D - another point of the line (must be different to A)


Copyright © 2012. All Rights Reserved.