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))); }