Explicitly call get_list() when converting a bline's valuenode at a particular time...
[synfig.git] / synfig-studio / trunk / src / synfigapp / actions / valuedescblinelink.cpp
index 1c21040..0193bf3 100644 (file)
@@ -165,7 +165,7 @@ Action::ValueDescBLineLink::prepare()
        ValueNode_DynamicList::Handle bline_value_node(ValueNode_DynamicList::Handle::cast_dynamic(value_desc.get_parent_value_node()));
        bool loop(bline_value_node->get_loop());
        int loop_adjust(loop ? 0 : -1);
-       const std::vector<ValueBase> bline((*bline_value_node)(time));
+       const std::vector<ValueBase> bline((*bline_value_node)(time).get_list());
        int size = bline.size();
        Real amount = (index + origin + loop_adjust) / (size + loop_adjust);
        LinkableValueNode::Handle calculated_value_node;
@@ -189,6 +189,8 @@ Action::ValueDescBLineLink::prepare()
                                calculated_value_node = ValueNode_BLineCalcTangent::create(ValueBase::TYPE_VECTOR);
                        else if (link_name == "width")
                                calculated_value_node = ValueNode_BLineCalcWidth::create(ValueBase::TYPE_REAL);
+                       else if (link_name == "point")
+                               calculated_value_node = ValueNode_BLineCalcVertex::create(ValueBase::TYPE_VECTOR);
                        else
                        {
                                synfig::warning("can't link '%s'", link_name.c_str());
@@ -243,6 +245,9 @@ Action::ValueDescBLineLink::prepare()
                        // REAL layer parameter
                        else if (value_desc.get_value_type() == ValueBase::TYPE_REAL)
                                calculated_value_node = ValueNode_BLineCalcWidth::create(ValueBase::TYPE_REAL);
+                       // ANGLE layer parameter
+                       else if (value_desc.get_value_type() == ValueBase::TYPE_ANGLE)
+                               calculated_value_node = ValueNode_BLineCalcTangent::create(ValueBase::TYPE_ANGLE);
                        else
                                continue;