field.kit.physics

Particle

class Particle extends Vec3 with Behavioural

3D Verlet Particle class with support for multiple behaviours, finite state handling, colour integration This is

Inherited

  1. Hide All
  2. Show all
  1. Behavioural
  2. Vec3
  3. Product
  4. Equals
  5. Vec
  6. AnyRef
  7. Any

Visibility

  1. Public
  2. All

Instance constructors

  1. new Particle(v: Vec3)

    Creates a new particle at the given position

    Creates a new particle at the given position

  2. new Particle()

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): Vec3

    Multiplies the given Vec3 with this Vec3 and returns the result

    Multiplies the given Vec3 with this Vec3 and returns the result

    returns

    result

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

    Multiplies the given float with this vector

    Multiplies the given float with this vector

    returns

    result as new vector

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

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

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

    Adds the given Vec3 to this Vec3 and returns the result

    Adds the given Vec3 to this Vec3 and returns the result

    returns

    result

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

    Adds the given Float to this vector

    Adds the given Float to this vector

    returns

    result as new vector

    attributes: final
    definition classes: Vec3
  12. def +=(p: Particle): ArrayBuffer[Particle]

    Adds another particle as this particles neighbour

    Adds another particle as this particles neighbour

  13. def +=(s: BehaviourSet): Unit

    Adds the given BehaviourSet to this Behavioural

    Adds the given BehaviourSet to this Behavioural

    definition classes: Behavioural
  14. def +=(c: Constraint): Unit

    Adds the given Constraint to this Behavioural

    Adds the given Constraint to this Behavioural

    definition classes: Behavioural
  15. def +=(b: Behaviour): Unit

    Adds the given Behaviour to this Behavioural

    Adds the given Behaviour to this Behavioural

    definition classes: Behavioural
  16. def +=(v: Vec): Vec3

    attributes: final
    definition classes: Vec3
  17. def +=(s: Float): Vec3

    attributes: final
    definition classes: Vec3
  18. def -(v: Vec): Vec3

    Subtracts the given Vec3 from this Vec3 and returns the result

    Subtracts the given Vec3 from this Vec3 and returns the result

    returns

    result

    attributes: final
    definition classes: Vec3
  19. def -(s: Float): Vec3

    Subtracts the given float from this vector

    Subtracts the given float from this vector

    returns

    result as new vector

    attributes: final
    definition classes: Vec3
  20. def -=(s: BehaviourSet): Unit

    definition classes: Behavioural
  21. def -=(c: Constraint): Unit

    Removes the given Constraint to this Behavioural

    Removes the given Constraint to this Behavioural

    definition classes: Behavioural
  22. def -=(b: Behaviour): Unit

    Removes the given Behaviour to this Behavioural

    Removes the given Behaviour to this Behavioural

    definition classes: Behavioural
  23. def -=(v: Vec): Vec3

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

    attributes: final
    definition classes: Vec3
  25. def /(v: Vec): Vec3

    Divides this Vec3 through the given Vec3 and returns the result

    Divides this Vec3 through the given Vec3 and returns the result

    returns

    result

    attributes: final
    definition classes: Vec3
  26. def /(s: Float): Vec3

    Divides this vector through the given float

    Divides this vector through the given float

    returns

    result as new vector

    attributes: final
    definition classes: Vec3
  27. def /=(v: Vec): Vec3

    attributes: final
    definition classes: Vec3
  28. def /=(s: Float): Vec3

    attributes: final
    definition classes: Vec3
  29. def :=(s: String): Vec3

    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: Vec3
  30. def :=(buffer: FloatBuffer, index: Int): Vec3

    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: Vec3
  31. def :=(s: Float): Vec3

    Sets all components of this Vector to the given Float

    Sets all components of this Vector to the given Float

    returns

    itself

    definition classes: Vec3
  32. def :=(v: Vec): Vec3

    Sets this Vectors components to the given Vec3

    Sets this Vectors components to the given Vec3

    returns

    itself

    definition classes: Vec3
  33. 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
  34. 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
  35. var _invWeight: Float

    attributes: protected
  36. var _isLocked: Boolean

    attributes: protected
  37. var _timestep: Float

    attributes: protected
  38. var _timestepSq: Float

    attributes: protected
  39. var _weight: Float

    attributes: protected
  40. def add(s: BehaviourSet): Unit

    definition classes: Behavioural
  41. def add(c: Constraint): Unit

    Adds the given Constraint to this Behavioural

    Adds the given Constraint to this Behavioural

    definition classes: Behavioural
  42. def add(b: Behaviour): Unit

    Adds the given Behaviour to this Behavioural

    Adds the given Behaviour to this Behavioural

    definition classes: Behavioural
  43. var age: Float

  44. def angleBetween(v: Vec3): Unit

    angleBetween returns (in radians) the angle between two vectors .

    angleBetween returns (in radians) the angle between two vectors . It is assumed that both this vector and the given vector are unit vectors (iow, normalized).

    attributes: final
    definition classes: Vec3
  45. def applyBehaviours: Unit

    Applies all assigned behaviours to this particle

    Applies all assigned behaviours to this particle

  46. def applyConstraints: Unit

    Applies all assigned constraints to this particle

    Applies all assigned constraints to this particle

  47. 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
  48. var behaviours: ArrayBuffer[Behaviour]

    attributes: protected
    definition classes: Behavioural
  49. var bounds: BoundingVolume

  50. def canEqual(arg0: Any): Boolean

    definition classes: Vec3 → Equals
  51. def clamp(max: Float): Vec3

    makes sure this vector does not exceed a certain length

    makes sure this vector does not exceed a certain length

    attributes: final
    definition classes: Vec3
  52. def clearNeighbours: Unit

    Clears neighbour list (if set)

    Clears neighbour list (if set)

  53. def clearVelocity: Vec3

    sets the velocity of this particle to zero

    sets the velocity of this particle to zero

  54. def clone(): Vec3

    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: Vec3 → AnyRef
  55. var colour: Colour

  56. var constraints: ArrayBuffer[Constraint]

    attributes: protected
    definition classes: Behavioural
  57. def createBounds: Sphere

    attributes: protected
  58. def cross(v: Vec3): Vec3

    Calculates the cross product of this vector with a parameter vector v .

    Calculates the cross product of this vector with a parameter vector v .

    returns

    the cross product as a new vector

    attributes: final
    definition classes: Vec3
  59. def cross(v: Vec3, result: Vec3): Vec3

    Calculates the cross product of this vector with a parameter vector v .

    Calculates the cross product of this vector with a parameter vector v .

    returns

    the cross product vector

    attributes: final
    definition classes: Vec3
  60. def distance(v: Vec): Float

    attributes: final
    definition classes: Vec3
  61. def distanceSquared(v: Vec): Float

    attributes: final
    definition classes: Vec3
  62. 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: Vec3
  63. var drag: Float

    Air resistance or fluid resistance, force opposed to the relative motion of this particle

    Air resistance or fluid resistance, force opposed to the relative motion of this particle

  64. 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
  65. 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: Vec3 → Equals → AnyRef → Any
  66. 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
  67. val force: Vec3

    Steering force

    Steering force

  68. 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
  69. 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: Vec3 → AnyRef → Any
  70. def init(v: Vec3): Unit

    initialises the particle at the given position

    initialises the particle at the given position

  71. def interpolate(target: Vec3, delta: Float): Vec3

    Interpolates the vector towards the given target vector using linear interpolation .

    Interpolates the vector towards the given target vector using linear interpolation .

    attributes: final
    definition classes: Vec3
  72. def invWeight: Float

  73. 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
  74. def isLocked: Boolean

  75. 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: Vec3
  76. def length: Float

    attributes: final
    definition classes: Vec3
  77. def lengthSquared: Float

    attributes: final
    definition classes: Vec3
  78. def lock: Unit

  79. 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
  80. var neighbours: ArrayBuffer[Particle]

    List to keep track of this particles neighbours

    List to keep track of this particles neighbours

  81. def normalise: Vec3

    Normalises this vector so that its magnitude = 1 .

    Normalises this vector so that its magnitude = 1 .

    returns

    itself

    attributes: final
    definition classes: Vec3
  82. def normaliseTo(len: Float): Vec3

    Normalizes the vector to the given length .

    Normalizes the vector to the given length .

    returns

    itself

    attributes: final
    definition classes: Vec3
  83. def normalize: Vec3

    @deprecated

    @deprecated

    attributes: final
    definition classes: Vec3
  84. def normalizeTo(len: Float): Vec3

    @deprecated

    @deprecated

    attributes: final
    definition classes: Vec3
  85. 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
  86. 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
  87. val prev: Vec3

  88. def productArity: Int

    definition classes: Vec3 → Product
  89. def productElement(arg0: Int): Any

    definition classes: Vec3 → Product
  90. def productElementName(n: Int): String

    definition classes: Product
  91. def productElements: Iterator[Any]

    definition classes: Product
      deprecated:
    1. use productIterator instead

  92. def productIterator: Iterator[Any]

    definition classes: Product
  93. def productPrefix: String

    definition classes: Vec3 → Product
  94. def put(buffer: FloatBuffer): Vec3

    Puts this vector into the given FloatBuffer

    Puts this vector into the given FloatBuffer

    attributes: final
    definition classes: Vec3
  95. def put(buffer: FloatBuffer, index: Int): Vec3

    Puts this vector at the given postion into a FloatBuffer

    Puts this vector at the given postion into a FloatBuffer

    attributes: final
    definition classes: Vec3
  96. def randomise: Vec3

    Sets this vector

    Sets this vector

    attributes: final
    definition classes: Vec3
  97. def randomiseTo(len: Float): Vec3

    attributes: final
    definition classes: Vec3
  98. def remove(s: BehaviourSet): Unit

    definition classes: Behavioural
  99. def remove(c: Constraint): Unit

    Removes the given Constraint to this Behavioural

    Removes the given Constraint to this Behavioural

    definition classes: Behavioural
  100. def remove(b: Behaviour): Unit

    Removes the given Behaviour to this Behavioural

    Removes the given Behaviour to this Behavioural

    definition classes: Behavioural
  101. def scaleVelocity(s: Float): Vec3

  102. def set(s: String): Vec3

    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: Vec3
  103. def set(buffer: FloatBuffer, index: Int): Vec3

    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: Vec3
  104. def set(s: Float): Vec3

    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: Vec3
  105. def set(v: Vec): Vec3

    Sets this Vectors components to the given Vec3

    Sets this Vectors components to the given Vec3

    returns

    itself

    attributes: final
    definition classes: Vec3
  106. def size: Float

  107. def size_=(value: Float): Unit

  108. def slerp(target: Vec3, delta: Float): Vec3

    interpolates towards the given target Vector

    interpolates towards the given target Vector

    attributes: final
    definition classes: Vec3
  109. var state: Int

  110. def synchronized[T0](arg0: T0): T0

    attributes: final
    definition classes: AnyRef
  111. def timestep: Float

    Time between updates

    Time between updates

  112. def timestep_=(value: Float): Unit

  113. def toLabel: String

    definition classes: Vec3
  114. 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: Vec3 → AnyRef → Any
  115. def tuple: (Float, Float, Float)

    attributes: final
    definition classes: Vec3
  116. def unlock: Unit

  117. def update(dt: Float): Unit

    Advances the particle one timestep

    Advances the particle one timestep

  118. def updateBounds: Unit

    Updates the bounding box (if set)

    Updates the bounding box (if set)

    attributes: protected
  119. def updatePosition: Unit

    Updates the position based on the previous position and the steering force

    Updates the position based on the previous position and the steering force

    attributes: protected
  120. def updateState(dt: Float): Unit

    For now simply keeps track of the particle's age; override this method to perform custom state changes e .

    For now simply keeps track of the particle's age; override this method to perform custom state changes e . g. fading in, alive, fading out etc.

    attributes: protected
  121. def wait(): Unit

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

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

    attributes: final
    definition classes: AnyRef
  124. def weight: Float

  125. def weight_=(value: Float): Unit

  126. var x: Float

    definition classes: Vec3Vec
  127. var y: Float

    definition classes: Vec3Vec
  128. var z: Float

    definition classes: Vec3Vec
  129. def zero: Unit

    Resets this vectors components all to zero

    Resets this vectors components all to zero

    attributes: final
    definition classes: Vec3