Add optional debugging for calls to ValueNode_*::operator(). export SYNFIG_DEBUG_VAL...
[synfig.git] / synfig-core / trunk / src / synfig / valuenode_dotproduct.cpp
index 20f8ae5..55de6ae 100644 (file)
@@ -56,12 +56,12 @@ ValueNode_DotProduct::ValueNode_DotProduct(const ValueBase &value):
        switch(value.get_type())
        {
        case ValueBase::TYPE_REAL:
-               set_link("lhs",ValueNode_Const::create(Vector(1,0)));
-               set_link("rhs",ValueNode_Const::create(Vector(0,1)));
+               set_link("lhs",ValueNode_Const::create(Vector(value.get(Real()),0)));
+               set_link("rhs",ValueNode_Const::create(Vector(1,0)));
                break;
        case ValueBase::TYPE_ANGLE:
-               set_link("lhs",ValueNode_Const::create(Vector(1,0)));
-               set_link("rhs",ValueNode_Const::create(Vector(0,1)));
+               set_link("lhs",ValueNode_Const::create(Vector(Angle::cos(value.get(Angle())).get(), Angle::sin(value.get(Angle())).get())));
+               set_link("rhs",ValueNode_Const::create(Vector(1,0)));
                break;
        default:
                throw Exception::BadType(ValueBase::type_local_name(value.get_type()));
@@ -90,6 +90,9 @@ ValueNode_DotProduct::~ValueNode_DotProduct()
 ValueBase
 ValueNode_DotProduct::operator()(Time t)const
 {
+       if (getenv("SYNFIG_DEBUG_VALUENODE_OPERATORS"))
+               printf("%s:%d operator()\n", __FILE__, __LINE__);
+
        Vector lhs((*lhs_)(t).get(Vector()));
        Vector rhs((*rhs_)(t).get(Vector()));
 
@@ -99,6 +102,8 @@ ValueNode_DotProduct::operator()(Time t)const
                return Angle::cos(lhs * rhs / lhs.mag() / rhs.mag()).mod();
        case ValueBase::TYPE_REAL:
                return lhs * rhs;
+       default:
+               break;
        }
 
        assert(0);