Example #1
0
        private void DrawBody(Side side)
        {
            Gl.glPushMatrix();
            Point3d[] txtCrds = DrawingService.GetTextureCoordinates();

            if (side == Side.Back)
            {
                Gl.glTranslated(5, 0, 0);
                for (int i = 0; i <= txtCrds.Length - 1; i++)
                {
                    txtCrds[i].X = -txtCrds[i].X;
                }
            }

            Point3d[] points = new Point3d[4] {
                new Point3d(0, 0.5, 0),
                new Point3d(-5, 0.5, 0),
                new Point3d(-5, -2, 0),
                new Point3d(0, -2, 0)
            };


            DrawingService.DrawPolygon(points, txtCrds, Side.Front, new Point3d(0, 0, 1));
            Gl.glPopMatrix();
        }
Example #2
0
        private static void DrawPanel(Side side)
        {
            Gl.glPushMatrix();
            Point3d[] t = DrawingService.GetTextureCoordinates();

            if (side == Side.Back)
            {
                Gl.glRotated(180, 0, 1, 0);
                for (int i = 0; i <= t.Length - 1; i++)
                {
                    t[i].Y = -t[i].Y;
                }
            }

            Point3d[] p = new Point3d[4]
            {
                new Point3d(-0.5, 0, 1),
                new Point3d(-0.5, 1, 1),
                new Point3d(-0.5, 1, -1),
                new Point3d(-0.5, 0, -1)
            };


            Point3d n = new Point3d(-1, 0, 0);

            DrawingService.DrawPolygon(p, t, side, n);
            Gl.glPopMatrix();
        }
Example #3
0
        private void DrawRoof()
        {
            Point3d[] points = new Point3d[4] {
                new Point3d(-4, 0.5, 2),
                new Point3d(0, 0.5, 2),
                new Point3d(0, 0.5, -2),
                new Point3d(-4, 0.5, -2),
            };

            Point3d[] txtCrds = DrawingService.GetTextureCoordinates();
            DrawingService.DrawPolygon(points, txtCrds, Side.Front, new Point3d(0, 1, 0));
        }
Example #4
0
        private void DrawRoof(Side side)
        {
            Point3d[] points = new Point3d[3] {
                new Point3d(-5, 0.5, 2),
                new Point3d(-4, 0.5, 2),
                new Point3d(-5, 2, 2)
            };

            Point3d[] txtCrds = DrawingService.GetTextureCoordinates();
            Point3d   normal  = new Point3d(0, 0, 1);

            if (side == Side.Back)
            {
                normal = new Point3d(0, 0, -1);
            }

            DrawingService.DrawPolygon(points, txtCrds, Side.Front, normal);

            Gl.glPushMatrix();
            points = new Point3d[3] {
                new Point3d(5, 0.5, 2),
                new Point3d(5, 2, 2),
                new Point3d(4, 0.5, 2)
            };
            Gl.glRotated(180, 0, 1, 0);
            DrawingService.DrawPolygon(points, txtCrds, Side.Front, new Point3d(0, 0, 1));
            Gl.glPopMatrix();

            points = new Point3d[4] {
                new Point3d(-5, 0.5, 2),
                new Point3d(-5, 2, 2),
                new Point3d(-5, 2, -2),
                new Point3d(-5, 0.5, -2)
            };
            DrawingService.DrawPolygon(points, txtCrds, Side.Front, new Point3d(-1, 0, 0));

            points = new Point3d[4] {
                new Point3d(-4, 0.5, 2),
                new Point3d(-4, 0.5, -2),
                new Point3d(-5, 2, -2),
                new Point3d(-5, 2, 2)
            };

            if (side == Side.Back)
            {
                normal = new Point3d(0, -1, 0);
            }
            else
            {
                normal = new Point3d(1, 1, 0);
            }
            DrawingService.DrawPolygon(points, txtCrds, Side.Front, normal);
        }
Example #5
0
        private void DrawFloor()
        {
            Gl.glPushMatrix();
            Gl.glRotated(180, 0, 1, 0);
            Point3d[] points = new Point3d[4] {
                new Point3d(5, -2, 2),
                new Point3d(0, -2, 2),
                new Point3d(0, -2, -2),
                new Point3d(5, -2, -2),
            };

            Point3d[] txtCrds = DrawingService.GetTextureCoordinates();
            DrawingService.DrawPolygon(points, txtCrds, Side.Front, new Point3d(0, -1, 0));
            Gl.glPopMatrix();
        }
