X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Feature.h;h=b42266074ba9bb3a2e54e2a015194de812a8539f;hb=7edae2e3ede0ca739810de747c975f4983398f76;hp=0bdb7817ee43550a266a43b57ac998319eea0686;hpb=c0565e75ce0bd2f2994dc9874c4775cf7a4cb7ad;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Feature.h b/src/ModelAPI/ModelAPI_Feature.h index 0bdb7817e..b42266074 100644 --- a/src/ModelAPI/ModelAPI_Feature.h +++ b/src/ModelAPI/ModelAPI_Feature.h @@ -29,14 +29,28 @@ public: /// Returns the unique kind of a feature (like "Point") virtual const std::string& getKind() = 0; + /// Returns the group identifier of all features + static std::string group() + {static std::string MY_GROUP = "Features"; return MY_GROUP;} + + /// Returns the group identifier of this result + virtual std::string groupName() { return group(); } + /// Request for initialization of data model of the feature: adding all attributes virtual void initAttributes() = 0; /// Computes or recomputes the results virtual void execute() = 0; - // returns the current results of the feature - std::list >& results() {return myResults;} + /// returns the current results of the feature + MODELAPI_EXPORT const std::list >& results(); + /// returns the first result in the list or NULL reference + MODELAPI_EXPORT boost::shared_ptr firstResult(); + /// sets the alone result + MODELAPI_EXPORT void setResult(const boost::shared_ptr& theResult); + /// sets the result by index (zero based), results before this must be set before + MODELAPI_EXPORT void setResult( + const boost::shared_ptr& theResult, const int theIndex); /// Returns true if this feature must not be created: this is just an action /// that is not stored in the features history and data model (like "delete part"). @@ -44,11 +58,10 @@ public: /// Must return document where the new feature must be added to /// By default it is current document - virtual boost::shared_ptr documentToAdd() - {return ModelAPI_PluginManager::get()->currentDocument();} + MODELAPI_EXPORT virtual boost::shared_ptr documentToAdd(); /// To virtually destroy the fields of successors - virtual ~ModelAPI_Feature() {} + MODELAPI_EXPORT virtual ~ModelAPI_Feature(); }; //! Pointer on feature object