MeshLib C++ Docs
Loading...
Searching...
No Matches
MRViewportGlobalBasis.h
Go to the documentation of this file.
1#pragma once
2#include "MRViewerFwd.h"
5#include "MRMesh/MRSignal.h"
6
7namespace MR
8{
11
12
14class MRVIEWER_CLASS ViewportGlobalBasis
15{
16public:
18 MRVIEWER_API ViewportGlobalBasis();
19
21 MRVIEWER_API float getAxesLength( ViewportId id = {} ) const;
22
24 MRVIEWER_API float getAxesWidth( ViewportId id = {} ) const;
25
27 MRVIEWER_API void setAxesProps( float length, float width, ViewportId id = {} );
28
30 MRVIEWER_API void setColors( const Color& xColor, const Color& yColor, const Color& zColor, const Color& labelColors );
31
33 MRVIEWER_API const std::vector<std::shared_ptr<VisualObject>>& axesChildren() const;
34
36 MRVIEWER_API bool getRedrawFlag( ViewportMask vpMask ) const;
38 MRVIEWER_API void resetRedrawFlag() const;
39
41 MRVIEWER_API void draw( const Viewport& vp ) const;
42
44 MRVIEWER_API void setVisible( bool on, ViewportMask vpMask = ViewportMask::all() );
45 MRVIEWER_API void setVisibilityMask( ViewportMask vpMask );
46
48 bool isVisible( ViewportMask vpMask = ViewportMask::any() ) const { return !axes_.empty() && axes_[0] && axes_[0]->isVisible( vpMask ); }
49 ViewportMask getVisibilityMask() const { return (!axes_.empty() && axes_[0] ) ? axes_[0]->visibilityMask() : ViewportMask(); }
50
52 MRVIEWER_API void setGridVisible( bool on, ViewportMask vpMask = ViewportMask::all() );
53 MRVIEWER_API void setGridVisibilityMask( ViewportMask vpMask );
54
56 bool isGridVisible( ViewportMask vpMask = ViewportMask::any() ) const { return !grids_.empty() && grids_[0] && grids_[0]->isVisible( vpMask ); }
57 ViewportMask getGridVisibilityMask() const { return (!grids_.empty() && grids_[0] ) ? grids_[0]->visibilityMask() : ViewportMask(); }
58
60 void resetConnections() { connections_.clear(); }
61private:
62 std::vector<std::shared_ptr<MR::VisualObject>> axes_;
63 std::vector<std::shared_ptr<ObjectLines>> grids_;
64 std::vector<boost::signals2::scoped_connection> connections_;
65
66 void creteGrids_();
67 mutable ViewportProperty<Matrix3f> cachedGridRotation_;
68 void updateGridXfs_( const Viewport& vp ) const;
69};
70
71}
Class to unify Global Basis control.
Definition MRViewportGlobalBasis.h:15
Definition MRViewportId.h:16
stores mask of viewport unique identifiers
Definition MRViewportId.h:42
Definition MRViewportProperty.h:17
Definition MRViewport.h:49
MRVIEWER_API float getAxesLength(ViewportId id={}) const
Returns length of axis (all are the same)
MRVIEWER_API const std::vector< std::shared_ptr< VisualObject > > & axesChildren() const
Simple accessor to visual children (useful for pickers or box calculations)
MRVIEWER_API void setColors(const Color &xColor, const Color &yColor, const Color &zColor, const Color &labelColors)
Sets colors for each axis of this object.
MRVIEWER_API void setGridVisible(bool on, ViewportMask vpMask=ViewportMask::all())
Set visibility for grid objects.
MRVIEWER_API void resetRedrawFlag() const
reset redraw flag for all children
bool isVisible(ViewportMask vpMask=ViewportMask::any()) const
returns true if object is present and visible
Definition MRViewportGlobalBasis.h:48
MRVIEWER_API void setGridVisibilityMask(ViewportMask vpMask)
MRVIEWER_API void setAxesProps(float length, float width, ViewportId id={})
Sets length and width for all axes.
MRVIEWER_API void setVisibilityMask(ViewportMask vpMask)
MRVIEWER_API float getAxesWidth(ViewportId id={}) const
Returns width of axis (all are the same)
bool isGridVisible(ViewportMask vpMask=ViewportMask::any()) const
returns true if grid is present and visible
Definition MRViewportGlobalBasis.h:56
ViewportMask getGridVisibilityMask() const
Definition MRViewportGlobalBasis.h:57
MRVIEWER_API void draw(const Viewport &vp) const
Draw this object into given viewport.
void resetConnections()
clears connections of this structure (by default it changes colors on theme change and change font si...
Definition MRViewportGlobalBasis.h:60
MRVIEWER_API ViewportGlobalBasis()
Constructs default global basis object.
ViewportMask getVisibilityMask() const
Definition MRViewportGlobalBasis.h:49
MRVIEWER_API bool getRedrawFlag(ViewportMask vpMask) const
returns true if any of its children requires redraw
MRVIEWER_API void setVisible(bool on, ViewportMask vpMask=ViewportMask::all())
Set visibility for all child objects.
length
Definition MRObjectDimensionsEnum.h:17
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRColor.h:12