private static void RenderBox(World.Vector3D Position, World.Vector3D Direction, World.Vector3D Up, World.Vector3D Side, World.Vector3D Size, double CameraX, double CameraY, double CameraZ)
{
if (TexturingEnabled)
{
GL.Disable(EnableCap.Texture2D);
TexturingEnabled = false;
}
World.Vector3D[] v = new World.Vector3D[8];
v[0] = new World.Vector3D(Size.X, Size.Y, -Size.Z);
v[1] = new World.Vector3D(Size.X, -Size.Y, -Size.Z);
v[2] = new World.Vector3D(-Size.X, -Size.Y, -Size.Z);
v[3] = new World.Vector3D(-Size.X, Size.Y, -Size.Z);
v[4] = new World.Vector3D(Size.X, Size.Y, Size.Z);
v[5] = new World.Vector3D(Size.X, -Size.Y, Size.Z);
v[6] = new World.Vector3D(-Size.X, -Size.Y, Size.Z);
v[7] = new World.Vector3D(-Size.X, Size.Y, Size.Z);
for (int i = 0; i < 8; i++)
{
World.Rotate(ref v[i].X, ref v[i].Y, ref v[i].Z, Direction.X, Direction.Y, Direction.Z, Up.X, Up.Y, Up.Z, Side.X, Side.Y, Side.Z);
v[i].X += Position.X - CameraX;
v[i].Y += Position.Y - CameraY;
v[i].Z += Position.Z - CameraZ;
}
int[][] Faces = new int[6][];
Faces[0] = new int[] { 0, 1, 2, 3 };
Faces[1] = new int[] { 0, 4, 5, 1 };
Faces[2] = new int[] { 0, 3, 7, 4 };
Faces[3] = new int[] { 6, 5, 4, 7 };
Faces[4] = new int[] { 6, 7, 3, 2 };
Faces[5] = new int[] { 6, 2, 1, 5 };
for (int i = 0; i < 6; i++)
{
GL.Begin(PrimitiveType.Quads);
for (int j = 0; j < 4; j++)
{
GL.Vertex3(v[Faces[i][j]].X, v[Faces[i][j]].Y, v[Faces[i][j]].Z);
}
GL.End();
}
}