Packages

t

de.sciss.lucre.geom

IntCubeLike

trait IntCubeLike extends HyperCube[IntPoint3DLike, IntCube] with QueryShape[BigInt, IntPoint3DLike, IntCube]

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

Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. IntCubeLike
  2. QueryShape
  3. HyperCube
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def cx: Int

    X coordinate of the cube's center

  2. abstract def cy: Int

    Y coordinate of the cube's center

  3. abstract def cz: Int

    Z coordinate of the cube's center

  4. abstract def extent: Int

    The extent is the half side length of the cube

Concrete Value Members

  1. final def area: BigInt
  2. final def back: Int
  3. final def bottom: Int
  4. final def containsH(cube: IntSpace.ThreeDim.HyperCube): Boolean

    Checks whether a given hyper-cube is fully contained in this hyper-cube.

    Checks whether a given hyper-cube is fully contained in this hyper-cube. This is also the case if their bounds full match.

    Definition Classes
    IntCubeLikeHyperCube
  5. final def containsP(point: IntSpace.ThreeDim.PointLike): Boolean

    Queries the overlap of this shape with a given IntPoint2D p.

    Queries the overlap of this shape with a given IntPoint2D p. The point is considered to have a side length of 1!

    returns

    true if this shape contains or partly overlaps the given point

    Definition Classes
    IntCubeLikeQueryShapeHyperCube
  6. final def front: Int
  7. final def greatestInterestingH(a: IntSpace.ThreeDim.HyperCube, b: IntSpace.ThreeDim.PointLike): IntSpace.ThreeDim.HyperCube

    Calculates the greatest interesting hyper-cube inside this hyper-cube which contains both hyper-cube a and point b, and they occupy distinct orthants.

    Calculates the greatest interesting hyper-cube inside this hyper-cube which contains both hyper-cube a and point b, and they occupy distinct orthants.

    Definition Classes
    IntCubeLikeHyperCube
  8. final def greatestInterestingP(a: IntSpace.ThreeDim.PointLike, b: IntSpace.ThreeDim.PointLike): IntSpace.ThreeDim.HyperCube

    Calculates the greatest interesting hyper-cube inside this hyper-cube which contains both points a and b, and they occupy distinct orthants.

    Calculates the greatest interesting hyper-cube inside this hyper-cube which contains both points a and b, and they occupy distinct orthants.

    Definition Classes
    IntCubeLikeHyperCube
  9. final def indexOfH(b: IntSpace.ThreeDim.HyperCube): Int

    Determines the orthant index of another internal hyper-cube inner.

    Determines the orthant index of another internal hyper-cube inner.

    returns

    the index of the orthant (beginning at 0), or -1 if inner lies outside of this hyper-cube.

    Definition Classes
    IntCubeLikeHyperCube
  10. final def indexOfP(a: IntSpace.ThreeDim.PointLike): Int

    Determines the orthant index of a point point.

    Determines the orthant index of a point point.

    returns

    the index of the orthant (beginning at 0), or -1 if point lies outside of this hyper-cube.

    Definition Classes
    IntCubeLikeHyperCube
  11. final def isAreaGreater(a: IntSpace.ThreeDim.HyperCube, b: BigInt): Boolean
    Definition Classes
    IntCubeLikeQueryShape
  12. final def isAreaNonEmpty(area: BigInt): Boolean
    Definition Classes
    IntCubeLikeQueryShape
  13. final def left: Int
  14. final def maxDistance(point: IntSpace.ThreeDim.PointLike): Double

    Calculates the maximum distance to a point in the euclidean metric.

    Calculates the maximum distance to a point in the euclidean metric. This calls maxDistanceSq and then takes the square root.

    Definition Classes
    IntCubeLikeHyperCube
  15. final def maxDistanceSq(point: IntSpace.ThreeDim.PointLike): BigInt

    Calculates the maximum squared euclidean distance to a point in the euclidean metric.

    Calculates the maximum squared euclidean distance to a point in the euclidean metric. This is the distance (squared) to the corner which is the furthest from the point, no matter if it lies within the hyper-cube or not.

  16. final def minDistance(point: IntSpace.ThreeDim.PointLike): Double

    Calculates the minimum distance to a point in the euclidean metric.

    Calculates the minimum distance to a point in the euclidean metric. This calls minDistanceSq and then takes the square root.

    Definition Classes
    IntCubeLikeHyperCube
  17. final def minDistanceSq(point: IntSpace.ThreeDim.PointLike): BigInt

    The squared (euclidean) distance of the closest of the cube's corners or sides to the point, if the point is outside the cube, or zero, if the point is contained

  18. final def orthant(idx: Int): IntSpace.ThreeDim.HyperCube
    Definition Classes
    IntCubeLikeHyperCube
  19. final def overlapArea(b: IntSpace.ThreeDim.HyperCube): BigInt
    Definition Classes
    IntCubeLikeQueryShape
  20. final def right: Int
  21. final def top: Int