X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModel%2FModel_AttributeSelection.h;h=65290bb980aa5751895c1c57d5d334c86a9088ff;hb=d1bf96e37f50cceb9a4c225addf693d2460334ba;hp=9512a3a73ebbdddb13ed03e32c51d020f735905d;hpb=ed0ebfede542d5502a6c22cf5d1f79f4bbe8b8b0;p=modules%2Fshaper.git diff --git a/src/Model/Model_AttributeSelection.h b/src/Model/Model_AttributeSelection.h index 9512a3a73..65290bb98 100644 --- a/src/Model/Model_AttributeSelection.h +++ b/src/Model/Model_AttributeSelection.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2022 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef Model_AttributeSelection_H_ @@ -41,7 +40,7 @@ class Model_AttributeSelection : public ModelAPI_AttributeSelection, { Model_AttributeReference myRef; ///< The reference functionality re-usage /// temporarily storages to avoid keeping in the data structure if not needed - ResultPtr myTmpContext; + ObjectPtr myTmpContext; /// temporarily storages to avoid keeping in the data structure if not needed std::shared_ptr myTmpSubShape; /// temporarily storages to avoid keeping in the data structure if not needed @@ -49,7 +48,8 @@ class Model_AttributeSelection : public ModelAPI_AttributeSelection, /// Reference to the parent attribute, if any (to split selection compounds in issue 1799) Model_AttributeSelectionList* myParent; - std::shared_ptr myRestoreDocument; // current document to restore by name + /// current document to restore by name + std::shared_ptr myRestoreDocument; /// If true attribute selects geometry instead of shape. bool myIsGeometricalSelection; @@ -64,7 +64,7 @@ public: const ObjectPtr& theContext, const std::shared_ptr& theSubShape, const bool theTemporarily = false); - /// Same as SetValue, but it takes an edge (on circular or elliptical curve) + /// Same as SetValue, but it takes an edge (on circular or elliptic curve) /// and stores the vertex of the central point (for ellipse the first or the second focus point) MODEL_EXPORT virtual void setValueCenter( const ObjectPtr& theContext, const std::shared_ptr& theEdge, @@ -98,28 +98,21 @@ public: /// Returns a textual string of the selection /// \param theDefaultValue a name, which is returned if the naming name can not be obtained - MODEL_EXPORT virtual std::string namingName(const std::string& theDefaultValue = ""); - - /// 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 SHAPER - /// will be possible from SMESH module of SALOME. - MODEL_EXPORT virtual int Id(); + MODEL_EXPORT virtual std::wstring namingName(const std::wstring& theDefaultValue = L""); /// 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 specified by textual name MODEL_EXPORT virtual void selectSubShape(const std::string& theType, - const std::string& theSubShapeName); + const std::wstring& theSubShapeName); /// Selects sub-shape by its inner point MODEL_EXPORT virtual void selectSubShape(const std::string& theType, const std::shared_ptr& thePoint); /// Selects sub-shape by weak naming index MODEL_EXPORT virtual void selectSubShape(const std::string& theType, - const std::string& theContextName, const int theIndex); + const std::wstring& theContextName, const int theIndex); /// Returns true if attribute was initialized by some value MODEL_EXPORT virtual bool isInitialized(); @@ -129,30 +122,31 @@ public: /// Updates the arguments of selection if something was affected by creation /// or reorder of features upper in the history line (issue #1757) - MODEL_EXPORT virtual void updateInHistory(); + /// Returns theRemove true if this attribute must be removed (become deleted) + MODEL_EXPORT virtual void updateInHistory(bool& theRemove) override; // Implementation of the name generator method from the Selector package // This method returns the context name by the label of the sub-selected shape - MODEL_EXPORT virtual std::string contextName(const TDF_Label theSelectionLab) override; + MODEL_EXPORT virtual std::wstring contextName(const TDF_Label theSelectionLab) override; /// This method restores by the context and value name the context label and /// sub-label where the value is. Returns true if it is valid. - MODEL_EXPORT virtual bool restoreContext(std::string theName, + MODEL_EXPORT virtual bool restoreContext(std::wstring theName, TDF_Label& theContext, TDF_Label& theValue) override; - /// Returns the label of the newest context presented by the current one - MODEL_EXPORT virtual TDF_Label newestContext(const TDF_Label theCurrentContext) override; - /// Returns true if the first result is newer than the second one in the tree of features MODEL_EXPORT virtual bool isLater(const TDF_Label theResult1, const TDF_Label theResult2) const override; /// Returns the name by context. Adds the part name if the context is located in other document - MODEL_EXPORT virtual std::string contextName(const ResultPtr& theContext) const; + MODEL_EXPORT virtual std::wstring contextName(const ResultPtr& theContext) const; /// Makes the current local selection becomes all sub-shapes with same base geometry. MODEL_EXPORT virtual void combineGeometrical(); + /// Resets attribute to deafult state + MODEL_EXPORT virtual void reset(); + protected: /// Objects are created for features automatically MODEL_EXPORT Model_AttributeSelection(TDF_Label& theLabel); @@ -195,8 +189,8 @@ protected: std::list& theResults, TopTools_ListOfShape& theValShapes); /// Searches for the newest context, modification of the current, that contains theValue - ResultPtr newestContext(const ResultPtr theCurrent, - const std::shared_ptr theValue, const bool theAnyValue = false); + ResultPtr newestContext( + const ResultPtr theCurrent, const std::shared_ptr theValue); /// computes theShapes list - shapes that were generated/modified/deleted the theValShape /// during creation from new to old context @@ -212,6 +206,13 @@ protected: /// Returns null label otherwise. TDF_Label baseDocumentLab(); + /// Returns features that conceals theFeature and located in history before theStop + /// theResultOfFeature if not null defines exact referenced result of a feature + void concealedFeature( + const FeaturePtr theFeature, const FeaturePtr theStop, const bool theCheckCopy, + std::list& theConcealers, const ResultPtr theResultOfFeature, + const bool theCheckWholeFeature = false); + friend class Model_Data; friend class Model_AttributeSelectionList; };