|
@@ -10,20 +10,27 @@ namespace bbiwarg.Utility
|
|
{
|
|
{
|
|
class Quadrangle
|
|
class Quadrangle
|
|
{
|
|
{
|
|
- public Vector2D[] Vertices { private set; get; }
|
|
+ public Vector2D[] Vertices { get { return new Vector2D[4] {BottomLeft, TopLeft, TopRight, BottomRight}; } }
|
|
|
|
+ public Vector2D BottomLeft { get; private set; }
|
|
|
|
+ public Vector2D TopLeft { get; private set; }
|
|
|
|
+ public Vector2D TopRight { get; private set; }
|
|
|
|
+ public Vector2D BottomRight { get; private set; }
|
|
|
|
|
|
- public Quadrangle(Vector2D[] vertices)
|
|
+ public Quadrangle(Vector2D bottomLeft, Vector2D topLeft, Vector2D topRight, Vector2D bottomRight)
|
|
{
|
|
{
|
|
- Vertices = vertices;
|
|
+ BottomLeft = bottomLeft;
|
|
|
|
+ TopLeft = topLeft;
|
|
|
|
+ TopRight = topRight;
|
|
|
|
+ BottomRight = bottomRight;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
public Vector2D getRelativePosition(Vector2D p)
|
|
public Vector2D getRelativePosition(Vector2D p)
|
|
{
|
|
{
|
|
- Vector2D a = Vertices[0];
|
|
+ Vector2D a = BottomLeft;
|
|
- Vector2D b = Vertices[1];
|
|
+ Vector2D b = TopLeft;
|
|
- Vector2D c = Vertices[2];
|
|
+ Vector2D c = TopRight;
|
|
- Vector2D d = Vertices[3];
|
|
+ Vector2D d = BottomRight;
|
|
|
|
|
|
float C = (a.Y - p.Y) * (d.X - p.X) - (a.X - p.X) * (d.Y - p.Y);
|
|
float C = (a.Y - p.Y) * (d.X - p.X) - (a.X - p.X) * (d.Y - p.Y);
|
|
float B = (a.Y - p.Y) * (c.X - d.X) + (b.Y - a.Y) * (d.X - p.X) - (a.X - p.X) * (c.Y - d.Y) - (b.X - a.X) * (d.Y - p.Y);
|
|
float B = (a.Y - p.Y) * (c.X - d.X) + (b.Y - a.Y) * (d.X - p.X) - (a.X - p.X) * (c.Y - d.Y) - (b.X - a.X) * (d.Y - p.Y);
|