コード例 #1
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            Console.WriteLine(" --- Ajuda / Teclas: ");
            Console.WriteLine(" [  H     ] mostra teclas usadas. ");

            obj_Retangulo = new Retangulo("A", null, new Ponto4D(50, 50, 0), new Ponto4D(150, 150, 0));
            objetosLista.Add(obj_Retangulo);
            objetoSelecionado = obj_Retangulo;

            obj_Cilindro = new Cilindro("D", null);
            objetosLista.Add(obj_Cilindro);
            obj_Cilindro.EscalaXYZ(50, 50, 50);
            obj_Cilindro.TranslacaoXYZ(150, 0, 0);

            // obj_Cone = new Cone("E", null);
            // objetosLista.Add(obj_Cone);
            // obj_Cone.EscalaXYZ(50, 50, 50);
            // obj_Cone.TranslacaoXYZ(200,0,0);

            obj_Cubo = new Cubo("F", null);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(50, 50, 50);

            objetoSelecionado = obj_Cilindro;

            camera.At   = new Vector3(0, 0, 0);
            camera.Eye  = new Vector3(1000, 1000, 1000);
            camera.Near = 100.0f;
            camera.Far  = 2000.0f;

            GL.ClearColor(Color.Gray);
            GL.Enable(EnableCap.DepthTest);
            GL.Enable(EnableCap.CullFace);
        }
コード例 #2
0
ファイル: Mundo.cs プロジェクト: larissamakufka/disciplina-cg
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            Console.WriteLine(" --- Ajuda / Teclas: ");
            Console.WriteLine(" [  H     ] mostra teclas usadas. ");

            objetoId = Utilitario.charProximo(objetoId);
            obj_Cubo = new Cubo(objetoId, null);
            objetosLista.Add(obj_Cubo);
            objetoSelecionado = obj_Cubo;

#if CG_Privado  //FIXME: arrumar os outros objetos
            objetoId     = Utilitario.charProximo(objetoId);
            obj_Cilindro = new Cilindro(objetoId, null);
            obj_Cilindro.ObjetoCor.CorR = 177; obj_Cilindro.ObjetoCor.CorG = 166; obj_Cilindro.ObjetoCor.CorB = 136;
            objetosLista.Add(obj_Cilindro);
            obj_Cilindro.Translacao(2, 'x');

            objetoId   = Utilitario.charProximo(objetoId);
            obj_Esfera = new Esfera(objetoId, null);
            obj_Esfera.ObjetoCor.CorR = 177; obj_Esfera.ObjetoCor.CorG = 166; obj_Esfera.ObjetoCor.CorB = 136;
            objetosLista.Add(obj_Esfera);
            obj_Esfera.Translacao(4, 'x');

            objetoId = Utilitario.charProximo(objetoId);
            obj_Cone = new Cone(objetoId, null);
            obj_Cone.ObjetoCor.CorR = 177; obj_Cone.ObjetoCor.CorG = 166; obj_Cone.ObjetoCor.CorB = 136;
            objetosLista.Add(obj_Cone);
            obj_Cone.Translacao(6, 'x');
#endif

            GL.ClearColor(0.5f, 0.5f, 0.5f, 1.0f);
            GL.Enable(EnableCap.DepthTest);
            GL.Enable(EnableCap.CullFace);
        }
