I have been browsing the code to find usages of SVGEllipticalArc that may affect Bug 653315. So far the most interesting reference is in:
\src\display\inkscape-cairo.cpp, around line 136, routine 'feed_curve_to_cairo'
the code is:
.................................................................................................
// else if(Geom::SVGEllipticalArc const *svg_elliptical_arc = dynamic_cast<Geom::SVGEllipticalArc *>(c)) { // //TODO: get at the innards and spit them out to cairo // } else { //this case handles sbasis as well as all other curve types Geom::Path sbasis_path = Geom::cubicbezierpath_from_sbasis(c.toSBasis(), 0.1);
//recurse to convert the new path resulting from the sbasis to svgd for(Geom::Path::iterator iter = sbasis_path.begin(); iter != sbasis_path.end(); ++iter) { feed_curve_to_cairo(cr, *iter, trans, view, optimize_stroke); } }
......................................................................................
what I am curious about is the tolerance value of 0.1 in the call to Geom::cubicbezierpath_from_sbasis.
Two questions: - is this code responsible for rendering ellipses? - would it be worthwhile to try a lower tolerance?
(there are other instances of this usage, in the files geom.cpp, PathCutting.cpp, svg-path.cpp, but I hope the current one is most relevant.)
thanks, Alvin