+ /// \param theTwist the twist angle in radians
+ virtual void setViewProjection( double theX, double theY, double theZ,
+ double theTwist ) = 0;
+
+ /// Add selection filter to the viewer
+ /// \param theFilter a selection filter
+ virtual void addSelectionFilter(const Handle(SelectMgr_Filter)& theFilter) = 0;
+
+ /// Remove selection filter from the viewer
+ /// \param theFilter a selection filter
+ virtual void removeSelectionFilter(const Handle(SelectMgr_Filter)& theFilter) = 0;
+
+ /// Returns true if the selection filter is set to the viewer
+ /// \param theFilter a selection filter
+ virtual bool hasSelectionFilter(const Handle(SelectMgr_Filter)& theFilter) = 0;
+
+ /// Remove all selection filters from the viewer
+ virtual void clearSelectionFilters() = 0;
+
+ /// Update current viewer
+ virtual void update() = 0;
+
+ /// Returns a scale factor of the given view
+ /// \param theView a view object
+ const double Scale(const Handle(V3d_View)& theView)
+ {
+ if (!myWindowScale.contains(theView))
+ myWindowScale.insert(theView, theView->Camera()->Scale());
+ return myWindowScale[theView];
+ }
+
+ /// Remember a scale factor for the view object
+ /// \param theView a view object
+ /// \param theVal a scale factor
+ void SetScale(const Handle(V3d_View)& theView, const double theVal) { myWindowScale[theView] = theVal; }