/// <summary> /// Crea una caja con el centro y tamaño especificado, con la textura especificada /// </summary> /// <param name="center">Centro de la caja</param> /// <param name="size">Tamaño de la caja</param> /// <param name="texture">Textura de la caja</param> /// <returns>Caja creada</returns> public static TgcBox fromSize(Vector3 center, Vector3 size, TgcTexture texture) { TgcBox box = TgcBox.fromSize(center, size); box.setTexture(texture); return(box); }
/// <summary> /// Crea una caja en base al punto minimo y maximo, con el color especificado /// </summary> /// <param name="pMin">Punto mínimo</param> /// <param name="pMax">Punto máximo</param> /// <param name="texture">Textura de la caja</param> /// <returns>Caja creada</returns> public static TgcBox fromExtremes(Vector3 pMin, Vector3 pMax, TgcTexture texture) { TgcBox box = TgcBox.fromExtremes(pMin, pMax); box.setTexture(texture); return(box); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Crear loader TgcSceneLoader loader = new TgcSceneLoader(); //Cargar mesh TgcScene scene = loader.loadSceneFromFile(GuiController.Instance.ExamplesMediaDir + "ModelosTgc\\Olla\\Olla-TgcScene.xml"); mesh = scene.Meshes[0]; //Crear caja para indicar ubicacion de la luz lightMesh = TgcBox.fromSize(new Vector3(20, 20, 20), Color.Yellow); //Modifiers de la luz GuiController.Instance.Modifiers.addBoolean("lightEnable", "lightEnable", true); GuiController.Instance.Modifiers.addVertex3f("lightPos", new Vector3(-500, -500, -500), new Vector3(500, 800, 500), new Vector3(0, 500, 0)); GuiController.Instance.Modifiers.addColor("ambient", Color.Gray); GuiController.Instance.Modifiers.addColor("diffuse", Color.Blue); GuiController.Instance.Modifiers.addColor("specular", Color.White); GuiController.Instance.Modifiers.addFloat("specularEx", 0, 40, 20f); //Centrar camara rotacional respecto a este mesh GuiController.Instance.RotCamera.targetObject(mesh.BoundingBox); }
public EscenarioManager() { EscenarioManager.Instance = this; sonido = SoundManager.getInstance(); arboles = new List<TgcMesh>(); pasto = new List<TgcMesh>(); barriles = new List<Barril>(); loader = new TgcSceneLoader(); casillasPorEje = 50; divisionesPiso = new Vector3[2500]; _random = new Random(); piso = new TgcBox(); piso.UVTiling = new Vector2(300, 300); pisoSize = (int) tamanio; piso.setPositionSize(new Vector3(0, 0, 0), new Vector3(pisoSize*2, 0, pisoSize*2)); piso.updateValues(); piso.setTexture(TgcTexture.createTexture(GuiController.Instance.D3dDevice, GuiController.Instance.AlumnoEjemplosMediaDir + "\\RenderMan\\texturas\\nieve.png")); generarSkyBox(); colisionables = new List<TgcBoundingCylinder>(); limites = new TgcBoundingBox(new Vector3(-tamanio, 0, -tamanio), new Vector3(tamanio, 5000, tamanio)); GuiController.Instance.Modifiers.addInt("Viento en X", 0, 30, 5); GuiController.Instance.Modifiers.addInt("Viento en Z", 0, 30, 5); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Crear Sprite sprite = new TgcSprite(); sprite.Texture = TgcTexture.createTexture(GuiController.Instance.ExamplesMediaDir + "\\Texturas\\LogoTGC.png"); //Ubicarlo centrado en la pantalla Size screenSize = GuiController.Instance.Panel3d.Size; Size textureSize = sprite.Texture.Size; sprite.Position = new Vector2(FastMath.Max(screenSize.Width / 2 - textureSize.Width / 2, 0), FastMath.Max(screenSize.Height / 2 - textureSize.Height / 2, 0)); //Modifiers para variar parametros del sprite GuiController.Instance.Modifiers.addVertex2f("position", new Vector2(0, 0), new Vector2(screenSize.Width, screenSize.Height), sprite.Position); GuiController.Instance.Modifiers.addVertex2f("scaling", new Vector2(0, 0), new Vector2(4, 4), sprite.Scaling); GuiController.Instance.Modifiers.addFloat("rotation", 0, 360, 0); //Creamos un Box3D para que se vea como el Sprite es en 2D y se dibuja siempre arriba de la escena 3D box = TgcBox.fromSize(new Vector3(10, 10, 10), TgcTexture.createTexture(GuiController.Instance.ExamplesMediaDir + "\\Texturas\\pasto.jpg")); //Hacer que la camara se centre en el box3D GuiController.Instance.RotCamera.targetObject(box.BoundingBox); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Cargar escenario TgcSceneLoader loader = new TgcSceneLoader(); scene = loader.loadSceneFromFile(GuiController.Instance.ExamplesMediaDir + "MeshCreator\\Scenes\\Deposito\\Deposito-TgcScene.xml"); //Camara en 1ra persona GuiController.Instance.FpsCamera.Enable = true; GuiController.Instance.FpsCamera.MovementSpeed = 400f; GuiController.Instance.FpsCamera.JumpSpeed = 300f; GuiController.Instance.FpsCamera.setCamera(new Vector3(-20, 80, 450), new Vector3(0, 80, 1)); //Mesh para la luz lightMesh = TgcBox.fromSize(new Vector3(10, 10, 10), Color.Red); //Modifiers de la luz GuiController.Instance.Modifiers.addBoolean("lightEnable", "lightEnable", true); GuiController.Instance.Modifiers.addVertex3f("lightPos", new Vector3(-200, -100, -200), new Vector3(200, 200, 300), new Vector3(60, 35, 250)); GuiController.Instance.Modifiers.addColor("lightColor", Color.White); GuiController.Instance.Modifiers.addFloat("lightIntensity", 0, 150, 20); GuiController.Instance.Modifiers.addFloat("lightAttenuation", 0.1f, 2, 0.3f); GuiController.Instance.Modifiers.addFloat("specularEx", 0, 20, 9f); //Modifiers de material GuiController.Instance.Modifiers.addColor("mEmissive", Color.Black); GuiController.Instance.Modifiers.addColor("mAmbient", Color.White); GuiController.Instance.Modifiers.addColor("mDiffuse", Color.White); GuiController.Instance.Modifiers.addColor("mSpecular", Color.White); }
public bool isOver(Vector3 _position) { TgcBox marcaDePosicion = new TgcBox(); marcaDePosicion = TgcBox.fromSize(_position, new Vector3(10, 10, 10)); TgcCollisionUtils.BoxBoxResult result = TgcCollisionUtils.classifyBoxBox(this.BoundingBox, marcaDePosicion.BoundingBox); return result != TgcCollisionUtils.BoxBoxResult.Afuera; }
public override void init() { Microsoft.DirectX.Direct3D.Device d3dDevice = GuiController.Instance.D3dDevice; //Cuerpo principal que se controla con el teclado box = TgcBox.fromSize(new Vector3(0, 10, 0), new Vector3(10, 10, 10), Color.Blue); //triangulo triangle = new CustomVertex.PositionColored[3]; triangle[0] = new CustomVertex.PositionColored(-100, 0, 0, Color.Red.ToArgb()); triangle[1] = new CustomVertex.PositionColored(0, 0, 50, Color.Green.ToArgb()); triangle[2] = new CustomVertex.PositionColored(0, 100, 0, Color.Blue.ToArgb()); triagleAABB = TgcBoundingBox.computeFromPoints(new Vector3[] { triangle[0].Position, triangle[1].Position, triangle[2].Position }); //box2 box2 = TgcBox.fromSize(new Vector3(-50, 10, -20), new Vector3(15, 15, 15), Color.Violet); //sphere sphere = new TgcBoundingSphere(new Vector3(30, 20, -20), 15); //OBB: computar OBB a partir del AABB del mesh. TgcSceneLoader loader = new TgcSceneLoader(); TgcMesh meshObb = loader.loadSceneFromFile(GuiController.Instance.ExamplesMediaDir + "MeshCreator\\Meshes\\Vehiculos\\StarWars-ATST\\StarWars-ATST-TgcScene.xml").Meshes[0]; obb = TgcObb.computeFromAABB(meshObb.BoundingBox); meshObb.dispose(); obb.move(new Vector3(100, 0, 30)); obb.setRotation(new Vector3(0, FastMath.PI / 4, 0)); //Configurar camara en Tercer Persona GuiController.Instance.ThirdPersonCamera.Enable = true; GuiController.Instance.ThirdPersonCamera.setCamera(box.Position, 30, -75); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Crear Sprite animado animatedSprite = new TgcAnimatedSprite( GuiController.Instance.ExamplesMediaDir + "\\Texturas\\Sprites\\Explosion.png", //Textura de 256x256 new Size(64, 64), //Tamaño de un frame (64x64px en este caso) 16, //Cantidad de frames, (son 16 de 64x64px) 10 //Velocidad de animacion, en cuadros x segundo ); //Ubicarlo centrado en la pantalla Size screenSize = GuiController.Instance.Panel3d.Size; Size textureSize = animatedSprite.Sprite.Texture.Size; animatedSprite.Position = new Vector2(screenSize.Width / 2 - textureSize.Width / 2, screenSize.Height / 2 - textureSize.Height / 2); //Modifiers para variar parametros del sprite GuiController.Instance.Modifiers.addFloat("frameRate", 1, 30, 10); GuiController.Instance.Modifiers.addVertex2f("position", new Vector2(0, 0), new Vector2(screenSize.Width, screenSize.Height), animatedSprite.Position); GuiController.Instance.Modifiers.addVertex2f("scaling", new Vector2(0, 0), new Vector2(4, 4), animatedSprite.Scaling); GuiController.Instance.Modifiers.addFloat("rotation", 0, 360, 0); //Creamos un Box3D para que se vea como el Sprite es en 2D y se dibuja siempre arriba de la escena 3D box = TgcBox.fromSize(new Vector3(10, 10, 10), TgcTexture.createTexture(GuiController.Instance.ExamplesMediaDir + "\\Texturas\\pasto.jpg")); //Hacer que la camara se centre en el box3D GuiController.Instance.RotCamera.targetObject(box.BoundingBox); }
private void setWaterLevel(float _waterLevel) { Vector3 waterPosition = new Vector3(this.Position.X, this.Position.Y + _waterLevel, this.Position.Z); this.water = TgcBox.fromSize(waterPosition, new Vector3(this.getWidth() * this.ScaleXZ, 50 * this.ScaleY, this.getLength() * this.ScaleXZ), Color.LightSlateGray); this.water.AlphaBlendEnable = true; this.water.Color = Color.FromArgb(150, Color.Aqua); }
/// <summary> /// Crea una caja con el centro y tamaño especificado /// </summary> /// <param name="center">Centro de la caja</param> /// <param name="size">Tamaño de la caja</param> /// <returns>Caja creada</returns> public static TgcBox fromSize(Vector3 center, Vector3 size) { TgcBox box = new TgcBox(); box.setPositionSize(center, size); box.updateValues(); return box; }
public PrimitiveRenderer(EditablePoly editablePoly) { this.editablePoly = editablePoly; this.batchRenderer = new TrianglesBatchRenderer(); this.vertexBox = TgcBox.fromSize(new Vector3(1, 1, 1), Color.Blue); this.selectedVertexBox = TgcBox.fromSize(new Vector3(1, 1, 1), Color.Red); }
/// <summary> /// Crea una caja en base al punto minimo y maximo /// </summary> /// <param name="pMin">Punto mínimo</param> /// <param name="pMax">Punto máximo</param> /// <returns>Caja creada</returns> public static TgcBox fromExtremes(Vector3 pMin, Vector3 pMax) { Vector3 size = Vector3.Subtract(pMax, pMin); Vector3 midSize = Vector3.Scale(size, 0.5f); Vector3 center = pMin + midSize; return(TgcBox.fromSize(center, size)); }
/// <summary> /// Crea una caja en base al punto minimo y maximo, con el color especificado /// </summary> /// <param name="pMin">Punto mínimo</param> /// <param name="pMax">Punto máximo</param> /// <param name="color">Color de la caja</param> /// <returns>Caja creada</returns> public static TgcBox fromExtremes(Vector3 pMin, Vector3 pMax, Color color) { TgcBox box = TgcBox.fromExtremes(pMin, pMax); box.color = color; box.updateValues(); return(box); }
/// <summary> /// Crea una caja con el centro y tamaño especificado /// </summary> /// <param name="center">Centro de la caja</param> /// <param name="size">Tamaño de la caja</param> /// <returns>Caja creada</returns> public static TgcBox fromSize(Vector3 center, Vector3 size) { TgcBox box = new TgcBox(); box.setPositionSize(center, size); box.updateValues(); return(box); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; box = TgcBox.fromSize(new Vector3(0,0,0), new Vector3(20, 20, 20), Color.Red); GuiController.Instance.RotCamera.targetObject(box.BoundingBox); }
public BoxSelection(ITerrain _terrain, List<Character> _selectableCharacters) { this.selectableCharacters = _selectableCharacters; this.terrain = _terrain; this.selectionBox = TgcBox.fromSize(new Vector3(3, SELECTION_BOX_HEIGHT, 3), Color.Red); this.selectionBox.AlphaBlendEnable = true; this.selectionBox.Color = Color.FromArgb(110, Color.CadetBlue); }
public Recursos(float x, float z, float y, string textura, int check) { this.box = TgcBox.fromSize( new Vector3(x, y, z), //posicion new Vector3(50, 150, 150), //tamaño TgcTexture.createTexture(textura)); this.box.rotateX(Geometry.DegreeToRadian(45)); this.checkpoint = check; }
public ScaleGizmo(MeshCreatorControl control) : base(control) { selectedAxis = Axis.None; currentState = State.Init; boxX = TgcBox.fromExtremes(new Vector3(0, 0, 0), new Vector3(LARGE_AXIS_SIZE, SHORT_AXIS_SIZE, SHORT_AXIS_SIZE), Color.FromArgb(200, 50, 50)); boxY = TgcBox.fromExtremes(new Vector3(0, 0, 0), new Vector3(SHORT_AXIS_SIZE, LARGE_AXIS_SIZE, SHORT_AXIS_SIZE), Color.FromArgb(50, 200, 50)); boxZ = TgcBox.fromExtremes(new Vector3(0, 0, 0), new Vector3(SHORT_AXIS_SIZE, SHORT_AXIS_SIZE, LARGE_AXIS_SIZE), Color.FromArgb(50, 50, 200)); }
public Cuadro(Vector3 ubicacion, Vector3 tamanio) { Vector3 center = ubicacion; Vector3 size = tamanio; TgcTexture texture = TgcTexture.createTexture(GuiController.Instance.AlumnoEjemplosMediaDir + "Textures\\palermoFranchescoli.jpg"); box = TgcBox.fromSize(center, size); box.setTexture(texture); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Crear suelo TgcTexture pisoTexture = TgcTexture.createTexture(d3dDevice, GuiController.Instance.ExamplesMediaDir + "Texturas\\Quake\\TexturePack2\\rock_floor1.jpg"); suelo = TgcBox.fromSize(new Vector3(500, 0, 500), new Vector3(2000, 0, 2000), pisoTexture); //Cargar malla original TgcSkeletalLoader loader = new TgcSkeletalLoader(); string pathMesh = GuiController.Instance.ExamplesMediaDir + "SkeletalAnimations\\Robot\\Robot-TgcSkeletalMesh.xml"; string mediaPath = GuiController.Instance.ExamplesMediaDir + "SkeletalAnimations\\Robot\\"; original = loader.loadMeshFromFile(pathMesh, mediaPath); //Agregar animación a original loader.loadAnimationFromFile(original, mediaPath + "Patear-TgcSkeletalAnim.xml"); //Agregar attachment a original TgcSkeletalBoneAttach attachment = new TgcSkeletalBoneAttach(); TgcBox attachmentBox = TgcBox.fromSize(new Vector3(3, 60, 3), Color.Green); attachment.Mesh = attachmentBox.toMesh("attachment"); attachment.Bone = original.getBoneByName("Bip01 L Hand"); attachment.Offset = Matrix.Translation(10, -40, 0); attachment.updateValues(); original.Attachments.Add(attachment); //Crear 9 instancias mas de este modelo, pero sin volver a cargar el modelo entero cada vez float offset = 200; int cantInstancias = 4; instances = new List<TgcSkeletalMesh>(); for (int i = 0; i < cantInstancias; i++) { TgcSkeletalMesh instance = original.createMeshInstance(original.Name + i); instance.move(i * offset, 0, 0); instances.Add(instance); } //Especificar la animación actual para todos los modelos original.playAnimation("Patear"); foreach (TgcSkeletalMesh instance in instances) { instance.playAnimation("Patear"); } //Camara en primera persona GuiController.Instance.FpsCamera.Enable = true; GuiController.Instance.FpsCamera.MovementSpeed = 400; GuiController.Instance.FpsCamera.JumpSpeed = 400; GuiController.Instance.FpsCamera.setCamera(new Vector3(293.201f, 291.0797f, -604.6647f), new Vector3(299.1028f, -63.9185f, 330.1836f)); }
/// <summary> /// Iniciar la creacion /// </summary> public override void initCreation(Vector3 gridPoint) { initSelectionPoint = gridPoint; currentCreatingState = CreatingBoxState.DraggingSize; //Crear caja inicial TgcTexture boxTexture = TgcTexture.createTexture(Control.getCreationTexturePath()); mesh = TgcBox.fromExtremes(initSelectionPoint, initSelectionPoint, boxTexture); mesh.BoundingBox.setRenderColor(MeshCreatorUtils.UNSELECTED_OBJECT_COLOR); this.Layer = Control.CurrentLayer; }
private List<Character> getCharactersInBox(TgcBox _selectionBox) { List<Character> ret = new List<Character>(); Vector3 n; //useless foreach (Character ch in this.selectableCharacters) if (ch.BoundingCylinder.thereIsCollisionCyBB(_selectionBox.BoundingBox, out n)) ret.Add(ch); return ret; }
public TerrainBrush() { SoundEnabled = true; text = new TgcText2d(); text.Align = TgcText2d.TextAlign.RIGHT; text.changeFont(new System.Drawing.Font("Arial", 12, FontStyle.Bold)); bBrush = TgcBox.fromSize(new Vector3(10, 100, 10)); sound = new TgcStaticSound(); sound.loadSound(GuiController.Instance.ExamplesMediaDir + "Sound\\tierra.wav"); }
public TranslateGizmoMesh() { selectedAxis = Axis.None; boxX = TgcBox.fromExtremes(new Vector3(0, 0, 0), new Vector3(LARGE_AXIS_SIZE, SHORT_AXIS_SIZE, SHORT_AXIS_SIZE), Color.Red); boxY = TgcBox.fromExtremes(new Vector3(0, 0, 0), new Vector3(SHORT_AXIS_SIZE, LARGE_AXIS_SIZE, SHORT_AXIS_SIZE), Color.Green); boxZ = TgcBox.fromExtremes(new Vector3(0, 0, 0), new Vector3(SHORT_AXIS_SIZE, SHORT_AXIS_SIZE, LARGE_AXIS_SIZE), Color.Blue); boxXZ = TgcBox.fromExtremes(new Vector3(0, 0, 0), new Vector3(INTERMEDIATE_AXIS_SIZE, SHORT_AXIS_SIZE, INTERMEDIATE_AXIS_SIZE), Color.Orange); boxXY = TgcBox.fromExtremes(new Vector3(0, 0, 0), new Vector3(INTERMEDIATE_AXIS_SIZE, INTERMEDIATE_AXIS_SIZE, SHORT_AXIS_SIZE), Color.Orange); boxYZ = TgcBox.fromExtremes(new Vector3(0, 0, 0), new Vector3(SHORT_AXIS_SIZE, INTERMEDIATE_AXIS_SIZE, INTERMEDIATE_AXIS_SIZE), Color.Orange); }
public Wall(Vector3 position, Vector3 size){ TgcTexture textura = TgcTexture.createTexture(TEXTURE_PATH); box = TgcBox.fromSize(position+new Vector3(0, size.Y/2,0), size, textura); box.UVTiling = new Vector2(size.X / textura.Width*3, size.Y / textura.Height*3); box.updateValues(); this.position = position; radius = box.BoundingBox.calculateBoxRadius(); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Creamos una caja 3D con textura Vector3 center = new Vector3(0, -3, 0); Vector3 size = new Vector3(5, 5, 5); TgcTexture texture = TgcTexture.createTexture(GuiController.Instance.ExamplesMediaDir + "MeshCreator\\Textures\\Metal\\cajaMetal.jpg"); box = TgcBox.fromSize(center, size, texture); GuiController.Instance.RotCamera.targetObject(box.BoundingBox); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Cargar mesh con animaciones TgcSkeletalLoader skeletalLoader = new TgcSkeletalLoader(); mesh = skeletalLoader.loadMeshAndAnimationsFromFile( GuiController.Instance.ExamplesMediaDir + "SkeletalAnimations\\BasicHuman\\" + "BasicHuman-TgcSkeletalMesh.xml", new string[] { GuiController.Instance.ExamplesMediaDir + "SkeletalAnimations\\BasicHuman\\Animations\\" + "Walk-TgcSkeletalAnim.xml", GuiController.Instance.ExamplesMediaDir + "SkeletalAnimations\\BasicHuman\\Animations\\" + "StandBy-TgcSkeletalAnim.xml", GuiController.Instance.ExamplesMediaDir + "SkeletalAnimations\\BasicHuman\\Animations\\" + "Jump-TgcSkeletalAnim.xml" }); //Configurar animacion inicial mesh.playAnimation("Walk", true); //Camara en 1ra persona GuiController.Instance.FpsCamera.Enable = true; GuiController.Instance.FpsCamera.MovementSpeed = 400f; GuiController.Instance.FpsCamera.JumpSpeed = 300f; GuiController.Instance.FpsCamera.setCamera(new Vector3(0, 20, -150), new Vector3(0, 20, 0)); //Mesh para la luz lightMesh = TgcBox.fromSize(new Vector3(10, 10, 10), Color.Red); //Modifiers de la luz GuiController.Instance.Modifiers.addBoolean("lightEnable", "lightEnable", true); GuiController.Instance.Modifiers.addVertex3f("lightPos", new Vector3(-200, -100, -200), new Vector3(200, 200, 300), new Vector3(0, 70, 0)); GuiController.Instance.Modifiers.addColor("lightColor", Color.White); GuiController.Instance.Modifiers.addFloat("lightIntensity", 0, 150, 20); GuiController.Instance.Modifiers.addFloat("lightAttenuation", 0.1f, 2, 0.3f); GuiController.Instance.Modifiers.addFloat("specularEx", 0, 20, 9f); //Modifiers de material GuiController.Instance.Modifiers.addColor("mEmissive", Color.Black); GuiController.Instance.Modifiers.addColor("mAmbient", Color.White); GuiController.Instance.Modifiers.addColor("mDiffuse", Color.White); GuiController.Instance.Modifiers.addColor("mSpecular", Color.White); /* //corregir normales int[] adj = new int[mesh.D3dMesh.NumberFaces * 3]; mesh.D3dMesh.GenerateAdjacency(0, adj); mesh.D3dMesh.ComputeNormals(adj); */ mesh.computeNormals(); }
public override void init() { Microsoft.DirectX.Direct3D.Device d3dDevice = GuiController.Instance.D3dDevice; TgcTexture texture = TgcTexture.createTexture(GuiController.Instance.ExamplesMediaDir + "MeshCreator\\Textures\\Metal\\floor1.jpg"); Vector3 center = new Vector3(0, 0, 0); Vector3 size = new Vector3(1f, 1f, 1f); box = TgcBox.fromSize(center, size, texture); box.AutoTransformEnable = false; box.Transform = Matrix.Identity; GuiController.Instance.RotCamera.targetObject(box.BoundingBox); GuiController.Instance.RotCamera.CameraCenter = GuiController.Instance.RotCamera.CameraCenter + new Vector3(0f, 1.5f, 0f); GuiController.Instance.RotCamera.CameraDistance = GuiController.Instance.RotCamera.CameraDistance+ 2.5f; }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Cargar suelo TgcTexture texture = TgcTexture.createTexture(d3dDevice, GuiController.Instance.ExamplesMediaDir + "Texturas\\granito.jpg"); suelo = TgcBox.fromSize(new Vector3(0, 0, 0), new Vector3(5000, 0.1f, 5000), texture); //Iniciarlizar PickingRay pickingRay = new TgcPickingRay(); //Cargar nave TgcSceneLoader loader = new TgcSceneLoader(); TgcScene scene = loader.loadSceneFromFile(GuiController.Instance.ExamplesMediaDir + "MeshCreator\\Meshes\\Vehiculos\\NaveEspacial\\NaveEspacial-TgcScene.xml"); mesh = scene.Meshes[0]; //Rotación original de la malla, hacia -Z originalMeshRot = new Vector3(0, 0, -1); //Manipulamos los movimientos del mesh a mano mesh.AutoTransformEnable = false; meshRotationMatrix = Matrix.Identity; newPosition = mesh.Position; applyMovement = false; //Crear caja para marcar en que lugar hubo colision collisionPointMesh = TgcBox.fromSize(new Vector3(3, 100, 3), Color.Red); //Flecha para marcar la dirección directionArrow = new TgcArrow(); directionArrow.Thickness = 5; directionArrow.HeadSize = new Vector2(10, 10); //Camara en tercera persona GuiController.Instance.ThirdPersonCamera.Enable = true; GuiController.Instance.ThirdPersonCamera.setCamera(mesh.Position, 800, 1500); GuiController.Instance.Modifiers.addFloat("speed", 1000, 5000, 2500); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Crear caja box = TgcBox.fromSize(new Vector3(100, 100, 100), TgcTexture.createTexture(d3dDevice, GuiController.Instance.ExamplesMediaDir + "Texturas\\pasto.jpg")); //Camara rotacional GuiController.Instance.RotCamera.targetObject(box.BoundingBox); //Modifiers para configurar valores de niebla GuiController.Instance.Modifiers.addBoolean("Enabled", "Enabled", true); GuiController.Instance.Modifiers.addFloat("startDistance", 1, 1000, 100); GuiController.Instance.Modifiers.addFloat("endDistance", 1, 1000, 500); GuiController.Instance.Modifiers.addFloat("density", 1, 10, 1); GuiController.Instance.Modifiers.addColor("color", Color.Gray); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; TgcTexture textureEuler = TgcTexture.createTexture(d3dDevice, GuiController.Instance.ExamplesMediaDir + "Texturas\\madera.jpg"); boxEuler = TgcBox.fromSize(new Vector3(-50, 0, 0), new Vector3(50, 50, 50), textureEuler); TgcTexture textureQuat = TgcTexture.createTexture(d3dDevice, GuiController.Instance.ExamplesMediaDir + "Texturas\\paredMuyRugosa.jpg"); boxQuaternion = TgcBox.fromSize(new Vector3(50, 0, 0), new Vector3(50, 50, 50), textureQuat); boxQuaternion.AutoTransformEnable = false; GuiController.Instance.Modifiers.addVertex3f("Rot-Euler", new Vector3(0, 0, 0), new Vector3(360, 360, 360), new Vector3(0, 0, 0)); GuiController.Instance.Modifiers.addVertex3f("Rot-Quaternion", new Vector3(0, 0, 0), new Vector3(360, 360, 360), new Vector3(0, 0, 0)); //Camara fija GuiController.Instance.RotCamera.Enable = false; GuiController.Instance.setCamera(new Vector3(0f, 1f, -160.2245f), new Vector3(0f, 1f, 839.7755f)); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; box = TgcBox.fromSize(new Vector3(300, 100, 150)); lastTexture = GuiController.Instance.ExamplesMediaDir + "Texturas\\Quake\\TexturePack2\\concrete1_4.jpg"; GuiController.Instance.Modifiers.addTexture("Texture", lastTexture); changeBoxTexure(d3dDevice, box, lastTexture); lastFiltering = "Linear"; GuiController.Instance.Modifiers.addInterval("Filtering", new string[] {"Nearest", "Linear", "Bilinear", "Anisotropic" }, 0); changeTextureFiltering(d3dDevice, lastFiltering); GuiController.Instance.FpsCamera.setCamera(new Vector3(-54.93998f, 2f, -1.118192f), new Vector3(-53.94024f, 1.969789f, -1.140801f)); GuiController.Instance.FpsCamera.MovementSpeed = 150f; GuiController.Instance.FpsCamera.Enable = true; }
/// <summary> /// Crear un nuevo TgcBox igual a este /// </summary> /// <returns>Box clonado</returns> public TgcBox clone() { TgcBox cloneBox = new TgcBox(); cloneBox.setPositionSize(this.translation, this.size); cloneBox.color = this.color; if (this.texture != null) { cloneBox.setTexture(this.texture.clone()); } cloneBox.autoTransformEnable = this.autoTransformEnable; cloneBox.transform = this.transform; cloneBox.rotation = this.rotation; cloneBox.alphaBlendEnable = this.alphaBlendEnable; cloneBox.uvOffset = this.uvOffset; cloneBox.uvTiling = this.uvTiling; cloneBox.updateValues(); return(cloneBox); }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Crear caja vacia box = new TgcBox(); currentTexture = null; //Modifiers para vararis sus parametros GuiController.Instance.Modifiers.addVertex3f("size", new Vector3(0, 0, 0), new Vector3(100, 100, 100), new Vector3(20, 20, 20)); GuiController.Instance.Modifiers.addVertex3f("position", new Vector3(-100, -100, -100), new Vector3(100, 100, 100), new Vector3(0, 0, 0)); GuiController.Instance.Modifiers.addVertex3f("rotation", new Vector3(-180, -180, -180), new Vector3(180, 180, 180), new Vector3(0, 0, 0)); GuiController.Instance.Modifiers.addTexture("texture", GuiController.Instance.ExamplesMediaDir + "\\Texturas\\madera.jpg"); GuiController.Instance.Modifiers.addVertex2f("offset", new Vector2(-0.5f, -0.5f), new Vector2(0.9f, 0.9f), new Vector2(0, 0)); GuiController.Instance.Modifiers.addVertex2f("tiling", new Vector2(0.1f, 0.1f), new Vector2(4, 4), new Vector2(1, 1)); GuiController.Instance.Modifiers.addColor("color", Color.White); GuiController.Instance.Modifiers.addBoolean("boundingBox", "BoundingBox", false); GuiController.Instance.RotCamera.CameraDistance = 50; }
public override void init() { Device d3dDevice = GuiController.Instance.D3dDevice; //Crear suelo TgcTexture pisoTexture = TgcTexture.createTexture(d3dDevice, GuiController.Instance.ExamplesMediaDir + "Texturas\\pasto.jpg"); suelo = TgcBox.fromSize(new Vector3(500, 0, 500), new Vector3(2000, 0, 2000), pisoTexture); //Cargar modelo de palmera original TgcSceneLoader loader = new TgcSceneLoader(); TgcScene scene = loader.loadSceneFromFile(GuiController.Instance.ExamplesMediaDir + "MeshCreator\\Meshes\\Vegetacion\\Palmera\\Palmera-TgcScene.xml"); palmeraOriginal = scene.Meshes[0]; //Crear varias instancias del modelo original, pero sin volver a cargar el modelo entero cada vez int rows = 5; int cols = 6; float offset = 200; meshes = new List<TgcMesh>(); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { //Crear instancia de modelo TgcMesh instance = palmeraOriginal.createMeshInstance( palmeraOriginal.Name + i + "_" + j ); //Desplazarlo instance.move(i * offset, 70, j * offset); instance.Scale = new Vector3(0.25f, 0.25f, 0.25f); meshes.Add(instance); } } //Camara en primera persona GuiController.Instance.FpsCamera.Enable = true; GuiController.Instance.FpsCamera.MovementSpeed = 400; GuiController.Instance.FpsCamera.JumpSpeed = 400; GuiController.Instance.FpsCamera.setCamera(new Vector3(61.8657f, 403.7024f, -527.558f), new Vector3(379.7143f, 12.9713f, 336.3295f)); }
/// <summary> /// Crea una caja con centro (0,0,0) y el tamaño especificado, con la textura especificada /// </summary> /// <param name="size">Tamaño de la caja</param> /// <param name="texture">Textura de la caja</param> /// <returns>Caja creada</returns> public static TgcBox fromSize(Vector3 size, TgcTexture texture) { return(TgcBox.fromSize(new Vector3(0, 0, 0), size, texture)); }
/// <summary> /// Crea una caja con centro (0,0,0) y el tamaño especificado, con el color especificado /// </summary> /// <param name="size">Tamaño de la caja</param> /// <param name="color">Color de la caja</param> /// <returns>Caja creada</returns> public static TgcBox fromSize(Vector3 size, Color color) { return(TgcBox.fromSize(new Vector3(0, 0, 0), size, color)); }