X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_AttributeSelection.h;h=665758341c1c8aa1ac158eabd1369b78d660314d;hb=acfb7413a39dd03b70cd8d2847264e083eac2a25;hp=1b2f8260155efefa267bca2be85d5bb01b9c2fcf;hpb=c5cdfcc734220f0343206392da4fada7db069e0d;p=modules%2Fshaper.git diff --git a/src/Model/Model_AttributeSelection.h b/src/Model/Model_AttributeSelection.h index 1b2f82601..665758341 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(); @@ -55,6 +64,10 @@ public: /// 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); @@ -68,6 +81,15 @@ protected: virtual void selectConstruction( const ResultPtr& theContext, const std::shared_ptr& theSubShape); + /// Performs the selection for the part result (selection by name of body result inside of part) + /// \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 + /// \returns true if eveything is selected correctly + virtual bool selectPart( + const ResultPtr& theContext, const std::shared_ptr& theSubShape, + const bool theUpdate = false); + /// 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();