JTS Topology Suite version 1.12

com.vividsolutions.jts.geom
Class CoordinateSequenceComparator

java.lang.Object
  extended by com.vividsolutions.jts.geom.CoordinateSequenceComparator
All Implemented Interfaces:
java.util.Comparator

public class CoordinateSequenceComparator
extends java.lang.Object
implements java.util.Comparator

Compares two CoordinateSequences. For sequences of the same dimension, the ordering is lexicographic. Otherwise, lower dimensions are sorted before higher. The dimensions compared can be limited; if this is done ordinate dimensions above the limit will not be compared.

If different behaviour is required for comparing size, dimension, or coordinate values, any or all methods can be overridden.


Field Summary
protected  int dimensionLimit
          The number of dimensions to test
 
Constructor Summary
CoordinateSequenceComparator()
          Creates a comparator which will test all dimensions.
CoordinateSequenceComparator(int dimensionLimit)
          Creates a comparator which will test only the specified number of dimensions.
 
Method Summary
static int compare(double a, double b)
          Compare two doubles, allowing for NaN values.
 int compare(java.lang.Object o1, java.lang.Object o2)
          Compares two CoordinateSequences for relative order.
protected  int compareCoordinate(CoordinateSequence s1, CoordinateSequence s2, int i, int dimension)
          Compares the same coordinate of two CoordinateSequences along the given number of dimensions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Field Detail

dimensionLimit

protected int dimensionLimit
The number of dimensions to test

Constructor Detail

CoordinateSequenceComparator

public CoordinateSequenceComparator()
Creates a comparator which will test all dimensions.


CoordinateSequenceComparator

public CoordinateSequenceComparator(int dimensionLimit)
Creates a comparator which will test only the specified number of dimensions.

Parameters:
dimensionLimit - the number of dimensions to test
Method Detail

compare

public static int compare(double a,
                          double b)
Compare two doubles, allowing for NaN values. NaN is treated as being less than any valid number.

Parameters:
a - a double
b - a double
Returns:
-1, 0, or 1 depending on whether a is less than, equal to or greater than b

compare

public int compare(java.lang.Object o1,
                   java.lang.Object o2)
Compares two CoordinateSequences for relative order.

Specified by:
compare in interface java.util.Comparator
Parameters:
o1 - a CoordinateSequence
o2 - a CoordinateSequence
Returns:
-1, 0, or 1 depending on whether o1 is less than, equal to, or greater than o2

compareCoordinate

protected int compareCoordinate(CoordinateSequence s1,
                                CoordinateSequence s2,
                                int i,
                                int dimension)
Compares the same coordinate of two CoordinateSequences along the given number of dimensions.

Parameters:
s1 - a CoordinateSequence
s2 - a CoordinateSequence
i - the index of the coordinate to test
dimension - the number of dimensiosn to test
Returns:
-1, 0, or 1 depending on whether s1[i] is less than, equal to, or greater than s2[i]

JTS Topology Suite version 1.12