]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModelAPI/ModelAPI_Result.h
Salome HOME
472fe0056924b7b43f3658d172c19469438e9be2
[modules/shaper.git] / src / ModelAPI / ModelAPI_Result.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        ModelAPI_Result.hxx
4 // Created:     07 Jul 2014
5 // Author:      Mikhail PONIKAROV
6
7 #ifndef ModelAPI_Result_H_
8 #define ModelAPI_Result_H_
9
10 #include "ModelAPI_Object.h"
11 #include <GeomAPI_Shape.h>
12
13 class ModelAPI_Feature;
14
15 /**\class ModelAPI_Result
16  * \ingroup DataModel
17  * \brief The result of a feature.
18  *
19  * A generic class that .
20  */
21 class ModelAPI_Result : public ModelAPI_Object
22 {
23   bool myIsConcealed; ///< the result is concealed from the data tree (referenced by other objects)
24  public:
25
26   /// Reference to the color of the result
27   inline static const std::string& COLOR_ID()
28   {
29     static const std::string MY_COLOR_ID("Color");
30     return MY_COLOR_ID;
31   }
32
33   /// Returns true if the result is concealed from the data tree (referenced by other objects)
34   inline bool isConcealed()
35   {
36     return myIsConcealed;
37   }
38
39   /// Returns true if the result is concealed from the data tree (referenced by other objects)
40   inline void setIsConcealed(const bool theValue)
41   {
42     myIsConcealed = theValue;
43   }
44
45   // Retuns the parameters of color definition in the resources config manager
46   virtual void colorConfigInfo(std::string& theSection, std::string& theName,
47     std::string& theDefault) {}
48
49   /// Request for initialization of data model of the result: adding all attributes
50   virtual void initAttributes() {};
51
52   /// To virtually destroy the fields of successors
53   MODELAPI_EXPORT virtual ~ModelAPI_Result();
54
55   /// Returns the shape-result produced by this feature (or null if no shapes)
56   MODELAPI_EXPORT virtual std::shared_ptr<GeomAPI_Shape> shape();
57
58   /// On change of attribute of the result update presentation of this result:
59   /// for the current moment there are only presentation attributes assigned to results
60   MODELAPI_EXPORT virtual void attributeChanged(const std::string& theID);
61 };
62
63 //! Pointer on feature object
64 typedef std::shared_ptr<ModelAPI_Result> ResultPtr;
65
66 #endif