Author: Carlos Lopez <[email protected]>
Date:   Wed Aug 31 21:23:36 2011 +0200

Add code to ValueNode_Sine class to use homogeneous movements

---

 synfig-core/src/synfig/valuenode_sine.cpp |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/synfig-core/src/synfig/valuenode_sine.cpp 
b/synfig-core/src/synfig/valuenode_sine.cpp
index aee3325..34b7695 100644
--- a/synfig-core/src/synfig/valuenode_sine.cpp
+++ b/synfig-core/src/synfig/valuenode_sine.cpp
@@ -33,6 +33,7 @@
 
 #include "valuenode_sine.h"
 #include "valuenode_const.h"
+#include "valuenode_bline.h"
 #include "general.h"
 
 #endif
@@ -89,12 +90,18 @@ ValueNode_Sine::operator()(Time t)const
 {
        if (getenv("SYNFIG_DEBUG_VALUENODE_OPERATORS"))
                printf("%s:%d operator()\n", __FILE__, __LINE__);
-
-       return
-               Angle::sin(
-                       (*angle_)(t).get(Angle())
-               ).get() * (*amp_)(t).get(Real())
-       ;
+       Real amplitude((*amp_)(t).get(Real())), sine_value;
+       ValueNode::Handle bline_value_node(get_bline());
+       if(bline_value_node)
+       {
+               ValueBase bline((*bline_value_node)(t));
+               amplitude=std_to_hom(bline, amplitude, bline.get_loop());
+               sine_value= Angle::sin((*angle_)(t).get(Angle())).get() * 
amplitude;
+               sine_value=hom_to_std(bline, sine_value, bline.get_loop());
+       }
+       else
+               sine_value=Angle::sin((*angle_)(t).get(Angle())).get() * 
amplitude;
+       return sine_value;
 }
 
 
@@ -153,11 +160,13 @@ ValueNode_Sine::get_children_vocab_vfunc()const
        ret.push_back(ParamDesc(ValueBase(),"angle")
                .set_local_name(_("Angle"))
                .set_description(_("The angle where the sine is calculated 
from"))
+               .set_is_bline_linked(true)
        );
 
        ret.push_back(ParamDesc(ValueBase(),"amp")
                .set_local_name(_("Amplitude"))
                .set_description(_("The value that multiplies the resulting 
sine"))
+               .set_is_bline_linked(true)
        );
 
        return ret;


------------------------------------------------------------------------------
Special Offer -- Download ArcSight Logger for FREE!
Finally, a world-class log management solution at an even better 
price-free! And you'll get a free "Love Thy Logs" t-shirt when you
download Logger. Secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsisghtdev2dev
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to