SpatialDataType

A spatial data type. This class supports up to 31 dimensions. Each dimension can have a minimum and a maximum value of type float. For each dimension, the maximum value is only stored when it is not the same as the minimum.

Methods
int compare(Object a, Object b)
int compare(Object a, Object b)
boolean contains(Object objA, Object objB)
Check whether a contains b.
boolean contains(Object objA, Object objB)
Check whether a contains b.
Parameters:
objA - the bounding box
objB - the object
Returns:
the area
Object createBoundingBox(Object objA)
Create a bounding box starting with the given object.
Object createBoundingBox(Object objA)
Create a bounding box starting with the given object.
Parameters:
objA - the object
Returns:
the bounding box
boolean equals(Object a, Object b)
Check whether two spatial values are equal.
boolean equals(Object a, Object b)
Check whether two spatial values are equal.
Parameters:
a - the first value
b - the second value
Returns:
true if they are equal
float getAreaIncrease(Object objA, Object objB)
Get the area increase by extending a to contain b.
float getAreaIncrease(Object objA, Object objB)
Get the area increase by extending a to contain b.
Parameters:
objA - the bounding box
objB - the object
Returns:
the area
float getCombinedArea(Object objA, Object objB)
Get the combined area of both objects.
float getCombinedArea(Object objA, Object objB)
Get the combined area of both objects.
Parameters:
objA - the first object
objB - the second object
Returns:
the area
int[] getExtremes(ArrayList list)
Get the most extreme pair (elements that are as far apart as possible).
int[] getExtremes(ArrayList list)
Get the most extreme pair (elements that are as far apart as possible). This method is used to split a page (linear split). If no extreme objects could be found, this method returns null.
Parameters:
list - the objects
Returns:
the indexes of the extremes
int getMemory(Object obj)
int getMemory(Object obj)
void increaseBounds(Object bounds, Object add)
Increase the bounds in the given spatial object.
void increaseBounds(Object bounds, Object add)
Increase the bounds in the given spatial object.
Parameters:
bounds - the bounds (may be modified)
add - the value
boolean isInside(Object objA, Object objB)
Check whether a is completely inside b and does not touch the given bound.
boolean isInside(Object objA, Object objB)
Check whether a is completely inside b and does not touch the given bound.
Parameters:
objA - the object to check
objB - the bounds
Returns:
true if a is completely inside b
boolean isOverlap(Object objA, Object objB)
Check whether the two objects overlap.
boolean isOverlap(Object objA, Object objB)
Check whether the two objects overlap.
Parameters:
objA - the first object
objB - the second object
Returns:
true if they overlap
void read(ByteBuffer buff, Object[] obj, int len, boolean key)
void read(ByteBuffer buff, Object[] obj, int len, boolean key)
Object read(ByteBuffer buff)
Object read(ByteBuffer buff)
void write(WriteBuffer buff, Object[] obj, int len, boolean key)
void write(WriteBuffer buff, Object[] obj, int len, boolean key)
void write(WriteBuffer buff, Object obj)
void write(WriteBuffer buff, Object obj)