Package

de.sciss.lucre

geom

Permalink

package geom

Visibility
  1. Public
  2. All

Type Members

  1. trait DistanceMeasure[M, D <: Space[D]] extends AnyRef

    Permalink

    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[D <: Space[D]] extends AnyRef

    Permalink
  3. final case class IntCube(cx: Int, cy: Int, cz: Int, extent: Int) extends IntCubeLike with Product with Serializable

    Permalink
  4. trait IntCubeLike extends HyperCube[ThreeDim] with QueryShape[BigInt, ThreeDim]

    Permalink

    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

    Permalink
  6. sealed trait IntHyperCubeNLike extends HyperCube[NDim] with QueryShape[BigInt, NDim]

    Permalink
  7. final case class IntHyperRectangleN(components: IndexedSeq[(Int, Int)]) extends IntHyperRectangleNLike with Product with Serializable

    Permalink

    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.

  8. trait IntHyperRectangleNLike extends QueryShape[BigInt, NDim]

    Permalink

    An n-dimensional rectangular query shape.

  9. final case class IntPoint2D(x: Int, y: Int) extends IntPoint2DLike with Product with Serializable

    Permalink
  10. trait IntPoint2DLike extends AnyRef

    Permalink
  11. final case class IntPoint3D(x: Int, y: Int, z: Int) extends IntPoint3DLike with Product with Serializable

    Permalink
  12. trait IntPoint3DLike extends AnyRef

    Permalink
  13. final case class IntPointN(components: IndexedSeq[Int]) extends IntPointNLike with Product with Serializable

    Permalink
  14. trait IntPointNLike extends AnyRef

    Permalink
  15. final case class IntRectangle(left: Int, top: Int, width: Int, height: Int) extends IntRectangleLike with Product with Serializable

    Permalink
  16. trait IntRectangleLike extends QueryShape[Long, TwoDim]

    Permalink

    A 2D rectangular query shape.

  17. final case class IntSquare(cx: Int, cy: Int, extent: Int) extends IntSquareLike with Product with Serializable

    Permalink
  18. trait IntSquareLike extends HyperCube[TwoDim] with QueryShape[Long, TwoDim]

    Permalink
  19. final case class LongPoint2D(x: Long, y: Long) extends LongPoint2DLike with Product with Serializable

    Permalink
  20. trait LongPoint2DLike extends AnyRef

    Permalink
  21. final case class LongRectangle(left: Long, top: Long, width: Long, height: Long) extends LongRectangleLike with Product with Serializable

    Permalink
  22. trait LongRectangleLike extends QueryShape[BigInt, TwoDim]

    Permalink

    A 2D rectangular query shape.

  23. final case class LongSquare(cx: Long, cy: Long, extent: Long) extends LongSquareLike with Product with Serializable

    Permalink
  24. trait LongSquareLike extends HyperCube[TwoDim] with QueryShape[BigInt, TwoDim]

    Permalink
  25. trait QueryShape[Area, D <: Space[D]] extends AnyRef

    Permalink

    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[D <: Space[D]] extends AnyRef

    Permalink

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

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

    Big thanks to Aleksey Nikiforov for figuring out how to plug the types together...

Value Members

  1. object DistanceMeasure

    Permalink
  2. object IntCube extends Serializable

    Permalink
  3. object IntDistanceMeasure2D

    Permalink
  4. object IntDistanceMeasure3D

    Permalink
  5. object IntHyperCubeN extends Serializable

    Permalink
  6. object IntPoint2D extends Serializable

    Permalink
  7. object IntPoint3D extends Serializable

    Permalink
  8. object IntPointN extends Serializable

    Permalink
  9. object IntSpace

    Permalink
  10. object LongDistanceMeasure2D

    Permalink
  11. object LongPoint2D extends Serializable

    Permalink
  12. object LongSpace

    Permalink

    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

    Permalink
  14. object Space

    Permalink

Ungrouped