Example #1
0
 public Color3(Vector3f c)
 {
     Red   = c.X;
     Green = c.Y;
     Blue  = c.Z;
 }
 public static Vector3f Normalize(Vector3f v)
 {
     v.Normalize();
     return(v);
 }
 public float Length()
 {
     return((float)Math.Sqrt(Vector3f.Dot(this, this)));
 }
 public static float Dot(Vector3f a, Vector3f b)
 {
     return(a.X * b.X + a.Y * b.Y + a.Z * b.Z);
 }
        public static float DistanceSquared(Vector3f a, Vector3f b)
        {
            Vector3f c = b - a;

            return(Vector3f.Dot(c, c));
        }
        public static Vector3f Hermite(Vector3f value1, Vector3f tangent1, Vector3f value2, Vector3f tangent2, float amount)
        {
            float squared = amount * amount;
            float cubed   = amount * squared;
            float part1   = ((2.0f * cubed) - (3.0f * squared)) + 1.0f;
            float part2   = (-2.0f * cubed) + (3.0f * squared);
            float part3   = (cubed - (2.0f * squared)) + amount;
            float part4   = cubed - squared;

            return(new Vector3f(
                       (((value1.X * part1) + (value2.X * part2)) + (tangent1.X * part3)) + (tangent2.X * part4),
                       (((value1.Y * part1) + (value2.Y * part2)) + (tangent1.Y * part3)) + (tangent2.Y * part4),
                       (((value1.Z * part1) + (value2.Z * part2)) + (tangent1.Z * part3)) + (tangent2.Z * part4)));
        }