OpenBve.Renderer.RenderBox C# (CSharp) Méthode

RenderBox() private static méthode

private static RenderBox ( World Position, World Direction, World Up, World Side, World Size, double CameraX, double CameraY, double CameraZ ) : void
Position World
Direction World
Up World
Side World
Size World
CameraX double
CameraY double
CameraZ double
Résultat void
        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();
            }
        }