package geom
- Alphabetic
- Public
- Protected
Type Members
- trait DistanceMeasure[M, P, H] extends AnyRef
A
DistanceMeasure
is used in nearest neighbour search, in order to allow different ways points and children are favoured or filtered during the search.A
DistanceMeasure
is used in nearest neighbour search, in order to allow different ways points and children are favoured or filtered during the search.For simplicity and performance, the measures, although they could be generalized as
Ordered
, are given asLong
values. Only comparisons are performed with the results, therefore some optimizations may be made, for example theeuclidean
measure omits taking the square root of the distances, while still preserving the ordering between the possible results. - trait HyperCube[-P, H] extends AnyRef
- final case class IntCube(cx: Int, cy: Int, cz: Int, extent: Int) extends IntCubeLike with Product with Serializable
- trait IntCubeLike extends HyperCube[IntPoint3DLike, IntCube] with QueryShape[BigInt, IntPoint3DLike, IntCube]
A three dimensional cube.
A three dimensional cube.
Wikipedia: "Usually, the octant with all three positive coordinates is referred to as the first octant. There is no generally used naming convention for the other seven octants."
However the article suggests (given that we count from zero): - 0 (binary 000) - top-front-left - 1 (binary 001) - top-back-right - 2 (binary 010) - top-back-left - 3 (binary 011) - top-front-left - 4 (binary 100) - bottom-front-left - 5 (binary 101) - bottom-back-left - 6 (binary 110) - bottom-back-right - 7 (binary 111) - bottom-front-right
Obviously there is no clear connection between the orientation and the binary representation. We thus prefer to chose the the octants numbering in a binary fashion, assigning bit 0 to the x-axis, bit 1 to the y-axis, and bit 2 to the z-axis, where top-front-left is 000, hence:
- 0 (binary 000) - left-top-front - 1 (binary 001) - right-top-front - 2 (binary 010) - left-bottom-front - 3 (binary 011) - right-bottom-front - 4 (binary 100) - left-top-back - 5 (binary 101) - right-top-back - 6 (binary 110) - left-bottom-back - 7 (binary 111) - right-bottom-back
- final case class IntHyperCubeN(components: IndexedSeq[Int], extent: Int) extends IntHyperCubeNLike with Product with Serializable
- sealed trait IntHyperCubeNLike extends HyperCube[IntPointNLike, IntHyperCubeN] with QueryShape[BigInt, IntPointNLike, IntHyperCubeN]
- final case class IntHyperRectangleN(components: IndexedSeq[(Int, Int)]) extends IntHyperRectangleNLike with Product with Serializable
An n-dimensional hyper rectangular.
An n-dimensional hyper rectangular.
- components
pairs of minimum and maximum coordinates for each dimension. In each tuple,
_1
must be<=
_2
. The maximum coordinates are inclusive (defining the maximum coordinate **within** the shape), thus it is not possible to create rectangles with side lengths of zero.
- trait IntHyperRectangleNLike extends QueryShape[BigInt, IntPointNLike, IntHyperCubeN]
An n-dimensional rectangular query shape.
- final case class IntPoint2D(x: Int, y: Int) extends IntPoint2DLike with Product with Serializable
- trait IntPoint2DLike extends AnyRef
- final case class IntPoint3D(x: Int, y: Int, z: Int) extends IntPoint3DLike with Product with Serializable
- trait IntPoint3DLike extends AnyRef
- final case class IntPointN(components: IndexedSeq[Int]) extends IntPointNLike with Product with Serializable
- trait IntPointNLike extends AnyRef
- final case class IntRectangle(left: Int, top: Int, width: Int, height: Int) extends IntRectangleLike with Product with Serializable
- trait IntRectangleLike extends QueryShape[Long, IntPoint2DLike, IntSquare]
A 2D rectangular query shape.
- final case class IntSquare(cx: Int, cy: Int, extent: Int) extends IntSquareLike with Product with Serializable
- trait IntSquareLike extends HyperCube[IntPoint2DLike, IntSquare] with QueryShape[Long, IntPoint2DLike, IntSquare]
- final case class LongPoint2D(x: Long, y: Long) extends LongPoint2DLike with Product with Serializable
- trait LongPoint2DLike extends AnyRef
- final case class LongRectangle(left: Long, top: Long, width: Long, height: Long) extends LongRectangleLike with Product with Serializable
- trait LongRectangleLike extends QueryShape[BigInt, LongPoint2DLike, LongSquare]
A 2D rectangular query shape.
- final case class LongSquare(cx: Long, cy: Long, extent: Long) extends LongSquareLike with Product with Serializable
- trait LongSquareLike extends HyperCube[LongPoint2DLike, LongSquare] with QueryShape[BigInt, LongPoint2DLike, LongSquare]
- trait QueryShape[Area, P, H] extends AnyRef
A shape for range queries.
A shape for range queries. Type
A
indicates the results of area calculations, and may be specialized. - trait Space[P, H] extends AnyRef
A
Space
abstracts over the number of dimensions that are used for point and hypercube operations.
Value Members
- object DistanceMeasure
- object IntCube extends Serializable
- object IntDistanceMeasure2D
- object IntDistanceMeasure3D
- object IntHyperCubeN extends Serializable
- object IntPoint2D extends Serializable
- object IntPoint3D extends Serializable
- object IntPointN extends Serializable
- object IntSpace
- object LongDistanceMeasure2D
- object LongPoint2D extends Serializable
- object LongSpace
Provides spaces in which coordinates are expressed using
Long
values.Provides spaces in which coordinates are expressed using
Long
values. Note that the current implementation due to performance considerations requires that the coordinates are clipped to 62-bit range. That is, they should be >= -0x2000000000000000L and < 0x2000000000000000L - object LongSquare extends Serializable
- object Space