コード例 #3
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            Console.WriteLine(" --- Ajuda / Teclas: ");
            Console.WriteLine(" [  H     ] mostra teclas usadas. ");

            //Chão
            obj_Cubo = new Cubo("Chao", null, chao);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(1000, 1, 1000);
            obj_Cubo.TranslacaoXYZ(3, -1, 2);

            //Cerca
            obj_Cubo = new Cubo("Cerca1", null, cerca);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(30, 100, 1000);
            obj_Cubo.TranslacaoXYZ(485, 55, 0);

            obj_Cubo = new Cubo("Cerca2", null, cerca);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(1000, 100, 30);
            obj_Cubo.TranslacaoXYZ(0, 55, -485);

            obj_Cubo = new Cubo("Cerca3", null, cerca);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(30, 100, 1000);
            obj_Cubo.TranslacaoXYZ(-485, 55, 0);

            obj_Cubo = new Cubo("Cerca4", null, cerca);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(1000, 100, 30);
            obj_Cubo.TranslacaoXYZ(0, 55, 485);

            //Barreira
            obj_Cubo = new Cubo("Barreira1", null, barreira);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(100, 100, 100);
            obj_Cubo.TranslacaoXYZ(420, 55, -298);

            obj_Cubo = new Cubo("Barreira2", null, barreira);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(100, 100, 100);
            obj_Cubo.TranslacaoXYZ(-420, 55, 298);

            obj_Cubo = new Cubo("Barreira3", null, barreira);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(650, 100, 100);
            obj_Cubo.TranslacaoXYZ(0, 55, 0);

            //Personagens
            //Inimigos
            obj_Cubo    = new Cubo("Inimigo01", null, tankInimigoBack);
            this.inimgo = obj_Cubo;
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(100, 1, 100);
            obj_Cubo.TranslacaoXYZ(0, 55, -350);

            //Eu
            obj_Cubo        = new Cubo("Personagem", null, tankFront);
            this.personagem = obj_Cubo;
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(100, 1, 100);
            obj_Cubo.TranslacaoXYZ(0, 55, 350);

            objetoSelecionado = obj_Cubo;

            camera.Eye  = new Vector3(0f, 1400, 850);
            camera.At   = new Vector3(0f, 0f, 0f);
            camera.Near = 100f;
            camera.Far  = 2000.0f;

            GL.ClearColor(0, 0, 0, 255);
            GL.Enable(EnableCap.DepthTest);
            GL.Enable(EnableCap.CullFace);
            // GL.Disable(EnableCap.CullFace);
        }
