17#define ENQUEUE_VIEWER_METHOD( NAME, METHOD ) MR::getViewerInstance().emplaceEvent( NAME, [] { \
18 MR::getViewerInstance() . METHOD (); \
20#define ENQUEUE_VIEWER_METHOD_ARGS( NAME, METHOD, ... ) MR::getViewerInstance().emplaceEvent( NAME, [__VA_ARGS__] { \
21 MR::getViewerInstance() . METHOD ( __VA_ARGS__ ); \
23#define ENQUEUE_VIEWER_METHOD_ARGS_SKIPABLE( NAME, METHOD, ... ) MR::getViewerInstance().emplaceEvent( NAME, [__VA_ARGS__] { \
24 MR::getViewerInstance() . METHOD ( __VA_ARGS__ ); \
32class SpaceMouseHandler;
34class IDragDropHandler;
36class CornerControllerObject;
38class ViewportGlobalBasis;
58 std::string
name{
"MRViewer" };
73using FilesLoadedCallback = std::function<void(
const std::vector<std::shared_ptr<Object>>& objs,
const std::string& errors,
const std::string& warnings)>;
126 template<
typename PluginType>
129 for (
auto& plugin : plugins )
131 auto p =
dynamic_cast< PluginType*
>( plugin );
149 MRVIEWER_API
bool saveToFile(
const std::filesystem::path & mesh_file_name );
152 MRVIEWER_API
bool keyPressed(
unsigned int unicode_key,
int modifier );
153 MRVIEWER_API
bool keyDown(
int key,
int modifier );
154 MRVIEWER_API
bool keyUp(
int key,
int modifier );
158 MRVIEWER_API
bool mouseMove(
int mouse_x,
int mouse_y );
163 MRVIEWER_API
bool drag(
int mouse_x,
int mouse_y );
164 MRVIEWER_API
bool spaceMouseMove(
const Vector3f& translate,
const Vector3f& rotate );
168 MRVIEWER_API
bool dragDrop(
const std::vector<std::filesystem::path>& paths );
172 MRVIEWER_API
bool touchEnd(
int id,
int x,
int y );
187 MRVIEWER_API
void draw(
bool force =
false );
199 MRVIEWER_API
void resize(
int w,
int h );
290 bool swapOnLastPostEventsRedraw{
true };
292 int forceRedrawMinimumIncrementAfterEvents{ 4 };
354 const Vector2i& pos = Vector2i(),
const Vector2i& size = Vector2i() );
428 MRVIEWER_API
void onSceneSaved(
const std::filesystem::path& savePath,
bool storeInRecent =
true );
438 template <
typename T>
439 std::shared_ptr<T>
getMenuPluginAs()
const {
return std::dynamic_pointer_cast<T>( getMenuPlugin() ); }
478 float pixelRatio{ 1.0f };
483 bool windowMaximized{
false };
486 bool isAnimating{
false };
488 int animationMaxFps{ 30 };
491 float scrollForce{ };
493 uint16_t glPickRadius{ };
495 bool experimentalFeatures{ };
556 using ObjectsLoadedSignal = boost::signals2::signal<void(
const std::vector<std::shared_ptr<Object>>& objs,
const std::string& errors,
const std::string& warnings )>;
645 void shutdownPlugins_();
648 void mainLoopFunc_();
649 static void emsMainInfiniteLoop();
652 bool draw_(
bool force );
655 int forceRedrawFrames_{ 0 };
657 int forceRedrawFramesWithoutSwap_{ 0 };
660 bool enableDeveloperFeatures_{
false };
662 std::unique_ptr<ViewerEventQueue> eventQueue_;
665 std::shared_ptr<ImGuiMenu> menuPlugin_;
667 std::unique_ptr<TouchpadController> touchpadController_;
668 std::unique_ptr<SpaceMouseController> spaceMouseController_;
669 std::unique_ptr<TouchesController> touchesController_;
670 std::unique_ptr<MouseController> mouseController_;
671 std::unique_ptr<IDragDropHandler> dragDropAdvancedHandler_;
673 std::unique_ptr<RecentFilesStore> recentFilesStore_;
674 std::unique_ptr<FrameCounter> frameCounter_;
676 mutable struct EventsCounter
678 std::array<size_t, size_t( EventType::Count )> counter{};
682 mutable struct GLPrimitivesCounter
684 std::array<size_t, size_t( GLPrimitivesType::Count )> counter{};
686 } glPrimitivesCounter_;
690 bool tryCreateWindow_(
bool fullscreen,
int& width,
int& height,
const std::string& name,
int major,
int minor );
692 bool needRedraw_()
const;
695 void recursiveDraw_(
const Viewport& vp,
const Object& obj,
const AffineXf3f& parentXf, RenderModelPassMask renderType,
int* numDraws =
nullptr )
const;
697 void initGlobalBasisAxesObject_();
698 void initBasisAxesObject_();
699 void initBasisViewControllerObject_();
700 void initClippingPlaneObject_();
701 void initRotationCenterObject_();
704 void updatePixelRatio_();
709 int getRequiredMSAA_(
bool sceneTextureOn,
bool forSceneTexture )
const;
711 bool stopEventLoop_{
false };
713 bool isLaunched_{
false };
715 bool focusRedrawReady_{
false };
717 std::unique_ptr<SceneTextureGL> sceneTexture_;
718 std::unique_ptr<AlphaSortGL> alphaSorter_;
720 bool alphaSortEnabled_{
false};
722 bool glInitialized_{
false };
724 bool isInDraw_{
false };
725 bool dirtyScene_{
false };
727 bool hasScaledFramebuffer_{
false };
729 bool sortDroppedFiles_{
true };
731 LaunchParams launchParams_;
733 ViewportId getFirstAvailableViewportId_()
const;
734 ViewportMask presentViewportsMask_;
736 std::unique_ptr<IViewerSettingsManager> settingsMng_;
738 std::shared_ptr<HistoryStore> globalHistoryStore_;
740 std::shared_ptr<SpaceMouseHandler> spaceMouseHandler_;
742 std::vector<boost::signals2::scoped_connection> uiUpdateConnections_;
angle
Definition MRObjectDimensionsEnum.h:13
Definition MRMouseController.h:21
Definition MRRecentFilesStore.h:17
Object that is parent of all scene.
Definition MRSceneRoot.h:11
Definition MRSetupViewer.h:13
boost::signals2::signal< bool(const Vector3f &translate, const Vector3f &rotate), SignalStopHandler > SpaceMouseMoveSignal
Definition MRViewer.h:541
bool hasScaledFramebuffer() const
Definition MRViewer.h:459
MRVIEWER_API bool saveToFile(const std::filesystem::path &mesh_file_name)
MRVIEWER_API bool keyUp(int key, int modifier)
PostResizeSignal postResizeSignal
Definition MRViewer.h:565
TouchpadGestureBeginSignal touchpadRotateGestureBeginSignal
Definition MRViewer.h:579
MRVIEWER_API void fitDataViewport(MR::ViewportMask vpList=MR::ViewportMask::all(), float fill=0.6f, bool snapView=true)
MRVIEWER_API bool isAlphaSortAvailable() const
boost::signals2::signal< bool(), SignalStopHandler > InterruptCloseSignal
Definition MRViewer.h:560
RenderSignal preSetupViewSignal
Definition MRViewer.h:549
MRVIEWER_API ViewportId getHoveredViewportId() const
boost::signals2::signal< void()> RenderSignal
Definition MRViewer.h:548
boost::signals2::signal< bool(int x, int y), SignalStopHandler > MouseMoveSignal
Definition MRViewer.h:515
MRVIEWER_API void setViewportSettingsManager(std::unique_ptr< IViewerSettingsManager > mng)
PostFocusSignal postFocusSignal
Definition MRViewer.h:590
TouchpadGestureBeginSignal touchpadSwipeGestureBeginSignal
Definition MRViewer.h:582
TouchpadRotateGestureUpdateSignal touchpadRotateGestureUpdateSignal
Definition MRViewer.h:580
RenderSignal preDrawPostViewportSignal
Definition MRViewer.h:551
MRVIEWER_API bool keyRepeat(int key, int modifier)
MRVIEWER_API std::vector< std::reference_wrapper< Viewport > > getViewports(ViewportMask mask=ViewportMask::any())
const MouseController & mouseController() const
Definition MRViewer.h:606
MRVIEWER_API void appendHistoryAction(const std::shared_ptr< HistoryAction > &action)
std::shared_ptr< ViewerTitle > windowTitle
Definition MRViewer.h:507
boost::signals2::signal< bool(MouseButton btn, int modifier), SignalStopHandler > MouseUpDownSignal
Definition MRViewer.h:514
MRVIEWER_API PointInAllSpaces getMousePointInfo() const
MouseUpDownSignal dragStartSignal
Definition MRViewer.h:527
boost::signals2::signal< bool(int key, int modifier), SignalStopHandler > KeySignal
Definition MRViewer.h:535
MRVIEWER_API const std::shared_ptr< ImGuiMenu > & getMenuPlugin() const
MRVIEWER_API void resize(int w, int h)
MRVIEWER_API bool mouseClick(MouseButton button, int modifier)
std::vector< ViewerPlugin * > plugins
Definition MRViewer.h:476
static MRVIEWER_API void parseLaunchParams(LaunchParams ¶ms)
RenderSignal drawSignal
Definition MRViewer.h:552
MRVIEWER_API Box2f getViewportsBounds() const
boost::signals2::signal< void(bool)> CursorEntranceSignal
Definition MRViewer.h:531
TouchpadGestureBeginSignal touchpadZoomGestureBeginSignal
Definition MRViewer.h:585
Vector2i windowSaveSize
Definition MRViewer.h:481
EventType
Definition MRViewer.h:303
RenderSignal postDrawPreViewportSignal
Definition MRViewer.h:553
ViewportMask getPresentViewports() const
Definition MRViewer.h:336
MRVIEWER_API bool touchpadSwipeGestureEnd()
MRVIEWER_API bool erase_viewport(ViewportId viewport_id)
MRVIEWER_API SpaceMouseParameters getSpaceMouseParameters() const
InterruptCloseSignal interruptCloseSignal
Definition MRViewer.h:567
MRVIEWER_API void fitBoxViewport(const Box3f &box, MR::ViewportMask vpList=MR::ViewportMask::all(), float fill=0.6f, bool snapView=true)
RenderSignal postDrawSignal
Definition MRViewer.h:554
MRVIEWER_API void setSpaceMouseParameters(const SpaceMouseParameters &)
MRVIEWER_API size_t getEventsCount(EventType type) const
KeySignal keyUpSignal
Definition MRViewer.h:537
std::shared_ptr< T > getMenuPluginAs() const
Definition MRViewer.h:439
const std::shared_ptr< HistoryStore > & getGlobalHistoryStore() const
Definition MRViewer.h:423
boost::signals2::signal< void(float xscale, float yscale)> PostRescaleSignal
Definition MRViewer.h:559
bool isGLInitialized() const
Definition MRViewer.h:453
MRVIEWER_API void onSceneSaved(const std::filesystem::path &savePath, bool storeInRecent=true)
boost::signals2::signal< bool(), SignalStopHandler > TouchpadGestureBeginSignal
Definition MRViewer.h:574
MRVIEWER_API bool touchStart(int id, int x, int y)
MRVIEWER_API void drawUiRenderObjects()
draw 2d (UI) part of objects in scene
MRVIEWER_API bool mouseMove(int mouse_x, int mouse_y)
std::shared_ptr< ObjectMesh > rotationSphere
Definition MRViewer.h:502
MRVIEWER_API void clearFramebuffers()
Vector2i windowOldPos
Definition MRViewer.h:482
boost::signals2::signal< bool(int), SignalStopHandler > SpaceMouseKeySignal
Definition MRViewer.h:542
std::vector< std::string > commandArgs
Definition MRViewer.h:497
TouchpadGestureEndSignal touchpadZoomGestureEndSignal
Definition MRViewer.h:587
MRVIEWER_API Vector3f viewportToScreen(const Vector3f &viewportPoint, ViewportId id) const
boost::signals2::signal< bool(unsigned unicodeKey, int modifier), SignalStopHandler > CharPressedSignal
Definition MRViewer.h:534
MouseUpDownSignal dragEndSignal
Definition MRViewer.h:528
boost::signals2::signal< void(bool)> PostFocusSignal
Definition MRViewer.h:589
MouseUpDownSignal mouseClickSignal
Definition MRViewer.h:526
KeySignal keyDownSignal
Definition MRViewer.h:538
MRVIEWER_API bool isCurrentFrameSwapping() const
MRVIEWER_API double getPrevFrameDrawTimeMillisec() const
MRVIEWER_API void enableGlobalHistory(bool on)
MRVIEWER_API int launch(const LaunchParams ¶ms)
MouseScrollSignal mouseScrollSignal
Definition MRViewer.h:520
MRVIEWER_API size_t getSwappedFrames() const
MRVIEWER_API void popEventByName(const std::string &name)
const LaunchParams & getLaunchParams() const
Definition MRViewer.h:117
std::function< void(Viewer *viewer)> resetSettingsFunction
Definition MRViewer.h:469
TouchSignal touchEndSignal
Definition MRViewer.h:572
MRVIEWER_API bool touchMove(int id, int x, int y)
MouseMoveSignal mouseMoveSignal
Definition MRViewer.h:519
MRVIEWER_API bool erase_viewport(const size_t index)
SpaceMouseMoveSignal spaceMouseMoveSignal
Definition MRViewer.h:543
MRVIEWER_API bool touchpadSwipeGestureBegin()
MRVIEWER_API bool dragDrop(const std::vector< std::filesystem::path > &paths)
MRVIEWER_API bool spaceMouseDown(int key)
MRVIEWER_API bool touchpadSwipeGestureUpdate(float dx, float dy, bool kinetic)
friend MRVIEWER_API Viewer & getViewerInstance()
returns global instance of Viewer class
TouchpadZoomGestureUpdateSignal touchpadZoomGestureUpdateSignal
Definition MRViewer.h:586
MRVIEWER_API PointInAllSpaces getPixelPointInfo(const Vector3f &screenPoint) const
bool isAlphaSortEnabled() const
Definition MRViewer.h:362
MRVIEWER_API void emplaceEvent(std::string name, ViewerEventCallback cb, bool skipable=false)
MRVIEWER_API int getMSAA() const
MRVIEWER_API bool spaceMouseUp(int key)
CharPressedSignal charPressedSignal
Definition MRViewer.h:536
MRVIEWER_API void incrementForceRedrawFrames(int i=1, bool swapOnLastOnly=false)
boost::signals2::signal< void(const std::vector< std::shared_ptr< Object > > &objs, const std::string &errors, const std::string &warnings)> ObjectsLoadedSignal
Definition MRViewer.h:556
size_t selected_viewport_index
Definition MRViewer.h:473
MRVIEWER_API const TouchpadParameters & getTouchpadParameters() const
MRVIEWER_API void postSetMaximized(bool maximized)
const std::shared_ptr< SpaceMouseHandler > & getSpaceMouseHandler() const
Definition MRViewer.h:425
MRVIEWER_API int getRequestedMSAA() const
static Viewer * instance()
Definition MRViewer.h:120
MRVIEWER_API bool mouseUp(MouseButton button, int modifier)
MRVIEWER_API bool enableAlphaSort(bool on)
PluginType * getPluginInstance()
Definition MRViewer.h:127
ObjectsLoadedSignal objectsLoadedSignal
Definition MRViewer.h:561
MRVIEWER_API bool mouseScroll(float delta_y)
bool isLaunched() const
Definition MRViewer.h:114
MRVIEWER_API void postEmptyEvent()
static const Viewer * constInstance()
Definition MRViewer.h:123
TouchpadGestureEndSignal touchpadRotateGestureEndSignal
Definition MRViewer.h:581
RenderSignal preDrawSignal
Definition MRViewer.h:550
std::unique_ptr< ViewportGlobalBasis > globalBasis
Definition MRViewer.h:501
MRVIEWER_API size_t getFPS() const
TouchpadGestureEndSignal touchpadSwipeGestureEndSignal
Definition MRViewer.h:584
MRVIEWER_API Vector3f screenToViewport(const Vector3f &screenPoint, ViewportId id) const
MRVIEWER_API bool dragEnd(MouseButton button, int modifier)
boost::signals2::signal< bool(int, int, int), SignalStopHandler > TouchSignal
Definition MRViewer.h:569
std::shared_ptr< ObjectMesh > clippingPlaneObject
Definition MRViewer.h:504
TouchpadSwipeGestureUpdateSignal touchpadSwipeGestureUpdateSignal
Definition MRViewer.h:583
MRVIEWER_API const Viewport & viewport(ViewportId viewportId={}) const
static const Viewer & constInstanceRef()
Definition MRViewer.h:124
MRVIEWER_API bool touchpadZoomGestureEnd()
MRVIEWER_API Image captureSceneScreenShot(const Vector2i &resolution=Vector2i())
void setSortDroppedFiles(bool value)
sets whether to sort the filenames received from Drag&Drop in lexicographical order before adding the...
Definition MRViewer.h:617
MouseUpDownSignal mouseDownSignal
Definition MRViewer.h:517
boost::signals2::signal< bool(float scale, bool kinetic), SignalStopHandler > TouchpadZoomGestureUpdateSignal
Definition MRViewer.h:578
MRVIEWER_API bool touchpadRotateGestureBegin()
MRVIEWER_API bool mouseDown(MouseButton button, int modifier)
RecentFilesStore & recentFilesStore()
Definition MRViewer.h:611
MRVIEWER_API void select_hovered_viewport()
MRVIEWER_API ViewportId append_viewport(const ViewportRectangle &viewportRect, bool append_empty=false)
MRVIEWER_API bool touchpadRotateGestureUpdate(float angle)
MRVIEWER_API bool spaceMouseRepeat(int key)
MRVIEWER_API void incrementThisFrameGLPrimitivesCount(GLPrimitivesType type, size_t num)
CursorEntranceSignal dragEntranceSignal
Definition MRViewer.h:562
MRVIEWER_API void postRescale(float x, float y)
static Viewer & instanceRef()
Definition MRViewer.h:121
std::shared_ptr< ObjectMesh > basisAxes
Definition MRViewer.h:499
MRVIEWER_API bool touchpadZoomGestureBegin()
MRVIEWER_API void bindSceneTexture(bool bind)
MRVIEWER_API bool touchpadZoomGestureUpdate(float scale, bool kinetic)
MRVIEWER_API void set_root(SceneRootObject &newRoot)
MRVIEWER_API void stopEventLoop()
MRVIEWER_API void launchEventLoop()
PostRescaleSignal postRescaleSignal
Definition MRViewer.h:566
DragDropSignal dragDropSignal
Definition MRViewer.h:564
MRVIEWER_API void captureUIScreenShot(std::function< void(const Image &)> callback, const Vector2i &pos=Vector2i(), const Vector2i &size=Vector2i())
boost::signals2::signal< void(int x, int y)> PostResizeSignal
Definition MRViewer.h:558
MRVIEWER_API void launchShut()
MRVIEWER_API bool globalHistoryUndo()
MRVIEWER_API std::shared_ptr< RibbonMenu > getRibbonMenu() const
MRVIEWER_API const std::unique_ptr< IViewerSettingsManager > & getViewerSettingsManager() const
Definition MRViewer.h:385
boost::signals2::signal< bool(), SignalStopHandler > TouchpadGestureEndSignal
Definition MRViewer.h:575
MRVIEWER_API void preciseFitDataViewport(MR::ViewportMask vpList=MR::ViewportMask::all())
Vector2i framebufferSize
Definition MRViewer.h:479
CursorEntranceSignal cursorEntranceSignal
Definition MRViewer.h:532
MRVIEWER_API bool keyDown(int key, int modifier)
bool getSortDroppedFiles() const
returns whether to sort the filenames received from Drag&Drop in lexicographical order before adding ...
Definition MRViewer.h:614
MRVIEWER_API void setupScene()
MouseMoveSignal dragOverSignal
Definition MRViewer.h:563
MRVIEWER_API void setMenuPlugin(std::shared_ptr< ImGuiMenu > menu)
MRVIEWER_API Viewport & viewport(ViewportId viewportId={})
MouseUpDownSignal mouseUpSignal
Definition MRViewer.h:518
MRVIEWER_API size_t getStaticGLBufferSize() const
GLPrimitivesType
Definition MRViewer.h:319
boost::signals2::signal< bool(float deltaX, float deltaY, bool kinetic), SignalStopHandler > TouchpadSwipeGestureUpdateSignal
Definition MRViewer.h:577
Vector2i windowSavePos
Definition MRViewer.h:480
MRVIEWER_API size_t getLastFrameGLPrimitivesCount(GLPrimitivesType type) const
MRVIEWER_API bool dragStart(MouseButton button, int modifier)
MRVIEWER_API ViewportId getHoveredViewportIdOrInvalid() const
MRVIEWER_API void drawFull(bool dirtyScene)
std::unique_ptr< CornerControllerObject > basisViewController
Definition MRViewer.h:500
SpaceMouseKeySignal spaceMouseUpSignal
Definition MRViewer.h:545
TouchSignal touchStartSignal
Definition MRViewer.h:570
MRVIEWER_API void drawScene()
MRVIEWER_API void requestChangeMSAA(int newMSAA)
GLFWwindow * window
Definition MRViewer.h:465
MRVIEWER_API bool drag(int mouse_x, int mouse_y)
SpaceMouseKeySignal spaceMouseDownSignal
Definition MRViewer.h:544
MRVIEWER_API void postSetIconified(bool iconified)
MRVIEWER_API bool globalHistoryRedo()
MRVIEWER_API void makeTitleFromSceneRootPath()
MRVIEWER_API size_t getTotalFrames() const
MRVIEWER_API void postFocus(bool focused)
void setSceneDirty()
Definition MRViewer.h:193
MRVIEWER_API void resetAllCounters()
MRVIEWER_API bool isSupportedFormat(const std::filesystem::path &file_name)
MouseMoveSignal dragSignal
Definition MRViewer.h:529
boost::signals2::signal< bool(const std::vector< std::filesystem::path > &paths), SignalStopHandler > DragDropSignal
Definition MRViewer.h:557
MRVIEWER_API void draw(bool force=false)
MRVIEWER_API int viewport_index(ViewportId viewport_id) const
MRVIEWER_API bool touchpadRotateGestureEnd()
boost::signals2::signal< bool(float angle), SignalStopHandler > TouchpadRotateGestureUpdateSignal
Definition MRViewer.h:576
MouseController & mouseController()
Definition MRViewer.h:607
MRVIEWER_API bool isSceneTextureBound() const
MRVIEWER_API void initSpaceMouseHandler(std::function< void(const std::string &)> deviceSignal={})
MRVIEWER_API bool touchEnd(int id, int x, int y)
boost::signals2::signal< bool(float delta), SignalStopHandler > MouseScrollSignal
Definition MRViewer.h:516
SpaceMouseKeySignal spaceMouseRepeatSignal
Definition MRViewer.h:546
MRVIEWER_API bool loadFiles(const std::vector< std::filesystem::path > &filesList, const FileLoadOptions &options={})
const RecentFilesStore & recentFilesStore() const
Definition MRViewer.h:610
MRVIEWER_API bool interruptWindowClose()
MRVIEWER_API bool spaceMouseMove(const Vector3f &translate, const Vector3f &rotate)
MRVIEWER_API void setTouchpadParameters(const TouchpadParameters &)
MRVIEWER_API void preciseFitDataViewport(MR::ViewportMask vpList, const FitDataParams ¶m)
bool isGlobalHistoryEnabled() const
Definition MRViewer.h:412
KeySignal keyRepeatSignal
Definition MRViewer.h:539
MRVIEWER_API void postResize(int w, int h)
TouchSignal touchMoveSignal
Definition MRViewer.h:571
MRVIEWER_API bool keyPressed(unsigned int unicode_key, int modifier)
MRVIEWER_API bool isSceneTextureEnabled() const
MRVIEWER_API void postSetPosition(int xPos, int yPos)
MRVIEWER_API void clearScene()
std::vector< Viewport > viewport_list
Definition MRViewer.h:472
MRVIEWER_API void postClose()
bool getStopEventLoopFlag() const
Definition MRViewer.h:444
Definition MRViewportId.h:16
stores mask of viewport unique identifiers
Definition MRViewportId.h:42
static ViewportMask all()
mask meaning all or any viewports
Definition MRViewportId.h:49
Definition MRViewport.h:46
Definition MRCameraOrientationPlugin.h:8
MouseMode
Definition MRMouse.h:19
MouseButton
Definition MRMouse.h:9
std::function< void(const std::vector< std::shared_ptr< Object > > &objs, const std::string &errors, const std::string &warnings)> FilesLoadedCallback
Definition MRViewer.h:73
MRVIEWER_API Viewer & getViewerInstance()
returns global instance of Viewer class
MRVIEWER_API int launchDefaultViewer(const Viewer::LaunchParams ¶ms, const ViewerSetup &setup)
Box2f ViewportRectangle
Viewport size.
Definition MRViewerFwd.h:12
std::function< void()> ViewerEventCallback
Definition MRViewerFwd.h:69
FilesLoadedCallback loadedCallback
Definition MRViewer.h:92
ReplaceMode
Definition MRViewer.h:81
@ ContructionBased
replace current scene if new one was loaded from single scene file
ReplaceMode replaceMode
Determines how to deal with current scene after loading new one.
Definition MRViewer.h:88
const char * undoPrefix
first part of undo name
Definition MRViewer.h:78
Definition MRFitData.h:29
WindowMode
Definition MRViewer.h:47
@ HideInit
Definition MRViewer.h:49
@ NoWindow
Definition MRViewer.h:52
@ TryHidden
Definition MRViewer.h:51
@ Hide
Definition MRViewer.h:50
@ Show
Definition MRViewer.h:48
bool render3dSceneInTexture
Definition MRViewer.h:56
bool console
Definition MRViewer.h:61
bool developerFeatures
Definition MRViewer.h:57
char ** argv
Definition MRViewer.h:63
bool startEventLoop
Definition MRViewer.h:59
bool fullscreen
Definition MRViewer.h:43
int animationMaxFps
Definition MRViewer.h:67
int argc
Definition MRViewer.h:62
std::shared_ptr< SplashWindow > splashWindow
Definition MRViewer.h:70
bool unloadPluginsAtEnd
Definition MRViewer.h:68
bool close
Definition MRViewer.h:60
bool showMRVersionInTitle
Definition MRViewer.h:65
bool enableTransparentBackground
Definition MRViewer.h:54
int height
Definition MRViewer.h:45
bool preferOpenGL3
Definition MRViewer.h:55
int width
Definition MRViewer.h:44
enum MR::LaunchParams::WindowMode HideInit
std::string name
Definition MRViewer.h:58
bool isAnimating
Definition MRViewer.h:66
Definition MRPointInAllSpaces.h:13
Definition MRSpaceMouseParameters.h:10
Definition MRSignalCombiners.h:8
Definition MRTouchpadParameters.h:9