diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2009-11-23 21:15:06 +0000 |
|---|---|---|
| committer | johanengelen <johanengelen@users.sourceforge.net> | 2009-11-23 21:15:06 +0000 |
| commit | b0a9bcb9e1da6e5192cf37aedcd3b87a4041b911 (patch) | |
| tree | b302be68624c043cb13d55f9f17d0eb993cf1acb /src/2geom/d2-sbasis.cpp | |
| parent | work on the lpe group undo bug. it's not solved, but i think LPE code does ev... (diff) | |
| download | inkscape-b0a9bcb9e1da6e5192cf37aedcd3b87a4041b911.tar.gz inkscape-b0a9bcb9e1da6e5192cf37aedcd3b87a4041b911.zip | |
update 2geom. needed for extrude lpe
(bzr r8840)
Diffstat (limited to 'src/2geom/d2-sbasis.cpp')
| -rw-r--r-- | src/2geom/d2-sbasis.cpp | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/src/2geom/d2-sbasis.cpp b/src/2geom/d2-sbasis.cpp index 2c52e4782..aef989fc7 100644 --- a/src/2geom/d2-sbasis.cpp +++ b/src/2geom/d2-sbasis.cpp @@ -58,8 +58,19 @@ Piecewise<D2<SBasis> > rot90(Piecewise<D2<SBasis> > const &M){ return result; } -Piecewise<SBasis> dot(Piecewise<D2<SBasis> > const &a, - Piecewise<D2<SBasis> > const &b){ +/** @brief Calculates the 'dot product' or 'inner product' of \c a and \c b + * @return \f[ + * f(t) \rightarrow \left\{ + * \begin{array}{c} + * a_1 \bullet b_1 \\ + * a_2 \bullet b_2 \\ + * \ldots \\ + * a_n \bullet b_n \\ + * \end{array}\right. + * \f] + * @relates Piecewise */ +Piecewise<SBasis> dot(Piecewise<D2<SBasis> > const &a, Piecewise<D2<SBasis> > const &b) +{ Piecewise<SBasis > result; if (a.empty() || b.empty()) return result; Piecewise<D2<SBasis> > aa = partition(a,b.cuts); @@ -72,6 +83,30 @@ Piecewise<SBasis> dot(Piecewise<D2<SBasis> > const &a, return result; } +/** @brief Calculates the 'dot product' or 'inner product' of \c a and \c b + * @return \f[ + * f(t) \rightarrow \left\{ + * \begin{array}{c} + * a_1 \bullet b \\ + * a_2 \bullet b \\ + * \ldots \\ + * a_n \bullet b \\ + * \end{array}\right. + * \f] + * @relates Piecewise */ +Piecewise<SBasis> dot(Piecewise<D2<SBasis> > const &a, Point const &b) +{ + Piecewise<SBasis > result; + if (a.empty()) return result; + + result.push_cut(a.cuts.front()); + for (unsigned i = 0; i < a.size(); ++i){ + result.push(dot(a.segs[i],b), a.cuts[i+1]); + } + return result; +} + + Piecewise<SBasis> cross(Piecewise<D2<SBasis> > const &a, Piecewise<D2<SBasis> > const &b){ Piecewise<SBasis > result; |
