Beispiel #1
0
        public override bool TryGetMember(GetMemberBinder binder, out object result)
        {
            var array = binder.Name.Select(c =>
            {
                double value;
                if (_members.TryGetValue(c, out value))
                {
                    return(value);
                }
                throw new Exception(String.Format("Member Does Not Exist: {0}", c));
            }).ToArray();

            switch (binder.Name.Length)
            {
            case 4:
                result = new Vect4(array);
                break;

            case 3:
                result = new Vect3(array);
                break;

            case 2:
                result = new Vect2(array);
                break;

            case 1:
                result = array[0];
                break;

            default:
                throw new Exception("Invalid Length Swizzle");
            }
            return(true);
        }
Beispiel #2
0
 public Vect2(Vect2 v)
 {
     X = v.X;
     Y = v.Y;
 }
Beispiel #3
0
 public static Vect2 Lerp(Vect2 start, Vect2 end, double percent)
 {
     return (start + percent * (end - start));
 }
Beispiel #4
0
 public Vect2(Vect2 v)
 {
     X = v.X;
     Y = v.Y;
 }
Beispiel #5
0
 public static Vect2 Lerp(Vect2 start, Vect2 end, double percent)
 {
     return(start + percent * (end - start));
 }
Beispiel #6
0
 public Swizzle(Vect2 v)
 {
     _members.Add('X', v.X);
     _members.Add('Y', v.Y);
 }
Beispiel #7
0
 public Vect2 Lerp(Vect2 end, double t)
 {
     return((1 - t) * this + t * end);
 }
Beispiel #8
0
 protected bool Equals(Vect2 other)
 {
     return(X.NearlyEquals(other.X) && Y.NearlyEquals(other.Y));
 }
Beispiel #9
0
 /// <summary>
 /// Calculate the Dot Product
 /// </summary>
 /// <param name="v"></param>
 /// <returns></returns>
 public double DotProduct(Vect2 v)
 {
     return(X * v.X + Y * v.Y);
 }