X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_AttributeSelection.h;h=22aaf8d9f9b831476ba6d1c63d47701f7570f6b3;hb=6a7e53a3d3b52f1f798b7e3aa3c48de9c870d92b;hp=d8e8a54a7082f435e8ad9e7498f93dde187fcf3b;hpb=93310e00f0ac95395137c842108790bf62e6425e;p=modules%2Fshaper.git diff --git a/src/Model/Model_AttributeSelection.h b/src/Model/Model_AttributeSelection.h index d8e8a54a7..22aaf8d9f 100644 --- a/src/Model/Model_AttributeSelection.h +++ b/src/Model/Model_AttributeSelection.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: Model_AttributeSelection.h // Created: 8 May 2014 // Author: Mikhail PONIKAROV @@ -8,6 +10,7 @@ #include "Model.h" #include "Model_AttributeReference.h" #include +#include /**\class Model_AttributeSelection * \ingroup DataModel @@ -17,22 +20,62 @@ class Model_AttributeSelection : public ModelAPI_AttributeSelection { Model_AttributeReference myRef; ///< The reference functionality reusage + TDF_LabelMap myScope; ///< the map of valid labels for naming selection solving public: /// Defines the result and its selected sub-shape MODEL_EXPORT virtual void setValue( - const ResultBodyPtr& theContext, const boost::shared_ptr& theSubShape); + const ResultPtr& theContext, const std::shared_ptr& theSubShape); /// Returns the selected subshape - MODEL_EXPORT virtual boost::shared_ptr value(); + MODEL_EXPORT virtual std::shared_ptr value(); /// Returns the context of the selection (the whole shape owner) - MODEL_EXPORT virtual ResultBodyPtr context(); + MODEL_EXPORT virtual ResultPtr context(); + + /// Sets the feature object + MODEL_EXPORT virtual void setObject(const std::shared_ptr& theObject); + + /// Updates the underlied selection due to the changes in the referenced objects + /// \returns false if update is failed + MODEL_EXPORT virtual bool update(); + + /// Returns a textual string of the selection + MODEL_EXPORT virtual std::string namingName(); + + /// Returns an Id of the selection + /// NOTE: This method has been added for temporary export of groups towards old GEOM + /// It should then be removed when a direct use of objects from NewGeom + /// will be possible from SMESH module of SALOME. + MODEL_EXPORT virtual int Id(); + + /// Selects (i.e. creates Naming data structure) of sub-shape specifed by textual name + MODEL_EXPORT virtual void selectSubShape(const std::string& theType, const std::string& theSubShapeName); protected: /// Objects are created for features automatically MODEL_EXPORT Model_AttributeSelection(TDF_Label& theLabel); + /// Performs the selection for the body result (TNaming Selection) + + /// Performs the selection for the body result (TNaming selection) + virtual void selectBody( + const ResultPtr& theContext, const std::shared_ptr& theSubShape); + + /// Performs the selection for the construction result (selection by index) + virtual void selectConstruction( + const ResultPtr& theContext, const std::shared_ptr& theSubShape); + + /// Returns the label where TNaming_Selection results are stored + /// Note: there must be no attributes stored at the same label because Selector clears this lab + TDF_Label selectionLabel(); + + /// Returns the prepared map of valid labels for naming selection solving (creates if not exists) + TDF_LabelMap& scope(); + + /// Sets the ID of the attribute in Data (called from Data): here it is used for myRef ID setting + MODELAPI_EXPORT virtual void setID(const std::string theID); friend class Model_Data; + friend class Model_AttributeSelectionList; }; #endif