Salome HOME
updated copyright message
[modules/shaper.git] / src / BuildPlugin / BuildPlugin_Interpolation.h
index a03b111abc65a82dcacbcd0d4e4f8204a6d9babf..91d5c9b10a6df934299b806de882994ca46169cc 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
@@ -40,6 +40,27 @@ public:
     return MY_ID;
   }
 
+  /// Attribute name of creation method.
+  inline static const std::string& CREATION_METHOD_ID()
+  {
+    static const std::string MY_CREATION_METHOD_ID("interpolation_method");
+    return MY_CREATION_METHOD_ID;
+  }
+
+  /// Attribute name of creation method by selection
+  inline static const std::string& CREATION_METHOD_BY_SELECTION_ID()
+  {
+    static const std::string MY_CREATION_METHOD_BY_SELECTION_ID("by_selection");
+    return MY_CREATION_METHOD_BY_SELECTION_ID;
+  }
+
+  /// Attribute name of creation method analytical
+  inline static const std::string& CREATION_METHOD_ANALYTICAL_ID()
+  {
+    static const std::string MY_CREATION_METHOD_ANALYTICAL_ID("analytical");
+    return MY_CREATION_METHOD_ANALYTICAL_ID;
+  }
+
   /// Attribute name of base objects.
   inline static const std::string& BASE_OBJECTS_ID()
   {
@@ -82,9 +103,79 @@ public:
     return MY_TANGENT_END_ID;
   }
 
+  /// Attribute name of x(t) equation.
+  inline static const std::string& XT_ID()
+  {
+    static const std::string MY_XT_ID("xt");
+    return MY_XT_ID;
+  }
+
+  /// Attribute name of y(t) equation.
+  inline static const std::string& YT_ID()
+  {
+    static const std::string MY_YT_ID("yt");
+    return MY_YT_ID;
+  }
+
+  /// Attribute name of z(t) equation.
+  inline static const std::string& ZT_ID()
+  {
+    static const std::string MY_ZT_ID("zt");
+    return MY_ZT_ID;
+  }
+
+  /// Attribute name of min t.
+  inline static const std::string& MINT_ID()
+  {
+    static const std::string MY_MINT_ID("mint");
+    return MY_MINT_ID;
+  }
+
+  /// Attribute name of max t.
+  inline static const std::string& MAXT_ID()
+  {
+    static const std::string MY_MAXT_ID("maxt");
+    return MY_MAXT_ID;
+  }
+
+  /// Attribute of parameter name of variable
+  inline static const std::string& VARIABLE_ID()
+  {
+    static const std::string MY_VARIABLE_ID("variable");
+    return MY_VARIABLE_ID;
+  }
+
+  /// Attribute of parameter name of value
+  inline static const std::string& VALUE_ID()
+  {
+    static const std::string MY_VALUE_ID("value");
+    return MY_VALUE_ID;
+  }
+
+  /// Attribute of parameter expression error
+  inline static const std::string& EXPRESSION_ERROR_ID()
+  {
+    static const std::string MY_EXPRESSION_ERROR_ID("ExpressionError");
+    return MY_EXPRESSION_ERROR_ID;
+  }
+
+  /// Attribute name of number of steps
+  inline static const std::string& NUMSTEP_ID()
+  {
+    static const std::string MY_NUMSTEP_ID("numstep");
+    return MY_NUMSTEP_ID;
+  }
+
   /// Default value of the closed attribute
   inline static bool CLOSED_DEFAULT() { return false; }
 
+  /// List of references to the arguments of this expression
+  inline static const std::string& ARGUMENTS_ID()
+  {
+    static const std::string MY_ARGUMENTS_ID("arguments");
+    return MY_ARGUMENTS_ID;
+  }
+
   /// \return the kind of a feature.
   BUILDPLUGIN_EXPORT virtual const std::string& getKind()
   {
@@ -97,6 +188,21 @@ public:
 
   /// Creates a new part document if needed.
   BUILDPLUGIN_EXPORT virtual void execute();
+
+  /// Called on change of any argument-attribute of this object.
+  /// \param[in] theID identifier of changed attribute.
+  BUILDPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID);
+
+  protected:
+  /// Evaluates the expression x(t), y(t),z(t) in value table.
+  void evaluate(std::string& theError);
+
+  /// Update coordinates x,y,z
+  void updateCoordinates();
+
+  /// Output error for python interpreter
+  std::string outErrorMessage;
+
 };
 
 #endif