コード例 #4
0
 protected override void OnKeyDown(OpenTK.Input.KeyboardKeyEventArgs e)
 {
     if (e.Key == Key.H)
     {
         Utilitario.AjudaTeclado();
     }
     else if (e.Key == Key.Escape)
     {
         Exit();
     }
     else if (e.Key == Key.E)
     {
         Console.WriteLine("--- Objetos / Pontos: ");
         for (var i = 0; i < objetosLista.Count; i++)
         {
             Console.WriteLine(objetosLista[i]);
         }
     }
     else if (e.Key == Key.O)
     {
         bBoxDesenhar = !bBoxDesenhar;
     }
     else if (e.Key == Key.Enter)
     {
         if (objetoNovo != null)
         {
             objetoNovo.PontosRemoverUltimo();   // N3-Exe6: "truque" para deixar o rastro
             objetoSelecionado = objetoNovo;
             objetoNovo        = null;
         }
     }
     else if (e.Key == Key.Space)
     {
         if (objetoNovo == null)
         {
             objetoNovo = new Poligono(objetoId + 1, null);
             objetosLista.Add(objetoNovo);
             objetoNovo.PontosAdicionar(new Ponto4D(mouseX, mouseY));
             objetoNovo.PontosAdicionar(new Ponto4D(mouseX, mouseY));  // N3-Exe6: "troque" para deixar o rastro
         }
         else
         {
             objetoNovo.PontosAdicionar(new Ponto4D(mouseX, mouseY));
         }
     }
     else if (objetoSelecionado != null)
     {
         if (e.Key == Key.M)
         {
             Console.WriteLine(objetoSelecionado.Matriz);
         }
         else if (e.Key == Key.P)
         {
             Console.WriteLine(objetoSelecionado);
         }
         else if (e.Key == Key.I)
         {
             objetoSelecionado.AtribuirIdentidade();
         }
         //TODO: não está atualizando a BBox com as transformações geométricas
         else if (e.Key == Key.Left)
         {
             objetoSelecionado = this.personagem;
             Cubo cubo = this.personagem;
             cubo.updateImage(tankLeft);
             objetoSelecionado.TranslacaoXYZ(-10, 0, 0);
         }
         else if (e.Key == Key.Right)
         {
             objetoSelecionado = this.personagem;
             Cubo cubo = this.personagem;
             cubo.updateImage(tankRight);
             objetoSelecionado.TranslacaoXYZ(10, 0, 0);
         }
         else if (e.Key == Key.Up)
         {
             objetoSelecionado = this.personagem;
             Cubo cubo = this.personagem;
             cubo.updateImage(tankFront);
             objetoSelecionado.TranslacaoXYZ(0, 0, -10);
         }
         else if (e.Key == Key.Down)
         {
             objetoSelecionado = this.personagem;
             Cubo cubo = this.personagem;
             cubo.updateImage(tankBack);
             objetoSelecionado.TranslacaoXYZ(0, 0, 10);
         }
         else if (e.Key == Key.A)
         {
             objetoSelecionado = this.inimgo;
             Cubo cubo = this.inimgo;
             cubo.updateImage(tankInimigoLeft);
             objetoSelecionado.TranslacaoXYZ(-10, 0, 0);
         }
         else if (e.Key == Key.D)
         {
             objetoSelecionado = this.inimgo;
             Cubo cubo = this.inimgo;
             cubo.updateImage(tankInimigoRight);
             objetoSelecionado.TranslacaoXYZ(10, 0, 0);
         }
         else if (e.Key == Key.W)
         {
             objetoSelecionado = this.inimgo;
             Cubo cubo = this.inimgo;
             cubo.updateImage(tankInimigoFront);
             objetoSelecionado.TranslacaoXYZ(0, 0, -10);
         }
         else if (e.Key == Key.S)
         {
             objetoSelecionado = this.inimgo;
             Cubo cubo = this.inimgo;
             cubo.updateImage(tankInimigoBack);
             objetoSelecionado.TranslacaoXYZ(0, 0, 10);
         }
         else if (e.Key == Key.Number8)
         {
             objetoSelecionado.TranslacaoXYZ(0, 0, 10);
         }
         else if (e.Key == Key.Number9)
         {
             objetoSelecionado.TranslacaoXYZ(0, 0, -10);
         }
         else if (e.Key == Key.PageUp)
         {
             objetoSelecionado.EscalaXYZ(2, 2, 2);
         }
         else if (e.Key == Key.PageDown)
         {
             objetoSelecionado.EscalaXYZ(0.5, 0.5, 0.5);
         }
         else if (e.Key == Key.Home)
         {
             objetoSelecionado.EscalaXYZBBox(0.5, 0.5, 0.5);
         }
         else if (e.Key == Key.End)
         {
             objetoSelecionado.EscalaXYZBBox(2, 2, 2);
         }
         else if (e.Key == Key.Number1)
         {
             objetoSelecionado.Rotacao(10);
         }
         else if (e.Key == Key.Number2)
         {
             objetoSelecionado.Rotacao(-10);
         }
         else if (e.Key == Key.Number3)
         {
             objetoSelecionado.RotacaoZBBox(10);
         }
         else if (e.Key == Key.Number4)
         {
             objetoSelecionado.RotacaoZBBox(-10);
         }
         else if (e.Key == Key.Number0)
         {
             objetoSelecionado = null;
         }
         else if (e.Key == Key.X)
         {
             objetoSelecionado.TrocaEixoRotacao('x');
         }
         else if (e.Key == Key.Y)
         {
             objetoSelecionado.TrocaEixoRotacao('y');
         }
         else if (e.Key == Key.Z)
         {
             objetoSelecionado.TrocaEixoRotacao('z');
         }
         else
         {
             Console.WriteLine(" __ Tecla não implementada.");
         }
     }
     else
     {
         Console.WriteLine(" __ Tecla não implementada.");
     }
 }
