X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_OperationPrs.h;h=bf1e5a2bc6bda3cf0650d26b912387947bf6480e;hb=031179ada6681b874314c450eeda806f9f8abd28;hp=20078787dcb3fdd358ae85c46dfd816a72847397;hpb=32442a4f43da44e368f092d64e4004e020c5bfba;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_OperationPrs.h b/src/PartSet/PartSet_OperationPrs.h index 20078787d..bf1e5a2bc 100755 --- a/src/PartSet/PartSet_OperationPrs.h +++ b/src/PartSet/PartSet_OperationPrs.h @@ -21,6 +21,8 @@ #include #include +#include + #include #include @@ -45,20 +47,15 @@ public: /// Constructor Standard_EXPORT PartSet_OperationPrs(ModuleBase_IWorkshop* theWorkshop); - /// Returns true if the feature contains attributes, which has references to other features - /// \param theFeature a feature - /// \return boolean result - bool canActivate(const FeaturePtr& theFeature); - - /// Sets the operation feature. It is used in Compute method to group the feature parameter shapes - /// theFeature a feature - void setFeature(const FeaturePtr& theFeature); + /// Returns true if the feature contains shapes or results + bool hasShapes(); - /// Returns true if the presentation - //bool dependOn(const ObjectPtr& theObject); + /// Sets the colors for the presentation compute + /// \param theColor an argument shapes color + void setShapeColor(const Quantity_Color& theColor); - // Recompute internal list of shaped dependent on the current feature - void updateShapes(); + /// Switch on using of the AIS presentation with of the shape object increased on the delta + void useAISWidth(); DEFINE_STANDARD_RTTI(PartSet_OperationPrs) @@ -71,18 +68,47 @@ protected: /// Redefinition of virtual function Standard_EXPORT virtual void ComputeSelection(const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) ; + +protected: + /// Returns map of feature shapes to be able to fill it outside this class, e.g. in friend + /// \return a map of object to shape + QMap >& featureShapes() { return myFeatureShapes; } + private: /// 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 - bool isVisible(XGUI_Displayer* theDislayer, const ObjectPtr& theObject); + static bool isVisible(XGUI_Displayer* theDislayer, const ObjectPtr& theObject); + + /// Fills the map by the feature object and shapes, which should be visuaziled + /// Gets feature attributes, collect objects to whom the attributes refer + /// \param theFeature a current feature + /// \param theWorkshop a current workshop + /// \param theObjectShapes an output map + /// \param theObjectShape an output map of objects + static void getFeatureShapes(const FeaturePtr& theFeature, + ModuleBase_IWorkshop* theWorkshop, + QMap >& theObjectShapes); /// Fills the map by the feature object and shapes, which should be visuaziled - /// Gets the feature attribute, collect objects to whom the attribute refers + /// Gets feature attributes, collect objects to whom the attributes refer + /// \param theFeature a current feature + /// \param theWorkshop a current workshop + /// \param theObjectShapes an output map /// \param theObjectShape an output map of objects - void getFeatureShapes(QMap >& theObjectShapes); + static void getResultShapes(const FeaturePtr& theFeature, + ModuleBase_IWorkshop* theWorkshop, + QMap >& theObjectShapes); + + /// Fills the map by the feature object and shapes, which should be visuaziled + /// Gets the active widget, obtain the highlighted presentations if it has such and + /// fill map by object and shapes + /// \param theWorkshop a current workshop + /// \param theObjectShapes an output map of objects + static void getHighlightedShapes(ModuleBase_IWorkshop* theWorkshop, + QMap >& theObjectShapes); /// Returns true if the attribute type belong to reference attribute /// \param theAttribute an attribute @@ -90,14 +116,18 @@ private: static bool isSelectionAttribute(const AttributePtr& theAttribute); /// Converts the current workshop to XGUI workshop + /// \param theWorkshop an interface workshop /// \return a workshop instance - XGUI_Workshop* workshop() const; + static XGUI_Workshop* workshop(ModuleBase_IWorkshop* theWorkshop); private: - ModuleBase_IWorkshop* myWorkshop; - FeaturePtr myFeature; /// Reference to a feature object QMap > myFeatureShapes; /// visualized shapes - std::list myFeatureResults; /// visualized feature results + + ModuleBase_IWorkshop* myWorkshop; /// current workshop + Quantity_Color myShapeColor; /// color of feature depended shapes + bool myUseAISWidth; /// flag if the width of a shape object should be used for the shape visualization + + friend class PartSet_CustomPrs; };