Author: Carlos Lopez <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl