Beispiel #1
0
        /// <summary>
        /// Crea una tribuna desde un mesh, pero por como esta creada se necesita acomodarla en la cancha y escalarla
        /// </summary>
        /// <param name="pathMesh"> ruta donde esta el mesh de la tribuna </param>
        /// <param name="position"> donde la tengo que ubicar a la tribuna</param>
        /// <param name="rotateY"> como la tengo que rotar para que quede en la horientacion correcta </param>
        /// <param name="scale"> factor de escalado para que quede armonica a la cancha </param>
        /// <returns></returns>
        private TgcMesh CrearTribuna(string pathMesh, float rotateY, Vector3 scale)
        {
            TgcMesh tribuna = new TgcSceneLoader().loadSceneFromFile(pathMesh).Meshes[0];

            tribuna.rotateY(rotateY);
            tribuna.Scale = scale;
            return(tribuna);
        }
Beispiel #2
0
        private Luz CrearLuz(string pathRecursos, TgcBox cancha, int signoX, int signoZ, float rotateY)
        {
            TgcMesh luzMesh = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFilePoste).Meshes[0];

            //TODO cambiar por matrices
            luzMesh.AutoTransformEnable = true;
            luzMesh.rotateY(rotateY);
            luzMesh.Scale    = new Vector3(3, 4, 3);
            luzMesh.Position = new Vector3(signoX * (cancha.Size.X / 2 + 50), cancha.Position.Y + luzMesh.BoundingBox.PMax.Y, signoZ * (cancha.Size.Z / 2 + 100));
            Luz luz = new Luz(luzMesh, Color.White, luzMesh.BoundingBox.PMax);

            return(luz);
        }
