X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_AttributeSelection.h;h=8708c136dc932defde1ecfba2c0761475841ee7f;hb=4b07d0ae015bc7ed510f8795d9d57d408e0367eb;hp=2e71baea1c1406510278abcce44fdf12118a74ef;hpb=54f1bc8dd6fe9682aba17578587cd760f8b82b3c;p=modules%2Fshaper.git diff --git a/src/Model/Model_AttributeSelection.h b/src/Model/Model_AttributeSelection.h index 2e71baea1..8708c136d 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,19 +20,36 @@ 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 @@ -38,10 +58,18 @@ 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(); friend class Model_Data; friend class Model_AttributeSelectionList;