| 107 | /// viewer setup class for minimal configuration |
| 108 | /// only loads config file (if available) and configures the scene and mouse controls |
| 109 | class MinimalViewerSetup final : public ViewerSetup |
| 110 | { |
| 111 | public: |
| 112 | void setupBasePlugins( Viewer* viewer ) const override |
| 113 | { |
| 114 | auto menu = std::make_shared<RibbonMenu>(); |
| 115 | menu->setMenuUIConfig( { .topLayout = RibbonTopPanelLayoutMode::None,.drawScenePanel = false,.drawToolbar = false } ); // no scene tree by default |
| 116 | viewer->setMenuPlugin( menu ); |
| 117 | } |
| 118 | void setupExtendedLibraries() const override {} |
| 119 | void unloadExtendedLibraries() const override {} |
| 120 | |
| 121 | void setupConfiguration( Viewer* viewer ) const override |
| 122 | { |
| 123 | viewer->resetSettingsFunction = [base = viewer->resetSettingsFunction] ( Viewer* viewer ) |
| 124 | { |
| 125 | base( viewer ); |
| 126 | resetSettings_( viewer ); |
| 127 | }; |
| 128 | viewer->resetSettingsFunction( viewer ); |
| 129 | } |
| 130 | |
| 131 | private: |
| 132 | static void resetSettings_( Viewer* viewer ) |
| 133 | { |
| 134 | viewer->glPickRadius = 3; |
| 135 | |
| 136 | auto& mouseController = viewer->mouseController(); |
| 137 | mouseController.setMouseControl( { MouseButton::Right, 0 }, MouseMode::Translation ); |
| 138 | mouseController.setMouseControl( { MouseButton::Middle, 0 }, MouseMode::Rotation ); |
| 139 | mouseController.setMouseControl( { MouseButton::Middle, getGlfwModPrimaryCtrl() }, MouseMode::Roll ); |
| 140 | } |
| 141 | }; |
| 142 | |
| 143 | void pythonLaunch( const MR::Viewer::LaunchParams& params, const MinimalViewerSetup& setup ) |
| 144 | { |