Beispiel #3
0
        /// <summary>
        /// Creo un arco
        /// </summary>
        /// <param name="posicion">Donde va a estar ubicado el Arco</param>
        /// <param name="pathRecursos">De donde sacar el mesh</param>
        /// <returns> Un arco</returns>
        private Arco CrearArco(string pathRecursos, Cancha cancha, int direccion)
        {
            Vector3 posicion = new Vector3(direccion * (cancha.Position.X + cancha.Size.X / 2 - 100), cancha.Position.Y, cancha.Position.Z);

            List <Palo> palos = new List <Palo>();
            TgcMesh     palo1 = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFileGoal).Meshes[0];

            //TODO cambiar por matrices
            palo1.AutoTransformEnable = true;
            palo1.Position            = posicion;
            palo1.Scale = new Vector3(0.8f, 0.8f, 0.8f);

            TgcMesh palo2 = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFileGoal).Meshes[1];

            //TODO cambiar por matrices
            palo2.AutoTransformEnable = true;
            palo2.Position            = posicion;
            palo2.Scale = new Vector3(0.8f, 0.8f, 0.8f);

            TgcMesh palo3 = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFileGoal).Meshes[2];

            //TODO cambiar por matrices
            palo3.AutoTransformEnable = true;
            palo3.Position            = posicion;
            palo3.Scale = new Vector3(0.8f, 0.8f, 0.8f);

            palos.Add(new Palo(palo1));
            palos.Add(new Palo(palo2));
            palos.Add(new Palo(palo3));

            Vector3 posicionRed = new Vector3(posicion.X, posicion.Y + palo3.BoundingBox.PMin.Y / 2, posicion.Z);
            Vector3 tamanoRed   = new Vector3(0, palo3.BoundingBox.PMin.Y, palo3.BoundingBox.PMax.Z * 2 - 14);

            TgcMesh red = new TgcSceneLoader().loadSceneFromFile(pathRecursos + "Arco\\Red-TgcScene.xml").Meshes[0];

            //TODO cambiar por matrices
            red.AutoTransformEnable = true;
            red.Position            = posicionRed + new Vector3(direccion * 65, 0, 0);
            //TODO esto significa que los arcos no son correctos... porque no escalo igual
            red.Scale            = new Vector3(3f, 3f, 2f);
            red.AlphaBlendEnable = true;

            //Roto uno de los 2 ya que uso el mismo mesh
            if (direccion == -1)
            {
                red.rotateY(FastMath.PI);
            }

            return(new Arco(palos, new Red(TgcBox.fromSize(posicionRed, tamanoRed), red)));
        }
 /// <summary> 
 /// Crea una tribuna desde un mesh, pero por como esta creada se necesita acomodarla en la cancha y escalarla 
 /// </summary>
 /// <param name="pathMesh"> ruta donde esta el mesh de la tribuna </param>
 /// <param name="position"> donde la tengo que ubicar a la tribuna</param>
 /// <param name="rotateY"> como la tengo que rotar para que quede en la horientacion correcta </param>
 /// <param name="scale"> factor de escalado para que quede armonica a la cancha </param>
 /// <returns></returns>
 private TgcMesh CrearTribuna(string pathMesh, float rotateY, Vector3 scale)
 {
     TgcMesh tribuna = new TgcSceneLoader().loadSceneFromFile(pathMesh).Meshes[0];
     tribuna.rotateY(rotateY);
     tribuna.Scale = scale;
     return tribuna;
 }
 private Luz CrearLuz(string pathRecursos, TgcBox cancha, int signoX, int signoZ, float rotateY)
 {
     TgcMesh luzMesh = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFilePoste).Meshes[0];
     //TODO cambiar por matrices
     luzMesh.AutoTransformEnable = true;
     luzMesh.rotateY(rotateY);
     luzMesh.Scale = new Vector3(3, 4, 3);
     luzMesh.Position = new Vector3(signoX * (cancha.Size.X / 2 + 50), cancha.Position.Y + luzMesh.BoundingBox.PMax.Y, signoZ * (cancha.Size.Z / 2 + 100));
     Luz luz = new Luz(luzMesh, Color.White, luzMesh.BoundingBox.PMax);
     return luz;
 }
        /// <summary>
        /// Creo un arco
        /// </summary>
        /// <param name="posicion">Donde va a estar ubicado el Arco</param>
        /// <param name="pathRecursos">De donde sacar el mesh</param>
        /// <returns> Un arco</returns>
        private Arco CrearArco(string pathRecursos, Cancha cancha, int direccion)
        {
            Vector3 posicion = new Vector3(direccion * (cancha.Position.X + cancha.Size.X / 2 - 100), cancha.Position.Y, cancha.Position.Z);

            List<Palo> palos = new List<Palo>();
            TgcMesh palo1 = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFileGoal).Meshes[0];
            //TODO cambiar por matrices
            palo1.AutoTransformEnable = true;
            palo1.Position = posicion;
            palo1.Scale = new Vector3(0.8f, 0.8f, 0.8f);

            TgcMesh palo2 = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFileGoal).Meshes[1];
            //TODO cambiar por matrices
            palo2.AutoTransformEnable = true;
            palo2.Position = posicion;
            palo2.Scale = new Vector3(0.8f, 0.8f, 0.8f);

            TgcMesh palo3 = new TgcSceneLoader().loadSceneFromFile(pathRecursos + Settings.Default.meshFileGoal).Meshes[2];
            //TODO cambiar por matrices
            palo3.AutoTransformEnable = true;
            palo3.Position = posicion;
            palo3.Scale = new Vector3(0.8f, 0.8f, 0.8f);

            palos.Add(new Palo(palo1));
            palos.Add(new Palo(palo2));
            palos.Add(new Palo(palo3));

            Vector3 posicionRed = new Vector3(posicion.X, posicion.Y + palo3.BoundingBox.PMin.Y / 2, posicion.Z);
            Vector3 tamanoRed = new Vector3(0, palo3.BoundingBox.PMin.Y, palo3.BoundingBox.PMax.Z * 2 - 14);

            TgcMesh red = new TgcSceneLoader().loadSceneFromFile(pathRecursos + "Arco\\Red-TgcScene.xml").Meshes[0];
            //TODO cambiar por matrices
            red.AutoTransformEnable = true;
            red.Position = posicionRed + new Vector3(direccion * 65, 0, 0);
            //TODO esto significa que los arcos no son correctos... porque no escalo igual
            red.Scale = new Vector3(3f, 3f, 2f);
            red.AlphaBlendEnable = true;

            //Roto uno de los 2 ya que uso el mismo mesh
            if (direccion == -1)
            {
                red.rotateY(FastMath.PI);
            }

            return new Arco(palos, new Red(TgcBox.fromSize(posicionRed, tamanoRed), red));
        }