C# Class Source.Collisions.Polygon

Polygon, not necessarily axis-aligned
Inheritance: Body
Show file Open project: HarkerGameDev/TheGame Class Usage Examples

Public Methods

Method Description
Intersects ( Polygon other ) : Vector2

Intersection detection function Mostly derived from http://www.codeproject.com/Articles/15573/2D-Polygon-Collision-Detection

Polygon ( Microsoft.Xna.Framework.Graphics.Texture2D texture, Vector2 position, Vector2 size, Vector2 points = null, float rotation = 0f ) : System
Raycast ( Vector2 rayStart, Vector2 rayDir ) : float

Gets the parametric T value for the ray on start in direction dir, 0 if nothing Based on http://ncase.me/sight-and-light/

Rotate ( float angle ) : void

Protected Methods

Method Description
RotatePoint ( Vector2 pivot, Vector2 point, float angle ) : Vector2

Private Methods

Method Description
IntervalDistance ( float minA, float maxA, float minB, float maxB ) : float
ProjectRectangle ( Vector2 axis, Polygon body, float &min, float &max ) : void

Method Details

Intersects() public method

Intersection detection function Mostly derived from http://www.codeproject.com/Articles/15573/2D-Polygon-Collision-Detection
public Intersects ( Polygon other ) : Vector2
other Polygon The other Body to check intersection with
return Vector2

Polygon() public method

public Polygon ( Microsoft.Xna.Framework.Graphics.Texture2D texture, Vector2 position, Vector2 size, Vector2 points = null, float rotation = 0f ) : System
texture Microsoft.Xna.Framework.Graphics.Texture2D
position Vector2
size Vector2
points Vector2
rotation float
return System

Raycast() public method

Gets the parametric T value for the ray on start in direction dir, 0 if nothing Based on http://ncase.me/sight-and-light/
public Raycast ( Vector2 rayStart, Vector2 rayDir ) : float
rayStart Vector2
rayDir Vector2
return float

Rotate() public method

public Rotate ( float angle ) : void
angle float
return void

RotatePoint() protected method

protected RotatePoint ( Vector2 pivot, Vector2 point, float angle ) : Vector2
pivot Vector2
point Vector2
angle float
return Vector2