summaryrefslogtreecommitdiffstats
path: root/src/2geom/piecewise.h
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2009-04-06 22:29:34 +0000
committerjohanengelen <johanengelen@users.sourceforge.net>2009-04-06 22:29:34 +0000
commit64e50f15e4a4fb6ffcd2aa3774f1b0dde990e99f (patch)
tree0fae7298fc26ec9c39d73f1e9b33207c8bb0d9c2 /src/2geom/piecewise.h
parentnoop: Rename argument from uri to filename for Extension::...::save implement... (diff)
downloadinkscape-64e50f15e4a4fb6ffcd2aa3774f1b0dde990e99f.tar.gz
inkscape-64e50f15e4a4fb6ffcd2aa3774f1b0dde990e99f.zip
update 2geom. big commit as it has been a while. (2geom svn rev. 1870, i think)
i turned some optional compilation stuff *on* per default, to help building inkscape. (bzr r7638)
Diffstat (limited to '')
-rw-r--r--src/2geom/piecewise.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/2geom/piecewise.h b/src/2geom/piecewise.h
index 144d7a9b2..a5be42587 100644
--- a/src/2geom/piecewise.h
+++ b/src/2geom/piecewise.h
@@ -531,6 +531,19 @@ Piecewise<T> operator*(Piecewise<T> const &a, double b) {
return ret;
}
template<typename T>
+Piecewise<T> operator*(Piecewise<T> const &a, T b) {
+ boost::function_requires<ScalableConcept<T> >();
+
+ if(a.empty()) return Piecewise<T>();
+
+ Piecewise<T> ret;
+ ret.segs.reserve(a.size());
+ ret.cuts = a.cuts;
+ for(unsigned i = 0; i < a.size();i++)
+ ret.push_seg(a[i] * b);
+ return ret;
+}
+template<typename T>
Piecewise<T> operator/(Piecewise<T> const &a, double b) {
boost::function_requires<ScalableConcept<T> >();
@@ -753,10 +766,10 @@ Piecewise<T> reverse(Piecewise<T> const &f) {
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);
+ ret.push_cut(end - (x - start));
}
for (unsigned i = 0; i < f.segs.size(); i++)
- ret.segs[i] = reverse(f[f.segs.size() - i - 1]);
+ ret.push_seg(reverse(f[f.segs.size() - i - 1]));
return ret;
}