Add my copyright to files I've modified.
[synfig.git] / synfig-core / trunk / src / modules / mod_gradient / curvegradient.cpp
index 508a464..2fb682f 100644 (file)
@@ -6,6 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2007 Chris Moore
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
@@ -72,7 +73,7 @@ inline float calculate_distance(const synfig::BLinePoint& a,const synfig::BLineP
 #endif
 }
 
-inline float calculate_distance(const std::vector<synfig::BLinePoint>& bline)
+inline float calculate_distance(const std::vector<synfig::BLinePoint>& bline, bool bline_loop)
 {
        std::vector<synfig::BLinePoint>::const_iterator iter,next,ret;
        std::vector<synfig::BLinePoint>::const_iterator end(bline.end());
@@ -83,10 +84,10 @@ inline float calculate_distance(const std::vector<synfig::BLinePoint>& bline)
 
        next=bline.begin();
 
-       //if(loop)
-       //      iter=--bline.end();
-       //else
-       iter=next++;
+       if(bline_loop)
+               iter=--bline.end();
+       else
+               iter=next++;
 
        for(;next!=end;iter=next++)
        {
@@ -197,7 +198,7 @@ find_closest(bool fast, const std::vector<synfig::BLinePoint>& bline,const Point
 inline void
 CurveGradient::sync()
 {
-       curve_length_=calculate_distance(bline);
+       curve_length_=calculate_distance(bline, bline_loop);
 }