Пример #1
0
        public static Vec3 Truncate( Vec3 v )
	    {
		    return new Vec3(
			    v.X() > 0.0f ? CMath.Floor( v.X() ) : CMath.Ceil( v.X() ), 
			    v.Y() > 0.0f ? CMath.Floor( v.Y() ) : CMath.Ceil( v.Y() ),
                v.Z() > 0.0f ? CMath.Floor(v.Z()) : CMath.Ceil(v.Z())
		    );
	    }
Пример #2
0
 public static Vec3 Max(Vec3 a, Vec3 b)
 {
     return new Vec3(
         Math.Max(a.X(), b.X()),
         Math.Max(a.Y(), b.Y()),
         Math.Max(a.Z(), b.Z())
     );
 }
Пример #3
0
        public static int FloatTo565(Vec3 colour)
        {
            // get the components in the correct range
            int r = CMath.FloatToInt(31.0f * colour.X(), 31);
            int g = CMath.FloatToInt(63.0f * colour.Y(), 63);
            int b = CMath.FloatToInt(31.0f * colour.Z(), 31);

            // pack into a single value
            return (r << 11) | (g << 5) | b;
        }
Пример #4
0
 public static float Dot(Vec3 a, Vec3 b)
 {
     return a.X() * b.X() + a.Y()* b.Y() + a.Z() * b.Z();
 }