Fix the tangents output by "Segment Tangent" and "BLine Tangent". They were scaled...
[synfig.git] / synfig-core / trunk / src / synfig / loadcanvas.cpp
index 00cbfc2..5b4fe86 100644 (file)
@@ -6,7 +6,7 @@
 **
 **     \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
@@ -1289,6 +1289,19 @@ CanvasParser::parse_linkable_value_node(xmlpp::Element *element,Canvas::Handle c
                }
        }
 
+       // 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;
 }