de.sciss.lucre.geom

Type members

Classlikes

Companion
class
trait DistanceMeasure[M, P, H]

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.

Companion
object
trait HyperCube[-P, H]
object IntCube
Companion
class
final case
class IntCube(cx: Int, cy: Int, cz: Int, extent: Int) extends IntCubeLike
Companion
object

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
Companion
class
final case
class IntHyperCubeN(components: IndexedSeq[Int], extent: Int) extends IntHyperCubeNLike
Companion
object
final case
class IntHyperRectangleN(components: IndexedSeq[(Int, Int)]) extends IntHyperRectangleNLike

An n-dimensional hyper rectangular.

An n-dimensional hyper rectangular.

Value Params
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.

An n-dimensional rectangular query shape.

An n-dimensional rectangular query shape.

object IntPoint2D
Companion
class
final case
class IntPoint2D(x: Int, y: Int) extends IntPoint2DLike
Companion
object
object IntPoint3D
Companion
class
final case
class IntPoint3D(x: Int, y: Int, z: Int) extends IntPoint3DLike
Companion
object
object IntPointN
Companion
class
final case
class IntPointN(components: IndexedSeq[Int]) extends IntPointNLike
Companion
object
final case
class IntRectangle(left: Int, top: Int, width: Int, height: Int) extends IntRectangleLike

A 2D rectangular query shape.

A 2D rectangular query shape.

object IntSpace
final case
class IntSquare(cx: Int, cy: Int, extent: Int) extends IntSquareLike
Companion
class
final case
class LongPoint2D(x: Long, y: Long) extends LongPoint2DLike
Companion
object
final case
class LongRectangle(left: Long, top: Long, width: Long, height: Long) extends LongRectangleLike

A 2D rectangular query shape.

A 2D rectangular query shape.

object LongSpace

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

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
Companion
class
final case
class LongSquare(cx: Long, cy: Long, extent: Long) extends LongSquareLike
Companion
object
trait QueryShape[Area, P, H]

A shape for range queries. Type A indicates the results of area calculations, and may be specialized.

A shape for range queries. Type A indicates the results of area calculations, and may be specialized.

object Space
Companion
class
trait Space[P, H]

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.

Companion
object