public override TgcMesh createMeshToExport() { mesh.Name = this.Name; mesh.Layer = this.Layer; mesh.UserProperties = this.UserProperties; TgcMesh cloneMesh = mesh.clone(mesh.Name); return(cloneMesh); }
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)); }
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); }
/// <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); }