Code

Follow-up ui rollback for fixing bug #399604.
[inkscape.git] / src / 2geom / svg-elliptical-arc.h
index 5c42e6e1d1e57fecb3e88590b77a7850e20378b6..dad9000c11034758512383b920f9c08b1022a29f 100644 (file)
@@ -1,5 +1,6 @@
-/*
- * Elliptical Arc - implementation of the svg elliptical arc path element
+/**
+ * \file
+ * \brief  Elliptical Arc - implementation of the SVGEllipticalArc path element
  *
  * Authors:
  *      MenTaLguY <mental@rydia.net>
@@ -66,20 +67,19 @@ class SVGEllipticalArc : public Curve
     {
     }
 
-    /*
-     * constructor
+    /**
+     * \brief constructor
      *
-     * input parameters:
-     * _initial_point:     initial arc end point;
-     * _rx:                ellipse x-axis ray length
-     * _ry:                ellipse y-axis ray length
-     * _rot_angle:         ellipse x-axis rotation angle;
-     * _large_arc:         if true the largest arc is chosen,
+     * \param _initial_point:     initial arc end point;
+     * \param _rx:                ellipse x-axis ray length
+     * \param _ry:                ellipse y-axis ray length
+     * \param _rot_angle:         ellipse x-axis rotation angle in radians;
+     * \param _large_arc:         if true the largest arc is chosen,
      *                     if false the smallest arc is chosen;
-     * _sweep :            if true the clockwise arc is chosen,
+     * \param _sweep :            if true the clockwise arc is chosen,
      *                     if false the counter-clockwise arc is chosen;
-     * _final_point:       final arc end point;
-     * _svg_compliant:     if true the class behaviour follows the Standard
+     * \param _final_point:       final arc end point;
+     * \param _svg_compliant:     if true the class behaviour follows the Standard
      *                     SVG 1.1 implementation guidelines (see Appendix F.6)
      *                     if false the class behavoiur is more strict
      *                     on input parameter
@@ -200,15 +200,15 @@ class SVGEllipticalArc : public Curve
         return m_svg_compliant;
     }
 
-    Rect boundsFast() const
+    virtual OptRect boundsFast() const
     {
         return boundsExact();
     }
 
-    Rect boundsExact() const;
+    virtual OptRect boundsExact() const;
 
     // TODO: native implementation of the following methods
-    Rect boundsLocal(Interval i, unsigned int deg) const
+    virtual OptRect boundsLocal(OptInterval i, unsigned int deg) const
     {
         if (isDegenerate() && is_svg_compliant())
             return chord().boundsLocal(i, deg);
@@ -248,6 +248,8 @@ class SVGEllipticalArc : public Curve
         else
             return SBasisCurve(toSBasis()).winding(p);
     }
+    
+    int degreesOfFreedom() const { return 5;}
 
     Curve *derivative() const;