/* === M A C R O S ========================================================= */
ACTION_INIT(Action::ValueDescBLineLink);
-ACTION_SET_NAME(Action::ValueDescBLineLink,"value_desc_bline_link");
+ACTION_SET_NAME(Action::ValueDescBLineLink,"ValueDescBLineLink");
ACTION_SET_LOCAL_NAME(Action::ValueDescBLineLink,N_("Link to BLine"));
ACTION_SET_TASK(Action::ValueDescBLineLink,"connect");
ACTION_SET_CATEGORY(Action::ValueDescBLineLink,Action::CATEGORY_BEZIER);
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;
Action::Handle action;
+ ValueNode::Handle loop_value_node(ValueNode_Const::create(loop));
+ ValueNode::Handle amount_value_node(ValueNode_Const::create(amount));
+
for (std::list<ValueDesc>::iterator iter = value_desc_list.begin(); iter != value_desc_list.end(); ++iter)
{
ValueDesc& value_desc(*iter);
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());
// 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;
else
continue;
- calculated_value_node->set_link("bline", bline_value_node);
- calculated_value_node->set_link("loop", ValueNode_Const::create(loop));
- calculated_value_node->set_link("amount", ValueNode_Const::create(amount));
+ calculated_value_node->set_link("bline", bline_value_node );
+ calculated_value_node->set_link("loop", loop_value_node );
+ calculated_value_node->set_link("amount", amount_value_node);
action->set_param("canvas", get_canvas());
action->set_param("canvas_interface", get_canvas_interface());