package geom

  1. Alphabetic
  1. Public
  2. Protected

Type Members

  1. 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 as Long values. Only comparisons are performed with the results, therefore some optimizations may be made, for example the euclidean measure omits taking the square root of the distances, while still preserving the ordering between the possible results.

  2. trait HyperCube[-P, H] extends AnyRef
  3. final case class IntCube(cx: Int, cy: Int, cz: Int, extent: Int) extends IntCubeLike with Product with Serializable
  4. 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

  5. final case class IntHyperCubeN(components: IndexedSeq[Int], extent: Int) extends IntHyperCubeNLike with Product with Serializable
  6. sealed trait IntHyperCubeNLike extends HyperCube[IntPointNLike, IntHyperCubeN] with QueryShape[BigInt, IntPointNLike, IntHyperCubeN]
  7. final case class IntHyperRectangleN(components: IndexedSeq[(Int, Int)]) extends IntHyperRectangleNLike with Product with Serializable

    An n-dimensional hyper rectangular.

    An n-dimensional hyper rectangular.


    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.

  8. trait IntHyperRectangleNLike extends QueryShape[BigInt, IntPointNLike, IntHyperCubeN]

    An n-dimensional rectangular query shape.

  9. final case class IntPoint2D(x: Int, y: Int) extends IntPoint2DLike with Product with Serializable
  10. trait IntPoint2DLike extends AnyRef
  11. final case class IntPoint3D(x: Int, y: Int, z: Int) extends IntPoint3DLike with Product with Serializable
  12. trait IntPoint3DLike extends AnyRef
  13. final case class IntPointN(components: IndexedSeq[Int]) extends IntPointNLike with Product with Serializable
  14. trait IntPointNLike extends AnyRef
  15. final case class IntRectangle(left: Int, top: Int, width: Int, height: Int) extends IntRectangleLike with Product with Serializable
  16. trait IntRectangleLike extends QueryShape[Long, IntPoint2DLike, IntSquare]

    A 2D rectangular query shape.

  17. final case class IntSquare(cx: Int, cy: Int, extent: Int) extends IntSquareLike with Product with Serializable
  18. trait IntSquareLike extends HyperCube[IntPoint2DLike, IntSquare] with QueryShape[Long, IntPoint2DLike, IntSquare]
  19. final case class LongPoint2D(x: Long, y: Long) extends LongPoint2DLike with Product with Serializable
  20. trait LongPoint2DLike extends AnyRef
  21. final case class LongRectangle(left: Long, top: Long, width: Long, height: Long) extends LongRectangleLike with Product with Serializable
  22. trait LongRectangleLike extends QueryShape[BigInt, LongPoint2DLike, LongSquare]

    A 2D rectangular query shape.

  23. final case class LongSquare(cx: Long, cy: Long, extent: Long) extends LongSquareLike with Product with Serializable
  24. trait LongSquareLike extends HyperCube[LongPoint2DLike, LongSquare] with QueryShape[BigInt, LongPoint2DLike, LongSquare]
  25. 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.

  26. trait Space[P, H] extends AnyRef

    A Space abstracts over the number of dimensions that are used for point and hypercube operations.

Value Members

  1. object DistanceMeasure
  2. object IntCube extends Serializable
  3. object IntDistanceMeasure2D
  4. object IntDistanceMeasure3D
  5. object IntHyperCubeN extends Serializable
  6. object IntPoint2D extends Serializable
  7. object IntPoint3D extends Serializable
  8. object IntPointN extends Serializable
  9. object IntSpace
  10. object LongDistanceMeasure2D
  11. object LongPoint2D extends Serializable
  12. 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

  13. object LongSquare extends Serializable
  14. object Space