Prevent 2 * "warning: converting to 'int' from 'double'"
[synfig.git] / synfig-core / trunk / src / synfig / valuenode_animated.cpp
index 733729f..ea91cac 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
@@ -160,6 +161,7 @@ struct is_angle_type
        }
 };
 
+#ifdef ANGLES_USE_LINEAR_INTERPOLATION
 template <>
 struct is_angle_type<Angle>
 {
@@ -168,6 +170,7 @@ struct is_angle_type<Angle>
                return true;
        }
 };
+#endif // ANGLES_USE_LINEAR_INTERPOLATION
 
 /* === G L O B A L S ======================================================= */
 
@@ -379,7 +382,7 @@ public:
                                                const Real& c(iter->get_continuity());  // Continuity
                                                const Real& b(iter->get_bias());                        // Bias
 
-                                               // The folloing line works where the previous line fails.
+                                               // The following line works where the previous line fails.
                                                value_type Pp; Pp=curve_list.back().second.p1();        // P_{i-1}
 
                                                const value_type& Pc(curve.second.p1());        // P_i
@@ -428,7 +431,8 @@ public:
                                                value_type Pn; Pn=after_next->get_value().get(T());     // P_{i+1}
 
                                                // TCB
-                                               value_type vect(static_cast<value_type>(subtract_func(Pc,Pp)*(((1.0-t)*(1.0-c)*(1.0+b))/2.0)+(Pn-Pc)*(((1.0-t)*(1.0+c)*(1.0-b))/2.0)));
+                                               value_type vect(static_cast<value_type>(subtract_func(Pc,Pp) * (((1.0-t)*(1.0-c)*(1.0+b))/2.0) +
+                                                                                                                                                        (Pn-Pc) * (((1.0-t)*(1.0+c)*(1.0-b))/2.0)));
 
                                                // Tension Only
                                                //value_type vect((value_type)((Pn-Pp)*(1.0-t)));
@@ -460,24 +464,24 @@ public:
                                        // if this isn't the first curve
                                        else if(iter_get_after != INTERPOLATION_LINEAR && !curve_list.empty())
                                                // adjust it for the curve that came before it
-                                               curve.second.t1() *=
+                                               curve.second.t1() = static_cast<T>(curve.second.t1() * // cast to prevent warning
                                                        //                  (time span of this curve) * 1.5
                                                        // -----------------------------------------------------------------
                                                        // ((time span of this curve) * 0.5) + (time span of previous curve)
-                                                       (curve.second.get_dt()*(timeadjust+1)) /
-                                                       (curve.second.get_dt()*timeadjust + curve_list.back().second.get_dt());
+                                                         (curve.second.get_dt()*(timeadjust+1)) /
+                                                         (curve.second.get_dt()*timeadjust + curve_list.back().second.get_dt()));
 
                                        if(next_get_before==INTERPOLATION_HALT)
                                                curve.second.t2()*=0;
                                        // if this isn't the last curve
                                        else if(next_get_before != INTERPOLATION_LINEAR && after_next!=waypoint_list_.end())
                                                // adjust it for the curve that came after it
-                                               curve.second.t2() *=
+                                               curve.second.t2() = static_cast<T>(curve.second.t2() * // cast to prevent warning
                                                        //                (time span of this curve) * 1.5
                                                        // -------------------------------------------------------------
                                                        // ((time span of this curve) * 0.5) + (time span of next curve)
-                                                       (curve.second.get_dt()*(timeadjust+1)) /
-                                                       (curve.second.get_dt()*timeadjust+(after_next->get_time()-next->get_time()));
+                                                         (curve.second.get_dt()*(timeadjust+1)) /
+                                                         (curve.second.get_dt()*timeadjust+(after_next->get_time()-next->get_time())));
                                } // not CONSTANT
                        }