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{
9
11class MRVIEWER_CLASS ViewportGlobalBasis
12{
13public:
15 MRVIEWER_API ViewportGlobalBasis();
16
18 MRVIEWER_API float getAxesLength( ViewportId id = {} ) const;
19
21 MRVIEWER_API float getAxesWidth( ViewportId id = {} ) const;
22
24 MRVIEWER_API void setAxesProps( float length, float width, ViewportId id = {} );
25
27 MRVIEWER_API void setColors( const Color& xColor, const Color& yColor, const Color& zColor, const Color& labelColors );
28
30 MRVIEWER_API const std::vector<std::shared_ptr<VisualObject>>& axesChildren() const;
31
33 MRVIEWER_API bool getRedrawFlag( ViewportMask vpMask ) const;
35 MRVIEWER_API void resetRedrawFlag() const;
36
38 MRVIEWER_API void draw( const Viewport& vp ) const;
39
41 MRVIEWER_API void setVisible( bool on, ViewportMask vpMask = ViewportMask::all() );
42 MRVIEWER_API void setVisibilityMask( ViewportMask vpMask );
43
45 bool isVisible( ViewportMask vpMask = ViewportMask::any() ) const { return !axes_.empty() && axes_[0] && axes_[0]->isVisible( vpMask ); }
46 ViewportMask getVisibilityMask() const { return (!axes_.empty() && axes_[0] ) ? axes_[0]->visibilityMask() : ViewportMask(); }
47
49 MRVIEWER_API void setGridVisible( bool on, ViewportMask vpMask = ViewportMask::all() );
50 MRVIEWER_API void setGridVisibilityMask( ViewportMask vpMask );
51
53 bool isGridVisible( ViewportMask vpMask = ViewportMask::any() ) const { return !grids_.empty() && grids_[0] && grids_[0]->isVisible( vpMask ); }
54 ViewportMask getGridVisibilityMask() const { return (!grids_.empty() && grids_[0] ) ? grids_[0]->visibilityMask() : ViewportMask(); }
55
57 void resetConnections() { connections_.clear(); }
58private:
59 std::vector<std::shared_ptr<MR::VisualObject>> axes_;
60 std::vector<std::shared_ptr<ObjectLines>> grids_;
61 std::vector<boost::signals2::scoped_connection> connections_;
62
63 void creteGrids_();
64 mutable ViewportProperty<Matrix3f> cachedGridRotation_;
65 void updateGridXfs_( const Viewport& vp ) const;
66};
67
68}
length
Definition MRObjectDimensionsEnum.h:14
Class to unify Global Basis control.
Definition MRViewportGlobalBasis.h:12
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:45
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:53
ViewportMask getGridVisibilityMask() const
Definition MRViewportGlobalBasis.h:54
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:57
MRVIEWER_API ViewportGlobalBasis()
Constructs default global basis object.
ViewportMask getVisibilityMask() const
Definition MRViewportGlobalBasis.h:46
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.
Definition MRViewportId.h:16
stores mask of viewport unique identifiers
Definition MRViewportId.h:42
Definition MRViewportProperty.h:17
Definition MRViewport.h:46
Definition MRCameraOrientationPlugin.h:8
Definition MRMesh/MRColor.h:9