X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_AttributeSelection.h;h=22aaf8d9f9b831476ba6d1c63d47701f7570f6b3;hb=6a7e53a3d3b52f1f798b7e3aa3c48de9c870d92b;hp=1508476794ba5bd7f6ebd46d9d4c4a8e45a47b06;hpb=4fcd5da2d972334e887716499b0ea75d9d6c51c2;p=modules%2Fshaper.git diff --git a/src/Model/Model_AttributeSelection.h b/src/Model/Model_AttributeSelection.h index 150847679..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,24 +20,37 @@ 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 ResultPtr& 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 ResultPtr context(); /// Sets the feature object - MODEL_EXPORT virtual void setObject(const boost::shared_ptr& theObject); + 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); @@ -42,15 +58,22 @@ protected: /// Performs the selection for the body result (TNaming selection) virtual void selectBody( - const ResultPtr& theContext, const boost::shared_ptr& theSubShape); + 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 boost::shared_ptr& theSubShape); + 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; };