Ejemplo n.º 1
0
        private static bool FlatWithAccuracy2(Vertex2D v1, Vertex2D v2, Vertex2D vMid, float accuracy)
        {
            // compute double the signed area of the triangle (v1, vMid, v2)
            var dblArea = (vMid.X - v1.X) * (v2.Y - v1.Y) - (v2.X - v1.X) * (vMid.Y - v1.Y);

            return(dblArea * dblArea < accuracy);
        }
Ejemplo n.º 2
0
 public bool Equals(Vertex2D v)
 {
     if (v == null)
     {
         return(false);
     }
     return(X == v.X && Y == v.Y);
 }
Ejemplo n.º 3
0
 internal CatmullCurve2D(Vertex2D v0, Vertex2D v1, Vertex2D v2, Vertex2D v3)
 {
     var(dt0, dt1, dt2) = Clamp(
         MathF.Sqrt((v1 - v0).Length()),
         MathF.Sqrt((v2 - v1).Length()),
         MathF.Sqrt((v3 - v2).Length())
         );
     _c.X = InitNonuniformCatmullCoeffs(v0.X, v1.X, v2.X, v3.X, dt0, dt1, dt2);
     _c.Y = InitNonuniformCatmullCoeffs(v0.Y, v1.Y, v2.Y, v3.Y, dt0, dt1, dt2);
 }
Ejemplo n.º 4
0
 public float Dot(Vertex2D pv)
 {
     return(X * pv.X + Y * pv.Y);
 }
Ejemplo n.º 5
0
 public Vertex2D Sub(Vertex2D v)
 {
     X -= v.X;
     Y -= v.Y;
     return(this);
 }
Ejemplo n.º 6
0
 public Vertex2D Add(Vertex2D v)
 {
     X += v.X;
     Y += v.Y;
     return(this);
 }
Ejemplo n.º 7
0
 public bool Equals(Vertex2D v)
 {
     return(X == v.X && Y == v.Y);
 }