void Event::setMarkedForDeletion() { if(!getMarkedForDeletion()) { m_flags |= Flag::MARKED_FOR_DELETION; m_manager->increaseMarkedForDeletion(); } }
//============================================================================== void SceneNode::setMarkedForDeletion() { // Mark for deletion only when it's not already marked because we don't // want to increase the counter again if(!getMarkedForDeletion()) { m_flags.set(Flag::MARKED_FOR_DELETION); m_scene->increaseObjectsMarkedForDeletion(); } Error err = visitChildren([](SceneNode& obj) -> Error { obj.setMarkedForDeletion(); return ErrorCode::NONE; }); (void)err; }