faa.tg.util
Class AbstractSpacialPartition<K,P extends AbstractSpacialPartition<K,P>>

java.lang.Object
  extended by faa.tg.util.AbstractSpacialPartition<K,P>
All Implemented Interfaces:
QuadTree.QuadPartition<K,P>
Direct Known Subclasses:
CoordinateQuadTree.CoordinatePartition, PointQuadTree.PointPartition

public class AbstractSpacialPartition<K,P extends AbstractSpacialPartition<K,P>>
extends java.lang.Object
implements QuadTree.QuadPartition<K,P>


Nested Class Summary
private static class AbstractSpacialPartition.Interval
           
protected static interface AbstractSpacialPartition.KeyAdapter<K>
          K is not guaranteed to be the same as the other K in this class See the Source: AbstractSpacialPartition.java
protected static interface AbstractSpacialPartition.PartitionFactory<P extends AbstractSpacialPartition<?,P>>
          P is not guaranteed to be the same as the other P in this class See the Source: AbstractSpacialPartition.java
 
Field Summary
private  AbstractSpacialPartition.KeyAdapter<K> adapter
           
private  AbstractSpacialPartition.PartitionFactory<P> factory
           
private  AbstractSpacialPartition.Interval x_interval
           
private  AbstractSpacialPartition.Interval y_interval
           
 
Constructor Summary
protected AbstractSpacialPartition(double x_min, double x_max, double y_min, double y_max, AbstractSpacialPartition.KeyAdapter<K> adapter, AbstractSpacialPartition.PartitionFactory<P> factory)
           
 
Method Summary
 boolean contains(K key)
          Is the key in this partition
 boolean contains(P partition)
           
 int findQuadrant(K key)
          Find the index of the sub-quadrant the key fits into.
 boolean intersects(P partition)
          Results should follow the mathmatical definition of intersection.
 P makePartition(int i)
          Create an empty partition that represents the sub-quadrant of the index
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

adapter

private final AbstractSpacialPartition.KeyAdapter<K> adapter

factory

private final AbstractSpacialPartition.PartitionFactory<P extends AbstractSpacialPartition<K,P>> factory

x_interval

private final AbstractSpacialPartition.Interval x_interval

y_interval

private final AbstractSpacialPartition.Interval y_interval
Constructor Detail

AbstractSpacialPartition

protected AbstractSpacialPartition(double x_min,
                                   double x_max,
                                   double y_min,
                                   double y_max,
                                   AbstractSpacialPartition.KeyAdapter<K> adapter,
                                   AbstractSpacialPartition.PartitionFactory<P> factory)
Method Detail

contains

public boolean contains(K key)
Is the key in this partition

Specified by:
contains in interface QuadTree.QuadPartition<K,P extends AbstractSpacialPartition<K,P>>
Parameters:
key -
Returns:

findQuadrant

public int findQuadrant(K key)
Find the index of the sub-quadrant the key fits into.

Specified by:
findQuadrant in interface QuadTree.QuadPartition<K,P extends AbstractSpacialPartition<K,P>>
Parameters:
key -
Returns:
0-3

makePartition

public P makePartition(int i)
Create an empty partition that represents the sub-quadrant of the index

Specified by:
makePartition in interface QuadTree.QuadPartition<K,P extends AbstractSpacialPartition<K,P>>
Parameters:
i -
Returns:

intersects

public boolean intersects(P partition)
Results should follow the mathmatical definition of intersection.

Specified by:
intersects in interface QuadTree.QuadPartition<K,P extends AbstractSpacialPartition<K,P>>
Parameters:
partition -
Returns:
true if partitions overlap

contains

public boolean contains(P partition)
Specified by:
contains in interface QuadTree.QuadPartition<K,P extends AbstractSpacialPartition<K,P>>
Parameters:
partition -
Returns:
true if partition is in this partition

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object