Пример #1
0
        public static void draw_solid(Transform transform, Color4b color,
                                      Vector3 upper, Vector3 lower)
        {
            VMIN = lower;
            VMAX = upper;
            EnsureMinMax(ref VMIN, ref VMAX);

            GL.Disable(EnableCap.Blend);
            GL.Disable(EnableCap.Texture2D);
            GL.Disable(EnableCap.AlphaTest);
            GL.PushMatrix();
            transform.GL_Load();

            GL.Begin(PrimitiveType.Quads);
            color.GL_Load();

            VERTEX(XMAX | YMAX | ZMIN);             // Top-right of top face
            VERTEX(XMIN | YMAX | ZMIN);             // Top-left of top face
            VERTEX(XMIN | YMAX | ZMAX);             // Bottom-left of top face
            VERTEX(XMAX | YMAX | ZMAX);             // Bottom-right of top face

            VERTEX(XMAX | YMIN | ZMIN);             // Top-right of bottom face
            VERTEX(XMIN | YMIN | ZMIN);             // Top-left of bottom face
            VERTEX(XMIN | YMIN | ZMAX);             // Bottom-left of bottom face
            VERTEX(XMAX | YMIN | ZMAX);             // Bottom-right of bottom face

            VERTEX(XMAX | YMAX | ZMAX);             // Top-Right of front face
            VERTEX(XMIN | YMAX | ZMAX);             // Top-left of front face
            VERTEX(XMIN | YMIN | ZMAX);             // Bottom-left of front face
            VERTEX(XMAX | YMIN | ZMAX);             // Bottom-right of front face

            VERTEX(XMAX | YMIN | ZMIN);             // Bottom-Left of back face
            VERTEX(XMIN | YMIN | ZMIN);             // Bottom-Right of back face
            VERTEX(XMIN | YMAX | ZMIN);             // Top-Right of back face
            VERTEX(XMAX | YMAX | ZMIN);             // Top-Left of back face

            VERTEX(XMIN | YMAX | ZMAX);             // Top-Right of left face
            VERTEX(XMIN | YMAX | ZMIN);             // Top-Left of left face
            VERTEX(XMIN | YMIN | ZMIN);             // Bottom-Left of left face
            VERTEX(XMIN | YMIN | ZMAX);             // Bottom-Right of left face

            VERTEX(XMAX | YMAX | ZMAX);             // Top-Right of left face
            VERTEX(XMAX | YMAX | ZMIN);             // Top-Left of left face
            VERTEX(XMAX | YMIN | ZMIN);             // Bottom-Left of left face
            VERTEX(XMAX | YMIN | ZMAX);             // Bottom-Right of left face

            Color4b.White.GL_Load();
            GL.End();
            GL.PopMatrix();
            GL.Enable(EnableCap.Blend);
            GL.Enable(EnableCap.Texture2D);
            GL.Enable(EnableCap.AlphaTest);
        }
Пример #2
0
        public static void draw(Transform transform, Color4b color,
                                Vector3 upper, Vector3 lower)
        {
            VMIN = lower;
            VMAX = upper;
            //EnsureMinMax(ref VMIN, ref VMAX);

            GL.Disable(EnableCap.Blend);
            GL.Disable(EnableCap.Texture2D);
            GL.Disable(EnableCap.AlphaTest);
            GL.PushMatrix();
            transform.GL_Load();

            /*
             * GL.Begin(PrimitiveType.LineLoop);
             * GL.Color4(color);
             *
             * VERTEX(XMAX|YMAX|ZMIN); // 1
             * VERTEX(XMIN|YMAX|ZMIN); // 2
             * VERTEX(XMIN|YMAX|ZMAX); // 3
             * VERTEX(XMAX|YMAX|ZMIN); // 1
             * VERTEX(XMAX|YMAX|ZMAX); // 4
             * VERTEX(XMIN|YMAX|ZMAX); // 3
             *
             * VERTEX(XMIN|YMIN|ZMAX); // 7
             * VERTEX(XMIN|YMIN|ZMIN); // 6
             * VERTEX(XMAX|YMIN|ZMIN); // 5
             * VERTEX(XMIN|YMIN|ZMAX); // 7
             * VERTEX(XMAX|YMIN|ZMAX); // 8
             * VERTEX(XMAX|YMIN|ZMIN); // 5
             *
             * VERTEX(XMIN|YMAX|ZMIN); // 2
             * VERTEX(XMIN|YMIN|ZMIN); // 6
             * VERTEX(XMIN|YMAX|ZMAX); // 3
             * VERTEX(XMAX|YMIN|ZMAX); // 8
             * VERTEX(XMAX|YMAX|ZMAX); // 4
             * VERTEX(XMAX|YMIN|ZMIN); // 5
             */
            GL.Begin(PrimitiveType.Lines);
            color.GL_Load();

            VERTEX(XMAX | YMAX | ZMAX);
            VERTEX(XMAX | YMAX | ZMIN);
            VERTEX(XMAX | YMIN | ZMIN);
            VERTEX(XMAX | YMIN | ZMAX);
            VERTEX(XMIN | YMAX | ZMAX);
            VERTEX(XMIN | YMAX | ZMIN);
            VERTEX(XMIN | YMIN | ZMIN);
            VERTEX(XMIN | YMIN | ZMAX);

            VERTEX(YMAX | ZMAX | XMAX);
            VERTEX(YMAX | ZMAX | XMIN);
            VERTEX(YMAX | ZMIN | XMIN);
            VERTEX(YMAX | ZMIN | XMAX);
            VERTEX(YMIN | ZMAX | XMAX);
            VERTEX(YMIN | ZMAX | XMIN);
            VERTEX(YMIN | ZMIN | XMIN);
            VERTEX(YMIN | ZMIN | XMAX);

            VERTEX(ZMAX | XMAX | YMAX);
            VERTEX(ZMAX | XMAX | YMIN);
            VERTEX(ZMAX | XMIN | YMIN);
            VERTEX(ZMAX | XMIN | YMAX);
            VERTEX(ZMIN | XMAX | YMAX);
            VERTEX(ZMIN | XMAX | YMIN);
            VERTEX(ZMIN | XMIN | YMIN);
            VERTEX(ZMIN | XMIN | YMAX);

            Color4b.White.GL_Load();
            GL.End();
            GL.PopMatrix();
            GL.Enable(EnableCap.Blend);
            GL.Enable(EnableCap.Texture2D);
            GL.Enable(EnableCap.AlphaTest);
        }