public static Matrix UnpackOrthoMatrix(ref Vector4 packed) { int w = (int)packed.W; return(Matrix.CreateWorld(new Vector3(packed), Base6Directions.GetVector((int)(w / 6)), Base6Directions.GetVector((int)(w % 6)))); }
public static bool IsValidBlockOrientation(Direction forward, Direction up) { return(forward <= Direction.Down && up <= Direction.Down && Vector3.Dot(Base6Directions.GetVector(forward), Base6Directions.GetVector(up)) == 0f); }
public Matrix GetFloatMatrix() { return(Matrix.CreateWorld(new Vector3(Translation), Base6Directions.GetVector(Forward), Base6Directions.GetVector(Up))); }