**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
-** Copyright (c) 2007 Chris Moore
+** Copyright (c) 2007, 2008 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
if (first)
first = false;
else if (iter->get_value_node()->get_name() == "constant")
+ {
if (angle - prev > 180)
{
while (angle - prev > 180) angle -= 360;
while (prev - angle > 180) angle += 360;
iter->set_value(Angle::deg(angle));
}
+ }
prev = angle;
}
}
}
}
+ // pre 0.4 canvases had *calctangent outputs scaled down by 0.5 for some reason
+ if (element->get_name() == "blinecalctangent" || element->get_name() == "segcalctangent")
+ {
+ String version(canvas->get_version());
+ if (version == "0.1" || version == "0.2" || version == "0.3")
+ {
+ handle<LinkableValueNode> scale_value_node=LinkableValueNode::create("scale",type);
+ scale_value_node->set_link(scale_value_node->get_link_index_from_name("link"), value_node);
+ scale_value_node->set_link(scale_value_node->get_link_index_from_name("scalar"), ValueNode_Const::create(Real(0.5)));
+ value_node = scale_value_node;
+ }
+ }
+
return value_node;
}
String str= child->get_attribute("use")->get_value();
- if(layer->get_param(param_name).get_type()==ValueBase::TYPE_CANVAS)
+ if (str.empty())
+ error(child,_("Empty use=\"\" value in <param>"));
+ else if(layer->get_param(param_name).get_type()==ValueBase::TYPE_CANVAS)
{
if(!layer->set_param(param_name,canvas->surefind_canvas(str)))
error((*iter),_("Layer rejected canvas link"));