X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=ETL%2Ftrunk%2FETL%2F_bezier.h;h=cf04ad31ea9af09aa6e8e764882994e68f7563b7;hb=716873ad2fd2cb3c07e311ee7b0e2f023500c868;hp=7e26796c036a1ac4053cc56bbf9368557a2ea425;hpb=49dafb45e1b8dcb299ed9a992a011566c8c6c7bf;p=synfig.git diff --git a/ETL/trunk/ETL/_bezier.h b/ETL/trunk/ETL/_bezier.h index 7e26796..cf04ad3 100644 --- a/ETL/trunk/ETL/_bezier.h +++ b/ETL/trunk/ETL/_bezier.h @@ -551,7 +551,8 @@ public: bezier::operator[](1), bezier::operator[](2), bezier::operator[](3)}; - return NearestPointOnCurve(x, array); + float t = NearestPointOnCurve(x, array); + return t > 0.999999 ? 0.999999 : t < 0.000001 ? 0.000001 : t; } else { @@ -606,7 +607,7 @@ public: */ void subdivide(bezier *left, bezier *right, const time_type &time = (time_type)0.5) const { - time_type t=(t-get_r())/get_dt(); + time_type t=(time-get_r())/get_dt(); bezier lt,rt; value_type temp; @@ -925,7 +926,7 @@ private: /* * NearestPointOnCurve : * Compute the parameter value of the point on a Bezier - * curve segment closest to some arbtitrary, user-input point. + * curve segment closest to some arbitrary, user-input point. * Return the point on the curve at that parameter value. * * value_type& P; The user-supplied point