/// \param theUpdateViewer the parameter whether the viewer should be update immediatelly
void closeLocalContexts(const bool theUpdateViewer = true);
- // Remove default selection filters of the module from the current viewer
+ /// Remove default selection filters of the module from the current viewer
void deactivateSelectionFilters();
/// \brief Add selection filter
/// \param isEnabled a boolean value
bool enableUpdateViewer(const bool isEnabled);
+ /// Returns myEnableUpdateViewer flag
+ bool isUpdateEnabled() const { return myEnableUpdateViewer; }
+
/// Updates the viewer
void updateViewer() const;
/// Activate interactive context
- /// \param theIO
- /// \param theMode
+ /// \param theIO an interactive object
+ /// \param theMode activation mode
+ /// \param theUpdateViewer update viewer flag
void activateAIS(const Handle(AIS_InteractiveObject)& theIO, const int theMode,
const bool theUpdateViewer) const;
/// Activate interactive context. It is necessary to call ClearOutdatedSelection after deactivation
+ /// \param theIO an interactive object
+ /// \param theMode a mode to deactivate. When theMode=-1 then all modes will be deactivated
void deactivateAIS(const Handle(AIS_InteractiveObject)& theIO, const int theMode = -1) const;
/// Searches the interactive object by feature
/// Activates in local context displayed outside of the context.
/// \param theModes - modes on which it has to be activated (can be empty)
/// \param theObjList - list of objects which has to be activated.
+ /// \param theUpdateViewer an update viewer flag
void activateObjects(const QIntList& theModes, const QObjectPtrList& theObjList,
const bool theUpdateViewer = true);
/// \return previously defined color on the object
QColor setObjectColor(ObjectPtr theObject, const QColor& theColor, bool theUpdateViewer = true);
+ /// Returns Trihedron object if it is displayed
+ Handle(AIS_InteractiveObject) getTrihedron() const;
+
+ /// Set trihedron active (used in selection) or non active
+ void activateTrihedron(bool theIsActive);
+
+ /// Displays/erases thrihedron in current modes. It will be activated or deactivated
+ /// depending on the trihedron visible state and displayer active trihedron state
+ void displayTrihedron(bool theToDisplay) const;
+
+ /// Returns true if the trihedron should be activated in current selection modes
+ bool isTrihedronActive() const { return myIsTrihedronActive; }
+
+ /// Converts shape type (TopAbs_ShapeEnum) to selection mode
+ /// \param theShapeType a shape type from TopAbs_ShapeEnum
+ static int getSelectionMode(int theShapeType);
+
signals:
/// Signal on object display
/// \param theObject a data object
/// Activates the interactive object in the local context.
/// \param theIO an interactive object
/// \param theModes - modes on which it has to be activated (can be empty)
- void activate(const Handle(AIS_InteractiveObject)& theIO, const QIntList& theModes,
+ /// \return a flag is object activated or not
+ bool activate(const Handle(AIS_InteractiveObject)& theIO, const QIntList& theModes,
const bool theUpdateViewer) const;
/// Deactivates the given object (not allow selection)
void deactivate(ObjectPtr theObject, const bool theUpdateViewer);
/// Find a trihedron in a list of displayed presentations and deactivate it.
- void deactivateTrihedron() const;
+ /// \param theUpdateViewer an update viewer flag
+ void deactivateTrihedron(const bool theUpdateViewer) const;
/// Opens local context. Does nothing if it is already opened.
void openLocalContext();
QIntList myActiveSelectionModes;
/// the enable update viewer flag
- bool myEnableUpdateViewer;
+ bool myEnableUpdateViewer;
+
+ // Flag: use trihedgon for selection or not
+ bool myIsTrihedronActive;
+
+ /// A flag that update was requested but not done
+ mutable bool myNeedUpdate;
};
#endif