Salome HOME
Merge branch 'master' of newgeom:newgeom
[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   boost::shared_ptr<ModelAPI_Feature> myOwner; ///< owner of this result
21   boost::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() {return myIsInHistory;}
26   
27   /// Sets the result
28   MODEL_EXPORT virtual void setShape(boost::shared_ptr<GeomAPI_Shape> theShape);
29   /// Returns the shape-result produced by this feature
30   MODEL_EXPORT virtual boost::shared_ptr<GeomAPI_Shape>& shape();
31
32   /// Sets the flag that it must be displayed in history (default is true)
33   MODEL_EXPORT virtual void setIsInHistory(const bool myIsInHistory);
34
35 protected:
36   /// Makes a body on the given feature
37   Model_ResultConstruction();
38
39   friend class Model_Document;
40 };
41
42 #endif