X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fbezier.cpp;h=cb926974cf0210feb95dac81cd98a4cd5ec7f4e5;hp=99611dc5d5ba99722e1e1fc05ea652abea703320;hb=748d002a813bbe6309dd22259bdce3278c02b0c8;hpb=0361b11485ec41d2c2ddeb279abf846f777f5363 diff --git a/src/bezier.cpp b/src/bezier.cpp index 99611dc..cb92697 100644 --- a/src/bezier.cpp +++ b/src/bezier.cpp @@ -54,9 +54,11 @@ static void CubicSolveSegment(vector & roots, const Real & a, const Real & Real l = a*tl*tl*tl + b*tl*tl + c*tl + d; Real u = a*tu*tu*tu + b*tu*tu + c*tu + d; if ((l < 0 && u < 0) || (l > 0 && u > 0)) - return; + Debug("Discarding segment (no roots) l = %f (%f), u = %f (%f)", Double(tl), Double(l), Double(tu), Double(u)); + //return; bool negative = (u < l); // lower point > 0, upper point < 0 + Debug("%ft^3 + %ft^2 + %ft + %f is negative (%f < %f) %d", Double(a),Double(b),Double(c),Double(d),Double(u),Double(l), negative); while (tu - tl > delta) { Real t(tu+tl); @@ -87,7 +89,7 @@ vector SolveCubic(const Real & a, const Real & b, const Real & c, const Re Real tu(max); Real tl(min); vector turns(SolveQuadratic(a*3, b*2, c)); - //Debug("%u turning points", turns.size()); + Debug("%u turning points", turns.size()); for (unsigned i = 1; i < turns.size(); ++i) { tu = turns[i];