Salome HOME
Dump Python in the High Level Parameterized Geometry API (issue #1648)
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_Sketch.h
index aadbe9caf47a04a25e689740bd394a0bd8682a88..a67069fe87a743026ed4f0af0b1c7173d48dd670 100644 (file)
@@ -30,8 +30,6 @@
  */
 class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_ICustomPrs//, public GeomAPI_IPresentable
 {
-  /// Optimization: indexes of sketch sub-elements are persistent, so, no problems in synchronization.
-  std::map<int, std::shared_ptr<ModelAPI_Feature> > mySubs;
  public:
   /// Sketch feature kind
   inline static const std::string& ID()
@@ -63,6 +61,19 @@ class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_ICu
     static const std::string MY_FEATURES_ID("Features");
     return MY_FEATURES_ID;
   }
+  /// Sketch solver error
+  inline static const std::string& SOLVER_ERROR()
+  {
+    static const std::string MY_SOLVER_ERROR("SolverError");
+    return MY_SOLVER_ERROR;
+  }
+
+  /// Sketch solver error
+  inline static const std::string& SOLVER_DOF()
+  {
+    static const std::string MY_SOLVER_DOF("SolverDOF");
+    return MY_SOLVER_DOF;
+  }
 
   /// Returns the kind of a feature
   SKETCHPLUGIN_EXPORT virtual const std::string& getKind()
@@ -165,9 +176,6 @@ class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_ICu
   }
 
 
-  /// removes also all sub-sketch elements
-  SKETCHPLUGIN_EXPORT virtual void erase();
-
   /// appends a feature to the sketch sub-elements container
   SKETCHPLUGIN_EXPORT virtual std::shared_ptr<ModelAPI_Feature> addFeature(std::string theID);
 
@@ -192,7 +200,14 @@ class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_ICu
 
   SKETCHPLUGIN_EXPORT virtual void attributeChanged(const std::string& theID);
 
+  /// Exchanges IDs of two given features: needed for fillet feature better naming (issue 769)
+  SKETCHPLUGIN_EXPORT virtual void exchangeIDs(std::shared_ptr<ModelAPI_Feature> theFeature1,
+    std::shared_ptr<ModelAPI_Feature> theFeature2);
+
+
   /// \brief Create a result for the point in the attribute if the attribute is initialized
+  /// \param theFeature a source feature
+  /// \param theSketch a sketch intance
   /// \param theAttributeID an attribute string
   /// \param theIndex an index of the result
   static void createPoint2DResult(ModelAPI_Feature* theFeature,
@@ -202,9 +217,12 @@ class SketchPlugin_Sketch : public ModelAPI_CompositeFeature, public GeomAPI_ICu
   /// Add new feature and fill the data of the feature by the data of the parameter feature.
   /// The name of the created feature stays unique.
   /// \param theFeature a source feature
+  /// \param theSketch a sketch intance
+  /// \param theIsCopy if true sets feature copy attribute to true.
   /// \return a created feature
-  static FeaturePtr addUniqueNamedCopiedFeature(FeaturePtr aFeature,
-                                                SketchPlugin_Sketch* theSketch);
+  static FeaturePtr addUniqueNamedCopiedFeature(FeaturePtr theFeature,
+                                                SketchPlugin_Sketch* theSketch,
+                                                const bool theIsCopy = false);
 
   /// Creates a plane of the sketch.
   /// \param theSketch a sketch intance