Exemple #1
0
        public override void Render()
        {
            PreRender();

            //FIX IT SOLO CON COLISION.
            if (selecting)
            {
                selectionBox.BoundingBox.render();
            }

            //Render
            suelo.render();
            foreach (var mesh in modelos)
            {
                mesh.Transform =
                    Matrix.Scaling(mesh.Scale)
                    * Matrix.RotationYawPitchRoll(mesh.Rotation.Y, mesh.Rotation.X, mesh.Rotation.Z)
                    * Matrix.Translation(mesh.Position);
                mesh.render();
            }

            //Renderizar BB de los modelos seleccionados
            foreach (var mesh in modelosSeleccionados)
            {
                mesh.BoundingBox.render();
            }

            PostRender();
        }
        public override void Render()
        {
            PreRender();

            //Obtener boolean para saber si hay que mostrar Bounding Box
            var showBB = (bool)Modifiers.getValue("showBoundingBox");

            DrawText.drawText(text, 5, 20, System.Drawing.Color.Red);


            //Render piso
            piso.render();

            //Render obstaculos
            foreach (var obstaculo in obstaculos)
            {
                obstaculo.render();
                if (showBB)
                {
                    obstaculo.BoundingBox.render();
                }
            }

            //Render personaje
            personaje.animateAndRender(ElapsedTime);
            if (showBB)
            {
                personaje.BoundingBox.render();
            }

            PostRender();
        }
Exemple #3
0
        public override void Render()
        {
            PreRender();

            //Actualizar valrores de pared
            updatePlane();

            //Renderizar pared
            plane.render();

            PostRender();
        }
Exemple #4
0
        public override void Render()
        {
            PreRender();

            DrawText.drawText("Camera pos: " + Core.Utils.TgcParserUtils.printVector3(Camara.Position), 5, 20, System.Drawing.Color.Red);
            DrawText.drawText("Camera LookAt: " + Core.Utils.TgcParserUtils.printVector3(Camara.LookAt), 5, 40, System.Drawing.Color.Red);
            //Renderizar suelo
            suelo.render();

            //Renderizar instancias
            foreach (var mesh in meshes)
            {
                mesh.render();
            }

            PostRender();
        }
Exemple #5
0
        public override void Render()
        {
            PreRender();

            //Render piso
            piso.render();

            //Render de obstaculos
            foreach (var obstaculo in obstaculos)
            {
                obstaculo.render();
            }

            personaje.Transform = Matrix.Scaling(personaje.Scale)
                                  * Matrix.RotationYawPitchRoll(personaje.Rotation.Y, personaje.Rotation.X, personaje.Rotation.Z)
                                  * Matrix.Translation(personaje.Position);
            //Render personaje
            personaje.animateAndRender(ElapsedTime);

            PostRender();
        }
        public override void Render()
        {
            PreRender();

            //Si hacen clic con el mouse, ver si hay colision con el suelo
            if (Input.buttonPressed(TgcD3dInput.MouseButtons.BUTTON_LEFT))
            {
                //Actualizar Ray de colisión en base a posición del mouse
                pickingRay.updateRay();

                //Detectar colisión Ray-AABB
                if (TgcCollisionUtils.intersectRayAABB(pickingRay.Ray, suelo.BoundingBox, out newPosition))
                {
                    //Fijar nueva posición destino
                    applyMovement = true;

                    collisionPointMesh.Position = newPosition;
                    directionArrow.PEnd         = new Vector3(newPosition.X, 30f, newPosition.Z);

                    //Rotar modelo en base a la nueva dirección a la que apunta
                    var direction    = Vector3.Normalize(newPosition - mesh.Position);
                    var angle        = FastMath.Acos(Vector3.Dot(originalMeshRot, direction));
                    var axisRotation = Vector3.Cross(originalMeshRot, direction);
                    meshRotationMatrix = Matrix.RotationAxis(axisRotation, angle);
                }
            }

            var speed = (float)Modifiers["speed"];

            //Interporlar movimiento, si hay que mover
            if (applyMovement)
            {
                //Ver si queda algo de distancia para mover
                var posDiff       = newPosition - mesh.Position;
                var posDiffLength = posDiff.LengthSq();
                if (posDiffLength > float.Epsilon)
                {
                    //Movemos el mesh interpolando por la velocidad
                    var currentVelocity = speed * ElapsedTime;
                    posDiff.Normalize();
                    posDiff.Multiply(currentVelocity);

                    //Ajustar cuando llegamos al final del recorrido
                    var newPos = mesh.Position + posDiff;
                    if (posDiff.LengthSq() > posDiffLength)
                    {
                        newPos = newPosition;
                    }

                    //Actualizar flecha de movimiento
                    directionArrow.PStart = new Vector3(mesh.Position.X, 30f, mesh.Position.Z);
                    directionArrow.updateValues();

                    //Actualizar posicion del mesh
                    mesh.Position = newPos;

                    //Como desactivamos la transformacion automatica, tenemos que armar nosotros la matriz de transformacion
                    mesh.Transform = meshRotationMatrix * Matrix.Translation(mesh.Position);

                    //Actualizar camara
                    camaraInterna.Target = mesh.Position;
                }
                //Se acabo el movimiento
                else
                {
                    applyMovement = false;
                }
            }

            //Mostrar caja con lugar en el que se hizo click, solo si hay movimiento
            if (applyMovement)
            {
                collisionPointMesh.render();
                directionArrow.render();
            }

            suelo.render();
            mesh.render();

            PostRender();
        }
        public void Render()
        {
            foreach (TgcMesh mesh in this.getAllMeshes())
            {
                //rendereo solo lo que esta dentro del frustrum
                var c = TgcCollisionUtils.classifyFrustumAABB(this.env.Frustum, mesh.BoundingBox);
                if (c != TgcCollisionUtils.FrustumResult.OUTSIDE)
                {
                    mesh.render();
                }
            }

            //Renderizar suelo
            suelo.render();
            //calle.render();


            //Renderizar SkyBox
            skyBox.render();

            //Renderizar instancias
            //  foreach (var mesh in meshes)
            //        mesh.render();

            //Renderizar items
            int nroItem = 0;

            foreach (var item in items)
            {
                if (itemsTiempoInvisibilidad[nroItem] < 380)
                {
                    //posEncontrada = nroItem;
                    itemsTiempoInvisibilidad[nroItem] = itemsTiempoInvisibilidad[nroItem]++;
                }
                else
                {
                    if (item.Position.Y < 10)
                    {
                        item.move(0, 50, 0);
                    }
                }
                item.render();


                nroItem++;
            }

            //Renderizado de cordones
            foreach (var cordon in cordones)
            {
                cordon.render();
            }


            //Renderizado de veredas
            foreach (var v in veredas)
            {
                v.render();
            }


            //Renderizado de paredes
            foreach (var p in paredes)
            {
                p.render();
            }

            //Renderizado de calles
            foreach (var c in calles)
            {
                c.render();
            }

            /*   foreach (var vehiculo in vehiculos)
             *  {
             *      vehiculo.getMesh().render();
             *  }*/

            //mostrarBounding();
        }