X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvaluenode_twotone.cpp;fp=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvaluenode_twotone.cpp;h=714850237537db0dc9091af67b975cd53bf6ebf8;hb=72ff5dd05003d9daf338af91bb42c0541a0293ab;hp=f64e84737eedbe2833529f477449e2462c566e61;hpb=d6a85c1fe8e466221854f5c9d56ba7394a495a4a;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/valuenode_twotone.cpp b/synfig-core/trunk/src/synfig/valuenode_twotone.cpp index f64e847..7148502 100644 --- a/synfig-core/trunk/src/synfig/valuenode_twotone.cpp +++ b/synfig-core/trunk/src/synfig/valuenode_twotone.cpp @@ -53,34 +53,31 @@ using namespace synfig; /* === M E T H O D S ======================================================= */ -synfig::ValueNode_TwoTone::ValueNode_TwoTone():LinkableValueNode(synfig::ValueBase::TYPE_GRADIENT) +synfig::ValueNode_TwoTone::ValueNode_TwoTone(const ValueBase &value):LinkableValueNode(synfig::ValueBase::TYPE_GRADIENT) { - set_link("color1",ValueNode_Const::create(Color::black())); - set_link("color2",ValueNode_Const::create(Color::white())); + switch(value.get_type()) + { + case ValueBase::TYPE_GRADIENT: + set_link("color1",ValueNode_Const::create(value.get(Gradient())(0))); + set_link("color2",ValueNode_Const::create(value.get(Gradient())(1))); + break; + default: + throw Exception::BadType(ValueBase::type_local_name(value.get_type())); + } + DCAST_HACK_ENABLE(); } LinkableValueNode* ValueNode_TwoTone::create_new()const { - return new ValueNode_TwoTone(); + return new ValueNode_TwoTone(get_type()); } ValueNode_TwoTone* ValueNode_TwoTone::create(const ValueBase& x) { - ValueBase::Type id(x.get_type()); - if(id!=ValueBase::TYPE_GRADIENT) - { - assert(0); - throw runtime_error(String(_("Two-Tone"))+_(":Bad type ")+ValueBase::type_local_name(id)); - } - - ValueNode_TwoTone* value_node=new ValueNode_TwoTone(); - - assert(value_node->get_type()==id); - - return value_node; + return new ValueNode_TwoTone(x); } synfig::ValueNode_TwoTone::~ValueNode_TwoTone()