collision v0.1.0 Collision
Wrapper around functionality to generate polygons and test for collisions.
Summary
Functions
Test for collision between two two-dimensional polygons
Test for collision between two two-dimensional polygons and return the minimum translation vector and magnitude to resolve collision
Create a two dimensional, regular polygon from a number of sides, radius, rotation angle, and a midpoint (x, y coordinates)
Functions
Specs
two_dimensional_collision?(Collision.Polygon.RegularPolygon.t, Collision.Polygon.RegularPolygon.t) :: boolean
Test for collision between two two-dimensional polygons.
Returns: boolean
Examples
iex> Collision.two_dimensional_collision?( …> %Collision.Polygon.RegularPolygon{n_sides: 4, radius: 2}, …> %Collision.Polygon.RegularPolygon{n_sides: 4, radius: 2, midpoint: %{x: 4, y: 4}} …> ) false
iex> Collision.two_dimensional_collision?( …> %Collision.Polygon.RegularPolygon{n_sides: 4, radius: 2}, …> %Collision.Polygon.RegularPolygon{n_sides: 4, radius: 4, …> midpoint: %{x: 4, y: 2}} …> ) true
Specs
two_dimensional_mtv(Collision.Polygon.RegularPolygon.t, Collision.Polygon.RegularPolygon.t) :: boolean
Test for collision between two two-dimensional polygons and return the minimum translation vector and magnitude to resolve collision.
Returns: nil | {%Vector2{}, float}
Examples
iex> Collision.SeparatingAxis.collision_mtv( …> %Collision.Polygon.RegularPolygon{n_sides: 4, radius: 2}, …> %Collision.Polygon.RegularPolygon{n_sides: 4, radius: 2, midpoint: %{x: 4, y: 4}} …> ) nil
iex> Collision.SeparatingAxis.collision_mtv( …> %Collision.Polygon.RegularPolygon{n_sides: 4, radius: 2}, …> %Collision.Polygon.RegularPolygon{n_sides: 4, radius: 4, …> midpoint: %{x: 4, y: 1}} …> ) {%Collision.Vector.Vector2{x: 2.0, y: 2.0}, 2.0}
Specs
two_dimensional_polygon(integer, integer, number, {number, number}) :: Collision.Polygon.RegularPolygon.t
Create a two dimensional, regular polygon from a number of sides, radius, rotation angle, and a midpoint (x, y coordinates).
Returns: %RegularPolygon{}
Examples
iex> Collision.two_dimensional_polygon(4, 2, 0, {0, 0}) %Collision.Polygon.RegularPolygon{n_sides: 4, radius: 2, rotation_angle: 0.0, midpoint: %Collision.Polygon.Vertex{x: 0, y: 0}}