sims.dynamics

Rectangle

class Rectangle(halfWidth: Double, halfHeight: Double, density: Double) extends Shape with ConvexPolygon with Product

A rectangle is a polygon.

halfWidth

this rectangle's half width

halfHeight

this rectangle's half height

density

density of this rectangle

known subclasses: GraphicalRectangle

Inherits

  1. Product
  2. Equals
  3. ConvexPolygon
  4. Shape
  5. AnyRef
  6. Any

Value Members

  1. def AABB: AABB

    Returns this polygon's axis aligned bounding box

    Returns this polygon's axis aligned bounding box.

    definition classes: ConvexPolygon
  2. val I: Double

    Moment of inertia for a rotation about this shape's COM

    Moment of inertia for a rotation about this shape's COM.

  3. def asBody: Body

    Creates a new body made out of tis shape

    Creates a new body made out of tis shape.

    definition classes: Shape
  4. def body: Body

    Returns this shape's containing body

    Returns this shape's containing body.

    definition classes: Shape
  5. def canEqual(arg0: Any): Boolean

  6. var collidable: Boolean

    Flag determining this shapes ability to collide with other shapes

    Flag determining this shapes ability to collide with other shapes.

    definition classes: Shape
  7. def contains(point: Vector2D): Boolean

    Checks if the point point is contained in this polygon

    Checks if the point point is contained in this polygon.

    A ray is created, originating from the point and following an arbitrary direction (X-Axis was chosen). The number of intersections between the ray and this polygon's sides (including vertices) is counted. The amount of intersections with vertices is substracted form the previuos number. If the latter number is odd, the point is contained in the polygon.

    definition classes: ConvexPolygon
  8. val density: Double

    Density

    Density. (Mass per area)

  9. 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 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 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.

  10. var friction: Double

    Part of the coefficient of friction for a collision between this shape and another

    Part of the coefficient of friction for a collision between this shape and another. The coefficient of friction is calculated out of the product of this part and the other shape's part.

    definition classes: Shape
  11. def halfDiags: Array[Vector2D]

    Returns the vectors from the center to the vertices of this rectangle

    Returns the vectors from the center to the vertices of this rectangle. The first vertex is the upper-right vertex at a rotation of 0. Vertices are ordered counter-clockwise.

  12. val halfHeight: Double

  13. val halfWidth: Double

  14. 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.

  15. def mass: Double

    Returns the mass of this shape

    Returns the mass of this shape. The mass is given by volume times density.

    definition classes: Shape
  16. var pos: Vector2D

    Position of this shape's COM (in world coordinates)

    Position of this shape's COM (in world coordinates).

    definition classes: Shape
  17. def productArity: Int

  18. def productElement(arg0: Int): Any

  19. def productElements: Iterator[Any]

  20. def productIterator: Iterator[Any]

  21. def productPrefix: String

  22. def project(axis: Vector2D): Projection

    Returns the projection of this polygon onto the line given by the directional vector axis

    Returns the projection of this polygon onto the line given by the directional vector axis.

    axis

    directional vector of the line

    returns

    projection of this polygon

    definition classes: ConvexPolygon
  23. var refLocalPos: Vector2D

    Local position of this shape's body COM to its COM at a body rotation of zero

    Local position of this shape's body COM to its COM at a body rotation of zero.

    definition classes: Shape
  24. var restitution: Double

    Part of the coefficient of restitution for a collision between this shape and another

    Part of the coefficient of restitution for a collision between this shape and another. The coefficient of restitution is calculated out of the product of this part and the other shape's part.

    definition classes: Shape
  25. var rotation: Double

    Rotation of this shape about its COM

    Rotation of this shape about its COM.

    definition classes: Shape
  26. var rotation0: Double

    Initial rotation

    Initial rotation. Rotation of this shape before it was added to a body.

    definition classes: Shape
  27. def sides: Array[Segment]

    Returns all sides of this polygon

    Returns all sides of this polygon. The sides are ordered counter-clockwise, the first vertex of the side giving the side index.

    definition classes: ConvexPolygon
  28. def toString(): String

    Returns a string representation of the object

    Returns a string representation of the object.

    The default representation is platform dependent.

  29. val transientShapes: Set[Shape]

    Shapes with which this shape cannot collide

    Shapes with which this shape cannot collide.

    definition classes: Shape
  30. val uid: Int

    Unique identification number

    Unique identification number.

    definition classes: Shape
  31. def vertices: Seq[Vector2D]

    Returns the position vectors of this rectangle's vertices

    Returns the position vectors of this rectangle's vertices. The first vertex is the upper-right vertex at a rotation of 0. Vertices are ordered counter-clockwise.@return position vectors of the vertices

  32. val volume: Double

    Volume

    Volume. The volume is actually equivalent to this shape's area (SiMS is in 2D) and is used with this shape's density to calculate its mass.

  33. def ~(b: Body): Body

    Creates a new body out of this shape and the shapes of body b

    Creates a new body out of this shape and the shapes of body b.

    definition classes: Shape
  34. def ~(s: Shape): Body

    Creates a new body out of this shape and the shape s

    Creates a new body out of this shape and the shape s.

    definition classes: Shape

Instance constructors

  1. new Rectangle(halfWidth: Double, halfHeight: Double, density: Double)

  2. new Rectangle()