Heroes_of_Hiis/Assets/Polaris - Low Poly Ecosystem/Polaris - Low Poly Terrain .../Runtime/Scripts/Utilities/GQuad2D.cs

47 lines
1007 B
C#

#if GRIFFIN
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using Unity.Mathematics;
namespace Pinwheel.Griffin
{
public struct GQuad2D
{
public float2 p0, p1, p2, p3;
public GQuad2D(float2 p0, float2 p1, float2 p2, float2 p3)
{
this.p0 = p0;
this.p1 = p1;
this.p2 = p2;
this.p3 = p3;
}
public bool Contains(float2 point)
{
Vector2 d0, d1;
float c0, c1, c2, c3;
d0 = p1 - p0;
d1 = point - p0;
c0 = GMath.Float2Cross(d0, d1);
d0 = p2 - p1;
d1 = point - p1;
c1 = GMath.Float2Cross(d0, d1);
d0 = p3 - p2;
d1 = point - p2;
c2 = GMath.Float2Cross(d0, d1);
d0 = p0 - p3;
d1 = point - p3;
c3 = GMath.Float2Cross(d0, d1);
return c0 > 0 && c1 > 0 && c2 > 0 && c3 > 0;
}
}
}
#endif