Salome HOME
Boost has been removed from code
[modules/shaper.git] / src / Model / Model_ResultConstruction.h
1 // File:        ModelAPI_ResultConstruction.hxx
2 // Created:     07 Jul 2014
3 // Author:      Mikhail PONIKAROV
4
5 #ifndef Model_ResultConstruction_H_
6 #define Model_ResultConstruction_H_
7
8 #include "Model.h"
9 #include <ModelAPI_ResultConstruction.h>
10
11 /**\class ModelAPI_ResultConstruction
12  * \ingroup DataModel
13  * \brief The construction element result of a feature.
14  *
15  * Provides a shape that may be displayed in the viewer.
16  * Intermediate, light result that in many cases produces a result on the fly.
17  */
18 class Model_ResultConstruction : public ModelAPI_ResultConstruction
19 {
20   std::shared_ptr<ModelAPI_Feature> myOwner;  ///< owner of this result
21   std::shared_ptr<GeomAPI_Shape> myShape;  ///< shape of this result created "on the fly"
22   bool myIsInHistory;
23  public:
24   /// By default object is displayed in the object browser.
25   MODEL_EXPORT virtual bool isInHistory()
26   {
27     return myIsInHistory;
28   }
29
30   /// Sets the result
31   MODEL_EXPORT virtual void setShape(std::shared_ptr<GeomAPI_Shape> theShape);
32   /// Returns the shape-result produced by this feature
33   MODEL_EXPORT virtual std::shared_ptr<GeomAPI_Shape>& shape();
34
35   /// Sets the flag that it must be displayed in history (default is true)
36   MODEL_EXPORT virtual void setIsInHistory(const bool myIsInHistory);
37
38  protected:
39   /// Makes a body on the given feature
40   Model_ResultConstruction();
41
42   friend class Model_Document;
43 };
44
45 #endif