protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory, IContentManager contentManager) { base.LoadContent(GraphicInfo, factory, contentManager); { SimpleModel simpleModel = new SimpleModel(factory, "Model//cenario"); TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, Vector3.Zero, Matrix.Identity, Vector3.One, MaterialDescription.DefaultBepuMaterial()); ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); IObject obj = new IObject(fmaterial, simpleModel, tmesh); this.World.AddObject(obj); } { SimpleModel simpleModel = new SimpleModel(factory, "Model//uzi"); MobileMeshObject tmesh = new MobileMeshObject(simpleModel, new Vector3(100, 100, 10), Matrix.Identity, Vector3.One * 50, MaterialDescription.DefaultBepuMaterial(), BEPUphysics.CollisionShapes.MobileMeshSolidity.DoubleSided, 10); //TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, new Vector3(100, 100, 10), Matrix.Identity, Vector3.One * 50, MaterialDescription.DefaultBepuMaterial()); ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); IObject obj = new IObject(fmaterial, simpleModel, tmesh); this.World.AddObject(obj); } new LightThrowBepu(this.World, factory); this.World.CameraManager.AddCamera(new CameraFirstPerson(GraphicInfo)); }
protected override void LoadContent(GraphicInfo GraphicInfo, GraphicFactory factory, IContentManager contentManager) { BepuPhysicWorld.ApplyHighStabilitySettings(this.World.PhysicWorld as BepuPhysicWorld); base.LoadContent(GraphicInfo, factory, contentManager); { SimpleModel simpleModel = new SimpleModel(factory, "Model//cenario"); TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, Vector3.Zero, Matrix.Identity, Vector3.One, MaterialDescription.DefaultBepuMaterial()); ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); IObject obj = new IObject(fmaterial, simpleModel, tmesh); this.World.AddObject(obj); } { SimpleModel simpleModel = new SimpleModel(factory, "Model//uzi"); simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Green), TextureType.DIFFUSE); MobileMeshObject tmesh = new MobileMeshObject(simpleModel, new Vector3(100, 100, 10), Matrix.Identity, Vector3.One * 10, MaterialDescription.DefaultBepuMaterial(), BEPUphysics.CollisionShapes.MobileMeshSolidity.DoubleSided, 10); //TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, new Vector3(100, 100, 10), Matrix.Identity, Vector3.One * 50, MaterialDescription.DefaultBepuMaterial()); ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); IObject obj = new IObject(fmaterial, simpleModel, tmesh); this.World.AddObject(obj); shader.BasicEffect.EnableDefaultLighting(); } { SimpleModel simpleModel = new SimpleModel(factory, "Model//uzi"); simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Yellow), TextureType.DIFFUSE); MobileMeshObject tmesh = new MobileMeshObject(simpleModel, new Vector3(150, 100, 10), Matrix.Identity, Vector3.One * 20, MaterialDescription.DefaultBepuMaterial(), BEPUphysics.CollisionShapes.MobileMeshSolidity.DoubleSided, 10); //TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, new Vector3(100, 100, 10), Matrix.Identity, Vector3.One * 50, MaterialDescription.DefaultBepuMaterial()); ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); IObject obj = new IObject(fmaterial, simpleModel, tmesh); this.World.AddObject(obj); shader.BasicEffect.EnableDefaultLighting(); } { SimpleModel simpleModel = new SimpleModel(factory, "Model//uzi"); simpleModel.SetTexture(factory.CreateTexture2DColor(1, 1, Color.Red), TextureType.DIFFUSE); MobileMeshObject tmesh = new MobileMeshObject(simpleModel, new Vector3(200, 100, 10), Matrix.Identity, Vector3.One * 15, MaterialDescription.DefaultBepuMaterial(), BEPUphysics.CollisionShapes.MobileMeshSolidity.DoubleSided, 10); //TriangleMeshObject tmesh = new TriangleMeshObject(simpleModel, new Vector3(100, 100, 10), Matrix.Identity, Vector3.One * 50, MaterialDescription.DefaultBepuMaterial()); ForwardXNABasicShader shader = new ForwardXNABasicShader(ForwardXNABasicShaderDescription.Default()); ForwardMaterial fmaterial = new ForwardMaterial(shader); IObject obj = new IObject(fmaterial, simpleModel, tmesh); this.World.AddObject(obj); shader.BasicEffect.EnableDefaultLighting(); } this.World.CameraManager.AddCamera(new CameraFirstPerson(GraphicInfo)); }
/// <summary> /// Removes the object. /// </summary> /// <param name="obj">The obj.</param> public override void RemoveObject(IPhysicObject obj) { if (obj.PhysicObjectTypes == PhysicObjectTypes.TRIANGLEMESHOBJECT) { TriangleMeshObject bo = (TriangleMeshObject)obj; bo.StaticMesh.Tag = null; space.Remove(bo.StaticMesh); objs.Remove(obj); } else if (obj.PhysicObjectTypes == PhysicObjectTypes.InstancedTriangleMeshObject) { InstancedTriangleMeshObject bo = (InstancedTriangleMeshObject)obj; bo.InstancedMesh.Tag = null; space.Remove(bo.InstancedMesh); objs.Remove(obj); } else if (obj.PhysicObjectTypes == PhysicObjectTypes.MobilePhysicObject) { MobileMeshObject bo = (MobileMeshObject)obj; bo.MobileMesh.Tag = null; space.Remove(bo.MobileMesh); objs.Remove(obj); } else if (obj.PhysicObjectTypes == PhysicObjectTypes.SPECIALIZEDMOVER) { ObjectMover m = (ObjectMover)obj; space.Remove(m.BepuEntityObject.Entity); m.BepuEntityObject.Entity.CollisionInformation.Tag = null; space.Remove(m.Mover); space.Remove(m.Rotator); objs.Remove(m.BepuEntityObject); } else if (obj.PhysicObjectTypes == PhysicObjectTypes.DETECTOROBJECT) { DetectorVolumeObject m = (DetectorVolumeObject)obj; space.Remove(m.DetectorVolume); } else if (obj.PhysicObjectTypes == PhysicObjectTypes.TERRAIN) { TerrainObject t = obj as TerrainObject; space.Remove(t.Terrain); t.Terrain.Tag = null; objs.Remove(obj); } else if (obj.PhysicObjectTypes == PhysicObjectTypes.CHARACTEROBJECT) { CharacterObject cc = (CharacterObject)obj; cc.CharacterController.Body.CollisionInformation.Tag = null; space.Remove(cc.CharacterController); objs.Remove(obj); } else if (obj.PhysicObjectTypes == PhysicObjectTypes.FULLCHARACTEROBJECT) { FullCharacterObject cc = (FullCharacterObject)obj; cc.CharacterController.Body.CollisionInformation.Tag = null; space.Remove(cc.CharacterController); objs.Remove(obj); } else if (obj.PhysicObjectTypes == PhysicObjectTypes.SPHERECHARACTEROBJECT) { SphereCharacterObject cc = (SphereCharacterObject)obj; cc.CharacterController.Body.CollisionInformation.Tag = null; space.Remove(cc.CharacterController); objs.Remove(obj); } else if (obj.PhysicObjectTypes == PhysicObjectTypes.GHOST) { //if (obj is AgregatedPhysicObject) //{ // objs.Remove(obj); // AgregatedPhysicObject ag = obj as AgregatedPhysicObject; // foreach (var item in ag.PhysicsObjects) // { // item.ObjectOwner = null; // this.RemoveObject(item); // } //} //else //{ objs.Remove(obj); //} } else { BepuEntityObject bo = (BepuEntityObject)obj; bo.Entity.CollisionInformation.Tag = null; space.Remove(bo.Entity); objs.Remove(obj); } }