Salome HOME
Crash when searching duplicated constraints
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_Arc.h
index 47a9f9dd45d2d089d1f2c469478ba1631d2b1b17..0464ebeadb30d60da9aa89f6937af6657f29508c 100644 (file)
@@ -24,6 +24,11 @@ class SketchPlugin_Arc : public SketchPlugin_SketchEntity, public GeomAPI_IPrese
   /// to avoid cyclic dependencies in automatic updates: they mean that 
   /// update is performed right now and automatic updates are not needed
   bool myStartUpdate, myEndUpdate;
+  /// to avoid (if possible) additional modification of changed coordinate (issue #855)
+  double myXEndBefore, myYEndBefore;
+
+  /// to define in which direction draw arc
+  double myParamBefore;
 
  public:
   /// Arc feature kind
@@ -52,6 +57,13 @@ class SketchPlugin_Arc : public SketchPlugin_SketchEntity, public GeomAPI_IPrese
     return MY_END_ID;
   }
 
+  /// Inversed flag
+  inline static const std::string& INVERSED_ID()
+  {
+    static const std::string MY_INVERSED_ID("InversedArc");
+    return MY_INVERSED_ID;
+  }
+
   /// Returns the kind of a feature
   SKETCHPLUGIN_EXPORT virtual const std::string& getKind()
   {
@@ -80,9 +92,11 @@ class SketchPlugin_Arc : public SketchPlugin_SketchEntity, public GeomAPI_IPrese
   /// \param theDeltaY the delta for Y coordinate is moved
   SKETCHPLUGIN_EXPORT virtual void move(const double theDeltaX, const double theDeltaY);
 
-  /// Return the distance between the feature and the point
-  /// \param thePoint the point
-  virtual double distanceToPoint(const std::shared_ptr<GeomAPI_Pnt2d>& thePoint);
+  /// Updates the "reversed" flag
+  /// \param isReversed  whether the arc will be reversed
+  void setReversed(bool isReversed);
+  /// Returns \c true is the arc is reversed
+  bool isReversed();
 
   /// Use plugin manager for features creation
   SketchPlugin_Arc();