X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvaluenode_reciprocal.cpp;h=023e32526b9ae882c2c7af8a2255acb18f8191d6;hb=6d911b8b43b6a82b5373c3acaf6d4007aa999e0d;hp=66d37903d830106c7e23242e65e5b53b727d0aa2;hpb=756c0d29ac1742f231e6615f9a577e574e35a4af;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/valuenode_reciprocal.cpp b/synfig-core/trunk/src/synfig/valuenode_reciprocal.cpp index 66d3790..023e325 100644 --- a/synfig-core/trunk/src/synfig/valuenode_reciprocal.cpp +++ b/synfig-core/trunk/src/synfig/valuenode_reciprocal.cpp @@ -50,23 +50,27 @@ using namespace synfig; /* === M E T H O D S ======================================================= */ -ValueNode_Reciprocal::ValueNode_Reciprocal(const ValueBase::Type &x): - LinkableValueNode(x) +ValueNode_Reciprocal::ValueNode_Reciprocal(const ValueBase &x): + LinkableValueNode(x.get_type()) { -} + Real value(x.get(Real())); + Real infinity(999999.0); + Real epsilon(0.000001); -ValueNode_Reciprocal::ValueNode_Reciprocal(const ValueNode::Handle &x): - LinkableValueNode(x->get_type()) -{ - set_link("link", x); - set_link("epsilon", ValueNode_Const::create(Real(0.000001))); - set_link("infinite", ValueNode_Const::create(Real(999999.0))); + if (value == 0) + value = infinity; + else + value = 1.0/value; + + set_link("link", ValueNode_Const::create(Real(value))); + set_link("epsilon", ValueNode_Const::create(Real(epsilon))); + set_link("infinite", ValueNode_Const::create(Real(infinity))); } ValueNode_Reciprocal* ValueNode_Reciprocal::create(const ValueBase &x) { - return new ValueNode_Reciprocal(ValueNode_Const::create(x)); + return new ValueNode_Reciprocal(x); } LinkableValueNode*