Salome HOME
Boost has been removed from code
[modules/shaper.git] / src / ModelAPI / ModelAPI_ResultConstruction.h
1 // File:        ModelAPI_ResultConstruction.h
2 // Created:     07 Jul 2014
3 // Author:      Mikhail PONIKAROV
4
5 #ifndef ModelAPI_ResultConstruction_H_
6 #define ModelAPI_ResultConstruction_H_
7
8 #include "ModelAPI_Result.h"
9 #include <GeomAPI_Shape.h>
10
11 #include <string>
12
13 /**\class ModelAPI_ResultConstruction
14  * \ingroup DataModel
15  * \brief The construction element result of a feature.
16  *
17  * Provides a shape that may be displayed in the viewer.
18  * Intermediate, light result that in many cases produces a result on the fly.
19  */
20 class ModelAPI_ResultConstruction : public ModelAPI_Result
21 {
22  public:
23   /// Returns the group identifier of this result
24   virtual std::string groupName()
25   {
26     return group();
27   }
28
29   /// Returns the group identifier of this result
30   static std::string group()
31   {
32     static std::string MY_GROUP = "Construction";
33     return MY_GROUP;
34   }
35
36   /// Returns the shape-result produced by this feature
37   virtual std::shared_ptr<GeomAPI_Shape>& shape() = 0;
38
39   /// Sets the result
40   virtual void setShape(std::shared_ptr<GeomAPI_Shape> theShape) = 0;
41
42   /// Sets the flag that it must be displayed in history (default is true)
43   virtual void setIsInHistory(const bool isInHistory) = 0;
44 };
45
46 //! Pointer on feature object
47 typedef std::shared_ptr<ModelAPI_ResultConstruction> ResultConstructionPtr;
48
49 #endif