Author: Carlos Lopez <genet...@gmail.com> Date: Tue Jan 3 19:44:07 2012 +0100
Add function to calculate the magnitude of a gradient --- synfig-core/src/synfig/gradient.cpp | 13 +++++++++++++ synfig-core/src/synfig/gradient.h | 2 ++ 2 files changed, 15 insertions(+), 0 deletions(-) diff --git a/synfig-core/src/synfig/gradient.cpp b/synfig-core/src/synfig/gradient.cpp index 00f67b0..8e9ab47 100644 --- a/synfig-core/src/synfig/gradient.cpp +++ b/synfig-core/src/synfig/gradient.cpp @@ -290,6 +290,19 @@ synfig::Gradient::operator/=(const float &rhs) return *this; } +Real +synfig::Gradient::mag()const +{ + Real ret(0); + for (const_iterator iter = cpoints.begin(); iter!=cpoints.end(); iter++) + { + Real cm=(*iter).color.get_y(); + ret+=cm*cm; + } + ret=sqrt(ret); + return ret; +} + Color synfig::Gradient::operator()(const Real &x,float supersample)const { diff --git a/synfig-core/src/synfig/gradient.h b/synfig-core/src/synfig/gradient.h index fdba3df..74bec5a 100644 --- a/synfig-core/src/synfig/gradient.h +++ b/synfig-core/src/synfig/gradient.h @@ -114,6 +114,8 @@ public: Color operator()(const Real &x, float supersample=0)const; + Real mag()const; + //! Returns the iterator of the CPoint closest to \a x iterator proximity(const Real &x); ------------------------------------------------------------------------------ Write once. Port to many. Get the SDK and tools to simplify cross-platform app development. Create new or port existing apps to sell to consumers worldwide. Explore the Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join http://p.sf.net/sfu/intel-appdev _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl