Package org.h2.mvstore.rtree
Class SpatialDataType
- All Implemented Interfaces:
Comparator<Spatial>,DataType<Spatial>
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.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintCompare two keys.booleanCheck whether bounds contains object.protected Spatialcreate(long id, float... minMax) Creates spatial object with specified parameters.Spatial[]createStorage(int size) Create storage object of array type to hold valuesbooleanCheck whether two spatial values are equal.floatgetAreaIncrease(Spatial bounds, Spatial add) Get the area increase by extending a to contain b.int[]getExtremes(ArrayList<Spatial> list) Get the most extreme pair (elements that are as far apart as possible).intCalculates the amount of used memory in bytes.voidincreaseBounds(Spatial bounds, Spatial add) Increase the bounds in the given spatial object.booleanCheck whether object is completely inside bounds and does not touch them.booleanCheck whether the two objects overlap.read(ByteBuffer buff) Read an object.voidwrite(WriteBuffer buff, Spatial k) Write an object.Methods inherited from class org.h2.mvstore.type.BasicDataType
binarySearch, cast, equals, hashCode, isMemoryEstimationAllowed, read, writeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
Constructor Details
-
SpatialDataType
public SpatialDataType(int dimensions)
-
-
Method Details
-
create
Creates spatial object with specified parameters.- Parameters:
id- the IDminMax- min x, max x, min y, max y, and so on- Returns:
- the spatial object
-
createStorage
Description copied from interface:DataTypeCreate storage object of array type to hold values- Parameters:
size- number of values to hold- Returns:
- storage object
-
compare
Description copied from interface:DataTypeCompare two keys.- Specified by:
comparein interfaceComparator<Spatial>- Specified by:
comparein interfaceDataType<Spatial>- Overrides:
comparein classBasicDataType<Spatial>- Parameters:
a- the first keyb- the second key- Returns:
- -1 if the first key is smaller, 1 if larger, and 0 if equal
-
equals
Check whether two spatial values are equal.- Parameters:
a- the first valueb- the second value- Returns:
- true if they are equal
-
getMemory
Description copied from interface:DataTypeCalculates the amount of used memory in bytes. -
write
Description copied from interface:DataTypeWrite an object. -
read
Description copied from interface:DataTypeRead an object. -
isOverlap
Check whether the two objects overlap.- Parameters:
a- the first objectb- the second object- Returns:
- true if they overlap
-
increaseBounds
Increase the bounds in the given spatial object.- Parameters:
bounds- the bounds (may be modified)add- the value
-
getAreaIncrease
Get the area increase by extending a to contain b.- Parameters:
bounds- the bounding boxadd- the object- Returns:
- the area
-
contains
Check whether bounds contains object.- Parameters:
bounds- the bounding boxobject- the object- Returns:
- the area
-
isInside
Check whether object is completely inside bounds and does not touch them.- Parameters:
object- the object to checkbounds- the bounds- Returns:
- true if a is completely inside b
-
getExtremes
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
-