From 91207d32f032b200bcadc5fa569521212b68b20e Mon Sep 17 00:00:00 2001 From: kramm Date: Sun, 6 Apr 2003 21:03:55 +0000 Subject: [PATCH] tangent interpolation method added and activated by default. --- pdf2swf/spline.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pdf2swf/spline.cc b/pdf2swf/spline.cc index 37591be..5993c78 100644 --- a/pdf2swf/spline.cc +++ b/pdf2swf/spline.cc @@ -336,6 +336,9 @@ void qsplines_getdrawpoints(qspline*s, int num, float**p, int*pnum, double acc) *p = positions; } + +#define TANGENTS + int approximate2(struct cspline*s, struct qspline*q, double quality, double start, double end) { int num=0; @@ -349,6 +352,23 @@ int approximate2(struct cspline*s, struct qspline*q, double quality, double star test.control = cspline_getpoint(s, (start+end)/2); test.end = cspline_getpoint(s, end); fixcp(&test); + +#ifdef TANGENTS + if(start< 0.5) { + test.control = cspline_getderivative(s, start); + test.control.x *= (end-start)/2; + test.control.y *= (end-start)/2; + test.control.x += test.start.x; + test.control.y += test.start.y; + } else { + test.control = cspline_getderivative(s, end); + test.control.x *= -(end-start)/2; + test.control.y *= -(end-start)/2; + test.control.x += test.end.x; + test.control.y += test.end.y; + } +#endif + for(t=0;t