X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvaluenode_dotproduct.cpp;h=55de6ae1385631ddcd60a4ee9ca51c06e4cb9da8;hb=b629d4c68aa88800d2db81e922468da3e5122bef;hp=20f8ae5b078c79feea2edf535d0a53d2c30be560;hpb=b035e8067b5b072d68e7de25fe635079d70de8ec;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/valuenode_dotproduct.cpp b/synfig-core/trunk/src/synfig/valuenode_dotproduct.cpp index 20f8ae5..55de6ae 100644 --- a/synfig-core/trunk/src/synfig/valuenode_dotproduct.cpp +++ b/synfig-core/trunk/src/synfig/valuenode_dotproduct.cpp @@ -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);