#include <ModuleBase_Definitions.h>
#include <ModuleBase_ViewerPrs.h>
+#include <GeomAPI_ICustomPrs.h>
+
#include <SelectMgr_AndFilter.hxx>
#include <QString>
#include <QMap>
+#include <QObject>
class ModelAPI_Feature;
class XGUI_Workshop;
* \ingroup GUI
* \brief Displayer. Provides mechanizm of display/erase of objects in the viewer
*/
-class XGUI_EXPORT XGUI_Displayer
+class XGUI_EXPORT XGUI_Displayer: public QObject
{
+ Q_OBJECT
public:
/// \enum DisplayMode display mode
enum DisplayMode {
/// \param theObject object to check
bool canBeShaded(ObjectPtr theObject) const;
+
+signals:
+ /// Signal on object display
+ /// \param theObject a data object
+ /// \param theAIS a presentation object
+ void objectDisplayed(ObjectPtr theObject, AISObjectPtr theAIS);
+
+ /// Signal on before object erase
+ /// \param theObject a data object
+ /// \param theAIS a presentation object
+ void beforeObjectErase(ObjectPtr theObject, AISObjectPtr theAIS);
+
protected:
/// Returns currently installed AIS_InteractiveContext
Handle(AIS_InteractiveContext) AISContext() const;
* If the object is result with the color attribute value set, it is used,
* otherwise the customize is applyed to the object's feature if it is a custom prs
* \param theObject an object instance
+ * \return the true state if there is changes and the presentation is customized
*/
- void customizeObject(ObjectPtr theObject);
+ bool customizeObject(ObjectPtr theObject);
protected:
/// Reference to workshop
/// A container for selection filters
Handle(SelectMgr_AndFilter) myAndFilter;
+ /// A default custom presentation, which is used if the displayed feature is not a custom presentation
+ GeomCustomPrsPtr myCustomPrs;
+
/// Definition of a type of map which defines correspondance between objects and presentations
typedef QMap<ObjectPtr, AISObjectPtr> ResultToAISMap;