/// <summary> /// Removes an object from the world. /// </summary> /// <param name="obj">The obj.</param> public virtual void RemoveObject(IObject obj) { if (obj == null) { ActiveLogger.LogMessage("Cant remove a null obj", LogLevel.RecoverableError); return; } obj.RemoveThisObject(); EntityMapper.getInstance().RemoveEntity(obj); PhysicWorld.RemoveObject(obj.PhysicObject); bool resp = Objects.Remove(obj); if (!resp) { ActiveLogger.LogMessage("Cant remove (not found) obj: " + obj.Name, LogLevel.RecoverableError); } Culler.onObjectRemoved(obj); }
/// <summary> /// Adds an object to the world. /// </summary> /// <param name="obj">The obj.</param> /// <param name="InitMaterial">if set to <c>true</c> [init material].</param> public virtual void AddObject(IObject obj, bool InitMaterial = true) { if (obj == null) { ActiveLogger.LogMessage("Cant add null obj", LogLevel.RecoverableError); return; } EntityMapper.getInstance().AddEntity(obj); PhysicWorld.AddObject(obj.PhysicObject); obj.PhysicObject.ObjectOwner = obj; Objects.Add(obj); if (InitMaterial) { obj.Material.Initialization(graphicsInfo, graphicFactory, obj); } Culler.onObjectAdded(obj); obj.FireOnBeingAdd(this); obj.afterAddedToTheWorld(); }