X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_AttributeSelection.h;h=2f9250642d023a018a0c265aebf27f4521580010;hb=661e9cfd56e1f8bb05d868292a669d7ccc8b12e8;hp=91e77e6e81f544da6c8372c21538aaa82e614c05;hpb=c39f725bfe98395871c5853dacb89ab1a6ecc6f2;p=modules%2Fshaper.git diff --git a/src/Model/Model_AttributeSelection.h b/src/Model/Model_AttributeSelection.h index 91e77e6e8..2f9250642 100644 --- a/src/Model/Model_AttributeSelection.h +++ b/src/Model/Model_AttributeSelection.h @@ -21,10 +21,19 @@ 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 + /// temporarily storages to avoid keeping in the data structure if not needed + ResultPtr myTmpContext; + /// temporarily storages to avoid keeping in the data structure if not needed + std::shared_ptr myTmpSubShape; public: /// Defines the result and its selected sub-shape + /// \param theContext object where the sub-shape was selected + /// \param theSubShape selected sub-shape (if null, the whole context is selected) + /// \param theTemporarily if it is true, do not store and name the added in the data framework + /// (used to remove immideately, without the following updates) MODEL_EXPORT virtual void setValue( - const ResultPtr& theContext, const std::shared_ptr& theSubShape); + const ResultPtr& theContext, const std::shared_ptr& theSubShape, + const bool theTemporarily = false); /// Returns the selected subshape MODEL_EXPORT virtual std::shared_ptr value(); @@ -45,16 +54,24 @@ public: /// 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 + /// It should then be removed when a direct use of objects from SHAPER /// will be possible from SMESH module of SALOME. MODEL_EXPORT virtual int Id(); + /// Defines the sub-shape by Id + /// NOTE: This method is opposite to Id() method. + MODEL_EXPORT virtual void setId(int theID); + /// 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); /// Returns true if attribute was initialized by some value MODEL_EXPORT virtual bool isInitialized(); + /// Returns true if recomute of selection become impossible + MODEL_EXPORT virtual bool isInvalid(); + + protected: /// Objects are created for features automatically MODEL_EXPORT Model_AttributeSelection(TDF_Label& theLabel); @@ -72,7 +89,7 @@ protected: /// \param theContext the result - owner of the selection /// \param theSubShape selected shape /// \param theUpdate flag that shows that it must be just update, theShape is null - /// \param returns true if eveything is selected correctly + /// \returns true if eveything is selected correctly virtual bool selectPart( const ResultPtr& theContext, const std::shared_ptr& theSubShape, const bool theUpdate = false); @@ -87,6 +104,9 @@ protected: /// Sets the ID of the attribute in Data (called from Data): here it is used for myRef ID setting MODEL_EXPORT virtual void setID(const std::string theID); + /// Returns the name by context. Adds the part name if the context is located in other document + std::string contextName(const ResultPtr& theContext) const; + friend class Model_Data; friend class Model_AttributeSelectionList; };