void removeFilters();
/// Sets a flag to the displayer whether the internal viewer can be updated by
- /// the updateViewer method call. If it is not enabled, this method do nothing
+ /// the updateViewer method call. If it is not enabled, this method do nothing.
+ /// This state maintain recurse, if the update is blocked twice or three times, the
+ /// viewer will not be updated until it is unblocked necessary times(twice or three in the example).
/// \param isEnabled a boolean value
bool enableUpdateViewer(const bool isEnabled);
- /// Returns myEnableUpdateViewer flag
- bool isUpdateEnabled() const { return myEnableUpdateViewer; }
+ /// Returns true if the viewer update is not blocked
+ bool isUpdateEnabled() const;
/// Updates the viewer
void updateViewer() const;
/// Returns Trihedron object if it is displayed
Handle(AIS_InteractiveObject) getTrihedron() const;
- // Set trihedron active (used in selection) or non active
+ /// 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);
+ /// Return true if the object is visible. If the object is feature, it returns true
+ /// if all results of the feature are shown
+ /// \param theDisplayer a displayer
+ /// \param theObject an object
+ /// \return a boolean value
+ static bool isVisible(XGUI_Displayer* theDislayer, const ObjectPtr& theObject);
+
signals:
/// Signal on object display
/// \param theObject a data object
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();
/// Selection modes installed for external objects in local context
QIntList myActiveSelectionModes;
- /// the enable update viewer flag
- bool myEnableUpdateViewer;
+ /// Number of blocking of the viewer update. The viewer is updated only if it equals zero
+ int myViewerBlockedRecursiveCount;
// Flag: use trihedgon for selection or not
bool myIsTrihedronActive;