Example #6
0
        private static void DrawBody(Side side)
        {
            Gl.glPushMatrix();
            if (side == Side.Back)
            {
                Gl.glRotated(180, 0, 1, 0);
            }

            Point3d[] p = new Point3d[4]
            {
                new Point3d(-0.5, 0, 1),
                new Point3d(0.5, 0, 1),
                new Point3d(0.5, 1, 1),
                new Point3d(-0.5, 1, 1)
            };

            Point3d[] t = DrawingService.GetTextureCoordinates();
            Point3d   n = new Point3d(0, 0, 1);

            DrawingService.DrawPolygon(p, t, Side.Front, n);
            Gl.glPopMatrix();
        }
Example #7
0
        public void Draw()
        {
            for (int i = 0; i <= blocks.GetLength(0) - 1; i++)
            {
                for (int j = 0; j <= blocks.GetLength(1) - 1; j++)
                {
                    Point3d[] p = blocks[i, j].GetValues();
                    DrawingService.PickTexture(string.Format("sand0{0}.jpg", textures[i, j]));
                    Point3d[] t = DrawingService.GetTextureCoordinates();
                    DrawingService.DrawPolygon(p, t, Side.Front, new Point3d(0, 1, 0));
                }
            }

            DrawingService.PickTexture(TextureNames.BackGround);

            Gl.glBegin(Gl.GL_POLYGON);
            {
                Gl.glNormal3b(0, 0, 1);
                Gl.glTexCoord2d(0, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z - DrawingService.Distance);

                Gl.glNormal3b(0, 0, 1);
                Gl.glTexCoord2d(2, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, zerolevel, DrawingService.CameraPosition.Z - DrawingService.Distance);

                Gl.glNormal3b(0, 0, 1);
                Gl.glTexCoord2d(2, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, zerolevel, DrawingService.CameraPosition.Z - DrawingService.Distance);

                Gl.glNormal3b(0, 0, 1);
                Gl.glTexCoord2d(0, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z - DrawingService.Distance);
            }
            Gl.glEnd();

            Gl.glBegin(Gl.GL_POLYGON);
            {
                Gl.glTexCoord2d(0, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z + DrawingService.Distance);

                Gl.glTexCoord2d(2, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, zerolevel, DrawingService.CameraPosition.Z + DrawingService.Distance);

                Gl.glTexCoord2d(2, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, zerolevel, DrawingService.CameraPosition.Z - DrawingService.Distance);

                Gl.glTexCoord2d(0, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z - DrawingService.Distance);
            }
            Gl.glEnd();

            Gl.glBegin(Gl.GL_POLYGON);
            {
                Gl.glTexCoord2d(0, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z - DrawingService.Distance);

                Gl.glTexCoord2d(2, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, zerolevel, DrawingService.CameraPosition.Z - DrawingService.Distance);

                Gl.glTexCoord2d(2, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, zerolevel, DrawingService.CameraPosition.Z + DrawingService.Distance);

                Gl.glTexCoord2d(0, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z + DrawingService.Distance);
            }
            Gl.glEnd();

            Gl.glBegin(Gl.GL_POLYGON);
            {
                Gl.glNormal3b(0, 0, 1);
                Gl.glTexCoord2d(0, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z + DrawingService.Distance);

                Gl.glNormal3b(0, 0, 1);
                Gl.glTexCoord2d(2, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, zerolevel, DrawingService.CameraPosition.Z + DrawingService.Distance);

                Gl.glNormal3b(0, 0, 1);
                Gl.glTexCoord2d(2, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, zerolevel, DrawingService.CameraPosition.Z + DrawingService.Distance);

                Gl.glNormal3b(0, 0, 1);
                Gl.glTexCoord2d(0, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z + DrawingService.Distance);
            }
            Gl.glEnd();

            Gl.glBegin(Gl.GL_POLYGON);
            {
                Gl.glTexCoord2d(0, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z - DrawingService.Distance);
                Gl.glNormal3b(0, -1, 0);

                Gl.glTexCoord2d(2, 4);
                Gl.glVertex3d(DrawingService.CameraPosition.X + DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z + DrawingService.Distance);
                Gl.glNormal3b(0, -1, 0);

                Gl.glTexCoord2d(2, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z + DrawingService.Distance);
                Gl.glNormal3b(0, -1, 0);

                Gl.glTexCoord2d(0, 0);
                Gl.glVertex3d(DrawingService.CameraPosition.X - DrawingService.Distance, DrawingService.CameraPosition.Y + DrawingService.Distance, DrawingService.CameraPosition.Z - DrawingService.Distance);
                Gl.glNormal3b(0, -1, 0);
            }
            Gl.glEnd();
            Gl.glFlush();
        }