X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Fsrc%2Fsynfig%2Fvaluenode_range.cpp;h=eb9ebfbf208a8de8e57726ba0989466f321fd63b;hb=8eed22b9657ac7cb1881eab5c7b5c3d1f0c69468;hp=2714d4e563bfef3dd1f739b226435afe99505750;hpb=db91521de71f46f2debb4b3ef1edfe351aea3b2d;p=synfig.git diff --git a/synfig-core/src/synfig/valuenode_range.cpp b/synfig-core/src/synfig/valuenode_range.cpp index 2714d4e..eb9ebfb 100644 --- a/synfig-core/src/synfig/valuenode_range.cpp +++ b/synfig-core/src/synfig/valuenode_range.cpp @@ -202,11 +202,9 @@ synfig::ValueNode_Range::get_inverse(Time t, const synfig::Angle &target_value) switch (get_type()) { default: - // Notice that target_value is the rotation between the current - // 'link' value and the target angle in the canvas, so we need - // to add it to 'link' - if(Angle::rad(maximum).get()>=Angle::rad(link+target_value).get() && Angle::rad(link+target_value).get()>=Angle::rad(minimum).get()) - return link + target_value; + + if(Angle::rad(maximum).get()>=Angle::rad(target_value).get() && Angle::rad(target_value).get()>=Angle::rad(minimum).get()) + return target_value; else if (Angle::rad(minimum).get()>Angle::rad(target_value).get()) return minimum; else @@ -307,3 +305,26 @@ ValueNode_Range::check_type(ValueBase::Type type) || type==ValueBase::TYPE_REAL || type==ValueBase::TYPE_TIME; } + +LinkableValueNode::Vocab +ValueNode_Range::get_param_vocab()const +{ + LinkableValueNode::Vocab ret; + + ret.push_back(ParamDesc(ValueBase(),"min") + .set_local_name(_("Min")) + .set_description(_("Returned value when 'Link' is smaller")) + ); + + ret.push_back(ParamDesc(ValueBase(),"max") + .set_local_name(_("Max")) + .set_description(_("Returned value when 'Link' is greater")) + ); + + ret.push_back(ParamDesc(ValueBase(),"link") + .set_local_name(_("Link")) + .set_description(_("The value node to limit its range")) + ); + + return ret; +}