// Generated by Haxe 4.3.1
package schema;

import haxe.root.*;

@SuppressWarnings(value={"rawtypes", "unchecked"})
public class Svg extends haxe.lang.HxObject
{
	static
	{
		//line 12 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		{
			//line 12 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			java.lang.Object __temp_odecl2 = null;
			//line 12 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			{
				//line 12 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				java.lang.Object __temp_odecl1 = new haxe.lang.DynamicObject(new java.lang.String[]{"SuppressWarnings"}, new java.lang.Object[]{new haxe.root.Array(new java.lang.Object[]{"checkstyle:CyclomaticComplexity"})}, new java.lang.String[]{}, new double[]{});
				//line 12 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				__temp_odecl2 = new haxe.lang.DynamicObject(new java.lang.String[]{"getLine"}, new java.lang.Object[]{__temp_odecl1}, new java.lang.String[]{}, new double[]{});
			}
			
			//line 12 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			schema.Svg.__meta__ = new haxe.lang.DynamicObject(new java.lang.String[]{"statics"}, new java.lang.Object[]{__temp_odecl2}, new java.lang.String[]{}, new double[]{});
		}
		
		//line 13 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.coordRE = new haxe.root.EReg(haxe.lang.Runtime.toString("^translate\\(([0-9]+,[0-9]+)\\)$"), haxe.lang.Runtime.toString(""));
		//line 15 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.PADDING = 5;
		//line 16 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.MARGIN = 50;
		//line 17 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.IMARGIN = 10;
		//line 18 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.RXY = 20;
		//line 20 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.LETTER_HEIGHT = 16;
		//line 22 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.TEXT_STYLE = "font-family:\'Dejavu Sans Mono\', monospace;font-size:16px";
		//line 23 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.LETTER_WIDTH = 10.0;
		//line 29 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.UNDERLINE_STYLE = "text-decoration:underline";
		//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.RECT_STYLE = "stroke:black";
		//line 31 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.LINE_STYLE = "fill:none;stroke:black";
		//line 32 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.WHITE_STYLE = "fill:white;stroke:black";
		//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.DOTTED_STYLE = "2,2";
		//line 34 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.MARKERS = new haxe.root.Array<java.lang.Object>(new java.lang.Object[]{new haxe.lang.DynamicObject(new java.lang.String[]{"id", "path", "style"}, new java.lang.Object[]{"arrowMarker", ( ( ( ( ( ( "M 0 0 L " + 5 ) + " " ) + 5 ) + " L 0 " ) + 10 ) + " Z" ), "fill:black;stroke:black"}, new java.lang.String[]{"height", "width"}, new double[]{((double) (((double) (10) )) ), ((double) (((double) (5) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{"id", "path", "style"}, new java.lang.Object[]{"inheritMarker", ( ( ( ( ( ( "M 0 0 L " + 15 ) + " " ) + haxe.lang.Runtime.toString(7.5) ) + " L 0 " ) + 15 ) + " Z" ), "fill:white;stroke:black"}, new java.lang.String[]{"height", "width"}, new double[]{((double) (((double) (15) )) ), ((double) (((double) (15) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{"id", "path", "style"}, new java.lang.Object[]{"aggregationMarker", ( ( ( ( ( ( ( ( ( ( ( ( "M 0 " + haxe.lang.Runtime.toString(7.5) ) + " L " ) + 10 ) + " 0 L " ) + 20 ) + " " ) + haxe.lang.Runtime.toString(7.5) ) + " L " ) + 10 ) + " " ) + 15 ) + " Z" ), "fill:white;stroke:black"}, new java.lang.String[]{"height", "width"}, new double[]{((double) (((double) (15) )) ), ((double) (((double) (20) )) )}), new haxe.lang.DynamicObject(new java.lang.String[]{"id", "path", "style"}, new java.lang.Object[]{"compositionMarker", ( ( ( ( ( ( ( ( ( ( ( ( "M 0 " + haxe.lang.Runtime.toString(7.5) ) + " L " ) + 10 ) + " 0 L " ) + 20 ) + " " ) + haxe.lang.Runtime.toString(7.5) ) + " L " ) + 10 ) + " " ) + 15 ) + " Z" ), "fill:black;stroke:black"}, new java.lang.String[]{"height", "width"}, new double[]{((double) (((double) (15) )) ), ((double) (((double) (20) )) )})});
		//line 48 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.FILL_WHITE_STYLE = "fill:white";
		//line 49 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.FILL_GREY_STYLE = "fill:lightgrey";
	}
	
	public Svg(haxe.lang.EmptyObject empty)
	{
	}
	
	
	public Svg()
	{
		//line 12 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Svg.__hx_ctor_schema_Svg(this);
	}
	
	
	protected static void __hx_ctor_schema_Svg(schema.Svg __hx_this)
	{
	}
	
	
	public static java.lang.Object __meta__;
	
	public static haxe.root.EReg coordRE;
	
	public static int PADDING;
	
	public static int MARGIN;
	
	public static int IMARGIN;
	
	public static int RXY;
	
	public static int LETTER_HEIGHT;
	
	public static java.lang.String TEXT_STYLE;
	
	public static double LETTER_WIDTH;
	
	public static java.lang.String UNDERLINE_STYLE;
	
	public static java.lang.String RECT_STYLE;
	
	public static java.lang.String LINE_STYLE;
	
	public static java.lang.String WHITE_STYLE;
	
	public static java.lang.String DOTTED_STYLE;
	
	public static haxe.root.Array<java.lang.Object> MARKERS;
	
	public static java.lang.String FILL_WHITE_STYLE;
	
	public static java.lang.String FILL_GREY_STYLE;
	
	public static haxe.root.Xml initSvg(haxe.root.Xml doc)
	{
		//line 52 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Xml svg = haxe.root.Xml.createElement("svg");
		//line 53 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		doc.addChild(svg);
		//line 54 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		svg.set("xmlns", "http://www.w3.org/2000/svg");
		//line 55 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Xml defs = haxe.root.Xml.createElement("defs");
		//line 56 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		svg.addChild(defs);
		//line 62 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Xml css = haxe.root.Xml.createElement("style");
		//line 63 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		defs.addChild(css);
		//line 64 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		css.addChild(haxe.root.Xml.createPCData(( ( ( ( ( ( "text,text>tspan{" + "font-family:\'Dejavu Sans Mono\', monospace;font-size:16px" ) + "} rect{" ) + "stroke:black" ) + "} line,path{" ) + "fill:none;stroke:black" ) + "}" )));
		//line 66 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		{
			//line 66 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int _g = 0;
			//line 66 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			haxe.root.Array<java.lang.Object> _g1 = schema.Svg.MARKERS;
			//line 66 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			while (( _g < _g1.length ))
			{
				//line 66 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				java.lang.Object desc = _g1.__get(_g);
				//line 66 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				 ++ _g;
				//line 67 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				haxe.root.Xml marker = haxe.root.Xml.createElement("marker");
				//line 68 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				marker.set("id", haxe.lang.Runtime.toString(haxe.lang.Runtime.getField(desc, "id", true)));
				//line 69 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				marker.set("orient", "auto");
				//line 70 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				marker.set("refX", ( "" + (( ((int) (haxe.lang.Runtime.getField_f(desc, "width", true)) ) + 1 )) ));
				//line 71 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				marker.set("refY", ( "" + haxe.lang.Runtime.toString(( ((double) (((int) (haxe.lang.Runtime.getField_f(desc, "height", true)) )) ) / ((double) (2) ) )) ));
				//line 72 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				marker.set("markerHeight", ( "" + ((int) (haxe.lang.Runtime.getField_f(desc, "height", true)) ) ));
				//line 73 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				marker.set("markerWidth", ( "" + ((int) (haxe.lang.Runtime.getField_f(desc, "width", true)) ) ));
				//line 74 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				haxe.root.Xml path = haxe.root.Xml.createElement("path");
				//line 75 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				path.set("style", haxe.lang.Runtime.toString(haxe.lang.Runtime.getField(desc, "style", true)));
				//line 76 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				path.set("d", haxe.lang.Runtime.toString(haxe.lang.Runtime.getField(desc, "path", true)));
				//line 77 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				marker.addChild(path);
				//line 78 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				defs.addChild(marker);
			}
			
		}
		
		//line 80 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		return svg;
	}
	
	
	public static void placeObjects(java.lang.Object objects, haxe.root.Xml svg, int height, int width, java.lang.Object marginFactor)
	{
		//line 83 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		double marginFactor1 = ( (haxe.lang.Runtime.eq(marginFactor, null)) ? (((double) (1) )) : (((double) (haxe.lang.Runtime.toDouble(marginFactor)) )) );
		//line 85 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Array<java.lang.Object> _g = new haxe.root.Array<java.lang.Object>(new java.lang.Object[]{});
		//line 85 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		{
			//line 85 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int _g1 = 0;
			//line 85 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int _g2 = height;
			//line 85 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			while (( _g1 < _g2 ))
			{
				//line 85 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				int i = _g1++;
				//line 85 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				_g.push(0);
			}
			
		}
		
		//line 85 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Array<java.lang.Object> heights = _g;
		//line 86 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Array<java.lang.Object> _g3 = new haxe.root.Array<java.lang.Object>(new java.lang.Object[]{});
		//line 86 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		{
			//line 86 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int _g4 = 0;
			//line 86 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int _g5 = width;
			//line 86 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			while (( _g4 < _g5 ))
			{
				//line 86 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				int i1 = _g4++;
				//line 86 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				_g3.push(0);
			}
			
		}
		
		//line 86 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Array<java.lang.Object> widths = _g3;
		//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		{
			//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			java.lang.Object o = ((java.lang.Object) (haxe.lang.Runtime.callField(objects, "iterator", null)) );
			//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			while (haxe.lang.Runtime.toBool(((java.lang.Boolean) (haxe.lang.Runtime.callField(o, "hasNext", null)) )))
			{
				//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				model.Obj o1 = ((model.Obj) (haxe.lang.Runtime.callField(o, "next", null)) );
				//line 88 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				if (( o1.svg != null )) 
				{
					//line 89 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					haxe.root.Xml _this = o1.svg;
					//line 89 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					if (( ( _this.nodeType != haxe.root.Xml.Document ) && ( _this.nodeType != haxe.root.Xml.Element ) )) 
					{
						//line 89 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						throw ((java.lang.RuntimeException) (haxe.Exception.thrown(( "Bad node type, expected Element or Document but found " + _Xml.XmlType_Impl_.toString(_this.nodeType) ))) );
					}
					
					//line 89 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					int w = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(_this.children.__get(0).get("width")))) );
					//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					haxe.root.Xml _this1 = o1.svg;
					//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					if (( ( _this1.nodeType != haxe.root.Xml.Document ) && ( _this1.nodeType != haxe.root.Xml.Element ) )) 
					{
						//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						throw ((java.lang.RuntimeException) (haxe.Exception.thrown(( "Bad node type, expected Element or Document but found " + _Xml.XmlType_Impl_.toString(_this1.nodeType) ))) );
					}
					
					//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					int h = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(_this1.children.__get(0).get("height")))) );
					//line 91 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					if (( w > ((int) (haxe.lang.Runtime.toInt(widths.__get(o1.col))) ) )) 
					{
						//line 91 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						int __temp_expr1 = ((int) (haxe.lang.Runtime.toInt(widths.__set(o1.col, w))) );
					}
					
					//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					if (( h > ((int) (haxe.lang.Runtime.toInt(heights.__get(o1.row))) ) )) 
					{
						//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						int __temp_expr2 = ((int) (haxe.lang.Runtime.toInt(heights.__set(o1.row, h))) );
					}
					
				}
				
			}
			
		}
		
		//line 96 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int th = 5;
		//line 97 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Array<java.lang.Object> lineOffsets = new haxe.root.Array<java.lang.Object>();
		//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		{
			//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int _g6 = 0;
			//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int _g7 = height;
			//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			while (( _g6 < _g7 ))
			{
				//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				int i2 = _g6++;
				//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				int __temp_expr3 = ((int) (haxe.lang.Runtime.toInt(lineOffsets.__set(i2, th))) );
				//line 100 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				th = ( ( th + ((int) (haxe.lang.Runtime.toInt(heights.__get(i2))) ) ) + (( (( ((int) (haxe.lang.Runtime.toInt(heights.__get(i2))) ) != 0 )) ? (((int) (( 50 * marginFactor1 )) )) : (0) )) );
			}
			
		}
		
		//line 102 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int tw = 5;
		//line 103 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Array<java.lang.Object> columnOffsets = new haxe.root.Array<java.lang.Object>();
		//line 104 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		{
			//line 104 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int _g8 = 0;
			//line 104 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int _g9 = width;
			//line 104 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			while (( _g8 < _g9 ))
			{
				//line 104 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				int i3 = _g8++;
				//line 105 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				int __temp_expr4 = ((int) (haxe.lang.Runtime.toInt(columnOffsets.__set(i3, tw))) );
				//line 106 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				tw = ( ( tw + ((int) (haxe.lang.Runtime.toInt(widths.__get(i3))) ) ) + (( (( ((int) (haxe.lang.Runtime.toInt(widths.__get(i3))) ) != 0 )) ? (((int) (( 50 * marginFactor1 )) )) : (0) )) );
			}
			
		}
		
		//line 110 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		{
			//line 110 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			java.lang.Object o2 = ((java.lang.Object) (haxe.lang.Runtime.callField(objects, "iterator", null)) );
			//line 110 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			while (haxe.lang.Runtime.toBool(((java.lang.Boolean) (haxe.lang.Runtime.callField(o2, "hasNext", null)) )))
			{
				//line 110 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				model.Obj o3 = ((model.Obj) (haxe.lang.Runtime.callField(o2, "next", null)) );
				//line 111 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				if (( o3.svg != null )) 
				{
					//line 112 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					int columnOffsets1 = ((int) (haxe.lang.Runtime.toInt(columnOffsets.__get(o3.col))) );
					//line 112 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					int widths1 = ((int) (haxe.lang.Runtime.toInt(widths.__get(o3.col))) );
					//line 112 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					haxe.root.Xml _this2 = o3.svg;
					//line 112 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					if (( ( _this2.nodeType != haxe.root.Xml.Document ) && ( _this2.nodeType != haxe.root.Xml.Element ) )) 
					{
						//line 112 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						throw ((java.lang.RuntimeException) (haxe.Exception.thrown(( "Bad node type, expected Element or Document but found " + _Xml.XmlType_Impl_.toString(_this2.nodeType) ))) );
					}
					
					//line 112 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					int w1 = ((int) (( columnOffsets1 + ( ((double) ((( ((int) (widths1) ) - ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(_this2.children.__get(0).get("width")))) ) ))) ) / 2 ) )) );
					//line 113 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					int lineOffsets1 = ((int) (haxe.lang.Runtime.toInt(lineOffsets.__get(o3.row))) );
					//line 113 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					int heights1 = ((int) (haxe.lang.Runtime.toInt(heights.__get(o3.row))) );
					//line 113 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					haxe.root.Xml _this3 = o3.svg;
					//line 113 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					if (( ( _this3.nodeType != haxe.root.Xml.Document ) && ( _this3.nodeType != haxe.root.Xml.Element ) )) 
					{
						//line 113 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						throw ((java.lang.RuntimeException) (haxe.Exception.thrown(( "Bad node type, expected Element or Document but found " + _Xml.XmlType_Impl_.toString(_this3.nodeType) ))) );
					}
					
					//line 113 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					int h1 = ((int) (( lineOffsets1 + ( ((double) ((( ((int) (heights1) ) - ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(_this3.children.__get(0).get("height")))) ) ))) ) / 2 ) )) );
					//line 114 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					o3.svg.set("transform", ( ( ( ( "translate(" + w1 ) + "," ) + h1 ) + ")" ));
				}
				
			}
			
		}
		
		//line 118 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		th = ( ( th - ((int) (( 50 * marginFactor1 )) ) ) + 5 );
		//line 119 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		tw = ( ( tw - ((int) (( 50 * marginFactor1 )) ) ) + 50 );
		//line 120 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		svg.set("width", haxe.root.Std.string(tw));
		//line 121 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		svg.set("height", haxe.root.Std.string(th));
	}
	
	
	public static schema.Line getLine(model.Obj obj1, model.Obj obj2, java.lang.String card1, java.lang.String card2, java.lang.Object bend)
	{
		//line 125 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int bend1 = ( (haxe.lang.Runtime.eq(bend, null)) ? (0) : (((int) (haxe.lang.Runtime.toInt(bend)) )) );
		//line 125 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( card2 == null )) 
		{
			//line 125 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			card2 = "";
		}
		
		//line 125 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( card1 == null )) 
		{
			//line 125 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			card1 = "";
		}
		
		//line 126 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Array<java.lang.String> coords1 = haxe.lang.StringExt.split(schema.Svg.coordRE.replace(obj1.svg.get("transform"), "$1"), ",");
		//line 127 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int x1 = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(coords1.__get(0)))) );
		//line 128 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int y1 = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(coords1.__get(1)))) );
		//line 129 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Xml _this = obj1.svg;
		//line 129 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( ( _this.nodeType != haxe.root.Xml.Document ) && ( _this.nodeType != haxe.root.Xml.Element ) )) 
		{
			//line 129 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			throw ((java.lang.RuntimeException) (haxe.Exception.thrown(( "Bad node type, expected Element or Document but found " + _Xml.XmlType_Impl_.toString(_this.nodeType) ))) );
		}
		
		//line 129 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int w1 = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(_this.children.__get(0).get("width")))) );
		//line 130 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Xml _this1 = obj1.svg;
		//line 130 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( ( _this1.nodeType != haxe.root.Xml.Document ) && ( _this1.nodeType != haxe.root.Xml.Element ) )) 
		{
			//line 130 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			throw ((java.lang.RuntimeException) (haxe.Exception.thrown(( "Bad node type, expected Element or Document but found " + _Xml.XmlType_Impl_.toString(_this1.nodeType) ))) );
		}
		
		//line 130 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int h1 = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(_this1.children.__get(0).get("height")))) );
		//line 131 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Array<java.lang.String> coords2 = haxe.lang.StringExt.split(schema.Svg.coordRE.replace(obj2.svg.get("transform"), "$1"), ",");
		//line 132 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int x2 = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(coords2.__get(0)))) );
		//line 133 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int y2 = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(coords2.__get(1)))) );
		//line 134 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Xml _this2 = obj2.svg;
		//line 134 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( ( _this2.nodeType != haxe.root.Xml.Document ) && ( _this2.nodeType != haxe.root.Xml.Element ) )) 
		{
			//line 134 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			throw ((java.lang.RuntimeException) (haxe.Exception.thrown(( "Bad node type, expected Element or Document but found " + _Xml.XmlType_Impl_.toString(_this2.nodeType) ))) );
		}
		
		//line 134 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int w2 = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(_this2.children.__get(0).get("width")))) );
		//line 135 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Xml _this3 = obj2.svg;
		//line 135 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( ( _this3.nodeType != haxe.root.Xml.Document ) && ( _this3.nodeType != haxe.root.Xml.Element ) )) 
		{
			//line 135 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			throw ((java.lang.RuntimeException) (haxe.Exception.thrown(( "Bad node type, expected Element or Document but found " + _Xml.XmlType_Impl_.toString(_this3.nodeType) ))) );
		}
		
		//line 135 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int h2 = ((int) (haxe.lang.Runtime.toInt(haxe.root.Std.parseInt(_this3.children.__get(0).get("height")))) );
		//line 136 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int hOrientation = ( (( obj1.col == obj2.col )) ? (0) : (( (( obj1.col < obj2.col )) ? (-1) : (1) )) );
		//line 137 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int vOrientation = ( (( obj1.row == obj2.row )) ? (0) : (( (( obj1.row < obj2.row )) ? (-1) : (1) )) );
		//line 138 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		schema.Line line = new schema.Line(((int) (( x1 + ((int) (( ((double) (w1) ) / 2 )) ) )) ), ((int) (( y1 + ((int) (( ((double) (h1) ) / 2 )) ) )) ), ((int) (( x2 + ((int) (( ((double) (w2) ) / 2 )) ) )) ), ((int) (( y2 + ((int) (( ((double) (h2) ) / 2 )) ) )) ), ((int) (hOrientation) ), ((int) (vOrientation) ));
		//line 140 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int dx = 0;
		//line 141 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int dy = 0;
		//line 143 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		x1 += ( (( x1 < x2 )) ? (w1) : (0) );
		//line 144 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		y1 += ( (( y1 < y2 )) ? (h1) : (0) );
		//line 145 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		x2 += ( (( x2 < x1 )) ? (w2) : (0) );
		//line 146 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		y2 += ( (( y2 < y1 )) ? (h2) : (0) );
		//line 147 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (line.isVertical()) 
		{
			//line 148 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.y1 = y1;
			//line 149 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.y2 = y2;
			//line 150 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			if (( bend1 != 0 )) 
			{
				//line 151 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				line.x1 += ((int) (( ((double) (( w1 * bend1 )) ) / 3 )) );
				//line 152 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				line.x2 += ((int) (( ((double) (( w2 * bend1 )) ) / 3 )) );
				//line 153 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				dx = ( bend1 * 5 );
			}
			
		}
		else
		{
			//line 155 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			if (line.isHorizontal()) 
			{
				//line 156 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				line.x2 = x2;
				//line 157 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				if (( bend1 == 0 )) 
				{
					//line 158 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					line.x1 = x1;
				}
				else
				{
					//line 160 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					line.y1 = ( y1 + (( (( bend1 == 1 )) ? (h1) : (0) )) );
					//line 161 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					line.y2 += ((int) (( ((double) (( h2 * bend1 )) ) / 3 )) );
					//line 162 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					dy = ( bend1 * 5 );
				}
				
			}
			else
			{
				//line 165 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				if (( bend1 == 1 )) 
				{
					//line 166 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					line.x1 = x1;
					//line 167 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					line.y2 = y2;
					//line 168 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					line.x2 -= ((int) (( ((double) ((( line.x2 - x2 ))) ) / 2 )) );
				}
				else
				{
					//line 169 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					if (( bend1 == -1 )) 
					{
						//line 170 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						line.y1 = y1;
						//line 171 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						line.x2 = x2;
						//line 172 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						line.y2 -= ((int) (( ((double) ((( line.y2 - y2 ))) ) / 2 )) );
					}
					else
					{
						//line 175 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						double steering = line.getSteering();
						//line 176 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						double offset = line.getOffset();
						//line 174 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						int segStart = ( (( y1 < y2 )) ? (( y1 - h1 )) : (y1) );
						//line 178 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						int tx1 = ((int) (java.lang.Math.round(( (( y1 - offset )) / steering ))) );
						//line 179 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						int ty1 = ((int) (java.lang.Math.round(( ( x1 * steering ) + offset ))) );
						//line 180 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						if (( ( ty1 >= segStart ) && ( ty1 <= ( segStart + h1 ) ) )) 
						{
							//line 181 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
							line.x1 = x1;
							//line 182 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
							line.y1 = ty1;
						}
						else
						{
							//line 184 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
							line.x1 = tx1;
							//line 185 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
							line.y1 = y1;
						}
						
						//line 187 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						segStart = ( (( y2 < y1 )) ? (( y2 - h2 )) : (y2) );
						//line 188 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						int tx2 = ((int) (java.lang.Math.round(( (( y2 - offset )) / steering ))) );
						//line 189 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						int ty2 = ((int) (java.lang.Math.round(( ( x2 * steering ) + offset ))) );
						//line 190 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
						if (( ( ty2 >= segStart ) && ( ty2 <= ( segStart + h2 ) ) )) 
						{
							//line 191 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
							line.x2 = x2;
							//line 192 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
							line.y2 = ty2;
						}
						else
						{
							//line 194 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
							line.x2 = tx2;
							//line 195 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
							line.y2 = y2;
						}
						
					}
					
				}
				
			}
			
		}
		
		//line 201 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		line.cx1 = ( line.x1 + 5 );
		//line 202 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		line.cy1 = ( ( line.y1 + 16 ) + 5 );
		//line 203 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		line.cx2 = ( ( line.x2 + 5 ) + dx );
		//line 204 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		line.cy2 = ( ( ( line.y2 + 16 ) + 5 ) + dy );
		//line 205 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( line.hOrientation == 1 )) 
		{
			//line 205 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.cx1 = ( line.x1 - ((int) (( ( 10.0 * card1.length() ) + 7.5 )) ) );
		}
		
		//line 206 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( ( line.hOrientation == -1 ) || ( dx > 0 ) )) 
		{
			//line 206 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.cx2 = ( ( line.x2 - ((int) (( ( 10.0 * card2.length() ) + 7.5 )) ) ) + dx );
		}
		
		//line 207 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( line.vOrientation == 1 )) 
		{
			//line 207 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.cy1 = ( line.y1 - 7 );
		}
		
		//line 208 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( ( line.vOrientation == -1 ) || ( dy > 0 ) )) 
		{
			//line 208 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.cy2 = ( ( line.y2 - 7 ) + dy );
		}
		
		//line 209 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		return line;
	}
	
	
	public static haxe.root.Xml getSvgLine(schema.Line coords, java.lang.Object bend, java.lang.String endMarkerId)
	{
		//line 212 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		int bend1 = ( (haxe.lang.Runtime.eq(bend, null)) ? (0) : (((int) (haxe.lang.Runtime.toInt(bend)) )) );
		//line 213 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		haxe.root.Xml line = null;
		//line 214 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( bend1 == 0 )) 
		{
			//line 215 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line = haxe.root.Xml.createElement("line");
			//line 216 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.set("x1", haxe.root.Std.string(coords.x1));
			//line 217 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.set("x2", haxe.root.Std.string(coords.x2));
			//line 218 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.set("y1", haxe.root.Std.string(coords.y1));
			//line 219 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.set("y2", haxe.root.Std.string(coords.y2));
		}
		else
		{
			//line 221 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line = haxe.root.Xml.createElement("path");
			//line 222 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int xlm = ((int) (( ((double) ((( coords.x2 + coords.x1 ))) ) / 2 )) );
			//line 223 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int ylm = ((int) (( ((double) ((( coords.y2 + coords.y1 ))) ) / 2 )) );
			//line 224 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			double distance = ( java.lang.Math.sqrt(( java.lang.Math.pow(((double) (( coords.x2 - coords.x1 )) ), ((double) (2) )) + java.lang.Math.pow(((double) (( coords.y2 - coords.y1 )) ), ((double) (2) )) )) / 3 );
			//line 225 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			double steering = ( -1 / coords.getSteering() );
			//line 226 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			double angle = java.lang.Math.atan(steering);
			//line 227 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int xlq = xlm;
			//line 228 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			int ylq = ylm;
			//line 229 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			if (( coords.hOrientation == 0 )) 
			{
				//line 230 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				xlq += ( ((int) (( java.lang.Math.cos(angle) * distance )) ) * bend1 );
				//line 231 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				ylq += ( ((int) (( java.lang.Math.sin(angle) * distance )) ) * bend1 );
			}
			else
			{
				//line 232 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
				if (( coords.vOrientation == 0 )) 
				{
					//line 233 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					xlq += ( ((int) (( java.lang.Math.cos(angle) * distance )) ) * bend1 );
					//line 234 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					ylq += ( ((int) (( java.lang.Math.sin(angle) * distance )) ) * coords.hOrientation );
				}
				else
				{
					//line 236 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					xlq += ( ( ((int) (( java.lang.Math.cos(angle) * distance )) ) * bend1 ) *  - (coords.hOrientation)  );
					//line 237 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
					ylq += ( ( ((int) (( java.lang.Math.sin(angle) * distance )) ) * bend1 ) *  - (coords.hOrientation)  );
				}
				
			}
			
			//line 239 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.set("d", ( ( ( ( ( ( ( ( ( ( ( "M " + coords.x1 ) + " " ) + coords.y1 ) + " Q " ) + xlq ) + " " ) + ylq ) + " " ) + coords.x2 ) + " " ) + coords.y2 ));
		}
		
		//line 241 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		if (( endMarkerId != null )) 
		{
			//line 242 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
			line.set("marker-end", ( ( "url(#" + endMarkerId ) + ")" ));
		}
		
		//line 244 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/schema/Svg.hx"
		return line;
	}
	
	
}