コード例 #5
0
ファイル: Mundo.cs プロジェクト: gustavospiess/gcg-cg
        protected override void OnLoad(EventArgs e)
        {
            this.pushMove(1, 0, 0, 3);

            Transformacao4D tr    = new Transformacao4D();
            Transformacao4D trAux = new Transformacao4D();

            trAux.AtribuirTranslacao(0, 0.3, 0);
            tr.AtribuirRotacaoX(Math.PI / 33);
            this.movimentos.Add(trAux.MultiplicarMatriz(tr));
            this.qtMovimentos.Add(33);
            this.pushMove(1, 0, 0, 4);
            this.movimentos.Add(trAux.MultiplicarMatriz(tr));
            this.qtMovimentos.Add(33);
            this.pushMove(1, 0, 0, 3);


            this.pushMove(0, 0, 1, 10);
            this.pushMove(0, 1, 0, 10);
            this.pushMove(0, 0, -1, 10);
            this.pushMove(-1, 0, 0, 10);
            this.pushMove(0, -1, 0, 5);

            tr    = new Transformacao4D();
            trAux = new Transformacao4D();
            trAux.AtribuirTranslacao(0.3, 0, 0);
            tr.AtribuirRotacaoY(Math.PI / 33);
            this.movimentos.Add(trAux.MultiplicarMatriz(tr));
            this.qtMovimentos.Add(33);

            this.pushMove(0, 0, 1, 10);
            this.pushMove(0, -1, 0, 5);
            this.pushMove(1, 0, 0, 10);
            this.pushMove(0, 0, -1, 10);
            this.movimentos.Add(trAux.MultiplicarMatriz(tr));
            this.qtMovimentos.Add(33);
            this.pushMove(1, 0, 0, 10);


            base.OnLoad(e);
            Console.WriteLine(" --- Ajuda / Teclas: ");
            Console.WriteLine(" [  H     ] mostra teclas usadas. ");

            // obj_Retangulo = new Retangulo("A", null, new Ponto4D(50, 50, 0), new Ponto4D(150, 150, 0));
            // objetosLista.Add(obj_Retangulo);
            // objetoSelecionado = obj_Retangulo;


            // obj_Cilindro = new Cilindro("D", null);
            // objetosLista.Add(obj_Cilindro);
            // obj_Cilindro.EscalaXYZ(50, 50, 50);
            // obj_Cilindro.TranslacaoXYZ(150, 0, 0);

            // obj_Esfera = new Esfera("E", null);
            // objetosLista.Add(obj_Esfera);
            // obj_Esfera.EscalaXYZ(50, 50, 50);
            // obj_Esfera.TranslacaoXYZ(200, 0, 0);

            // obj_Cone = new Cone("F", null);
            // objetosLista.Add(obj_Cone);
            // obj_Cone.EscalaXYZ(50, 50, 50);
            // obj_Cone.TranslacaoXYZ(250,0,0);

            // obj_Cubo = new Cubo("G", null);
            // objetosLista.Add(obj_Cubo);
            // obj_Cubo.EscalaXYZ(50, 50, 50);

            obj_Cubo = new Cubo("G", null);
            objetosLista.Add(obj_Cubo);
            obj_Cubo.EscalaXYZ(50, 50, 50);

            objetoSelecionado = obj_Cubo;

            camera.At  = new Vector3(0, 0, 0);
            camera.Eye = new Vector3(1000, 1000, 1000);
            // camera.Eye = new Vector3(0, 0, 1000);
            camera.Near = 100.0f;
            camera.Far  = 4000.0f;

            GL.ClearColor(127, 127, 127, 255);
            GL.Enable(EnableCap.DepthTest);
            // GL.Enable(EnableCap.CullFace);
            GL.Disable(EnableCap.CullFace);
        }