Salome HOME
Merge remote-tracking branch 'remotes/origin/master' into SolveSpace
[modules/shaper.git] / src / XGUI / XGUI_ViewerPrs.h
1 // File:        XGUI_ViewerPrs.h
2 // Created:     20 Apr 2014
3 // Author:      Natalia ERMOLAEVA
4
5 #ifndef XGUI_ViewerPrs_H
6 #define XGUI_ViewerPrs_H
7
8 #include "XGUI.h"
9
10 #include <boost/shared_ptr.hpp>
11 #include <TopoDS_Shape.hxx>
12
13 class ModelAPI_Feature;
14
15 /**\class XGUI_ViewerPrs
16  * \ingroup GUI
17  * \brief Presentation. Provides container to have feature and the shape
18  */
19 class XGUI_EXPORT XGUI_ViewerPrs
20 {
21 public:
22   /// Constructor
23   XGUI_ViewerPrs();
24   /// Constructor
25   XGUI_ViewerPrs(boost::shared_ptr<ModelAPI_Feature> theFeature,
26                  const TopoDS_Shape& theShape);
27   /// Destructor
28   virtual ~XGUI_ViewerPrs();
29
30   /// Sets the feature.
31   /// \param theFeature a feature instance
32   void setFeature(boost::shared_ptr<ModelAPI_Feature> theFeature);
33
34   /// Sets the shape
35   /// \param theShape a shape instance
36   void setShape(const TopoDS_Shape& theShape);
37
38   /// Returns the feature.
39   /// \return a feature instance
40   boost::shared_ptr<ModelAPI_Feature> feature() const;
41
42   /// Returns the shape
43   /// \return a shape instance
44   const TopoDS_Shape& shape() const;
45
46 private:
47   boost::shared_ptr<ModelAPI_Feature> myFeature; /// the feature
48   TopoDS_Shape myShape; /// the shape
49 };
50
51 #endif