1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
3 // File: ModelAPI_ResultCompSolid.hxx
4 // Created: 20 Jul 2015
5 // Author: Natalia ERMOLAEVA
7 #ifndef ModelAPI_ResultCompSolid_H_
8 #define ModelAPI_ResultCompSolid_H_
10 #include "ModelAPI_Result.h"
11 #include "ModelAPI_ResultBody.h"
14 /**\class ModelAPI_ResultCompSolid
16 * \brief The comp solid (container of results) result of a feature.
18 * Provides a conainer of body result that may be displayed in the viewer.
20 class ModelAPI_ResultCompSolid : public ModelAPI_Result
23 MODELAPI_EXPORT virtual ~ModelAPI_ResultCompSolid();
24 /// Returns the group identifier of this result
25 MODELAPI_EXPORT virtual std::string groupName();
27 /// Returns the group identifier of this result
28 inline static std::string group()
30 static std::string MY_GROUP = "CompSolid";
34 /// Request for initialization of data model of the object: adding all attributes
35 MODELAPI_EXPORT virtual void initAttributes();
37 /// Returns the feature is disabled or not.
38 MODELAPI_EXPORT virtual bool isDisabled() const;
40 /// Adds result to the sketch and to its document
41 virtual std::shared_ptr<ModelAPI_ResultBody> addResult(std::string theID) = 0;
43 /// Returns the number of sub-elements
44 virtual int numberOfSubs(bool forTree = false) const = 0;
46 /// Returns the sub-result by zero-base index
47 virtual std::shared_ptr<ModelAPI_ResultBody> subResult(const int theIndex,
48 bool forTree = false) const = 0;
50 /// Returns the sub-feature unique identifier in this composite feature by zero-base index
51 virtual int subResultId(const int theIndex) const = 0;
53 /// Returns true if feature or reuslt belong to this composite feature as subs
54 virtual bool isSub(ObjectPtr theObject) const = 0;
56 /// This method to inform that sub-feature is removed and must be removed from the internal data
57 /// structures of the owner (the remove from the document will be done outside just after)
58 virtual void removeResult(std::shared_ptr<ModelAPI_ResultBody> theResult) = 0;
63 //! Pointer on feature object
64 typedef std::shared_ptr<ModelAPI_ResultCompSolid> ResultCompSolidPtr;