//---------------------------------------------------------------------------- // ObjectAddDeleteURDo //---------------------------------------------------------------------------- ObjectAddDeleteURDo::ObjectAddDeleteURDo(bool isAdd, PX2::Object *object) { mIsAdd = isAdd; mObject = object; Movable *mov = DynamicCast<Movable>(mObject); if (mov) { mParent = mov->GetParent(); } Controller *ctrl = DynamicCast<Controller>(mObject); if (ctrl) { mParent = ctrl->GetControlledable(); } Controller *comp = DynamicCast<Controller>(mObject); if (comp) { mParent = comp->GetControlledable(); } }
//---------------------------------------------------------------------------- bool EditMap::RemoveCtrl (PX2::Object *obj) { if (!Project::GetSingletonPtr()) return false; Controller *ctrl = DynamicCast<Controller>(obj); if (!ctrl) return false; Controlledable *ctrlAble = ctrl->GetControlledable(); if (ctrlAble) { ctrlAble->DetachController(ctrl); Event *ent = EditorEventSpace::CreateEventX(EditorEventSpace::DetachControl); ent->SetData<Object*>(obj); EventWorld::GetSingleton().BroadcastingLocalEvent(ent); return true; } return false; }