+ /// 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);
+
+ /// Fills the map by the feature object and shapes, which should be visuaziled
+ /// Gets the feature attribute, collect objects to whom the attribute refers
+ /// \param theObjectShape an output map of objects
+ void getFeatureShapes(QMap<ObjectPtr, QList<GeomShapePtr> >& theObjectShapes);
+
+ /// Returns true if the attribute type belong to reference attribute
+ /// \param theAttribute an attribute
+ /// \return a boolean value
+ static bool isSelectionAttribute(const AttributePtr& theAttribute);
+
+ /// Converts the current workshop to XGUI workshop
+ /// \return a workshop instance
+ XGUI_Workshop* workshop() const;
+
+private:
+ ModuleBase_IWorkshop* myWorkshop;
+ FeaturePtr myFeature; /// Reference to a feature object
+ QMap<ObjectPtr, QList<GeomShapePtr> > myFeatureShapes; /// visualized shapes
+ std::list<ResultPtr> myFeatureResults; /// visualized feature results
+
+ Quantity_Color myShapeColor; /// color of feature depended shapes
+ Quantity_Color myResultColor; /// color of feature result