@@ -1638,6 +1638,19 @@ namespace lfs::vis {
16381638 }
16391639 }
16401640
1641+ void SceneManager::syncDatasetCameraFrustumsToRenderSettings () {
1642+ auto * rm = services ().renderingOrNull ();
1643+ if (!rm || scene_.getAllCameras ().empty ())
1644+ return ;
1645+
1646+ auto settings = rm->getSettings ();
1647+ if (settings.show_camera_frustums )
1648+ return ;
1649+
1650+ settings.show_camera_frustums = true ;
1651+ rm->updateSettings (settings);
1652+ }
1653+
16411654 std::expected<void , std::string> SceneManager::applyLoadedDataset (
16421655 const std::filesystem::path& path,
16431656 const lfs::core::param::TrainingParameters& params,
@@ -1690,6 +1703,7 @@ namespace lfs::vis {
16901703 .emit ();
16911704
16921705 python::set_application_scene (&scene_);
1706+ syncDatasetCameraFrustumsToRenderSettings ();
16931707
16941708 if ((num_gaussians > 0 || num_points > 0 ) && services ().trainerOrNull () && services ().trainerOrNull ()->getTrainer ()) {
16951709 ui::PointCloudModeChanged{.enabled = true , .voxel_size = DEFAULT_VOXEL_SIZE}.emit ();
@@ -1792,6 +1806,7 @@ namespace lfs::vis {
17921806 .emit ();
17931807
17941808 python::set_application_scene (&scene_);
1809+ syncDatasetCameraFrustumsToRenderSettings ();
17951810
17961811 state::DatasetLoadCompleted{
17971812 .path = path,
@@ -2036,6 +2051,7 @@ namespace lfs::vis {
20362051 .emit ();
20372052
20382053 python::set_application_scene (&scene_);
2054+ syncDatasetCameraFrustumsToRenderSettings ();
20392055
20402056 ui::PointCloudModeChanged{.enabled = false , .voxel_size = DEFAULT_VOXEL_SIZE}.emit ();
20412057 selectNode (MODEL_NAME);
0 commit comments