-// 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
//
// 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<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#ifndef ModelAPI_Feature_H_
/// 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,
// Helper methods, aliases for data()->method()
// -----------------------------------------------------------------------------------------------
/// Returns the name stored in the attribute
- inline std::string name()
+ inline std::wstring name()
{
return data()->name();
}
{
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)
{
//! 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