Finding the distance along a bezier curve from point x to point x was failing with...
[synfig.git] / ETL / trunk / ETL / _bezier.h
index a08a42b..4851a98 100644 (file)
@@ -553,8 +553,7 @@ public:
                                bezier<V,T>::operator[](1),
                                bezier<V,T>::operator[](2),
                                bezier<V,T>::operator[](3)};
-                       float t = NearestPointOnCurve(x, array);
-                       return t > 0.999999 ? 0.999999 : t < 0.000001 ? 0.000001 : t;
+                       return NearestPointOnCurve(x, array);
            }
            else
            {
@@ -578,6 +577,7 @@ public:
        distance_type find_distance(time_type r, time_type s, int steps=7)const
        {
                const time_type inc((s-r)/steps);
+               if (!inc) return 0;
                distance_type ret(0);
                value_type last(operator()(r));