diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2008-06-14 15:01:19 +0000 |
|---|---|---|
| committer | johanengelen <johanengelen@users.sourceforge.net> | 2008-06-14 15:01:19 +0000 |
| commit | 4289e1281e707090b4195dcb879cf1532d9ef03a (patch) | |
| tree | 6128d36f89e544e0670a6197f91715dd99e92391 /src/2geom/piecewise.cpp | |
| parent | fixed another typo (diff) | |
| download | inkscape-4289e1281e707090b4195dcb879cf1532d9ef03a.tar.gz inkscape-4289e1281e707090b4195dcb879cf1532d9ef03a.zip | |
update 2geom
(bzr r5931)
Diffstat (limited to 'src/2geom/piecewise.cpp')
| -rw-r--r-- | src/2geom/piecewise.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/2geom/piecewise.cpp b/src/2geom/piecewise.cpp index dc91ab4a9..222152aa3 100644 --- a/src/2geom/piecewise.cpp +++ b/src/2geom/piecewise.cpp @@ -167,6 +167,22 @@ std::vector<double> roots(Piecewise<SBasis> const &f){ return result; } +Piecewise<SBasis> reverse(Piecewise<SBasis> const &f) { + Piecewise<SBasis> ret = Piecewise<SBasis>(); + ret.cuts.resize(f.cuts.size()); + ret.segs.resize(f.segs.size()); + double start = f.cuts[0]; + double end = f.cuts.back(); + for (unsigned i = 0; i < f.cuts.size(); i++) { + double x = f.cuts[f.cuts.size() - 1 - i]; + ret.cuts[i] = end - (x - start); + } + for (unsigned i = 0; i < f.segs.size(); i++) + ret.segs[i] = reverse(f[f.segs.size() - i - 1]); + return ret; +} + + } /* Local Variables: |
