Salome HOME
Issue #17347: B-Splines in Sketcher
[modules/shaper.git] / src / SketchAPI / SketchAPI_MacroEllipse.h
index 596a417e6801682a5479a8e84354f355541d62f8..bc2ab1333a01e8ba68ae055c331e6174179dac37 100644 (file)
@@ -37,7 +37,8 @@ class SketchAPI_MacroEllipse: public SketchAPI_SketchEntity
 public:
   /// Constructor without values.
   SKETCHAPI_EXPORT
-  explicit SketchAPI_MacroEllipse(const std::shared_ptr<ModelAPI_Feature>& theFeature);
+  explicit SketchAPI_MacroEllipse(const std::shared_ptr<ModelAPI_Feature>& theFeature,
+                                  bool callInitialize = true);
 
   /// Constructor with values.
   SKETCHAPI_EXPORT
@@ -93,29 +94,25 @@ public:
   /// Return created auxiliary minor axis
   SKETCHAPI_EXPORT std::shared_ptr<SketchAPI_Line> minorAxis();
 
+protected:
+  // find a parent sketch
+  void storeSketch(const std::shared_ptr<ModelAPI_Feature>& theFeature);
+
 private:
   /// Set flag of creation by center, major semi-axis and passed point.
-  void setByCenterAndPassedPoints();
+  void setByCenterAndPassedPoints(const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
+                                  const ModelHighAPI_RefAttr&           theCenterRef,
+                                  const std::shared_ptr<GeomAPI_Pnt2d>& theMajorAxisPoint,
+                                  const ModelHighAPI_RefAttr&           theMajorAxisPointRef,
+                                  const std::shared_ptr<GeomAPI_Pnt2d>& thePassedPoint,
+                                  const ModelHighAPI_RefAttr&           thePassedPointRef);
   /// Set flag of creation by major axis and passed point.
-  void setByMajorAxisAndPassedPoint();
-
-  /// Set points of ellipse.
-  void initializePoints(double theMajorAxisX1, double theMajorAxisY1,
-                        double theMajorAxisX2, double theMajorAxisY2,
-                        double thePassedX, double thePassedY);
-
-  /// Set points of ellipse.
-  void initializePoints(const std::shared_ptr<GeomAPI_Pnt2d>& theMajorAxisPoint1,
-                        const std::shared_ptr<GeomAPI_Pnt2d>& theMajorAxisPoint2,
-                        const std::shared_ptr<GeomAPI_Pnt2d>& thePassedPoint);
-
-  /// Set points of ellipse.
-  void initializePoints(const std::shared_ptr<GeomAPI_Pnt2d>& theMajorAxisPoint1,
-                        const ModelHighAPI_RefAttr&           theMajorAxisPoint1Ref,
-                        const std::shared_ptr<GeomAPI_Pnt2d>& theMajorAxisPoint2,
-                        const ModelHighAPI_RefAttr&           theMajorAxisPoint2Ref,
-                        const std::shared_ptr<GeomAPI_Pnt2d>& thePassedPoint,
-                        const ModelHighAPI_RefAttr&           thePassedPointRef);
+  void setByMajorAxisAndPassedPoint(const std::shared_ptr<GeomAPI_Pnt2d>& theMajorAxisStart,
+                                    const ModelHighAPI_RefAttr&           theMajorAxisStartRef,
+                                    const std::shared_ptr<GeomAPI_Pnt2d>& theMajorAxisEnd,
+                                    const ModelHighAPI_RefAttr&           theMajorAxisEndRef,
+                                    const std::shared_ptr<GeomAPI_Pnt2d>& thePassedPoint,
+                                    const ModelHighAPI_RefAttr&           thePassedPointRef);
 
   /// Collect auxiliary features
   void collectAuxiliary();