X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fbezier.h;h=206cbc8a17795d7d267fd02dd029cfeaccd963fc;hp=cfe58082ef64608a50cd218282e2392de5d7b270;hb=0b655cc25b8ed09752296e4df67e7adcec5a5003;hpb=6472d20ee58d2ecc0aee8bc1a12a071b2afc8a27 diff --git a/src/bezier.h b/src/bezier.h index cfe5808..206cbc8 100644 --- a/src/bezier.h +++ b/src/bezier.h @@ -15,7 +15,7 @@ namespace IPDF extern std::vector SolveQuadratic(const Real & a, const Real & b, const Real & c, const Real & min = 0, const Real & max = 1); - extern std::vector SolveCubic(const Real & a, const Real & b, const Real & c, const Real & d, const Real & min = 0, const Real & max = 1, const Real & delta = 1e-9); + extern std::vector SolveCubic(const Real & a, const Real & b, const Real & c, const Real & d, const Real & min = 0, const Real & max = 1, const Real & delta = 1e-4); /** A _cubic_ bezier. **/ struct Bezier @@ -279,7 +279,7 @@ namespace IPDF { Real ptx, pty; Evaluate(ptx, pty, t); - Debug("Root: t = %f, (%f,%f)", t, ptx, pty); + Debug("Root: t = %f, (%f,%f)", Double(t), Double(ptx), Double(pty)); } std::vector all_beziers; @@ -293,11 +293,12 @@ namespace IPDF { Real t1 = *it; if (t1 == t0) continue; - Debug(" -- t0: %f to t1: %f", Double(t0), Double(t1)); + Debug(" -- t0: %f to t1: %f: %f", Double(t0), Double(t1), (t1 + t0)/Real(2)); Real ptx, pty; Evaluate(ptx, pty, ((t1 + t0) / Real(2))); if (r.PointIn(ptx, pty)) { + Debug("Adding segment: (point at %f, %f)", Double(ptx), Double(pty)); all_beziers.push_back(this->ReParametrise(t0, t1)); } else