Salome HOME
updated copyright message
[modules/shaper.git] / src / ModelAPI / ModelAPI_Feature.h
index fe7cc35e872465e157331fc81353a5416ecfb5ad..c5705de11e5bb9493fdc10c638e378c07cbc472b 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -73,7 +73,7 @@ class ModelAPI_Feature : public ModelAPI_Object
   /// Computes the attribute value on the base of other attributes if the value can be computed
   /// \param theAttributeId an attribute index to be computed
   /// \return a boolean value about it is computed
-  virtual bool compute(const std::string& theAttributeId) { return false; };
+  virtual bool compute(const std::string& /*theAttributeId*/) { return false; };
 
   /// Registers error during the execution, causes the ExecutionFailed state
   MODELAPI_EXPORT virtual void setError(const std::string& theError,
@@ -164,7 +164,7 @@ class ModelAPI_Feature : public ModelAPI_Object
  // Helper methods, aliases for data()->method()
  // -----------------------------------------------------------------------------------------------
   /// Returns the name stored in the attribute
-  inline std::string name()
+  inline std::wstring name()
   {
     return data()->name();
   }
@@ -198,6 +198,11 @@ class ModelAPI_Feature : public ModelAPI_Object
   {
     return data()->refattr(theID);
   }
+  /// Returns the refattrlist attribute by the identifier
+  inline std::shared_ptr<ModelAPI_AttributeRefAttrList> refattrlist(const std::string& theID)
+  {
+    return data()->refattrlist(theID);
+  }
   /// Returns the reference attribute by the identifier
   inline std::shared_ptr<ModelAPI_AttributeReference> reference(const std::string& theID)
   {
@@ -250,5 +255,19 @@ class ModelAPI_Feature : public ModelAPI_Object
 //! Pointer on feature object
 typedef std::shared_ptr<ModelAPI_Feature> FeaturePtr;
 
-#endif
+//! An interface for performing special copy actions. To give feature which is moved (a group)
+//! over this feature.
+class ModelAPI_FeatureCopyInterface {
+public:
+  virtual ~ModelAPI_FeatureCopyInterface() {}
 
+  /// An algorithm to update the moved feature by the separate Copy feature
+  /// \param theContext the original context object
+  /// \param theValue the original shape
+  /// \param theCopies resulting copy-context will be appended here
+  virtual void getCopies(ObjectPtr theContext, std::shared_ptr<GeomAPI_Shape> theValue,
+                         std::list<ObjectPtr>& theCopyContext,
+                         std::list<std::shared_ptr<GeomAPI_Shape> >& theCopyVals) = 0;
+};
+
+#endif