summaryrefslogtreecommitdiffstats
path: root/src/livarot/PathConversion.cpp
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2008-10-11 15:16:23 +0000
committerTed Gould <ted@canonical.com>2008-10-11 15:16:23 +0000
commit2f5eb047d9e05be5e68549ef6b75070d2faa7d2f (patch)
treeca2e94164b6d7aaebfc17196ca46bfc825a7665a /src/livarot/PathConversion.cpp
parentMerge from trunk. (diff)
downloadinkscape-2f5eb047d9e05be5e68549ef6b75070d2faa7d2f.tar.gz
inkscape-2f5eb047d9e05be5e68549ef6b75070d2faa7d2f.zip
Merging from trunk
(bzr r6884)
Diffstat (limited to 'src/livarot/PathConversion.cpp')
-rw-r--r--src/livarot/PathConversion.cpp54
1 files changed, 28 insertions, 26 deletions
diff --git a/src/livarot/PathConversion.cpp b/src/livarot/PathConversion.cpp
index 7c741ac4c..a7f5a8fd1 100644
--- a/src/livarot/PathConversion.cpp
+++ b/src/livarot/PathConversion.cpp
@@ -11,8 +11,7 @@
#include "livarot/path-description.h"
#include <libnr/nr-matrix.h>
-#include <libnr/nr-rotate-ops.h>
-#include <libnr/nr-scale-ops.h>
+#include <2geom/transforms.h>
/*
* path description -> polyline
@@ -1089,23 +1088,24 @@ void Path::DoArc(NR::Point const &iS, NR::Point const &iE,
double sang;
double eang;
- NR::Point dr;
- ArcAnglesAndCenter(iS, iE, rx, ry, angle, large, wise, sang, eang, dr);
+ NR::Point dr_temp;
+ ArcAnglesAndCenter(iS, iE, rx, ry, angle, large, wise, sang, eang, dr_temp);
+ Geom::Point dr = dr_temp;
/* TODO: This isn't as good numerically as treating iS and iE as primary. E.g. consider
the case of low curvature (i.e. very large radius). */
- NR::scale const ar(rx, ry);
- NR::rotate cb( angle + sang );
+ Geom::Scale const ar(rx, ry);
+ Geom::Rotate cb( angle + sang );
if (wise) {
double const incr = -0.1;
if ( sang < eang ) {
sang += 2*M_PI;
}
- NR::rotate const omega(incr);
+ Geom::Rotate const omega(incr);
for (double b = sang + incr ; b > eang ; b += incr) {
cb = omega * cb;
- AddPoint( cb.vec * ar + dr );
+ AddPoint( cb.vector() * ar + dr );
}
} else {
@@ -1114,10 +1114,10 @@ void Path::DoArc(NR::Point const &iS, NR::Point const &iE,
if ( sang > eang ) {
sang -= 2*M_PI;
}
- NR::rotate const omega(incr);
+ Geom::Rotate const omega(incr);
for (double b = sang + incr ; b < eang ; b += incr) {
cb = omega * cb;
- AddPoint( cb.vec * ar + dr);
+ AddPoint( cb.vector() * ar + dr);
}
}
}
@@ -1231,23 +1231,24 @@ void Path::DoArc(NR::Point const &iS, NR::Point const &iE,
double sang;
double eang;
- NR::Point dr;
- ArcAnglesAndCenter(iS, iE, rx, ry, angle, large, wise, sang, eang, dr);
+ NR::Point dr_temp;
+ ArcAnglesAndCenter(iS, iE, rx, ry, angle, large, wise, sang, eang, dr_temp);
+ Geom::Point dr = dr_temp;
/* TODO: This isn't as good numerically as treating iS and iE as primary. E.g. consider
the case of low curvature (i.e. very large radius). */
- NR::scale const ar(rx, ry);
- NR::rotate cb(angle + sang);
+ Geom::Scale const ar(rx, ry);
+ Geom::Rotate cb(angle + sang);
if (wise) {
double const incr = -0.1;
if ( sang < eang ) {
sang += 2*M_PI;
}
- NR::rotate const omega(incr);
+ Geom::Rotate const omega(incr);
for (double b = sang + incr; b > eang; b += incr) {
cb = omega * cb;
- AddPoint(cb.vec * ar + dr, piece, (sang - b) / (sang - eang));
+ AddPoint(cb.vector() * ar + dr, piece, (sang - b) / (sang - eang));
}
} else {
@@ -1256,10 +1257,10 @@ void Path::DoArc(NR::Point const &iS, NR::Point const &iE,
if ( sang > eang ) {
sang -= 2 * M_PI;
}
- NR::rotate const omega(incr);
+ Geom::Rotate const omega(incr);
for (double b = sang + incr ; b < eang ; b += incr) {
cb = omega * cb;
- AddPoint(cb.vec * ar + dr, piece, (b - sang) / (eang - sang));
+ AddPoint(cb.vector() * ar + dr, piece, (b - sang) / (eang - sang));
}
}
}
@@ -1348,23 +1349,24 @@ void Path::DoArc(NR::Point const &iS, NR::Point const &iE,
double sang;
double eang;
- NR::Point dr;
- ArcAnglesAndCenter(iS, iE, rx, ry, angle, large, wise, sang, eang, dr);
+ NR::Point dr_temp;
+ ArcAnglesAndCenter(iS, iE, rx, ry, angle, large, wise, sang, eang, dr_temp);
+ Geom::Point dr = dr_temp;
/* TODO: This isn't as good numerically as treating iS and iE as primary. E.g. consider
the case of low curvature (i.e. very large radius). */
- NR::scale const ar(rx, ry);
- NR::rotate cb(angle + sang);
+ Geom::Scale const ar(rx, ry);
+ Geom::Rotate cb(angle + sang);
if (wise) {
double const incr = -0.1;
if ( sang < eang ) {
sang += 2*M_PI;
}
- NR::rotate const omega(incr);
+ Geom::Rotate const omega(incr);
for (double b = sang + incr; b > eang ;b += incr) {
cb = omega * cb;
- AddPoint(cb.vec * ar + dr, piece, (sang - b) / (sang - eang));
+ AddPoint(cb.vector() * ar + dr, piece, (sang - b) / (sang - eang));
}
} else {
@@ -1372,10 +1374,10 @@ void Path::DoArc(NR::Point const &iS, NR::Point const &iE,
if ( sang > eang ) {
sang -= 2*M_PI;
}
- NR::rotate const omega(incr);
+ Geom::Rotate const omega(incr);
for (double b = sang + incr ; b < eang ; b += incr) {
cb = omega * cb;
- AddPoint(cb.vec * ar + dr, piece, (b - sang) / (eang - sang));
+ AddPoint(cb.vector() * ar + dr, piece, (b - sang) / (eang - sang));
}
}
}