field.kit.math.geometry

Quadtree

class Quadtree extends AABR

Implements a spatial subdivision tree to work efficiently with large numbers of 2D particles .

    see also:
  1. http://code . google.com/p/toxiclibs/source/browse/trunk/toxiclibs/src.core/toxi/geom/PointQuadree.java

Inherited

  1. Hide All
  2. Show all
  1. AABR
  2. Vec2
  3. Vec
  4. AnyRef
  5. Any

Visibility

  1. Public
  2. All

Instance constructors

  1. new Quadtree(parent: Quadtree, offset: Vec2, halfSize: Vec2, minSize: Float, maxNeighbours: Int)

  2. new Quadtree(parent: Quadtree, offset: Vec2, halfSize: Vec2)

Value Members

  1. def !=(arg0: AnyRef): Boolean

    attributes: final
    definition classes: AnyRef
  2. def !=(arg0: Any): Boolean

    o != arg0 is the same as !(o == (arg0)).

    o != arg0 is the same as !(o == (arg0)).

    arg0

    the object to compare against this object for dis-equality .

    returns

    false if the receiver object is equivalent to the argument; true otherwise.

    attributes: final
    definition classes: Any
  3. def ##(): Int

    attributes: final
    definition classes: AnyRef → Any
  4. def $asInstanceOf[T0](): T0

    attributes: final
    definition classes: AnyRef
  5. def $isInstanceOf[T0](): Boolean

    attributes: final
    definition classes: AnyRef
  6. def *(v: Vec): Vec2

    Multiplies the given Vec2 with this Vec2 and returns the result

    Multiplies the given Vec2 with this Vec2 and returns the result

    returns

    result

    attributes: final
    definition classes: Vec2
  7. def *(s: Float): Vec2

    Multiplies the given float with this vector

    Multiplies the given float with this vector

    returns

    result as new vector

    attributes: final
    definition classes: Vec2
  8. def *=(v: Vec): Vec2

    attributes: final
    definition classes: Vec2
  9. def *=(s: Float): Vec2

    attributes: final
    definition classes: Vec2
  10. def +(v: Vec): Vec2

    Adds the given Vec2 to this Vec2 and returns the result

    Adds the given Vec2 to this Vec2 and returns the result

    returns

    result

    attributes: final
    definition classes: Vec2
  11. def +(s: Float): Vec2

    Adds the given Float to this vector

    Adds the given Float to this vector

    returns

    result as new vector

    attributes: final
    definition classes: Vec2
  12. def +=(v: Vec): Vec2

    attributes: final
    definition classes: Vec2
  13. def +=(s: Float): Vec2

    attributes: final
    definition classes: Vec2
  14. def -(v: Vec): Vec2

    Subtracts the given Vec2 from this Vec2 and returns the result

    Subtracts the given Vec2 from this Vec2 and returns the result

    returns

    result

    attributes: final
    definition classes: Vec2
  15. def -(s: Float): Vec2

    Subtracts the given float from this vector

    Subtracts the given float from this vector

    returns

    result as new vector

    attributes: final
    definition classes: Vec2
  16. def -=(v: Vec): Vec2

    attributes: final
    definition classes: Vec2
  17. def -=(s: Float): Vec2

    attributes: final
    definition classes: Vec2
  18. def /(v: Vec): Vec2

    Divides this Vec2 through the given Vec2 and returns the result

    Divides this Vec2 through the given Vec2 and returns the result

    returns

    result

    attributes: final
    definition classes: Vec2
  19. def /(s: Float): Vec2

    Divides this vector through the given float

    Divides this vector through the given float

    returns

    result as new vector

    attributes: final
    definition classes: Vec2
  20. def /=(v: Vec): Vec2

    attributes: final
    definition classes: Vec2
  21. def /=(s: Float): Vec2

    attributes: final
    definition classes: Vec2
  22. def :=(s: String): Vec2

    Attempts to parse the given String to set this Vectors components

    Attempts to parse the given String to set this Vectors components

    returns

    itself

    attributes: final
    definition classes: Vec2
  23. def :=(buffer: FloatBuffer, index: Int): Vec2

    Sets the xyz components to the data from a given buffer at a given index

    Sets the xyz components to the data from a given buffer at a given index

    returns

    itself

    attributes: final
    definition classes: Vec2
  24. def :=(s: Float): Vec2

    Sets all components of this Vector to the given Float

    Sets all components of this Vector to the given Float

    returns

    itself

    attributes: final
    definition classes: Vec2
  25. def :=(x: Float, y: Float): Vec2

    Sets this Vectors components to the given Floats

    Sets this Vectors components to the given Floats

    returns

    itself

    attributes: final
    definition classes: Vec2
  26. def :=(v: Vec): Vec2

    Sets this Vectors components to the given Vec2

    Sets this Vectors components to the given Vec2

    returns

    itself

    attributes: final
    definition classes: Vec2
  27. def ==(arg0: AnyRef): Boolean

    o == arg0 is the same as if (o eq null) arg0 eq null else o.equals(arg0).

    o == arg0 is the same as if (o eq null) arg0 eq null else o.equals(arg0).

    arg0

    the object to compare against this object for equality .

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    attributes: final
    definition classes: AnyRef
  28. def ==(arg0: Any): Boolean

    o == arg0 is the same as o.equals(arg0).

    o == arg0 is the same as o.equals(arg0).

    arg0

    the object to compare against this object for equality .

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    attributes: final
    definition classes: Any
  29. def angleBetween(v: Vec): Float

    It is assumed that both this vector and the given vector are unit vectors (iow, normalized) .

    It is assumed that both this vector and the given vector are unit vectors (iow, normalized) .

    returns

    the angle (in radians) between two vectors .

    attributes: final
    definition classes: Vec2
  30. def apply(circle: Circle, result: ArrayBuffer[Vec]): ArrayBuffer[Vec]

    Selects all stored points within the given sphere volume

    Selects all stored points within the given sphere volume

  31. def apply(box: AABR, result: ArrayBuffer[Vec]): ArrayBuffer[Vec]

    Selects all stored points within the given axis-aligned bounding box .

    Selects all stored points within the given axis-aligned bounding box .

    box

    AABB

    result

    the ArrayBuffer

    returns

    all points with the box volume

  32. def apply(p: Vec): Quadtree

    Finds the leaf node which spatially relates to the given point

    Finds the leaf node which spatially relates to the given point

    p

    point to check

    returns

    leaf node or null if point is outside the tree dimensions

    attributes: final
  33. def asInstanceOf[T0]: T0

    This method is used to cast the receiver object to be of type T0.

    This method is used to cast the receiver object to be of type T0.

    Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression1.asInstanceOf[String] will throw a ClassCastException at runtime, while the expressionList(1).asInstanceOf[List[String]] will not. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested typed.

    returns

    the receiver object .

    attributes: final
    definition classes: Any
  34. var children: Array[Quadtree]

    Stores the child nodes of this node

    Stores the child nodes of this node

  35. def clear: Unit

    Clears all children and data of this node

    Clears all children and data of this node

  36. def clone(): Vec2

    This method creates and returns a copy of the receiver object .

    This method creates and returns a copy of the receiver object .

    The default implementation of the clone method is platform dependent.

    returns

    a copy of the receiver object .

    definition classes: Vec2 → AnyRef
  37. def contains(p: Vec): Boolean

    no summary matey

    returns

    true, if the given Vec3 lies within this bounding volume

    definition classes: AABR
  38. def createSubtree(offset: Vec2, halfSize: Vec2): Quadtree

    attributes: protected
  39. var data: ArrayBuffer[Vec]

    attributes: protected
  40. val depth: Int

  41. def distance(x: Float, y: Float): Float

    attributes: final
    definition classes: Vec2
  42. def distance(v: Vec): Float

    attributes: final
    definition classes: Vec2
  43. def distanceSquared(x: Float, y: Float): Float

    attributes: final
    definition classes: Vec2
  44. def distanceSquared(v: Vec): Float

    attributes: final
    definition classes: Vec2
  45. def dot(v: Vec): Float

    Calculates the dot product of this vector with a provided vector .

    Calculates the dot product of this vector with a provided vector .

    returns

    the resultant dot product of this vector and a given vector .

    attributes: final
    definition classes: Vec2
  46. def eq(arg0: AnyRef): Boolean

    This method is used to test whether the argument (arg0) is a reference to the receiver object (this).

    This method is used to test whether the argument (arg0) is a reference to the receiver object (this).

    The eq method implements an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation] on non-null instances of AnyRef: * It is reflexive: for any non-null instance x of type AnyRef, x.eq(x) returns true. * It is symmetric: for any non-null instances x and y of type AnyRef, x.eq(y) returns true if and only if y.eq(x) returns true. * It is transitive: for any non-null instances x, y, and z of type AnyRef if x.eq(y) returns true and y.eq(z) returns true, then x.eq(z) returns true.

    Additionally, the eq method has three other properties. * It is consistent: for any non-null instances x and y of type AnyRef, multiple invocations of x.eq(y) consistently returns true or consistently returns false. * For any non-null instance x of type AnyRef, x.eq(null) and null.eq(x) returns false. * null.eq(null) returns true.

    When overriding the equals or hashCode methods, it is important to ensure that their behavior is consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2), they should be equal to each other (o1 == o2) and they should hash to the same value (o1.hashCode == o2.hashCode).

    arg0

    the object to compare against this object for reference equality .

    returns

    true if the argument is a reference to the receiver object; false otherwise.

    attributes: final
    definition classes: AnyRef
  47. def equals(arg0: Any): Boolean

    This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence.

    This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence.

    The default implementations of this method is an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation]: * It is reflexive: for any instance x of type Any, x.equals(x) should return true. * It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true. * It is transitive: for any instances x, y, and z of type AnyRef if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

    If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is often necessary to override hashCode to ensure that objects that are "equal" (o1.equals(o2) returns true) hash to the same scala.Int (o1.hashCode.equals(o2.hashCode)).

    arg0

    the object to compare against this object for equality .

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    definition classes: AnyRef → Any
  48. var extent: Vec2

    definition classes: AABR
  49. def finalize(): Unit

    This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object .

    This method is called by the garbage collector on the receiver object when garbage collection determines that there are no more references to the object .

    The details of when and if the finalize method are invoked, as well as the interaction between finalizeand non-local returns and exceptions, are all platform dependent.

    attributes: protected
    definition classes: AnyRef
  50. def getClass(): java.lang.Class[_]

    Returns a representation that corresponds to the dynamic class of the receiver object .

    Returns a representation that corresponds to the dynamic class of the receiver object .

    The nature of the representation is platform dependent.

    returns

    a representation that corresponds to the dynamic class of the receiver object .

    attributes: final
    definition classes: AnyRef
  51. val halfSize: Vec2

  52. def hashCode(): Int

    Returns a hash code value for the object .

    Returns a hash code value for the object .

    The default hashing algorithm is platform dependent.

    Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.

    returns

    the hash code value for the object .

    definition classes: AnyRef → Any
  53. def height: Float

    no summary matey

    returns

    the height of this rectangle

    definition classes: AABR
  54. def height_=(value: Float): Unit

    definition classes: AABR
  55. def insert(p: Vec): Boolean

    Adds a new point/particle to the tree structure .

    Adds a new point/particle to the tree structure . All points are stored within leaf nodes only. The tree implementation is using lazy instantiation for all intermediate tree levels.

    p
    returns

    true, if point has been added successfully

  56. def intersects(center: Vec, radius: Float): Boolean

    no summary matey

    returns

    true, when the given Sphere intersects with itself

    definition classes: AABR
  57. def intersects(circle: Circle): Boolean

    no summary matey

    returns

    true, when the given Sphere intersects with itself

    definition classes: AABR
  58. def intersects(rect: AABR): Boolean

    no summary matey

    returns

    true, when the given AABB intersects with itself

    definition classes: AABR
  59. val isAutoReducing: Boolean

    Defines wether this node automatically removes branches when a point was removed

    Defines wether this node automatically removes branches when a point was removed

    attributes: protected
  60. def isInstanceOf[T0]: Boolean

    This method is used to test whether the dynamic type of the receiver object is T0.

    This method is used to test whether the dynamic type of the receiver object is T0.

    Note that the test result of the test is modulo Scala's erasure semantics. Therefore the expression1.isInstanceOf[String] will return false, while the expression List(1).isInstanceOf[List[String]] will return true. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested typed.

    returns

    true if the receiver object is an instance of erasure of type T0; false otherwise.

    attributes: final
    definition classes: Any
  61. def isValid: Boolean

    checks wether one or several components of this vector are Not a Number or Infinite

    checks wether one or several components of this vector are Not a Number or Infinite

    attributes: final
    definition classes: Vec2
  62. def leafForPoint(p: Vec2): Quadtree

    Alias for apply(p:Vec2)

    Alias for apply(p:Vec2)

  63. def length: Float

    attributes: final
    definition classes: Vec2
  64. def lengthSquared: Float

    attributes: final
    definition classes: Vec2
  65. var max: Vec2

    definition classes: AABR
  66. var maxNeighbours: Int

  67. var min: Vec2

    definition classes: AABR
  68. var minSize: Float

    Alternative tree recursion limit, number of world units when cells are not subdivided any further

    Alternative tree recursion limit, number of world units when cells are not subdivided any further

  69. def ne(arg0: AnyRef): Boolean

    o.ne(arg0) is the same as !(o.eq(arg0)).

    o.ne(arg0) is the same as !(o.eq(arg0)).

    arg0

    the object to compare against this object for reference dis-equality .

    returns

    false if the argument is not a reference to the receiver object; true otherwise.

    attributes: final
    definition classes: AnyRef
  70. def normalize: Vec2

    Normalizes this vector .

    Normalizes this vector .

    returns

    itself

    attributes: final
    definition classes: Vec2
  71. def notify(): Unit

    Wakes up a single thread that is waiting on the receiver object's monitor .

    Wakes up a single thread that is waiting on the receiver object's monitor .

    attributes: final
    definition classes: AnyRef
  72. def notifyAll(): Unit

    Wakes up all threads that are waiting on the receiver object's monitor .

    Wakes up all threads that are waiting on the receiver object's monitor .

    attributes: final
    definition classes: AnyRef
  73. var numChildren: Int

    the number of child nodes (max .

    the number of child nodes (max . 4)

  74. val offset: Vec2

  75. val parent: Quadtree

  76. def perpendiculate: Vec2

    attributes: final
    definition classes: Vec2
  77. def pointsWithinBox(rect: AABR, result: ArrayBuffer[Vec]): ArrayBuffer[Vec]

    Alias for apply(rect:AABR, result:ArrayBuffer[Vec])

    Alias for apply(rect:AABR, result:ArrayBuffer[Vec])

  78. def pointsWithinCircle(circle: Circle, result: ArrayBuffer[Vec]): ArrayBuffer[Vec]

    Alias for apply(circle:Circle, result:ArrayBuffer[Vec])

    Alias for apply(circle:Circle, result:ArrayBuffer[Vec])

  79. def put(buffer: FloatBuffer): Vec2

    attributes: final
    definition classes: Vec2
  80. def put(buffer: FloatBuffer, index: Int): Vec2

    attributes: final
    definition classes: Vec2
  81. def quadrantID(x: Float, y: Float): Int

    Computes the local child quadrant/cube index for the given point

    Computes the local child quadrant/cube index for the given point

    returns

    quadrant index

    attributes: protected final
  82. def reduceBranch: Unit

    Tries to release memory by clearing up this branch

    Tries to release memory by clearing up this branch

    attributes: protected
  83. def remove(p: Vec2): Boolean

    Removes a point from the tree and (optionally) tries to release memory by reducing now empty sub-branches .

    Removes a point from the tree and (optionally) tries to release memory by reducing now empty sub-branches .

    p

    point to delete

    returns

    true, if the point was found & removed

  84. def set(s: String): Vec2

    Attempts to parse the given String to set this Vectors components

    Attempts to parse the given String to set this Vectors components

    returns

    itself

    attributes: final
    definition classes: Vec2
  85. def set(buffer: FloatBuffer, index: Int): Vec2

    Sets the xyz components to the data from a given buffer at a given index

    Sets the xyz components to the data from a given buffer at a given index

    returns

    itself

    attributes: final
    definition classes: Vec2
  86. def set(s: Float): Vec2

    Sets all components of this Vector to the given Float

    Sets all components of this Vector to the given Float

    returns

    itself

    attributes: final
    definition classes: Vec2
  87. def set(x: Float, y: Float): Vec2

    Sets this Vectors components to the given Floats

    Sets this Vectors components to the given Floats

    returns

    itself

    attributes: final
    definition classes: Vec2
  88. def set(v: Vec): Vec2

    Sets this Vectors components to the given Vec2

    Sets this Vectors components to the given Vec2

    returns

    itself

    attributes: final
    definition classes: Vec2
  89. val size: Vec2

  90. def slerp(target: Vec, delta: Float): Vec2

    Interpolates towards the given target vector

    Interpolates towards the given target vector

    attributes: final
    definition classes: Vec2
  91. def synchronized[T0](arg0: T0): T0

    attributes: final
    definition classes: AnyRef
  92. def toCartesian: Unit

    Converts the vector from polar to Cartesian space .

    Converts the vector from polar to Cartesian space . Assumes this order: x=radius, y=theta

    returns

    itself as Cartesian vector

    definition classes: Vec2
  93. def toLabel: String

    definition classes: Vec2
  94. def toPolar: Vec2

    Converts the current vector into polar coordinates .

    Converts the current vector into polar coordinates . After the conversion the x component of the vector contains the radius (magnitude) and y the rotation angle.

    returns

    itself as polar vector

    definition classes: Vec2
  95. def toString(): String

    Returns a string representation of the object .

    Returns a string representation of the object .

    The default representation is platform dependent.

    returns

    a string representation of the object .

    definition classes: QuadtreeVec2 → AnyRef → Any
  96. def updateBounds: Unit

    definition classes: AABR
  97. def wait(): Unit

    attributes: final
    definition classes: AnyRef
  98. def wait(arg0: Long, arg1: Int): Unit

    attributes: final
    definition classes: AnyRef
  99. def wait(arg0: Long): Unit

    attributes: final
    definition classes: AnyRef
  100. def width: Float

    no summary matey

    returns

    the width of this rectangle

    definition classes: AABR
  101. def width_=(value: Float): Unit

    definition classes: AABR
  102. var x: Float

    definition classes: Vec2Vec
  103. var y: Float

    definition classes: Vec2Vec
  104. def z: Float

    definition classes: Vec2Vec
  105. def z_=(value: Float): Unit

    definition classes: Vec2Vec
  106. def zero: Vec2

    attributes: final
    definition classes: Vec2