public void mousebuttontesteRight(MouseState ms) { PointLightPE pl = new PointLightPE(_mundo.CameraManager.ActiveCamera.Position, StaticRandom.RandomColor(), 100, 5); pl.UsePointLightQuadraticAttenuation = true; _mundo.AddLight(pl); }
public void LoadWorld(GraphicFactory factory, GraphicInfo ginfo, IWorld world, ModelLoaderData worldData) { objinfos.Clear(); foreach (var item in worldData.ModelMeshesInfo) { if (objinfos.ContainsKey(item.modelName + item.meshIndex)) { objinfos[item.modelName + item.meshIndex].Add(item); } else { objinfos[item.modelName + item.meshIndex] = new List <ObjectInformation>(); objinfos[item.modelName + item.meshIndex].Add(item); } } foreach (var item in objinfos.Keys) { if (OnCreateIObject != null) { IObject[] obj = OnCreateIObject(world, factory, ginfo, objinfos[item].ToArray()); if (obj != null) { foreach (var ob in obj) { world.AddObject(ob); } } } else { foreach (var obj in WorldLoader.CreateOBJ(world, factory, ginfo, objinfos[item].ToArray())) { world.AddObject(obj); } } } foreach (var item in worldData.ConstraintInfo) { List <IObject> obb = world.Objects.ToList(); IObject o1 = obb.First(delegate(IObject o) { return(o.Name == item.bodyA); }); IObject o2 = obb.First(delegate(IObject o) { return(o.Name == item.bodyB); }); if (o1.PhysicObject.PhysicObjectTypes != PhysicObjectTypes.TRIANGLEMESHOBJECT && o2.PhysicObject.PhysicObjectTypes != PhysicObjectTypes.TRIANGLEMESHOBJECT) { if (OnCreateIConstraint != null) { IPhysicConstraint constr = OnCreateIConstraint(world, factory, ginfo, item, o1, o2); if (constr != null) { world.PhysicWorld.AddConstraint(constr); } } else { IPhysicConstraint constr = WorldLoader.CreateConstraint(world, factory, ginfo, item, o1, o2); world.PhysicWorld.AddConstraint(constr); } } } foreach (var item in worldData.LightsInfo) { if (OnCreateILight != null) { ILight l = OnCreateILight(world, factory, ginfo, item); if (l != null) { world.AddLight(l); } } else { world.AddLight(item); } } foreach (var item in worldData.CameraInfo) { if (OnCreateICamera != null) { ICamera cam = OnCreateICamera(world, factory, ginfo, item); if (cam != null) { world.CameraManager.AddCamera(cam); } } else { world.CameraManager.AddCamera(WorldLoader.CreateCamera(world, factory, ginfo, item)); } } foreach (var item in worldData.DummyInfo) { if (OnProcessDummies != null) { OnProcessDummies(world, item); } } foreach (var item in worldData.ParticleInfo) { if (OnCreateIParticle != null) { IParticleSystem part = OnCreateIParticle(world, item); if (part != null) { world.ParticleManager.AddAndInitializeParticleSystem(part); (part as DPFSParticleSystem).IDPSFParticleSystem.Emitter.PositionData.Position = item.Position; (part as DPFSParticleSystem).IDPSFParticleSystem.Emitter.OrientationData.Orientation = item.Orientation; } } } }
protected void AddToWorld(ILight obj) { world.AddLight(obj); }
public void LoadWorld(GraphicFactory factory, GraphicInfo ginfo, IWorld world, ModelLoaderData worldData) { objinfos.Clear(); foreach (var item in worldData.ModelMeshesInfo) { if(objinfos.ContainsKey(item.modelName + item.meshIndex)) { objinfos[item.modelName + item.meshIndex].Add(item); } else { objinfos[item.modelName + item.meshIndex] = new List<ObjectInformation>(); objinfos[item.modelName + item.meshIndex].Add(item); } } foreach (var item in objinfos.Keys) { if (OnCreateIObject != null) { IObject[] obj = OnCreateIObject(world, factory, ginfo, objinfos[item].ToArray()); if (obj != null) { foreach (var ob in obj) { world.AddObject(ob); } } } else { foreach (var obj in WorldLoader.CreateOBJ(world, factory, ginfo, objinfos[item].ToArray())) { world.AddObject(obj); } } } foreach (var item in worldData.ConstraintInfo) { List<IObject> obb = world.Objects.ToList(); IObject o1 = obb.First(delegate(IObject o) { return o.Name == item.bodyA; }); IObject o2 = obb.First(delegate(IObject o) { return o.Name == item.bodyB; }); if (o1.PhysicObject.PhysicObjectTypes != PhysicObjectTypes.TRIANGLEMESHOBJECT && o2.PhysicObject.PhysicObjectTypes != PhysicObjectTypes.TRIANGLEMESHOBJECT) { if (OnCreateIConstraint != null) { IPhysicConstraint constr = OnCreateIConstraint(world, factory, ginfo, item, o1, o2); if (constr != null) world.PhysicWorld.AddConstraint(constr); } else { IPhysicConstraint constr = WorldLoader.CreateConstraint(world, factory, ginfo, item, o1, o2); world.PhysicWorld.AddConstraint(constr); } } } foreach (var item in worldData.LightsInfo) { if (OnCreateILight != null) { ILight l = OnCreateILight(world, factory, ginfo, item); if (l != null) world.AddLight(l); } else { world.AddLight(item); } } foreach (var item in worldData.CameraInfo) { if (OnCreateICamera != null) { ICamera cam = OnCreateICamera(world, factory, ginfo, item); if (cam != null) world.CameraManager.AddCamera(cam); } else { world.CameraManager.AddCamera(WorldLoader.CreateCamera(world, factory, ginfo, item)); } } foreach (var item in worldData.DummyInfo) { if (OnProcessDummies != null) OnProcessDummies(world, item); } foreach (var item in worldData.ParticleInfo) { if (OnCreateIParticle != null) { IParticleSystem part = OnCreateIParticle(world, item); if (part != null) { world.ParticleManager.AddAndInitializeParticleSystem(part); (part as DPFSParticleSystem).IDPSFParticleSystem.Emitter.PositionData.Position = item.Position; (part as DPFSParticleSystem).IDPSFParticleSystem.Emitter.OrientationData.Orientation = item.Orientation; } } } }