sims.geometry

ConvexPolygon

trait ConvexPolygon extends AnyRef

Common properties of all convex polygons.

known subclasses: RegularPolygon, Rectangle

Inherits

  1. AnyRef
  2. Any

Value Members

  1. def AABB: AABB

    Returns this polygon's axis aligned bounding box

    Returns this polygon's axis aligned bounding box.

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

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

    definition classes: AnyRef ⇐ Any
  4. 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.

    definition classes: AnyRef ⇐ Any
  5. 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

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

  7. def toString(): String

    Returns a string representation of the object

    Returns a string representation of the object.

    The default representation is platform dependent.

    definition classes: AnyRef ⇐ Any
  8. def vertices: Seq[Vector2D]

    Returns positions of all vertices of this Polygon

    Returns positions of all vertices of this Polygon. Vertices are ordered counter-clockwise.

    attributes: abstract