| 174 | } |
| 175 | |
| 176 | std::expected<void, std::string> clear_scene_from_python() { |
| 177 | if (auto* const viewer = lfs::python::get_visualizer()) { |
| 178 | return post_clear_scene_to_viewer(*viewer); |
| 179 | } |
| 180 | |
| 181 | auto* const scene_manager = lfs::python::get_scene_manager(); |
| 182 | if (!scene_manager) { |
| 183 | return std::unexpected("No scene manager available"); |
| 184 | } |
| 185 | |
| 186 | if (scene_manager->clear()) { |
| 187 | return {}; |
| 188 | } |
| 189 | |
| 190 | if (auto* const trainer_manager = lfs::python::get_trainer_manager(); |
| 191 | trainer_manager && |
| 192 | scene_manager->getContentType() == lfs::vis::SceneManager::ContentType::Dataset && |
| 193 | !trainer_manager->canPerform(lfs::vis::TrainingAction::ClearScene)) { |
| 194 | return std::unexpected( |
| 195 | std::string(trainer_manager->getActionBlockedReason(lfs::vis::TrainingAction::ClearScene))); |
| 196 | } |
| 197 | |
| 198 | return std::unexpected("Scene clear request was rejected"); |
| 199 | } |
| 200 | |
| 201 | CommandCenter* get_command_center_opt() { |
| 202 | return lfs::event::command_center(); |
no test coverage detected