Beispiel #1
0
        public override TgcMesh createMeshToExport()
        {
            mesh.Name           = this.Name;
            mesh.Layer          = this.Layer;
            mesh.UserProperties = this.UserProperties;

            TgcMesh cloneMesh = mesh.clone(mesh.Name);

            return(cloneMesh);
        }
Beispiel #2
0
        private void CreateWheels()
        {
            TgcSceneLoader loader                = new TgcSceneLoader();
            TgcMesh        ruedaIzquierda        = loader.loadSceneFromFile(GlobalConcepts.GetInstance().GetMediaDir() + "meshCreator\\meshes\\Vehiculos\\Camioneta\\Rueda\\Rueda-TgcScene.xml").Meshes[0];
            TgcMesh        ruedaDerecha          = ruedaIzquierda.clone("ruedaDerecha");
            TgcMesh        ruedaTraseraIzquierda = ruedaIzquierda.clone("ruedaTraseraIzquierda");
            TgcMesh        ruedaTraseraDerecha   = ruedaIzquierda.clone("ruedaTraseraDerecha");

            delanteraIzquierda = new Wheel(ruedaIzquierda, new TGCVector3(35f, 15f, 63f));
            delanteraDerecha   = new Wheel(ruedaDerecha, new TGCVector3(-35f, 15f, 63f));
            ruedas.Add(new Wheel(ruedaTraseraIzquierda, new TGCVector3(38f, 18f, -61f)));
            ruedas.Add(new Wheel(ruedaTraseraDerecha, new TGCVector3(-34f, 18f, -61f)));
        }
        private void CreateWheels()
        {
            TgcSceneLoader loader                = new TgcSceneLoader();
            TgcMesh        ruedaIzquierda        = loader.loadSceneFromFile(GlobalConcepts.GetInstance().GetMediaDir() + "meshCreator\\meshes\\Vehiculos\\Camioneta\\Rueda\\Rueda-TgcScene.xml").Meshes[0];
            TgcMesh        ruedaDerecha          = ruedaIzquierda.clone("ruedaDerecha");
            TgcMesh        ruedaTraseraIzquierda = ruedaIzquierda.clone("ruedaTraseraIzquierda");
            TgcMesh        ruedaTraseraDerecha   = ruedaIzquierda.clone("ruedaTraseraDerecha");
            var            wheelScale            = TGCVector3.One * 0.48f;

            delanteraIzquierda = new Wheel(ruedaIzquierda, new TGCVector3(23.5f, 7.6f, 30f), wheelScale);
            delanteraDerecha   = new Wheel(ruedaDerecha, new TGCVector3(-23.5f, 7.6f, 30f), wheelScale);
            ruedas.Add(new Wheel(ruedaTraseraIzquierda, new TGCVector3(23f, 7.2f, -33f), wheelScale));
            ruedas.Add(new Wheel(ruedaTraseraDerecha, new TGCVector3(-23f, 7.2f, -33f), wheelScale));
        }
Beispiel #4
0
        public Vida(TgcMesh vidaModel, TGCVector3 newPosition)
        {
            tgcBotHead          = vidaModel.clone("vida");
            tgcBotHead.Position = newPosition;
            tgcBotHead.Scale    = new TGCVector3(0.15f, 0.15f, 0.15f);
            tgcBotHead.UpdateMeshTransform();

            liveQuantity = 0;
            LiveTaked    = false;
        }
        private TGCVector3 PlaceSceneLine(TgcScene escena, TGCVector3 posicion, TGCVector3 escalador,
                                          int repeticiones, int mesh_pivot, float distancia_extra, TGCVector3 rotacion, bool shader,
                                          bool escenaBomba, bool escenaBombaRotada)//agrega la scene al render
        //la rotacion es muy limitada solo queda bien en pi/2 o pi y aun asi solo en ciertos casos, estoy trabajando en un nuevo metodo
        //el mesh pivot es para elegir cual de las meshes es el que va a usar de separador
        {
            List <ListaMeshPosicionada> todas_escenas = new List <ListaMeshPosicionada>();//tengo que devolverlos como list de list ya que tgcscene no soporta que le agregue meshes

            for (int i = 0; i < repeticiones; i++)
            {
                todas_escenas.Add(new ListaMeshPosicionada());
                TGCVector3 nuevaPosicion = posicion;

                for (int j = 0; j < escena.Meshes.Count; j++)
                {
                    TgcMesh mesh        = escena.Meshes[j];
                    TgcMesh meshClonado = mesh.clone(mesh.Name);

                    todas_escenas[i].lista.Add(meshClonado);
                    meshClonado.AutoTransformEnable = false;
                    TGCMatrix matrizRotacion = TGCMatrix.RotationYawPitchRoll(rotacion.Y, rotacion.X, rotacion.Z);
                    TGCMatrix matrizPosicion = TGCMatrix.Translation(posicion);
                    meshClonado.Transform = TGCMatrix.Scaling(escalador) * matrizRotacion * matrizPosicion;
                    if (j == mesh_pivot)
                    {
                        todas_escenas[i].posicion = posicion;
                        nuevaPosicion             = new TGCVector3(posicion.X, posicion.Y,
                                                                   posicion.Z - meshClonado.BoundingBox.calculateSize().Z *escalador.Z - distancia_extra);
                    }
                }
                if (escenaBomba)
                {
                    CollisionObjectsPrincipales(posicion.Z, escenaBombaRotada);
                }
                posicion = nuevaPosicion;
            }
            //Shader
            if (shader)
            {
                AddListListMeshToMainShadow(todas_escenas);
            }
            else
            {
                AddListListMeshToMain(todas_escenas);
            }

            return(posicion);
        }
Beispiel #6
0
 /// <summary>
 ///     Creacion de la caja a partir de una posicion y la ruta de una textura
 /// </summary>
 /// <param name="position"></param>
 /// <param name="texturePath"></param>
 public Caja(TGCVector3 position, TgcMesh boxMesh)
 {
     Box           = boxMesh.clone("boxClone");
     Box.Position  = position;
     Box.Transform = TGCMatrix.Translation(Box.Position);
 }