summaryrefslogtreecommitdiffstats
path: root/doc/livarot-images
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 11:50:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 11:50:49 +0000
commitc853ffb5b2f75f5a889ed2e3ef89b818a736e87a (patch)
tree7d13a0883bb7936b84d6ecdd7bc332b41ed04bee /doc/livarot-images
parentInitial commit. (diff)
downloadinkscape-c853ffb5b2f75f5a889ed2e3ef89b818a736e87a.tar.xz
inkscape-c853ffb5b2f75f5a889ed2e3ef89b818a736e87a.zip
Adding upstream version 1.3+ds.upstream/1.3+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--doc/livarot-images/arc-threshold.svg228
-rw-r--r--doc/livarot-images/chgt-addition-sequence.svg262
-rw-r--r--doc/livarot-images/convert-back-data.svg258
-rw-r--r--doc/livarot-images/convert-lines.svg128
-rw-r--r--doc/livarot-images/convert-reconstruction.svg2516
-rw-r--r--doc/livarot-images/convert-simple-high.svg140
-rw-r--r--doc/livarot-images/convert-simple-low.svg110
-rw-r--r--doc/livarot-images/edge-sorting.svg200
-rw-r--r--doc/livarot-images/edge-winding-seed.svg81
-rw-r--r--doc/livarot-images/find-point-2.svg357
-rw-r--r--doc/livarot-images/find-point-same-opp-sweepsense.svg417
-rw-r--r--doc/livarot-images/find-point-same.svg386
-rw-r--r--doc/livarot-images/find-point.svg299
-rw-r--r--doc/livarot-images/intersection-cross-product.svg443
-rw-r--r--doc/livarot-images/intersection-cross-products.svg373
-rw-r--r--doc/livarot-images/intersection-point-calculation.svg1473
-rw-r--r--doc/livarot-images/lastChgtPt-from-avance.svg146
-rw-r--r--doc/livarot-images/problematic-intersection-case.svg185
-rw-r--r--doc/livarot-images/process-flat-to-convert.svg855
-rw-r--r--doc/livarot-images/process-flat-to-convert.svg.2020_08_20_00_55_09.0.svg566
-rw-r--r--doc/livarot-images/rounded-edge-diagonal-avoid.svg271
-rw-r--r--doc/livarot-images/sequence-convert-shape-loop.svg618
-rw-r--r--doc/livarot-images/situation-from-add-chgt.svg152
-rw-r--r--doc/livarot-images/snap-rounding-with.svg806
-rw-r--r--doc/livarot-images/snap-rounding-without.pngbin0 -> 30728 bytes
-rw-r--r--doc/livarot-images/snap-rounding-without.svg802
-rw-r--r--doc/livarot-images/sweep-tree.svg527
-rw-r--r--doc/livarot-images/sweepline-list-node-add-removal.svg524
-rw-r--r--doc/livarot-images/sweepline-list-node-event.svg749
-rw-r--r--doc/livarot-images/sweepline-list-node-intersection.svg607
-rw-r--r--doc/livarot-images/teste-intersection.svg193
-rw-r--r--doc/livarot-images/winding-brutal-bounds.svg121
-rw-r--r--doc/livarot-images/winding-brutal-endpoints-end.svg497
-rw-r--r--doc/livarot-images/winding-brutal-endpoints-start.svg511
-rw-r--r--doc/livarot-images/winding-brutal-endpoints.svg188
-rw-r--r--doc/livarot-images/winding-computation-seed.svg154
-rw-r--r--doc/livarot-images/winding-computation.svg391
-rw-r--r--doc/livarot-images/winding-fundamental-principle.svg116
38 files changed, 16650 insertions, 0 deletions
diff --git a/doc/livarot-images/arc-threshold.svg b/doc/livarot-images/arc-threshold.svg
new file mode 100644
index 0000000..b5c40e9
--- /dev/null
+++ b/doc/livarot-images/arc-threshold.svg
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="384.85571"
+ height="316.2381"
+ viewBox="0 0 384.85571 316.2381"
+ version="1.1"
+ id="svg6"
+ inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+ sodipodi:docname="arc-threshold.svg">
+ <metadata
+ id="metadata27">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path920"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.3719323"
+ inkscape:cx="206.22154"
+ inkscape:cy="168.80326"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="20"
+ fit-margin-left="20"
+ fit-margin-right="20"
+ fit-margin-bottom="20" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-28.526459,-37.270763)">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:10, 20;stroke-dashoffset:0"
+ id="ellipse1209"
+ transform="rotate(62.960609)"
+ sodipodi:type="arc"
+ sodipodi:cx="262.41861"
+ sodipodi:cy="-57.27372"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:start="3.1415927"
+ sodipodi:end="0"
+ sodipodi:open="true"
+ sodipodi:arc-type="arc"
+ d="M 139.64012,-57.273728 A 122.77849,181.92303 0 0 1 262.41861,-239.19675 122.77849,181.92303 0 0 1 385.1971,-57.27372" />
+ <path
+ d="m 138.83803,-57.013718 a 122.77849,181.92303 0 0 1 7.40445,-62.221332 l 115.37404,62.22134 z"
+ sodipodi:arc-type="arc"
+ sodipodi:end="3.4906585"
+ sodipodi:start="3.1415927"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652"
+ sodipodi:type="arc"
+ transform="rotate(62.960609)"
+ id="path858"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path860"
+ transform="rotate(62.960609)"
+ sodipodi:arc-type="arc"
+ d="m 146.24248,-119.23505 a 122.77849,181.92303 0 0 1 21.32026,-54.71654 l 94.05378,116.93788 z"
+ sodipodi:type="arc"
+ sodipodi:start="3.4906585"
+ sodipodi:end="3.8397244"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652" />
+ <path
+ sodipodi:cx="261.61652"
+ sodipodi:cy="-57.01371"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:end="4.1887902"
+ sodipodi:start="3.8397244"
+ sodipodi:type="arc"
+ d="m 167.56274,-173.95159 a 122.77849,181.92303 0 0 1 32.66453,-40.61209 l 61.38925,157.54997 z"
+ sodipodi:arc-type="arc"
+ transform="rotate(62.960609)"
+ id="path862"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path864"
+ transform="rotate(62.960609)"
+ sodipodi:arc-type="arc"
+ d="m 200.22727,-214.56368 a 122.77849,181.92303 0 0 1 40.06899,-21.60925 l 21.32026,179.15922 z"
+ sodipodi:type="arc"
+ sodipodi:start="4.1887902"
+ sodipodi:end="4.5378561"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652" />
+ <path
+ sodipodi:cx="261.61652"
+ sodipodi:cy="-57.01371"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:end="4.8869219"
+ sodipodi:start="4.5378561"
+ sodipodi:type="arc"
+ d="m 240.29626,-236.17293 a 122.77849,181.92303 0 0 1 42.64052,0 l -21.32026,179.15922 z"
+ sodipodi:arc-type="arc"
+ transform="rotate(62.960609)"
+ id="path866"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path868"
+ transform="rotate(62.960609)"
+ sodipodi:arc-type="arc"
+ d="m 282.93678,-236.17293 a 122.77849,181.92303 0 0 1 40.06898,21.60925 l -61.38924,157.54997 z"
+ sodipodi:type="arc"
+ sodipodi:start="4.8869219"
+ sodipodi:end="5.2359878"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652" />
+ <path
+ sodipodi:cx="261.61652"
+ sodipodi:cy="-57.01371"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:end="5.5850536"
+ sodipodi:start="5.2359878"
+ sodipodi:type="arc"
+ d="m 323.00576,-214.56368 a 122.77849,181.92303 0 0 1 32.66453,40.6121 l -94.05377,116.93787 z"
+ sodipodi:arc-type="arc"
+ transform="rotate(62.960609)"
+ id="path870"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path872"
+ transform="rotate(62.960609)"
+ sodipodi:arc-type="arc"
+ d="m 376.99056,-119.23505 a 122.77849,181.92303 0 0 1 7.40444,62.22134 l -122.77848,0 z"
+ sodipodi:type="arc"
+ sodipodi:start="5.9341195"
+ sodipodi:end="0"
+ sodipodi:ry="181.92303"
+ sodipodi:rx="122.77849"
+ sodipodi:cy="-57.01371"
+ sodipodi:cx="261.61652" />
+ <path
+ sodipodi:cx="261.61652"
+ sodipodi:cy="-57.01371"
+ sodipodi:rx="122.77849"
+ sodipodi:ry="181.92303"
+ sodipodi:end="5.9341195"
+ sodipodi:start="5.5850536"
+ sodipodi:type="arc"
+ d="m 355.67029,-173.95158 a 122.77849,181.92303 0 0 1 21.32027,54.71653 l -115.37404,62.22134 z"
+ sodipodi:arc-type="arc"
+ transform="rotate(62.960609)"
+ id="path874"
+ style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0" />
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:2, 2;stroke-dashoffset:0"
+ d="m 114.15977,97.950431 58.52446,-21.897714 58.42796,-5.884464 51.02234,10.631731 37.46272,25.865586 19.3845,37.97966 -1.03175,45.51284 -21.32356,47.55649 -39.04345,43.86413 -52.07755,34.81495"
+ id="path876"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/chgt-addition-sequence.svg b/doc/livarot-images/chgt-addition-sequence.svg
new file mode 100644
index 0000000..46f3a00
--- /dev/null
+++ b/doc/livarot-images/chgt-addition-sequence.svg
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (b11d04efb7, 2020-08-25, custom)"
+ sodipodi:docname="chgt-addition-sequence.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.1206808"
+ inkscape:cx="248.95582"
+ inkscape:cy="509.06558"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="path1173"
+ cx="78.166206"
+ cy="288.72296"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1175"
+ cx="55.587914"
+ cy="49.383144"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1177"
+ cx="83.664955"
+ cy="542.04181"
+ r="16.849979" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 55.252092,51.995006 22.79926,237.031244 5.16247,253.2171"
+ id="path1179" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="79.421501"
+ y="178.27722"
+ id="text1183"><tspan
+ sodipodi:role="line"
+ id="tspan1181"
+ x="79.421501"
+ y="178.27722">edge A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="94.368141"
+ y="421.89923"
+ id="text1187"><tspan
+ sodipodi:role="line"
+ id="tspan1185"
+ x="94.368141"
+ y="421.89923">edge E</tspan></text>
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1193"
+ cx="316.42542"
+ cy="49.824383"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1195"
+ cx="506.46616"
+ cy="49.882885"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1197"
+ cx="256.48138"
+ cy="518.86157"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1199"
+ cx="446.52213"
+ cy="518.9201"
+ r="16.849979" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1201"
+ cx="380.16623"
+ cy="286.72296"
+ r="16.849979" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 314.48322,46.691426 132.289,473.328804"
+ id="path1203" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 507.34274,49.657676 255.92081,521.45363"
+ id="path1205" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1217"
+ cx="573.18079"
+ cy="284.11252"
+ r="16.849979" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 572.56908,286.68089 623.57449,39.636396"
+ id="path1219" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-linecap:square"
+ id="circle1221"
+ cx="625.49481"
+ cy="32.441143"
+ r="16.849979" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="622.58923"
+ y="168.69528"
+ id="text1225"><tspan
+ sodipodi:role="line"
+ id="tspan1223"
+ x="622.58923"
+ y="168.69528">edge D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="274.80078"
+ y="180.67569"
+ id="text1229"><tspan
+ sodipodi:role="line"
+ id="tspan1227"
+ x="274.80078"
+ y="180.67569">edge X</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="455.81705"
+ y="185.5293"
+ id="text1233"><tspan
+ sodipodi:role="line"
+ id="tspan1231"
+ x="455.81705"
+ y="185.5293">edge Y</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:5;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:5, 15;stroke-dashoffset:0"
+ id="rect1235"
+ width="624.091"
+ height="60.885902"
+ x="33.591202"
+ y="252.56232" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.17497;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:2.17497, 6.52492;stroke-dashoffset:0"
+ id="rect1269"
+ width="289.12112"
+ height="288.80701"
+ x="70.471581"
+ y="655.30725" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="86.259834"
+ y="681.55219"
+ id="text1273"><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="681.55219"
+ id="tspan1275">type = EDGE_REMOVAL</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="701.55219"
+ id="tspan1279">ptNo -&gt; 8</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="721.55219"
+ id="tspan1293">left_edge -&gt; A</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="741.55219"
+ id="tspan1295">right_edge -&gt; none</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="761.55219"
+ id="tspan1299">edge_to_left -&gt; none</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="781.55219"
+ id="tspan1301">edge_to_right -&gt;</tspan><tspan
+ sodipodi:role="line"
+ x="86.259834"
+ y="801.55219"
+ id="tspan1297" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="107.06792"
+ y="291.77271"
+ id="text1283"><tspan
+ sodipodi:role="line"
+ id="tspan1281"
+ x="107.06792"
+ y="291.77271">8</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="405.72318"
+ y="291.2673"
+ id="text1287"><tspan
+ sodipodi:role="line"
+ id="tspan1285"
+ x="405.72318"
+ y="291.2673">9</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="596.86731"
+ y="288.18781"
+ id="text1291"><tspan
+ sodipodi:role="line"
+ id="tspan1289"
+ x="596.86731"
+ y="288.18781">10</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-back-data.svg b/doc/livarot-images/convert-back-data.svg
new file mode 100644
index 0000000..11226e6
--- /dev/null
+++ b/doc/livarot-images/convert-back-data.svg
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="558.4046"
+ height="538.37225"
+ viewBox="0 0 558.4046 538.37225"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-back-data.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1446"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1444" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="411"
+ inkscape:cy="334.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-8.9303313,-21.664225)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.77295;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 102.60449,515.25467 c 0,0 -6.893302,-398.4437 373.59095,-458.882951 z"
+ id="path829" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path831"
+ cx="103.42987"
+ cy="517.56573"
+ r="6.1909528" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.77295;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:11.0918, 11.0918;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 102.60449,515.25467 117.30159,395.05912 208.39778,204.83219 327.81822,106.45266 476.19544,56.371719 Z"
+ id="path857" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle833"
+ cx="118.08809"
+ cy="395.51981"
+ r="6.1909528" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle835"
+ cx="208.10326"
+ cy="204.9926"
+ r="6.1909528" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle837"
+ cx="326.27896"
+ cy="106.09619"
+ r="6.1909528" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.09665;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle839"
+ cx="476.59958"
+ cy="55.426014"
+ r="6.1909528" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.554591"
+ x="20.893951"
+ y="42.900475"
+ id="text1304"><tspan
+ sodipodi:role="line"
+ id="tspan1302"
+ x="20.893951"
+ y="42.900475"
+ style="stroke-width:0.554591">ConvertWithBackData</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:36.9727px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.554591"
+ x="77.885551"
+ y="113.05464"
+ id="text1308"><tspan
+ sodipodi:role="line"
+ id="tspan1306"
+ x="77.885551"
+ y="113.05464"
+ style="font-size:36.9727px;stroke-width:0.554591">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:36.9727px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.554591"
+ x="412.53885"
+ y="316.25241"
+ id="text1312"><tspan
+ sodipodi:role="line"
+ id="tspan1310"
+ x="412.53885"
+ y="316.25241"
+ style="font-size:36.9727px;stroke-width:0.554591">1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.66377;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 89.29666,120.30545 c 0,0 -1.132358,67.03572 65.0832,154.98955"
+ id="path1314"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.66377;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1446)"
+ d="m 444.92323,285.45839 c 0,0 28.06694,-50.89681 -30.29334,-136.21065"
+ id="path1442"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="19.778652"
+ y="510.54266"
+ id="text1486"><tspan
+ sodipodi:role="line"
+ id="tspan1484"
+ x="19.778652"
+ y="510.54266"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="19.778652"
+ y="529.02905"
+ id="tspan1490"
+ style="stroke-width:0.554591">time = 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="18.533163"
+ y="388.26981"
+ id="text1498"><tspan
+ sodipodi:role="line"
+ id="tspan1494"
+ x="18.533163"
+ y="388.26981"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="18.533163"
+ y="406.7562"
+ id="tspan1496"
+ style="stroke-width:0.554591">time = 0.20</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="129.88928"
+ y="175.30013"
+ id="text1504"><tspan
+ sodipodi:role="line"
+ id="tspan1500"
+ x="129.88928"
+ y="175.30013"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="129.88928"
+ y="193.7865"
+ id="tspan1502"
+ style="stroke-width:0.554591">time = 0.5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="259.5546"
+ y="69.202881"
+ id="text1510"><tspan
+ sodipodi:role="line"
+ id="tspan1506"
+ x="259.5546"
+ y="69.202881"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="259.5546"
+ y="87.689255"
+ id="tspan1508"
+ style="stroke-width:0.554591">time = 0.75</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="487.28891"
+ y="52.659344"
+ id="text1516"><tspan
+ sodipodi:role="line"
+ id="tspan1512"
+ x="487.28891"
+ y="52.659344"
+ style="stroke-width:0.554591">piece = 0</tspan><tspan
+ sodipodi:role="line"
+ x="487.28891"
+ y="71.145721"
+ id="tspan1514"
+ style="stroke-width:0.554591">time = 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:14.7891px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.554591"
+ x="136.8902"
+ y="512.85431"
+ id="text1522"><tspan
+ sodipodi:role="line"
+ id="tspan1518"
+ x="136.8902"
+ y="512.85431"
+ style="stroke-width:0.554591">piece = 1</tspan><tspan
+ sodipodi:role="line"
+ x="136.8902"
+ y="531.3407"
+ id="tspan1520"
+ style="stroke-width:0.554591">time = 1</tspan><tspan
+ sodipodi:role="line"
+ x="136.8902"
+ y="549.82709"
+ id="tspan1524"
+ style="stroke-width:0.554591">closed = true</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-lines.svg b/doc/livarot-images/convert-lines.svg
new file mode 100644
index 0000000..7d6914a
--- /dev/null
+++ b/doc/livarot-images/convert-lines.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="440.75186"
+ height="469.3035"
+ viewBox="0 0 440.75186 469.3035"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-lines.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="292"
+ inkscape:cy="288.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-17.642022,-25.116572)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.54173;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 99.910319,476.627 c 0,0 -6.318491,-365.21877 342.438421,-420.61819 z"
+ id="path829" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path831"
+ cx="100.66688"
+ cy="478.74536"
+ r="5.6747093" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.54173;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:10.1669, 10.1669;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 99.910319,476.627 113.38188,366.45417 196.88185,192.08965 306.34421,101.91367 442.34874,56.00881 Z"
+ id="path857" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle833"
+ cx="114.10279"
+ cy="366.87646"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle835"
+ cx="196.61189"
+ cy="192.23668"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle837"
+ cx="304.93329"
+ cy="101.58692"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle839"
+ cx="442.71918"
+ cy="55.141964"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1142"
+ cx="367.69489"
+ cy="148.26315"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1144"
+ cx="290.62311"
+ cy="243.22745"
+ r="5.6747093" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:6.50489;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1146"
+ cx="203.70471"
+ cy="350.66959"
+ r="5.6747093" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5559px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.508345"
+ x="26.880827"
+ y="45.415878"
+ id="text1150"><tspan
+ sodipodi:role="line"
+ id="tspan1148"
+ x="26.880827"
+ y="45.415878"
+ style="stroke-width:0.508345">ConvertEvenLines</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-reconstruction.svg b/doc/livarot-images/convert-reconstruction.svg
new file mode 100644
index 0000000..58bc665
--- /dev/null
+++ b/doc/livarot-images/convert-reconstruction.svg
@@ -0,0 +1,2516 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="984.64911"
+ height="1188.9872"
+ viewBox="0 0 984.64911 1188.9872"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-reconstruction.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <rect
+ x="27.219719"
+ y="1017.9344"
+ width="425.58773"
+ height="135.45595"
+ id="rect3009" />
+ <marker
+ style="overflow:visible"
+ id="marker2993"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2991" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2963"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2961" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2841"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2839" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2743"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2741" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2643" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2561"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2559" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2389"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2387" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2317"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2315" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2281"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2279" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2147"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2145" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2063"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2061" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2033"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2031" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1973"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1971" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1889"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1887" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1627"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1625" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1591"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1589" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1423"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1421" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1047"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1045" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="272.65759"
+ inkscape:cy="1115.5721"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-15.337017,4.2015039)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 66.316055,80.704201 H 333.28579 L 115.83767,416.15674 356.84987,351.57772 Z"
+ id="path829" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="path831"
+ cx="66.799599"
+ cy="80.271782"
+ r="5.7431164" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="circle833"
+ cx="333.59827"
+ cy="80.592285"
+ r="5.7431164" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="circle835"
+ cx="233.10919"
+ cy="234.75316"
+ r="5.7431164" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="circle837"
+ cx="355.77115"
+ cy="351.03488"
+ r="5.7431164" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:5;stroke-dasharray:10, 10"
+ id="circle839"
+ cx="117.54447"
+ cy="416.5206"
+ r="5.7431164" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="62.743244"
+ y="66.555336"
+ id="text843"><tspan
+ sodipodi:role="line"
+ id="tspan841"
+ x="62.743244"
+ y="66.555336">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="341.01462"
+ y="67.814552"
+ id="text847"><tspan
+ sodipodi:role="line"
+ id="tspan845"
+ x="341.01462"
+ y="67.814552">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="250.10796"
+ y="237.64861"
+ id="text851"><tspan
+ sodipodi:role="line"
+ id="tspan849"
+ x="250.10796"
+ y="237.64861">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="95.912811"
+ y="442.76086"
+ id="text855"><tspan
+ sodipodi:role="line"
+ id="tspan853"
+ x="95.912811"
+ y="442.76086">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="363.61136"
+ y="378.92093"
+ id="text859"><tspan
+ sodipodi:role="line"
+ id="tspan857"
+ x="363.61136"
+ y="378.92093">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="180.29718"
+ y="73.938614"
+ id="text879"><tspan
+ sodipodi:role="line"
+ id="tspan877"
+ x="180.29718"
+ y="73.938614"
+ style="font-size:16px">edge 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="116.7416"
+ y="444.05273"
+ id="text883"
+ transform="rotate(-14.17869)"><tspan
+ sodipodi:role="line"
+ id="tspan881"
+ x="116.7416"
+ y="444.05273"
+ style="font-size:16px">edge 3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="194.91197"
+ y="1.7784089"
+ id="text887"
+ transform="rotate(44.862881)"><tspan
+ sodipodi:role="line"
+ id="tspan885"
+ x="194.91197"
+ y="1.7784089"
+ style="font-size:16px">edge 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="6.9570251"
+ y="337.26407"
+ id="text891"
+ transform="rotate(-55.507024)"><tspan
+ sodipodi:role="line"
+ id="tspan889"
+ x="6.9570251"
+ y="337.26407"
+ style="font-size:16px">edge 2</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 42.882779,85.198644 473.67906,41.765084"
+ id="path893" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 42.882779,85.198644 473.67906,41.765084"
+ id="path895" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="523.32013"
+ y="68.950508"
+ id="text1131"><tspan
+ sodipodi:role="line"
+ id="tspan1129"
+ x="523.32013"
+ y="68.950508"
+ style="stroke-width:0.62235">Edge 0 added!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1133"
+ width="76.090935"
+ height="20.689505"
+ x="524.90527"
+ y="80.005814" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="527.4046"
+ y="96.453171"
+ id="text1137"><tspan
+ sodipodi:role="line"
+ id="tspan1135"
+ x="527.4046"
+ y="96.453171"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1139"
+ width="92.910706"
+ height="20.631157"
+ x="600.99622"
+ y="80.064163" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="603.052"
+ y="96.628555"
+ id="text1143"><tspan
+ sodipodi:role="line"
+ id="tspan1141"
+ x="603.052"
+ y="96.628555"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1145"
+ width="76.090935"
+ height="20.689505"
+ x="524.90527"
+ y="100.63697" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="527.4046"
+ y="117.08434"
+ id="text1149"><tspan
+ sodipodi:role="line"
+ id="tspan1147"
+ x="527.4046"
+ y="117.08434"
+ style="stroke-width:0.62235">edge 0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1151"
+ width="92.910706"
+ height="20.631157"
+ x="600.99622"
+ y="100.69532" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="603.052"
+ y="117.25972"
+ id="text1155"><tspan
+ sodipodi:role="line"
+ id="tspan1153"
+ x="603.052"
+ y="117.25972"
+ style="stroke-width:0.62235">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="522.94501"
+ y="149.71866"
+ id="text1159"><tspan
+ sodipodi:role="line"
+ id="tspan1157"
+ x="522.94501"
+ y="149.71866"
+ style="stroke-width:0.62235">Edge 1 added!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1161"
+ width="76.090935"
+ height="20.689505"
+ x="524.35718"
+ y="161.24171" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="526.85651"
+ y="177.68907"
+ id="text1165"><tspan
+ sodipodi:role="line"
+ id="tspan1163"
+ x="526.85651"
+ y="177.68907"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1167"
+ width="92.910706"
+ height="20.631157"
+ x="600.44812"
+ y="161.30006" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="602.50391"
+ y="177.86446"
+ id="text1171"><tspan
+ sodipodi:role="line"
+ id="tspan1169"
+ x="602.50391"
+ y="177.86446"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1173"
+ width="76.090935"
+ height="20.689505"
+ x="524.35718"
+ y="181.87286" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="526.85651"
+ y="198.32024"
+ id="text1177"><tspan
+ sodipodi:role="line"
+ id="tspan1175"
+ x="526.85651"
+ y="198.32024"
+ style="stroke-width:0.62235">edge 0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1179"
+ width="92.910706"
+ height="20.631157"
+ x="600.44812"
+ y="181.93121" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="602.50391"
+ y="198.49562"
+ id="text1183"><tspan
+ sodipodi:role="line"
+ id="tspan1181"
+ x="602.50391"
+ y="198.49562"
+ style="stroke-width:0.62235">0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1185"
+ width="76.090935"
+ height="20.689505"
+ x="524.35718"
+ y="202.56238" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="526.85651"
+ y="219.00975"
+ id="text1189"><tspan
+ sodipodi:role="line"
+ id="tspan1187"
+ x="526.85651"
+ y="219.00975"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1191"
+ width="92.910706"
+ height="20.631157"
+ x="600.44812"
+ y="202.62073" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="602.50391"
+ y="219.18513"
+ id="text1195"><tspan
+ sodipodi:role="line"
+ id="tspan1193"
+ x="602.50391"
+ y="219.18513"
+ style="stroke-width:0.62235">0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1047)"
+ d="m 511.60893,25.697471 c 0,0 -20.75021,-39.589821 -58.65278,14.975274"
+ id="path1197"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 42.25566,110.54637 473.05194,67.112813"
+ id="path1265" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="540.90442"
+ y="288.85034"
+ id="text1381"><tspan
+ sodipodi:role="line"
+ id="tspan1379"
+ x="540.90442"
+ y="288.85034"
+ style="stroke-width:0.62235">Edge 0 to remove!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1383"
+ width="76.090935"
+ height="20.689505"
+ x="542.31659"
+ y="300.37335" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.81592"
+ y="316.82074"
+ id="text1387"><tspan
+ sodipodi:role="line"
+ id="tspan1385"
+ x="544.81592"
+ y="316.82074"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1389"
+ width="92.910706"
+ height="20.631157"
+ x="618.40753"
+ y="300.4317" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="620.46332"
+ y="316.99609"
+ id="text1393"><tspan
+ sodipodi:role="line"
+ id="tspan1391"
+ x="620.46332"
+ y="316.99609"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1395"
+ width="76.090935"
+ height="20.689505"
+ x="542.31659"
+ y="321.00452" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.81592"
+ y="337.4519"
+ id="text1399"><tspan
+ sodipodi:role="line"
+ id="tspan1397"
+ x="544.81592"
+ y="337.4519"
+ style="stroke-width:0.62235">edge 0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1401"
+ width="92.910706"
+ height="20.631157"
+ x="618.40753"
+ y="321.06287" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="620.46332"
+ y="337.62726"
+ id="text1405"><tspan
+ sodipodi:role="line"
+ id="tspan1403"
+ x="620.46332"
+ y="337.62726"
+ style="stroke-width:0.62235">0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1407"
+ width="76.090935"
+ height="20.689505"
+ x="542.31659"
+ y="341.69403" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.81592"
+ y="358.14142"
+ id="text1411"><tspan
+ sodipodi:role="line"
+ id="tspan1409"
+ x="544.81592"
+ y="358.14142"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1413"
+ width="92.910706"
+ height="20.631157"
+ x="618.40753"
+ y="341.75238" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="620.46332"
+ y="358.31677"
+ id="text1417"><tspan
+ sodipodi:role="line"
+ id="tspan1415"
+ x="620.46332"
+ y="358.31677"
+ style="stroke-width:0.62235">0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1423)"
+ d="M 722.11561,331.45937 H 762.0119"
+ id="path1419"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="774.25232"
+ y="318.1366"
+ id="text1439"><tspan
+ sodipodi:role="line"
+ id="tspan1437"
+ x="774.25232"
+ y="318.1366"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="774.25232"
+ y="335.04184"
+ id="tspan1441"
+ style="stroke-width:0.507157">point 0 to 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1551"
+ width="76.090935"
+ height="20.689505"
+ x="800.30951"
+ y="377.89612" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="802.80884"
+ y="394.34351"
+ id="text1555"><tspan
+ sodipodi:role="line"
+ id="tspan1553"
+ x="802.80884"
+ y="394.34351"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1557"
+ width="92.910706"
+ height="20.631157"
+ x="876.40045"
+ y="377.95447" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="878.45624"
+ y="394.51886"
+ id="text1561"><tspan
+ sodipodi:role="line"
+ id="tspan1559"
+ x="878.45624"
+ y="394.51886"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1563"
+ width="76.090935"
+ height="20.689505"
+ x="800.30951"
+ y="398.52728" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="802.80884"
+ y="414.97467"
+ id="text1567"><tspan
+ sodipodi:role="line"
+ id="tspan1565"
+ x="802.80884"
+ y="414.97467"
+ style="stroke-width:0.62235">edge 0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1569"
+ width="92.910706"
+ height="20.631157"
+ x="876.40045"
+ y="398.58563" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="878.45624"
+ y="415.15002"
+ id="text1573"><tspan
+ sodipodi:role="line"
+ id="tspan1571"
+ x="878.45624"
+ y="415.15002"
+ style="stroke-width:0.62235">1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1575"
+ width="76.090935"
+ height="20.689505"
+ x="800.30951"
+ y="419.2168" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="802.80884"
+ y="435.66418"
+ id="text1579"><tspan
+ sodipodi:role="line"
+ id="tspan1577"
+ x="802.80884"
+ y="435.66418"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1581"
+ width="92.910706"
+ height="20.631157"
+ x="876.40045"
+ y="419.27515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="878.45624"
+ y="435.83954"
+ id="text1585"><tspan
+ sodipodi:role="line"
+ id="tspan1583"
+ x="878.45624"
+ y="435.83954"
+ style="stroke-width:0.62235">0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1591)"
+ d="m 890.28176,326.07396 c 0,0 34.54686,-5.21071 25.85364,43.99525"
+ id="path1587"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1627)"
+ d="M 776.44112,411.41466 H 736.54483"
+ id="path1623"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="961.54761"
+ y="416.04871"
+ id="text1659"><tspan
+ sodipodi:role="line"
+ id="tspan1657"
+ x="961.54761"
+ y="416.04871">x</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1661"
+ width="76.090935"
+ height="20.689505"
+ x="541.69208"
+ y="392.0318" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.19141"
+ y="408.47919"
+ id="text1665"><tspan
+ sodipodi:role="line"
+ id="tspan1663"
+ x="544.19141"
+ y="408.47919"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1667"
+ width="92.910706"
+ height="20.631157"
+ x="617.78302"
+ y="392.09015" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="619.83881"
+ y="408.65454"
+ id="text1671"><tspan
+ sodipodi:role="line"
+ id="tspan1669"
+ x="619.83881"
+ y="408.65454"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1685"
+ width="76.090935"
+ height="20.689505"
+ x="541.69208"
+ y="412.66296" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="544.19141"
+ y="429.11035"
+ id="text1689"><tspan
+ sodipodi:role="line"
+ id="tspan1687"
+ x="544.19141"
+ y="429.11035"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1691"
+ width="92.910706"
+ height="20.631157"
+ x="617.78302"
+ y="412.72131" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="619.83881"
+ y="429.28571"
+ id="text1695"><tspan
+ sodipodi:role="line"
+ id="tspan1693"
+ x="619.83881"
+ y="429.28571"
+ style="stroke-width:0.62235">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="537.10474"
+ y="473.604"
+ id="text1703"><tspan
+ sodipodi:role="line"
+ id="tspan1701"
+ x="537.10474"
+ y="473.604"
+ style="stroke-width:0.62235">Edge 2 to add!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1807"
+ width="76.090935"
+ height="20.689505"
+ x="539.80872"
+ y="487.46021" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="542.30804"
+ y="503.90759"
+ id="text1811"><tspan
+ sodipodi:role="line"
+ id="tspan1809"
+ x="542.30804"
+ y="503.90759"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1813"
+ width="92.910706"
+ height="20.631157"
+ x="615.89966"
+ y="487.51855" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="617.95544"
+ y="504.08295"
+ id="text1817"><tspan
+ sodipodi:role="line"
+ id="tspan1815"
+ x="617.95544"
+ y="504.08295"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1819"
+ width="76.090935"
+ height="20.689505"
+ x="539.80872"
+ y="508.09137" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="542.30804"
+ y="524.53876"
+ id="text1823"><tspan
+ sodipodi:role="line"
+ id="tspan1821"
+ x="542.30804"
+ y="524.53876"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1825"
+ width="92.910706"
+ height="20.631157"
+ x="615.89966"
+ y="508.14972" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="617.95544"
+ y="524.71411"
+ id="text1829"><tspan
+ sodipodi:role="line"
+ id="tspan1827"
+ x="617.95544"
+ y="524.71411"
+ style="stroke-width:0.62235">0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1831"
+ width="76.090935"
+ height="20.689505"
+ x="539.80872"
+ y="528.78088" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="542.30804"
+ y="545.22827"
+ id="text1835"><tspan
+ sodipodi:role="line"
+ id="tspan1833"
+ x="542.30804"
+ y="545.22827"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1837"
+ width="92.910706"
+ height="20.631157"
+ x="615.89966"
+ y="528.83923" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="617.95544"
+ y="545.40363"
+ id="text1841"><tspan
+ sodipodi:role="line"
+ id="tspan1839"
+ x="617.95544"
+ y="545.40363"
+ style="stroke-width:0.62235">1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1889)"
+ d="M 504.81073,255.67602 C 448.04603,235.29249 449.65885,151.02314 453.14196,77.838266"
+ id="path1885"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="522.4021"
+ y="35.045513"
+ id="text1911"><tspan
+ sodipodi:role="line"
+ id="tspan1909"
+ x="522.4021"
+ y="35.045513">Sweepline at point 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="525.63025"
+ y="262.328"
+ id="text1915"><tspan
+ sodipodi:role="line"
+ id="tspan1913"
+ x="525.63025"
+ y="262.328">Sweepline at point 1</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 42.255666,254.54637 473.05194,211.11281"
+ id="path1917" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="526.82587"
+ y="593.49768"
+ id="text1921"><tspan
+ sodipodi:role="line"
+ id="tspan1919"
+ x="526.82587"
+ y="593.49768">Sweepline at point 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="528.57806"
+ y="626.17517"
+ id="text1925"><tspan
+ sodipodi:role="line"
+ id="tspan1923"
+ x="528.57806"
+ y="626.17517"
+ style="stroke-width:0.62235">Edge 1 and 2 intersect!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1927"
+ width="76.090935"
+ height="20.689505"
+ x="528.90607"
+ y="644.75928" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="531.4054"
+ y="661.20667"
+ id="text1931"><tspan
+ sodipodi:role="line"
+ id="tspan1929"
+ x="531.4054"
+ y="661.20667"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1933"
+ width="92.910706"
+ height="20.631157"
+ x="604.99701"
+ y="644.81763" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="607.0528"
+ y="661.38202"
+ id="text1937"><tspan
+ sodipodi:role="line"
+ id="tspan1935"
+ x="607.0528"
+ y="661.38202"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1939"
+ width="76.090935"
+ height="20.689505"
+ x="528.90607"
+ y="665.39044" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="531.4054"
+ y="681.83783"
+ id="text1943"><tspan
+ sodipodi:role="line"
+ id="tspan1941"
+ x="531.4054"
+ y="681.83783"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1945"
+ width="92.910706"
+ height="20.631157"
+ x="604.99701"
+ y="665.44879" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="607.0528"
+ y="682.01318"
+ id="text1949"><tspan
+ sodipodi:role="line"
+ id="tspan1947"
+ x="607.0528"
+ y="682.01318"
+ style="stroke-width:0.62235">0</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1951"
+ width="76.090935"
+ height="20.689505"
+ x="528.90607"
+ y="686.07996" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="531.4054"
+ y="702.52734"
+ id="text1955"><tspan
+ sodipodi:role="line"
+ id="tspan1953"
+ x="531.4054"
+ y="702.52734"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect1957"
+ width="92.910706"
+ height="20.631157"
+ x="604.99701"
+ y="686.13831" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="607.0528"
+ y="702.7027"
+ id="text1961"><tspan
+ sodipodi:role="line"
+ id="tspan1959"
+ x="607.0528"
+ y="702.7027"
+ style="stroke-width:0.62235">1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1973)"
+ d="m 707.521,668.59544 52.01237,-13.98787"
+ id="path1969"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="766.46564"
+ y="696.48132"
+ id="text1997"><tspan
+ sodipodi:role="line"
+ id="tspan1993"
+ x="766.46564"
+ y="696.48132"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="766.46564"
+ y="713.3866"
+ id="tspan1995"
+ style="stroke-width:0.507157">point 1 to 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="765.49023"
+ y="650.12512"
+ id="text2003"><tspan
+ sodipodi:role="line"
+ id="tspan1999"
+ x="765.49023"
+ y="650.12512"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="765.49023"
+ y="667.0304"
+ id="tspan2001"
+ style="stroke-width:0.507157">point 0 to 2</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2033)"
+ d="m 707.42993,695.83661 51.75913,5.77655"
+ id="path2029"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2063)"
+ d="m 894.63431,675.96577 c 0,0 34.54686,-5.21071 25.85364,43.99525"
+ id="path2059"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2083"
+ width="76.090935"
+ height="20.689505"
+ x="802.84802"
+ y="743.46246" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="805.34735"
+ y="759.90985"
+ id="text2087"><tspan
+ sodipodi:role="line"
+ id="tspan2085"
+ x="805.34735"
+ y="759.90985"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2089"
+ width="92.910706"
+ height="20.631157"
+ x="878.93896"
+ y="743.52081" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="880.99475"
+ y="760.08521"
+ id="text2093"><tspan
+ sodipodi:role="line"
+ id="tspan2091"
+ x="880.99475"
+ y="760.08521"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2095"
+ width="76.090935"
+ height="20.689505"
+ x="802.84802"
+ y="764.09363" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="805.34735"
+ y="780.54102"
+ id="text2099"><tspan
+ sodipodi:role="line"
+ id="tspan2097"
+ x="805.34735"
+ y="780.54102"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2101"
+ width="92.910706"
+ height="20.631157"
+ x="878.93896"
+ y="764.15198" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="880.99475"
+ y="780.71637"
+ id="text2105"><tspan
+ sodipodi:role="line"
+ id="tspan2103"
+ x="880.99475"
+ y="780.71637"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2107"
+ width="76.090935"
+ height="20.689505"
+ x="802.84802"
+ y="784.78314" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="805.34735"
+ y="801.23053"
+ id="text2111"><tspan
+ sodipodi:role="line"
+ id="tspan2109"
+ x="805.34735"
+ y="801.23053"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2113"
+ width="92.910706"
+ height="20.631157"
+ x="878.93896"
+ y="784.84149" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="880.99475"
+ y="801.40588"
+ id="text2117"><tspan
+ sodipodi:role="line"
+ id="tspan2115"
+ x="880.99475"
+ y="801.40588"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.1865;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1.1865, 3.55949;stroke-dashoffset:0"
+ id="rect2125"
+ width="469.43896"
+ height="222.76689"
+ x="512.45044"
+ y="6.391746" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.42602;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1.42602, 4.27807;stroke-dashoffset:0"
+ id="rect2127"
+ width="471.65408"
+ height="320.27844"
+ x="512.57019"
+ y="237.46489" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.28125;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1.28125, 3.84375;stroke-dashoffset:0"
+ id="rect2129"
+ width="472.63187"
+ height="258.0137"
+ x="512.49774"
+ y="563.68231" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2147)"
+ d="m 503.62973,584.19465 c 0,0 -40.90478,-154.11788 -72.09349,-364.06337"
+ id="path2143"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="517.32916"
+ y="867.67126"
+ id="text2199"><tspan
+ sodipodi:role="line"
+ id="tspan2197"
+ x="517.32916"
+ y="867.67126">Sweepline at point 3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="517.94183"
+ y="903.17023"
+ id="text2203"><tspan
+ sodipodi:role="line"
+ id="tspan2201"
+ x="517.94183"
+ y="903.17023"
+ style="stroke-width:0.62235">Edge 1 to remove!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2205"
+ width="76.090935"
+ height="20.689505"
+ x="519.2804"
+ y="918.34814" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.77972"
+ y="934.79553"
+ id="text2209"><tspan
+ sodipodi:role="line"
+ id="tspan2207"
+ x="521.77972"
+ y="934.79553"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2211"
+ width="92.910706"
+ height="20.631157"
+ x="595.37134"
+ y="918.40649" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.42712"
+ y="934.97089"
+ id="text2215"><tspan
+ sodipodi:role="line"
+ id="tspan2213"
+ x="597.42712"
+ y="934.97089"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2217"
+ width="76.090935"
+ height="20.689505"
+ x="519.2804"
+ y="938.97931" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.77972"
+ y="955.4267"
+ id="text2221"><tspan
+ sodipodi:role="line"
+ id="tspan2219"
+ x="521.77972"
+ y="955.4267"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2223"
+ width="92.910706"
+ height="20.631157"
+ x="595.37134"
+ y="939.03766" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.42712"
+ y="955.60205"
+ id="text2227"><tspan
+ sodipodi:role="line"
+ id="tspan2225"
+ x="597.42712"
+ y="955.60205"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2229"
+ width="76.090935"
+ height="20.689505"
+ x="519.2804"
+ y="959.66882" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.77972"
+ y="976.11621"
+ id="text2233"><tspan
+ sodipodi:role="line"
+ id="tspan2231"
+ x="521.77972"
+ y="976.11621"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2235"
+ width="92.910706"
+ height="20.631157"
+ x="595.37134"
+ y="959.72717" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.42712"
+ y="976.29156"
+ id="text2239"><tspan
+ sodipodi:role="line"
+ id="tspan2237"
+ x="597.42712"
+ y="976.29156"
+ style="stroke-width:0.62235">2</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1973)"
+ d="m 707.521,668.59544 52.01237,-13.98787"
+ id="path2247"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2281)"
+ d="m 694.55406,951.05824 48.94301,1.25906"
+ id="path2277"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="754.52167"
+ y="946.23096"
+ id="text2305"><tspan
+ sodipodi:role="line"
+ id="tspan2301"
+ x="754.52167"
+ y="946.23096"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="754.52167"
+ y="963.13623"
+ id="tspan2303"
+ style="stroke-width:0.507157">point 2 to 3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2317)"
+ d="m 882.44014,940.81441 c 0,0 34.54686,-5.21071 25.85364,43.99525"
+ id="path2313"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2337"
+ width="76.090935"
+ height="20.689505"
+ x="756.3902"
+ y="994.16901" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="758.88953"
+ y="1010.6164"
+ id="text2341"><tspan
+ sodipodi:role="line"
+ id="tspan2339"
+ x="758.88953"
+ y="1010.6164"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2343"
+ width="92.910706"
+ height="20.631157"
+ x="832.48114"
+ y="994.22736" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="834.53693"
+ y="1010.7917"
+ id="text2347"><tspan
+ sodipodi:role="line"
+ id="tspan2345"
+ x="834.53693"
+ y="1010.7917"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2349"
+ width="76.090935"
+ height="20.689505"
+ x="756.3902"
+ y="1014.8001" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="758.88953"
+ y="1031.2476"
+ id="text2353"><tspan
+ sodipodi:role="line"
+ id="tspan2351"
+ x="758.88953"
+ y="1031.2476"
+ style="stroke-width:0.62235">edge 1</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2355"
+ width="92.910706"
+ height="20.631157"
+ x="832.48114"
+ y="1014.8585" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="834.53693"
+ y="1031.4229"
+ id="text2359"><tspan
+ sodipodi:role="line"
+ id="tspan2357"
+ x="834.53693"
+ y="1031.4229"
+ style="stroke-width:0.62235">3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2361"
+ width="76.090935"
+ height="20.689505"
+ x="756.3902"
+ y="1035.4896" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="758.88953"
+ y="1051.937"
+ id="text2365"><tspan
+ sodipodi:role="line"
+ id="tspan2363"
+ x="758.88953"
+ y="1051.937"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2367"
+ width="92.910706"
+ height="20.631157"
+ x="832.48114"
+ y="1035.548" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="834.53693"
+ y="1052.1124"
+ id="text2371"><tspan
+ sodipodi:role="line"
+ id="tspan2369"
+ x="834.53693"
+ y="1052.1124"
+ style="stroke-width:0.62235">2</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 40.138865,382.55671 470.93514,339.12315"
+ id="path2373" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="917.55597"
+ y="1032.6306"
+ id="text2377"><tspan
+ sodipodi:role="line"
+ id="tspan2375"
+ x="917.55597"
+ y="1032.6306">x</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2389)"
+ d="M 743.46868,1025.5559 H 703.57239"
+ id="path2385"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2415"
+ width="76.090935"
+ height="20.689505"
+ x="519.26208"
+ y="1004.8329" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.76141"
+ y="1021.2803"
+ id="text2419"><tspan
+ sodipodi:role="line"
+ id="tspan2417"
+ x="521.76141"
+ y="1021.2803"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2421"
+ width="92.910706"
+ height="20.631157"
+ x="595.35303"
+ y="1004.8912" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.40881"
+ y="1021.4556"
+ id="text2425"><tspan
+ sodipodi:role="line"
+ id="tspan2423"
+ x="597.40881"
+ y="1021.4556"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2439"
+ width="76.090935"
+ height="20.689505"
+ x="519.26208"
+ y="1025.464" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="521.76141"
+ y="1041.9114"
+ id="text2443"><tspan
+ sodipodi:role="line"
+ id="tspan2441"
+ x="521.76141"
+ y="1041.9114"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2445"
+ width="92.910706"
+ height="20.631157"
+ x="595.35303"
+ y="1025.5223" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="597.40881"
+ y="1042.0868"
+ id="text2449"><tspan
+ sodipodi:role="line"
+ id="tspan2447"
+ x="597.40881"
+ y="1042.0868"
+ style="stroke-width:0.62235">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="516.98169"
+ y="1083.9663"
+ id="text2457"><tspan
+ sodipodi:role="line"
+ id="tspan2455"
+ x="516.98169"
+ y="1083.9663"
+ style="stroke-width:0.62235">Edge 3 to add!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2465"
+ width="76.090935"
+ height="20.689505"
+ x="516.70642"
+ y="1098.8639" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="519.20575"
+ y="1115.3113"
+ id="text2469"><tspan
+ sodipodi:role="line"
+ id="tspan2467"
+ x="519.20575"
+ y="1115.3113"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2471"
+ width="92.910706"
+ height="20.631157"
+ x="592.79736"
+ y="1098.9221" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="594.85315"
+ y="1115.4866"
+ id="text2475"><tspan
+ sodipodi:role="line"
+ id="tspan2473"
+ x="594.85315"
+ y="1115.4866"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2477"
+ width="76.090935"
+ height="20.689505"
+ x="516.70642"
+ y="1119.495" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="519.20575"
+ y="1135.9424"
+ id="text2481"><tspan
+ sodipodi:role="line"
+ id="tspan2479"
+ x="519.20575"
+ y="1135.9424"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2483"
+ width="92.910706"
+ height="20.631157"
+ x="592.79736"
+ y="1119.5533" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="594.85315"
+ y="1136.1178"
+ id="text2487"><tspan
+ sodipodi:role="line"
+ id="tspan2485"
+ x="594.85315"
+ y="1136.1178"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2489"
+ width="76.090935"
+ height="20.689505"
+ x="516.70642"
+ y="1140.1261" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="519.20575"
+ y="1156.5735"
+ id="text2493"><tspan
+ sodipodi:role="line"
+ id="tspan2491"
+ x="519.20575"
+ y="1156.5735"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2495"
+ width="92.910706"
+ height="20.631157"
+ x="592.79736"
+ y="1140.1844" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="594.85315"
+ y="1156.7489"
+ id="text2499"><tspan
+ sodipodi:role="line"
+ id="tspan2497"
+ x="594.85315"
+ y="1156.7489"
+ style="stroke-width:0.62235">3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1.47069;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1.47069, 4.41207;stroke-dashoffset:0"
+ id="rect2501"
+ width="482.33456"
+ height="333.11258"
+ x="506.91623"
+ y="840.93774" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2561)"
+ d="m 495.90877,884.31733 c -41.03527,5.67277 32.96469,-198.23286 -89.298,-527.11784"
+ id="path2557"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="46.899685"
+ y="647.60687"
+ id="text2591"><tspan
+ sodipodi:role="line"
+ id="tspan2589"
+ x="46.899685"
+ y="647.60687">Sweepline at point 4</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 40.138865,424.55671 470.93514,381.12315"
+ id="path2593" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="47.777306"
+ y="685.42639"
+ id="text2597"><tspan
+ sodipodi:role="line"
+ id="tspan2595"
+ x="47.777306"
+ y="685.42639"
+ style="stroke-width:0.62235">Edge 2 to remove!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2599"
+ width="76.090935"
+ height="20.689505"
+ x="45.252327"
+ y="702.67407" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="47.751656"
+ y="719.12146"
+ id="text2603"><tspan
+ sodipodi:role="line"
+ id="tspan2601"
+ x="47.751656"
+ y="719.12146"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2605"
+ width="92.910706"
+ height="20.631157"
+ x="121.34327"
+ y="702.7323" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.39906"
+ y="719.29675"
+ id="text2609"><tspan
+ sodipodi:role="line"
+ id="tspan2607"
+ x="123.39906"
+ y="719.29675"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2611"
+ width="76.090935"
+ height="20.689505"
+ x="45.252327"
+ y="723.30518" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="47.751656"
+ y="739.75256"
+ id="text2615"><tspan
+ sodipodi:role="line"
+ id="tspan2613"
+ x="47.751656"
+ y="739.75256"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2617"
+ width="92.910706"
+ height="20.631157"
+ x="121.34327"
+ y="723.36353" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.39906"
+ y="739.92798"
+ id="text2621"><tspan
+ sodipodi:role="line"
+ id="tspan2619"
+ x="123.39906"
+ y="739.92798"
+ style="stroke-width:0.62235">2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2623"
+ width="76.090935"
+ height="20.689505"
+ x="45.252327"
+ y="743.93628" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="47.751656"
+ y="760.38367"
+ id="text2627"><tspan
+ sodipodi:role="line"
+ id="tspan2625"
+ x="47.751656"
+ y="760.38367"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2629"
+ width="92.910706"
+ height="20.631157"
+ x="121.34327"
+ y="743.99463" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.39906"
+ y="760.55908"
+ id="text2633"><tspan
+ sodipodi:role="line"
+ id="tspan2631"
+ x="123.39906"
+ y="760.55908"
+ style="stroke-width:0.62235">3</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2645)"
+ d="m 226.25397,733.99463 h 39.89629"
+ id="path2641"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.5242px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.507157"
+ x="272.90488"
+ y="731.02496"
+ id="text2669"><tspan
+ sodipodi:role="line"
+ id="tspan2665"
+ x="272.90488"
+ y="731.02496"
+ style="stroke-width:0.507157">Draw edge from</tspan><tspan
+ sodipodi:role="line"
+ x="272.90488"
+ y="747.93024"
+ id="tspan2667"
+ style="stroke-width:0.507157">point 2 to 4</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2743)"
+ d="m 388.55156,740.8288 c 0,0 34.54686,-5.21071 25.85364,43.99525"
+ id="path2717"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2769"
+ width="76.090935"
+ height="20.689505"
+ x="266.41138"
+ y="799.17401" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="268.91071"
+ y="815.6214"
+ id="text2773"><tspan
+ sodipodi:role="line"
+ id="tspan2771"
+ x="268.91071"
+ y="815.6214"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2775"
+ width="92.910706"
+ height="20.631157"
+ x="342.50232"
+ y="799.23224" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="344.55814"
+ y="815.79669"
+ id="text2779"><tspan
+ sodipodi:role="line"
+ id="tspan2777"
+ x="344.55814"
+ y="815.79669"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2781"
+ width="76.090935"
+ height="20.689505"
+ x="266.41138"
+ y="819.80511" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="268.91071"
+ y="836.2525"
+ id="text2785"><tspan
+ sodipodi:role="line"
+ id="tspan2783"
+ x="268.91071"
+ y="836.2525"
+ style="stroke-width:0.62235">edge 2</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2787"
+ width="92.910706"
+ height="20.631157"
+ x="342.50232"
+ y="819.86346" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="344.55814"
+ y="836.42792"
+ id="text2791"><tspan
+ sodipodi:role="line"
+ id="tspan2789"
+ x="344.55814"
+ y="836.42792"
+ style="stroke-width:0.62235">4</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2793"
+ width="76.090935"
+ height="20.689505"
+ x="266.41138"
+ y="840.43622" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="268.91071"
+ y="856.88361"
+ id="text2797"><tspan
+ sodipodi:role="line"
+ id="tspan2795"
+ x="268.91071"
+ y="856.88361"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2799"
+ width="92.910706"
+ height="20.631157"
+ x="342.50232"
+ y="840.49457" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="344.55814"
+ y="857.05902"
+ id="text2803"><tspan
+ sodipodi:role="line"
+ id="tspan2801"
+ x="344.55814"
+ y="857.05902"
+ style="stroke-width:0.62235">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="427.05054"
+ y="836.9527"
+ id="text2807"><tspan
+ sodipodi:role="line"
+ id="tspan2805"
+ x="427.05054"
+ y="836.9527">x</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2841)"
+ d="M 264.41138,831.86353 H 224.51509"
+ id="path2815"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2855"
+ width="76.090935"
+ height="20.689505"
+ x="45.671253"
+ y="796.68427" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="48.170582"
+ y="813.13165"
+ id="text2859"><tspan
+ sodipodi:role="line"
+ id="tspan2857"
+ x="48.170582"
+ y="813.13165"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2861"
+ width="92.910706"
+ height="20.631157"
+ x="121.7622"
+ y="796.74249" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.81802"
+ y="813.30695"
+ id="text2865"><tspan
+ sodipodi:role="line"
+ id="tspan2863"
+ x="123.81802"
+ y="813.30695"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2879"
+ width="76.090935"
+ height="20.689505"
+ x="45.671253"
+ y="817.31531" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="48.170582"
+ y="833.7627"
+ id="text2883"><tspan
+ sodipodi:role="line"
+ id="tspan2881"
+ x="48.170582"
+ y="833.7627"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2885"
+ width="92.910706"
+ height="20.631157"
+ x="121.7622"
+ y="817.37366" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="123.81802"
+ y="833.93811"
+ id="text2889"><tspan
+ sodipodi:role="line"
+ id="tspan2887"
+ x="123.81802"
+ y="833.93811"
+ style="stroke-width:0.62235">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="44.584824"
+ y="887.64111"
+ id="text2903"><tspan
+ sodipodi:role="line"
+ id="tspan2901"
+ x="44.584824"
+ y="887.64111"
+ style="stroke-width:0.62235">Edge 3 to remove!</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2905"
+ width="76.090935"
+ height="20.689505"
+ x="41.468079"
+ y="907.44482" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="43.967407"
+ y="923.89221"
+ id="text2909"><tspan
+ sodipodi:role="line"
+ id="tspan2907"
+ x="43.967407"
+ y="923.89221"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2911"
+ width="92.910706"
+ height="20.631157"
+ x="117.55902"
+ y="907.50305" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="119.61485"
+ y="924.0675"
+ id="text2915"><tspan
+ sodipodi:role="line"
+ id="tspan2913"
+ x="119.61485"
+ y="924.0675"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2917"
+ width="76.090935"
+ height="20.689505"
+ x="41.468079"
+ y="928.07587" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="43.967407"
+ y="944.52325"
+ id="text2921"><tspan
+ sodipodi:role="line"
+ id="tspan2919"
+ x="43.967407"
+ y="944.52325"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2923"
+ width="92.910706"
+ height="20.631157"
+ x="117.55902"
+ y="928.13422" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="119.61485"
+ y="944.69867"
+ id="text2927"><tspan
+ sodipodi:role="line"
+ id="tspan2925"
+ x="119.61485"
+ y="944.69867"
+ style="stroke-width:0.62235">3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2929"
+ width="76.090935"
+ height="20.689505"
+ x="267.09317"
+ y="907.31293" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="269.5925"
+ y="923.76031"
+ id="text2933"><tspan
+ sodipodi:role="line"
+ id="tspan2931"
+ x="269.5925"
+ y="923.76031"
+ style="stroke-width:0.62235">Edge</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2935"
+ width="92.910706"
+ height="20.631157"
+ x="343.18411"
+ y="907.37115" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="345.23993"
+ y="923.93561"
+ id="text2939"><tspan
+ sodipodi:role="line"
+ id="tspan2937"
+ x="345.23993"
+ y="923.93561"
+ style="stroke-width:0.62235">lastPoint</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.564003;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2941"
+ width="76.090935"
+ height="20.689505"
+ x="267.09317"
+ y="927.94397" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="269.5925"
+ y="944.39136"
+ id="text2945"><tspan
+ sodipodi:role="line"
+ id="tspan2943"
+ x="269.5925"
+ y="944.39136"
+ style="stroke-width:0.62235">edge 3</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.62235;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0"
+ id="rect2947"
+ width="92.910706"
+ height="20.631157"
+ x="343.18411"
+ y="928.00232" />
+ <text
+ xml:space="preserve"
+ style="font-size:16.596px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.62235"
+ x="345.23993"
+ y="944.56677"
+ id="text2951"><tspan
+ sodipodi:role="line"
+ id="tspan2949"
+ x="345.23993"
+ y="944.56677"
+ style="stroke-width:0.62235">4</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2963)"
+ d="m 219.19688,927.94397 h 39.89629"
+ id="path2959"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="427.76697"
+ y="945.63947"
+ id="text2985"><tspan
+ sodipodi:role="line"
+ id="tspan2983"
+ x="427.76697"
+ y="945.63947">x</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:1, 3;stroke-dashoffset:0"
+ id="rect2987"
+ width="424.95172"
+ height="360.29645"
+ x="25.837017"
+ y="609.39429" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2993)"
+ d="m 58.889602,598.3227 c 0,0 -28.189621,-102.28804 2.747075,-169.23825"
+ id="path2989"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ id="text3007"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect3009)"><tspan
+ x="27.21875"
+ y="1032.0898"><tspan
+ style="font-size:16px">Note that while drawing, you do:
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1052.0898"><tspan
+ style="font-size:16px">drawEdge(oldPoint, newPoint) if the edge is top to
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1072.0898"><tspan
+ style="font-size:16px">bottom or horizontal (left to right), otherwise, you'd
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1092.0898"><tspan
+ style="font-size:16px">do:
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1112.0898"><tspan
+ style="font-size:16px">drawEdge(newPoint, oldPoint).
+</tspan></tspan><tspan
+ x="27.21875"
+ y="1132.0898"><tspan
+ style="font-size:16px">This is to ensure, the directions remain same</tspan></tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-simple-high.svg b/doc/livarot-images/convert-simple-high.svg
new file mode 100644
index 0000000..ccede26
--- /dev/null
+++ b/doc/livarot-images/convert-simple-high.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="486.77621"
+ height="516.31232"
+ viewBox="0 0 486.77621 516.31232"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-simple-high.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.73466529"
+ inkscape:cx="392.01525"
+ inkscape:cy="432.16959"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-31.206402,-35.657172)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.86674;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 114.93853,537.58003 c 0,0 -7.12643,-411.91923 386.22595,-474.402555 z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.86674;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:5.73347, 5.73347;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 114.93853,537.58003 7.40009,-79.46247 16.92909,-73.49058 27.50231,-73.79257 35.63381,-63.78975 50.17974,-60.49927 49.72355,-42.84003 64.50322,-38.83431 64.23464,-24.468298 70.1195,-17.225277 z"
+ id="path1035" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path831"
+ cx="115.26668"
+ cy="535.56915"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle833"
+ cx="121.911"
+ cy="457.75839"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle835"
+ cx="251.64296"
+ cy="186.47656"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle837"
+ cx="366.63855"
+ cy="104.16064"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle839"
+ cx="501.58228"
+ cy="62.199787"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1025"
+ cx="138.96669"
+ cy="383.32968"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1027"
+ cx="166.1521"
+ cy="310.74799"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1029"
+ cx="200.8325"
+ cy="247.2348"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1031"
+ cx="301.32437"
+ cy="142.98907"
+ r="6.4003329" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:7.33666;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1033"
+ cx="430.7309"
+ cy="79.271164"
+ r="6.4003329" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.2893px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.573347"
+ x="40.198563"
+ y="57.273457"
+ id="text1043"><tspan
+ sodipodi:role="line"
+ id="tspan1041"
+ x="40.198563"
+ y="57.273457"
+ style="stroke-width:0.573347">Smaller Threshold</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/convert-simple-low.svg b/doc/livarot-images/convert-simple-low.svg
new file mode 100644
index 0000000..5feaa53
--- /dev/null
+++ b/doc/livarot-images/convert-simple-low.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="396.13266"
+ height="420.10977"
+ viewBox="0 0 396.13266 420.10977"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="convert-simple-low.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="351"
+ inkscape:cy="316.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-29.299149,-40.920317)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.30464;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 99.453438,443.96395 c 0,0 -5.729127,-331.15259 310.497102,-381.384564 z"
+ id="path829" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path831"
+ cx="100.13943"
+ cy="445.8847"
+ r="5.1453943" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.30464;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:9.21857, 9.21857;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 99.453438,443.96395 111.66843,344.06761 187.37985,185.96713 286.63198,104.20242 409.95054,62.579386 Z"
+ id="path857" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle833"
+ cx="112.32209"
+ cy="344.4505"
+ r="5.1453943" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle835"
+ cx="187.13506"
+ cy="186.10045"
+ r="5.1453943" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle837"
+ cx="285.35266"
+ cy="103.90615"
+ r="5.1453943" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:5.89814;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle839"
+ cx="410.28641"
+ cy="61.793396"
+ r="5.1453943" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.2914px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.460929"
+ x="38.092815"
+ y="60.2589"
+ id="text1039"><tspan
+ sodipodi:role="line"
+ x="38.092815"
+ y="60.2589"
+ id="tspan888"
+ style="stroke-width:0.460929">Bigger Threshold</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/edge-sorting.svg b/doc/livarot-images/edge-sorting.svg
new file mode 100644
index 0000000..226b52a
--- /dev/null
+++ b/doc/livarot-images/edge-sorting.svg
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="edge-sorting.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow1Lend"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path828" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.64984822"
+ inkscape:cx="460.10744"
+ inkscape:cy="471.64859"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.00157;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="M 67.585403,500 H 930.47019"
+ id="path823" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.00157;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 500,67.585384 V 930.47021"
+ id="path1117" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="948.98737"
+ y="506.99948"
+ id="text1171"><tspan
+ sodipodi:role="line"
+ id="tspan1169"
+ x="948.98737"
+ y="506.99948"
+ style="font-size:40px">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="488.41867"
+ y="970.67389"
+ id="text1175"><tspan
+ sodipodi:role="line"
+ id="tspan1173"
+ x="488.41867"
+ y="970.67389"
+ style="font-size:40px">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="480.92773"
+ y="514.58008"
+ id="text1211"><tspan
+ sodipodi:role="line"
+ id="tspan1209"
+ x="480.92773"
+ y="514.58008"
+ style="font-size:40px">-1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="487.28516"
+ y="258.46341"
+ id="text1215"><tspan
+ sodipodi:role="line"
+ id="tspan1213"
+ x="487.28516"
+ y="258.46341"
+ style="font-size:40px">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="732.20917"
+ y="258.48294"
+ id="text1219"><tspan
+ sodipodi:role="line"
+ id="tspan1217"
+ x="732.20917"
+ y="258.48294"
+ style="font-size:40px">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="733.09784"
+ y="514.84375"
+ id="text1223"><tspan
+ sodipodi:role="line"
+ id="tspan1221"
+ x="733.09784"
+ y="514.84375"
+ style="font-size:40px">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="732.63885"
+ y="748.21735"
+ id="text1227"><tspan
+ sodipodi:role="line"
+ id="tspan1225"
+ x="732.63885"
+ y="748.21735"
+ style="font-size:40px">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="487.42188"
+ y="748.23688"
+ id="text1231"><tspan
+ sodipodi:role="line"
+ id="tspan1229"
+ x="487.42188"
+ y="748.23688"
+ style="font-size:40px">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="244.42764"
+ y="747.95367"
+ id="text1235"><tspan
+ sodipodi:role="line"
+ id="tspan1233"
+ x="244.42764"
+ y="747.95367"
+ style="font-size:40px">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="244.08585"
+ y="514.56055"
+ id="text1243"><tspan
+ sodipodi:role="line"
+ x="244.08585"
+ y="514.56055"
+ style="font-size:40px"
+ id="tspan1245">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="244.29092"
+ y="258.48294"
+ id="text1251"><tspan
+ sodipodi:role="line"
+ x="244.29092"
+ y="258.48294"
+ style="font-size:40px"
+ id="tspan1249">7</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/edge-winding-seed.svg b/doc/livarot-images/edge-winding-seed.svg
new file mode 100644
index 0000000..b54c09e
--- /dev/null
+++ b/doc/livarot-images/edge-winding-seed.svg
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="424.39703"
+ height="373.91052"
+ viewBox="0 0 424.39703 373.91052"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="edge-winding-seed.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="229"
+ inkscape:cy="258.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-89.500001,-189.5)">
+ <path
+ id="path829"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.504865px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 150.23896,199.75243 V 351.212 H 301.69852 V 502.67157 H 150.23896 V 351.212 H 99.752433 V 553.15809 H 503.64461 V 199.75243 Z m 25.24326,25.24326 H 276.45526 V 325.96874 H 175.48222 Z m 0,151.45957 V 477.42831 H 276.45526 V 376.45526 Z" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1.1107;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 150.23896,199.75243 V 502.67157"
+ id="path1538" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.95177;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path1540"
+ cx="175.54428"
+ cy="225.05775"
+ r="3.0912569" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.95177;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="circle1542"
+ cx="175.52843"
+ cy="376.78326"
+ r="3.0912569" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/find-point-2.svg b/doc/livarot-images/find-point-2.svg
new file mode 100644
index 0000000..ee2468f
--- /dev/null
+++ b/doc/livarot-images/find-point-2.svg
@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="337.0166"
+ height="334.90112"
+ viewBox="0 0 337.01661 334.90112"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="find-point.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <style
+ id="style1605">
+.measure-arrow
+{
+}
+.measure-label
+{
+
+}
+.measure-line
+{
+}</style>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker2236"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2234" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2206"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2204" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2176"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2174" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1643" />
+ </marker>
+ <inkscape:path-effect
+ effect="measure_segments"
+ id="path-effect1603"
+ is_visible="true"
+ lpeversion="1"
+ unit="mm"
+ orientation="parallel"
+ coloropacity="#000000ff"
+ fontbutton="Sans 10"
+ precision="2"
+ fix_overlaps="0"
+ position="5"
+ text_top_bottom="0"
+ helpline_distance="0"
+ helpline_overlap="2"
+ line_width="0.25"
+ scale="1"
+ format="{measure}{unit}"
+ blacklist=""
+ active_projection="false"
+ whitelist="false"
+ showindex="false"
+ arrows_outside="false"
+ flip_side="false"
+ scale_sensitive="true"
+ local_locale="true"
+ rotate_anotation="true"
+ hide_back="true"
+ hide_arrows="false"
+ smallx100="false"
+ linked_items=""
+ distance_projection="20"
+ angle_projection="0"
+ avoid_overlapping="true"
+ onbbox="false"
+ bboxonly="false"
+ centers="false"
+ maxmin="false"
+ helpdata="&lt;b&gt;&lt;big&gt;General&lt;/big&gt;&lt;/b&gt;
+Display and position dimension lines and labels
+
+&lt;b&gt;&lt;big&gt;Projection&lt;/big&gt;&lt;/b&gt;
+Show a line with measurements based on the selected items
+
+&lt;b&gt;&lt;big&gt;Options&lt;/big&gt;&lt;/b&gt;
+Options for color, precision, label formatting and display
+
+&lt;b&gt;&lt;big&gt;Tips&lt;/big&gt;&lt;/b&gt;
+&lt;b&gt;&lt;i&gt;Custom styling:&lt;/i&gt;&lt;/b&gt; To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style.
+&lt;b&gt;&lt;i&gt;Blacklists:&lt;/i&gt;&lt;/b&gt; allow to hide some segments or projection steps.
+&lt;b&gt;&lt;i&gt;Multiple Measure LPEs:&lt;/i&gt;&lt;/b&gt; In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections.
+&lt;b&gt;&lt;i&gt;Set Defaults:&lt;/i&gt;&lt;/b&gt; For every LPE, default values can be set at the bottom." />
+ <marker
+ style="overflow:visible"
+ id="marker1571"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1569" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1519"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1517" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutM"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1364" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1571-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1569-6" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.5837767"
+ inkscape:cx="93.447519"
+ inkscape:cy="158.79764"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10"
+ fit-margin-top="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-83.749898,32.083839)">
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 267.99475,142.84487 c 0,0 6.64406,16.59829 -7.97787,22.4135"
+ id="path1747" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
+ d="M 240.31542,146.25174 99.664523,281.78887"
+ id="path1217" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="-58.365868"
+ y="264.45288"
+ id="text1507"
+ transform="rotate(-44.465341)"><tspan
+ sodipodi:role="line"
+ id="tspan1505"
+ x="-58.365868"
+ y="264.45288"
+ style="font-size:16px">bNorm</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 248.88319,138.53474 6.95145,7.30751 -8.48559,7.76245"
+ id="path1755" />
+ <path
+ style="fill:#ff0000;stroke:#ff0000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571)"
+ d="M 99.664523,281.78887 225.38087,273.26651"
+ id="path1567"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 245.60632,129.9363 c 0,0 31.28048,3.0901 14.41056,35.32207"
+ id="path1757" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
+ d="M 240.31542,146.25174 375.85255,286.90265"
+ id="path1515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="342.99881"
+ y="-76.441467"
+ id="text1559"
+ transform="rotate(45.53466)"><tspan
+ sodipodi:role="line"
+ id="tspan1557"
+ x="342.99881"
+ y="-76.441467"
+ style="font-size:16px">bNorm.ccw()</tspan></text>
+ <circle
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1561"
+ cx="238.05536"
+ cy="272.15973"
+ r="4.4594245" />
+ <circle
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1563"
+ cx="273.21555"
+ cy="114.23372"
+ r="4.4594245" />
+ <circle
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1565"
+ cx="143.98232"
+ cy="109.09448"
+ r="4.4594245" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="M 99.664523,281.78887 264.20711,122.88773"
+ id="path1641"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#008000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571-3)"
+ d="M 99.664523,281.78887 141.17926,121.40511"
+ id="path1567-7"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="272.63654"
+ y="166.73859"
+ id="text1751"><tspan
+ sodipodi:role="line"
+ id="tspan1749"
+ x="272.63654"
+ y="166.73859"
+ style="font-size:16px;fill:#ff0000">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1753">r</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="270.05438"
+ y="136.71002"
+ id="text1769"><tspan
+ sodipodi:role="line"
+ id="tspan1767"
+ x="270.05438"
+ y="136.71002"
+ style="font-size:16px;fill:#0000ff">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1771">b</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="224.15295"
+ y="126.32184"
+ id="text1777"><tspan
+ sodipodi:role="line"
+ id="tspan1775"
+ x="224.15295"
+ y="126.32184"
+ style="font-size:16px;fill:#008000">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#008000"
+ id="tspan1779">g</tspan></tspan></text>
+ <path
+ style="opacity:0.5;fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2176)"
+ d="M 240.31542,146.25174 404.85801,-12.6494"
+ id="path2172"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:0.5;fill:none;stroke:#008000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2206)"
+ d="M 240.31542,146.25174 281.83016,-14.13202"
+ id="path2202"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:0.5;fill:#ff0000;stroke:#ff0000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2236)"
+ d="m 240.31542,146.25174 125.71635,-8.52236"
+ id="path2232"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/find-point-same-opp-sweepsense.svg b/doc/livarot-images/find-point-same-opp-sweepsense.svg
new file mode 100644
index 0000000..066011a
--- /dev/null
+++ b/doc/livarot-images/find-point-same-opp-sweepsense.svg
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="307.80222"
+ height="208.3214"
+ viewBox="0 0 307.80222 208.3214"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="find-point-same-opp-sweepsense.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <style
+ id="style1605">
+.measure-arrow
+{
+}
+.measure-label
+{
+
+}
+.measure-line
+{
+}</style>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker2206"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2204" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2170"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2168" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2134"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2132" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2074"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path2072" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1533"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1531" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1497"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1495" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1395"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1393" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1293"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1291" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1263"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1261" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1203"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1201" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1143"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1141" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1047"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1045" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1011"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1009" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1643" />
+ </marker>
+ <inkscape:path-effect
+ effect="measure_segments"
+ id="path-effect1603"
+ is_visible="true"
+ lpeversion="1"
+ unit="mm"
+ orientation="parallel"
+ coloropacity="#000000ff"
+ fontbutton="Sans 10"
+ precision="2"
+ fix_overlaps="0"
+ position="5"
+ text_top_bottom="0"
+ helpline_distance="0"
+ helpline_overlap="2"
+ line_width="0.25"
+ scale="1"
+ format="{measure}{unit}"
+ blacklist=""
+ active_projection="false"
+ whitelist="false"
+ showindex="false"
+ arrows_outside="false"
+ flip_side="false"
+ scale_sensitive="true"
+ local_locale="true"
+ rotate_anotation="true"
+ hide_back="true"
+ hide_arrows="false"
+ smallx100="false"
+ linked_items=""
+ distance_projection="20"
+ angle_projection="0"
+ avoid_overlapping="true"
+ onbbox="false"
+ bboxonly="false"
+ centers="false"
+ maxmin="false"
+ helpdata="&lt;b&gt;&lt;big&gt;General&lt;/big&gt;&lt;/b&gt; Display and position dimension lines and labels &lt;b&gt;&lt;big&gt;Projection&lt;/big&gt;&lt;/b&gt; Show a line with measurements based on the selected items &lt;b&gt;&lt;big&gt;Options&lt;/big&gt;&lt;/b&gt; Options for color, precision, label formatting and display &lt;b&gt;&lt;big&gt;Tips&lt;/big&gt;&lt;/b&gt; &lt;b&gt;&lt;i&gt;Custom styling:&lt;/i&gt;&lt;/b&gt; To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style. &lt;b&gt;&lt;i&gt;Blacklists:&lt;/i&gt;&lt;/b&gt; allow to hide some segments or projection steps. &lt;b&gt;&lt;i&gt;Multiple Measure LPEs:&lt;/i&gt;&lt;/b&gt; In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections. &lt;b&gt;&lt;i&gt;Set Defaults:&lt;/i&gt;&lt;/b&gt; For every LPE, default values can be set at the bottom." />
+ <marker
+ style="overflow:visible"
+ id="marker1519"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1517" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutM"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1364" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.6577043"
+ inkscape:cx="162.5463"
+ inkscape:cy="86.728986"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10"
+ fit-margin-top="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-81.511939,-113.77527)">
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1011)"
+ d="m 265.67004,240.12496 88.9392,-14.91372"
+ id="path1007"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1395)"
+ d="m 265.67004,240.12496 -36.34951,-79.9144"
+ id="path1391"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
+ d="M 232.74865,270.3408 373.39954,134.80367"
+ id="path1217" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="98.04657"
+ y="371.93192"
+ id="text1507"
+ transform="rotate(-44.465341)"><tspan
+ sodipodi:role="line"
+ id="tspan1505"
+ x="98.04657"
+ y="371.93192"
+ style="font-size:16px">bNorm</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 224.20549,260.95038 7.30751,-6.95146 7.76245,8.48559"
+ id="path1755" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
+ d="M 232.74865,270.3408 97.21152,129.68989"
+ id="path1515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="218.83685"
+ y="39.289875"
+ id="text1559"
+ transform="rotate(45.53466)"><tspan
+ sodipodi:role="line"
+ id="tspan1557"
+ x="218.83685"
+ y="39.289875"
+ style="font-size:16px">bNorm.ccw()</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1563"
+ cx="265.19934"
+ cy="239.61365"
+ r="4.4594245" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="m 232.74865,270.3408 23.89169,-23.36401"
+ id="path1641"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="217.75481"
+ y="249.06168"
+ id="text1769"><tspan
+ sodipodi:role="line"
+ id="tspan1767"
+ x="217.75481"
+ y="249.06168"
+ style="font-size:16px;fill:#0000ff">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1771">b</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.269;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.269, 3.269;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2074)"
+ d="m 265.67004,240.12496 -79.9144,36.34952"
+ id="path2070"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2134)"
+ d="m 265.67004,240.12496 -14.91372,-88.9392"
+ id="path2130"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:0.5;fill:none;stroke:#ff0000;stroke-width:3.269;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.269, 3.269;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2170)"
+ d="m 232.74865,270.3408 -79.9144,36.34952"
+ id="path2166"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="opacity:0.5;fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker2206)"
+ d="M 232.74865,270.3408 217.83493,181.4016"
+ id="path2202"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/find-point-same.svg b/doc/livarot-images/find-point-same.svg
new file mode 100644
index 0000000..e337c2c
--- /dev/null
+++ b/doc/livarot-images/find-point-same.svg
@@ -0,0 +1,386 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="307.80225"
+ height="208.18222"
+ viewBox="0 0 307.80225 208.18222"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="find-point-same.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <style
+ id="style1605">
+.measure-arrow
+{
+}
+.measure-label
+{
+
+}
+.measure-line
+{
+}</style>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1533"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1531" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1497"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1495" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1449"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1447" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1395"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1393" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1353"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1351" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1293"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1291" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1263"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1261" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1203"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1201" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1143"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1141" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1047"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1045" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1011"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1009" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1643" />
+ </marker>
+ <inkscape:path-effect
+ effect="measure_segments"
+ id="path-effect1603"
+ is_visible="true"
+ lpeversion="1"
+ unit="mm"
+ orientation="parallel"
+ coloropacity="#000000ff"
+ fontbutton="Sans 10"
+ precision="2"
+ fix_overlaps="0"
+ position="5"
+ text_top_bottom="0"
+ helpline_distance="0"
+ helpline_overlap="2"
+ line_width="0.25"
+ scale="1"
+ format="{measure}{unit}"
+ blacklist=""
+ active_projection="false"
+ whitelist="false"
+ showindex="false"
+ arrows_outside="false"
+ flip_side="false"
+ scale_sensitive="true"
+ local_locale="true"
+ rotate_anotation="true"
+ hide_back="true"
+ hide_arrows="false"
+ smallx100="false"
+ linked_items=""
+ distance_projection="20"
+ angle_projection="0"
+ avoid_overlapping="true"
+ onbbox="false"
+ bboxonly="false"
+ centers="false"
+ maxmin="false"
+ helpdata="&lt;b&gt;&lt;big&gt;General&lt;/big&gt;&lt;/b&gt; Display and position dimension lines and labels &lt;b&gt;&lt;big&gt;Projection&lt;/big&gt;&lt;/b&gt; Show a line with measurements based on the selected items &lt;b&gt;&lt;big&gt;Options&lt;/big&gt;&lt;/b&gt; Options for color, precision, label formatting and display &lt;b&gt;&lt;big&gt;Tips&lt;/big&gt;&lt;/b&gt; &lt;b&gt;&lt;i&gt;Custom styling:&lt;/i&gt;&lt;/b&gt; To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style. &lt;b&gt;&lt;i&gt;Blacklists:&lt;/i&gt;&lt;/b&gt; allow to hide some segments or projection steps. &lt;b&gt;&lt;i&gt;Multiple Measure LPEs:&lt;/i&gt;&lt;/b&gt; In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections. &lt;b&gt;&lt;i&gt;Set Defaults:&lt;/i&gt;&lt;/b&gt; For every LPE, default values can be set at the bottom." />
+ <marker
+ style="overflow:visible"
+ id="marker1519"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1517" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutM"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1364" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.6577043"
+ inkscape:cx="127.17743"
+ inkscape:cy="129.99942"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10"
+ fit-margin-top="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-83.749898,-94.635058)">
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1011)"
+ d="m 208.27083,177.72879 -8.95566,98.42731"
+ id="path1007" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1395)"
+ d="m 208.27083,177.72879 -79.9144,36.34951"
+ id="path1391"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
+ d="M 240.31542,146.25174 99.664523,281.78887"
+ id="path1217" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="-119.34449"
+ y="266.36035"
+ id="text1507"
+ transform="rotate(-44.465341)"><tspan
+ sodipodi:role="line"
+ id="tspan1505"
+ x="-119.34449"
+ y="266.36035"
+ style="font-size:16px">bNorm</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 247.54911,157.14467 -7.30751,6.95146 -7.76245,-8.48559"
+ id="path1755" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
+ d="M 240.31542,146.25174 375.85255,286.90265"
+ id="path1515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="356.33493"
+ y="-75.652992"
+ id="text1559"
+ transform="rotate(45.53466)"><tspan
+ sodipodi:role="line"
+ id="tspan1557"
+ x="356.33493"
+ y="-75.652992"
+ style="font-size:16px">bNorm.ccw()</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1563"
+ cx="207.79117"
+ cy="177.55916"
+ r="4.4594245" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="m 240.31542,146.25174 -23.89169,23.36401"
+ id="path1641"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="228.36461"
+ y="173.38316"
+ id="text1769"><tspan
+ sodipodi:role="line"
+ id="tspan1767"
+ x="228.36461"
+ y="173.38316"
+ style="font-size:16px;fill:#0000ff">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1771">b</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1449)"
+ d="m 208.27083,177.72879 36.34951,79.9144"
+ id="path1445"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26929;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1353)"
+ d="m 208.27083,177.72879 98.4273,8.95566"
+ id="path1349" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26928999999999981;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1497);opacity:0.5"
+ d="m 240.31542,146.25174 36.34951,79.9144"
+ id="path1493"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:#ff00ff;stroke:#ff00ff;stroke-width:3.26929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3.26929, 3.26928999999999981;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#marker1533);opacity:0.5"
+ d="m 240.31542,146.25174 98.4273,8.95566"
+ id="path1529" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/find-point.svg b/doc/livarot-images/find-point.svg
new file mode 100644
index 0000000..ba7ea2e
--- /dev/null
+++ b/doc/livarot-images/find-point.svg
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="307.80225"
+ height="208.18222"
+ viewBox="0 0 307.80225 208.18222"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="find-point.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <style
+ id="style1605">
+.measure-arrow
+{
+}
+.measure-label
+{
+
+}
+.measure-line
+{
+}</style>
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1645"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1643" />
+ </marker>
+ <inkscape:path-effect
+ effect="measure_segments"
+ id="path-effect1603"
+ is_visible="true"
+ lpeversion="1"
+ unit="mm"
+ orientation="parallel"
+ coloropacity="#000000ff"
+ fontbutton="Sans 10"
+ precision="2"
+ fix_overlaps="0"
+ position="5"
+ text_top_bottom="0"
+ helpline_distance="0"
+ helpline_overlap="2"
+ line_width="0.25"
+ scale="1"
+ format="{measure}{unit}"
+ blacklist=""
+ active_projection="false"
+ whitelist="false"
+ showindex="false"
+ arrows_outside="false"
+ flip_side="false"
+ scale_sensitive="true"
+ local_locale="true"
+ rotate_anotation="true"
+ hide_back="true"
+ hide_arrows="false"
+ smallx100="false"
+ linked_items=""
+ distance_projection="20"
+ angle_projection="0"
+ avoid_overlapping="true"
+ onbbox="false"
+ bboxonly="false"
+ centers="false"
+ maxmin="false"
+ helpdata="&lt;b&gt;&lt;big&gt;General&lt;/big&gt;&lt;/b&gt;
+Display and position dimension lines and labels
+
+&lt;b&gt;&lt;big&gt;Projection&lt;/big&gt;&lt;/b&gt;
+Show a line with measurements based on the selected items
+
+&lt;b&gt;&lt;big&gt;Options&lt;/big&gt;&lt;/b&gt;
+Options for color, precision, label formatting and display
+
+&lt;b&gt;&lt;big&gt;Tips&lt;/big&gt;&lt;/b&gt;
+&lt;b&gt;&lt;i&gt;Custom styling:&lt;/i&gt;&lt;/b&gt; To further customize the styles, use the XML editor to find out the class or ID, then use the Style dialog to apply a new style.
+&lt;b&gt;&lt;i&gt;Blacklists:&lt;/i&gt;&lt;/b&gt; allow to hide some segments or projection steps.
+&lt;b&gt;&lt;i&gt;Multiple Measure LPEs:&lt;/i&gt;&lt;/b&gt; In the same object, in conjunction with blacklists,this allows for labels and measurements with different orientations or additional projections.
+&lt;b&gt;&lt;i&gt;Set Defaults:&lt;/i&gt;&lt;/b&gt; For every LPE, default values can be set at the bottom." />
+ <marker
+ style="overflow:visible"
+ id="marker1571"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1569" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1519"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4)"
+ style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:#808080;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1517" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutM"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1364" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1571-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="TriangleOutM"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.4)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 5.77,0 -2.88,5 V -5 Z"
+ id="path1569-6" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="1"
+ inkscape:pageshadow="2"
+ inkscape:zoom="10.630817"
+ inkscape:cx="146.46099"
+ inkscape:cy="64.952676"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10"
+ fit-margin-top="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-83.749898,-94.635058)">
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 263.61025,169.95772 c 0,0 -10.66367,14.35036 -23.27317,4.93666"
+ id="path1747" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutM)"
+ d="M 240.31542,146.25174 99.664523,281.78887"
+ id="path1217" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="-58.365868"
+ y="264.45288"
+ id="text1507"
+ transform="rotate(-44.465341)"><tspan
+ sodipodi:role="line"
+ id="tspan1505"
+ x="-58.365868"
+ y="264.45288"
+ style="font-size:16px">bNorm</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 248.88319,138.53474 6.95145,7.30751 -8.48559,7.76245"
+ id="path1755" />
+ <path
+ style="fill:#ff0000;stroke:#ff0000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571)"
+ d="m 240.31542,146.25174 -1.58368,114.30611"
+ id="path1567"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 253.37421,160.24635 c 0,0 -27.56623,15.10365 -31.83159,-21.02529"
+ id="path1757" />
+ <path
+ style="fill:none;fill-opacity:1;stroke:#808080;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1519)"
+ d="M 240.31542,146.25174 375.85255,286.90265"
+ id="path1515" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="342.99881"
+ y="-76.441467"
+ id="text1559"
+ transform="rotate(45.53466)"><tspan
+ sodipodi:role="line"
+ id="tspan1557"
+ x="342.99881"
+ y="-76.441467"
+ style="font-size:16px">bNorm.ccw()</tspan></text>
+ <circle
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1561"
+ cx="238.05536"
+ cy="272.15973"
+ r="4.4594245" />
+ <circle
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1563"
+ cx="273.21555"
+ cy="114.23372"
+ r="4.4594245" />
+ <circle
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.89134;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1565"
+ cx="143.98232"
+ cy="109.09448"
+ r="4.4594245" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="m 240.31542,146.25174 23.89169,-23.36401"
+ id="path1641"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#008000;stroke-width:2.89134;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1571-3)"
+ d="M 240.31542,146.25174 155.53223,113.45785"
+ id="path1567-7"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="251.02913"
+ y="192.64919"
+ id="text1751"><tspan
+ sodipodi:role="line"
+ id="tspan1749"
+ x="251.02913"
+ y="192.64919"
+ style="font-size:16px;fill:#ff0000">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1753">r</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="257.61835"
+ y="153.61459"
+ id="text1769"><tspan
+ sodipodi:role="line"
+ id="tspan1767"
+ x="257.61835"
+ y="153.61459"
+ style="font-size:16px;fill:#0000ff">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1771">b</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="206.59474"
+ y="153.46944"
+ id="text1777"><tspan
+ sodipodi:role="line"
+ id="tspan1775"
+ x="206.59474"
+ y="153.46944"
+ style="font-size:16px;fill:#008000">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#008000"
+ id="tspan1779">g</tspan></tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/intersection-cross-product.svg b/doc/livarot-images/intersection-cross-product.svg
new file mode 100644
index 0000000..b2004db
--- /dev/null
+++ b/doc/livarot-images/intersection-cross-product.svg
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="500"
+ height="700"
+ viewBox="0 0 500.00001 700"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
+ sodipodi:docname="intersection-cross-product.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1557"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1555" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1499"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1497" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1489"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1487" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1347"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1345" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1231"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1229" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1159"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1157" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1149"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1147" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1091"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1089" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1033"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1031" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1023"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1021" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker933"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path931" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker903"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path901" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker847"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path845" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.7070136"
+ inkscape:cx="185.70443"
+ inkscape:cy="463.67527"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000.0005px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 40.376023,51.195578 184.68385,195.50341"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker847)"
+ d="M 186.94302,51.087771 42.635185,195.39561"
+ id="path843" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="27.279669"
+ y="45.689095"
+ id="text875"><tspan
+ sodipodi:role="line"
+ id="tspan873"
+ x="27.279669"
+ y="45.689095">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="174.84354"
+ y="39.357662"
+ id="text879"><tspan
+ sodipodi:role="line"
+ id="tspan877"
+ x="174.84354"
+ y="39.357662">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker903)"
+ d="M 361.95404,61.714577 486.14115,185.90169"
+ id="path899" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker933)"
+ d="M 361.95404,61.714577 237.76692,185.9017"
+ id="path929" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
+ x="428.63852"
+ y="123.67144"
+ id="text967"><tspan
+ sodipodi:role="line"
+ id="tspan965"
+ x="428.63852"
+ y="123.67144"
+ style="stroke-width:0.860571">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
+ x="267.50607"
+ y="120.33862"
+ id="text971"><tspan
+ sodipodi:role="line"
+ id="tspan969"
+ x="267.50607"
+ y="120.33862"
+ style="stroke-width:0.860571">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1033)"
+ d="M 31.562822,248.05474 175.87065,392.36257"
+ id="path1009" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1023)"
+ d="M 178.12982,247.94693 33.821984,392.25477"
+ id="path1011" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="168.3092"
+ y="239.50467"
+ id="text1015"><tspan
+ sodipodi:role="line"
+ id="tspan1013"
+ x="168.3092"
+ y="239.50467">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="13.953851"
+ y="240.20125"
+ id="text1019"><tspan
+ sodipodi:role="line"
+ id="tspan1017"
+ x="13.953851"
+ y="240.20125">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1159)"
+ d="M 353.68417,264.68996 477.87128,388.87707"
+ id="path1135" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.860571px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1149)"
+ d="M 353.68417,264.68996 229.49705,388.87708"
+ id="path1137" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
+ x="261.2811"
+ y="322.17184"
+ id="text1141"><tspan
+ sodipodi:role="line"
+ id="tspan1139"
+ x="261.2811"
+ y="322.17184"
+ style="stroke-width:0.860571">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:13.7691px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.860571"
+ x="413.39346"
+ y="319.2049"
+ id="text1145"><tspan
+ sodipodi:role="line"
+ id="tspan1143"
+ x="413.39346"
+ y="319.2049"
+ style="stroke-width:0.860571">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="304.15286"
+ y="29.0243"
+ id="text1193"><tspan
+ sodipodi:role="line"
+ id="tspan1191"
+ x="304.15286"
+ y="29.0243">cross(ldir, rdir);</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1231);paint-order:normal"
+ d="m 390.02678,90.544454 c 0,0 -25.46234,33.475456 -54.15233,0.04604"
+ id="path1227"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1347)"
+ d="m 326.30728,291.97517 c 0,0 20.78023,28.33579 51.3341,-0.47436"
+ id="path1343"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.5877px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.786733"
+ x="301.95645"
+ y="141.09514"
+ id="text1385"><tspan
+ sodipodi:role="line"
+ id="tspan1383"
+ x="301.95645"
+ y="141.09514"
+ style="stroke-width:0.786733">cross(ldir, rdir) &gt; 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.5877px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.786733"
+ x="289.08221"
+ y="359.32712"
+ id="text1389"><tspan
+ sodipodi:role="line"
+ id="tspan1387"
+ x="289.08221"
+ y="359.32712"
+ style="stroke-width:0.786733">cross(ldir, rdir) &lt; 0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1499)"
+ d="M 33.412499,452.06889 177.72033,596.37672"
+ id="path1479" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="56.942776"
+ y="522.93726"
+ id="text1485"><tspan
+ sodipodi:role="line"
+ id="tspan1483"
+ x="56.942776"
+ y="522.93726">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="139.73827"
+ y="506.14304"
+ id="text1539"><tspan
+ sodipodi:role="line"
+ id="tspan1537"
+ x="139.73827"
+ y="506.14304">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1557)"
+ d="M 43.272694,443.14263 187.58052,587.45046"
+ id="path1553" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.5877px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.786733"
+ x="292.02301"
+ y="537.99573"
+ id="text1585"><tspan
+ sodipodi:role="line"
+ id="tspan1583"
+ x="292.02301"
+ y="537.99573"
+ style="stroke-width:0.786733">cross(ldir, rdir) = 0</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/intersection-cross-products.svg b/doc/livarot-images/intersection-cross-products.svg
new file mode 100644
index 0000000..66fff08
--- /dev/null
+++ b/doc/livarot-images/intersection-cross-products.svg
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="445.25089"
+ height="357.09039"
+ viewBox="0 0 445.25089 357.09039"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
+ sodipodi:docname="intersection-cross-products.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1503"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1501" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1461"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1459" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1427"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1425" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1142" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1119"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1117" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1097"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff00ff;fill-opacity:1;fill-rule:evenodd;stroke:#ff00ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1095" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1063"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1061" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1025"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1023" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker951"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path949" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker941"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path939" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker871"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path869" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="408"
+ inkscape:cy="330.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-28.419477,-56.383514)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.30108;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 93.063111,88.297429 405.71371,400.94806"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.30108;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker871)"
+ d="M 406.50688,87.557219 93.856281,400.20785"
+ id="path867" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:1.30108"
+ x="144.9722"
+ y="193.51253"
+ id="text909"><tspan
+ sodipodi:role="line"
+ id="tspan907"
+ x="144.9722"
+ y="193.51253"
+ style="stroke-width:1.30108">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:1.30108"
+ x="317.59818"
+ y="190.99515"
+ id="text913"><tspan
+ sodipodi:role="line"
+ id="tspan911"
+ x="317.59818"
+ y="190.99515"
+ style="stroke-width:1.30108">right</tspan></text>
+ <path
+ style="fill:none;stroke:#008000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker951)"
+ d="M 406.50688,87.557219 93.063111,88.297429"
+ id="path995" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1025)"
+ d="M 406.50688,87.557219 405.71371,400.94806"
+ id="path1021" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke-width:1.30108"
+ x="238.57541"
+ y="82.199783"
+ id="text1047"><tspan
+ sodipodi:role="line"
+ id="tspan1045"
+ x="238.57541"
+ y="82.199783"
+ style="stroke-width:1.30108">sdiff1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:1.30108"
+ x="413.12622"
+ y="252.7749"
+ id="text1051"><tspan
+ sodipodi:role="line"
+ id="tspan1049"
+ x="413.12622"
+ y="252.7749"
+ style="stroke-width:1.30108">ediff1</tspan></text>
+ <path
+ style="fill:none;stroke:#000080;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1063)"
+ d="m 93.063111,86.817009 313.443769,0.74021"
+ id="path1059" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000080;stroke:none;stroke-width:1.30108"
+ x="238.3334"
+ y="108.95457"
+ id="text1091"><tspan
+ sodipodi:role="line"
+ id="tspan1089"
+ x="238.3334"
+ y="108.95457"
+ style="stroke-width:1.30108">sdiff2</tspan></text>
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1097)"
+ d="m 93.063111,86.817009 0.79317,313.390841"
+ id="path1093" />
+ <text
+ xml:space="preserve"
+ style="font-size:20.8173px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;stroke-width:1.30108"
+ x="33.270866"
+ y="248.48138"
+ id="text1113"><tspan
+ sodipodi:role="line"
+ id="tspan1111"
+ x="33.270866"
+ y="248.48138"
+ style="stroke-width:1.30108">ediff2</tspan></text>
+ <path
+ style="fill:none;stroke:#008000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 370.3101,124.92022 c 0,0 -30.07994,-6.6184 -24.16392,-37.112011"
+ id="path1115" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke-width:0.717889"
+ x="318.56375"
+ y="122.53162"
+ id="text1421"><tspan
+ sodipodi:role="line"
+ id="tspan1419"
+ x="318.56375"
+ y="122.53162"
+ style="stroke-width:0.717889">srDot</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1427)"
+ d="m 370.3101,124.92022 c 0,0 14.56784,23.53419 36.68947,13.21591"
+ id="path1423" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.717889"
+ x="364.55103"
+ y="153.52997"
+ id="text1449"><tspan
+ sodipodi:role="line"
+ id="tspan1447"
+ x="364.55103"
+ y="153.52997"
+ style="fill:#ff0000;stroke-width:0.717889">erDot</tspan></text>
+ <path
+ style="fill:none;stroke:#000080;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1461)"
+ d="m 130.61307,126.17116 c 0,0 23.53418,-14.56785 13.2159,-36.689471"
+ id="path1457" />
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:1.30108px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1503)"
+ d="m 130.61307,126.17116 c 0,0 -6.61841,30.07994 -37.112019,24.16392"
+ id="path1499" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000080;stroke-width:0.717889"
+ x="151.19702"
+ y="125.0546"
+ id="text1537"><tspan
+ sodipodi:role="line"
+ id="tspan1535"
+ x="151.19702"
+ y="125.0546"
+ style="fill:#000080;stroke-width:0.717889">slDot</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.4862px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff00ff;stroke-width:0.717889"
+ x="111.54098"
+ y="163.82812"
+ id="text1541"><tspan
+ sodipodi:role="line"
+ id="tspan1539"
+ x="111.54098"
+ y="163.82812"
+ style="fill:#ff00ff;stroke-width:0.717889">elDot</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/intersection-point-calculation.svg b/doc/livarot-images/intersection-point-calculation.svg
new file mode 100644
index 0000000..d52f533
--- /dev/null
+++ b/doc/livarot-images/intersection-point-calculation.svg
@@ -0,0 +1,1473 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="648.50635"
+ height="939.43402"
+ viewBox="0 0 648.50635 939.43402"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (e41a0c7bf5, 2020-08-24, custom)"
+ sodipodi:docname="intersection-point-calculation.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker3383"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3381" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3319"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3317" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3173"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3171" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3163"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3161" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3153"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3151" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3143"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3141" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3133"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3131" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3123"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3121" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2981"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2979" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2923"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2921" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2789"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2787" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2779"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2777" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2769"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2767" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2759"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2757" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2749"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2747" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2739"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2737" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2291"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2289" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2281"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2279" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2271"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2269" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2261"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2259" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2251"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2249" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2241"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2239" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2099"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2097" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1873"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1871" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1863"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1861" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1853"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1851" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1843"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1841" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1833"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1831" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1823"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1821" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1703"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1701" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1509"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1507" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1499"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1497" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1489"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1487" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1479"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1477" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1469"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1467" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1459"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1457" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1299"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1297" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1275"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1273" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.4,0,0,-0.4,-4,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path988" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker919"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path917" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker889"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path887" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker851"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path849" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.59005547"
+ inkscape:cx="106.76962"
+ inkscape:cy="509.27416"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="false"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-22.043676,-14.197386)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 135.16769,56.686072 196.0682,294.44534"
+ id="path829" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="185.42911"
+ y="234.72577"
+ id="text845"><tspan
+ sodipodi:role="line"
+ id="tspan843"
+ x="185.42911"
+ y="234.72577">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker851)"
+ d="M 293.03344,81.589571 58.271003,267.0276"
+ id="path847" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="230.39577"
+ y="146.69347"
+ id="text867"><tspan
+ sodipodi:role="line"
+ id="tspan865"
+ x="230.39577"
+ y="146.69347">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker889)"
+ d="M 135.16769,56.686072 293.03344,81.589571"
+ id="path885" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker919)"
+ d="M 135.16769,56.686072 58.271003,267.0276"
+ id="path915" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="198.6951"
+ y="64.560463"
+ id="text935"><tspan
+ sodipodi:role="line"
+ id="tspan933"
+ x="198.6951"
+ y="64.560463">sl</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="79.493889"
+ y="153.75989"
+ id="text939"><tspan
+ sodipodi:role="line"
+ id="tspan937"
+ x="79.493889"
+ y="153.75989">el</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+ d="m 142.09143,84.020601 c 0,0 14.51945,1.80683 23.00678,-20.183239"
+ id="path977"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1299)"
+ d="m 142.09143,84.020601 c 0,0 -6.1903,8.60689 -15.96596,4.08512"
+ id="path1295"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="159.90778"
+ y="89.113739"
+ id="text1333"><tspan
+ sodipodi:role="line"
+ id="tspan1331"
+ x="159.90778"
+ y="89.113739"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:7.76841px;baseline-shift:sub;fill:#ff0000;stroke-width:0.746963"
+ id="tspan1335">sl</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="126.4185"
+ y="104.74226"
+ id="text1341"><tspan
+ sodipodi:role="line"
+ id="tspan1339"
+ x="126.4185"
+ y="104.74226"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#0000ff"
+ id="tspan1343">el</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1509)"
+ d="M 555.72436,55.765056 538.48422,278.20039"
+ id="path1417"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="448.40778"
+ y="141.83841"
+ id="text1421"><tspan
+ sodipodi:role="line"
+ id="tspan1419"
+ x="448.40778"
+ y="141.83841">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1499)"
+ d="M 435.31866,95.249185 659.02551,271.62511"
+ id="path1423"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="550.3689"
+ y="156.31856"
+ id="text1427"><tspan
+ sodipodi:role="line"
+ id="tspan1425"
+ x="550.3689"
+ y="156.31856">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1489)"
+ d="M 555.72436,55.765056 659.02551,271.62511"
+ id="path1429"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1479)"
+ d="M 555.72436,55.765056 435.31866,95.249185"
+ id="path1431"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="613.67993"
+ y="161.7193"
+ id="text1435"><tspan
+ sodipodi:role="line"
+ id="tspan1433"
+ x="613.67993"
+ y="161.7193">er</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="482.22571"
+ y="71.412544"
+ id="text1439"><tspan
+ sodipodi:role="line"
+ id="tspan1437"
+ x="482.22571"
+ y="71.412544">sr</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1469)"
+ d="m 553.31786,87.823815 c 0,0 -26.42952,2.62275 -25.4053,-20.504977"
+ id="path1673"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1703)"
+ d="m 553.31786,87.823815 c 0,0 6.44571,7.42495 15.41911,0.0755"
+ id="path1699"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="522.59601"
+ y="93.852287"
+ id="text1733"><tspan
+ sodipodi:role="line"
+ id="tspan1731"
+ x="522.59601"
+ y="93.852287"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan1735">sr</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="557.55469"
+ y="106.46495"
+ id="text1741"><tspan
+ sodipodi:role="line"
+ id="tspan1739"
+ x="557.55469"
+ y="106.46495"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#ff0000"
+ id="tspan1743">er</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1873)"
+ d="m 148.06507,384.08974 60.90051,237.75927"
+ id="path1781" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="198.32649"
+ y="562.12946"
+ id="text1785"><tspan
+ sodipodi:role="line"
+ id="tspan1783"
+ x="198.32649"
+ y="562.12946">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1863)"
+ d="M 305.93082,408.99324 71.168384,594.43127"
+ id="path1787" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="243.29315"
+ y="474.09714"
+ id="text1791"><tspan
+ sodipodi:role="line"
+ id="tspan1789"
+ x="243.29315"
+ y="474.09714">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1853)"
+ d="m 148.06507,384.08974 157.86575,24.9035"
+ id="path1793" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1843)"
+ d="M 148.06507,384.08974 71.168384,594.43127"
+ id="path1795" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="211.59248"
+ y="391.96414"
+ id="text1799"><tspan
+ sodipodi:role="line"
+ id="tspan1797"
+ x="211.59248"
+ y="391.96414">sl</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="92.391266"
+ y="481.16354"
+ id="text1803"><tspan
+ sodipodi:role="line"
+ id="tspan1801"
+ x="92.391266"
+ y="481.16354">el</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1833)"
+ d="m 154.98881,411.42427 c 0,0 14.51945,1.80683 23.00678,-20.18324"
+ id="path1805"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1823)"
+ d="m 154.98881,411.42427 c 0,0 -6.1903,8.60689 -15.96596,4.08512"
+ id="path1807"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="172.80516"
+ y="416.5174"
+ id="text1813"><tspan
+ sodipodi:role="line"
+ id="tspan1811"
+ x="172.80516"
+ y="416.5174"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:7.76841px;baseline-shift:sub;fill:#ff0000;stroke-width:0.746963"
+ id="tspan1809">sl</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="139.31589"
+ y="432.14594"
+ id="text1819"><tspan
+ sodipodi:role="line"
+ id="tspan1817"
+ x="139.31589"
+ y="432.14594"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#0000ff"
+ id="tspan1815">el</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 163.75575,445.79773 303.57298,409.63644"
+ id="path1995"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 193.56436,561.78721 71.168384,594.43127"
+ id="path2043"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="-10.587813"
+ y="607.22388"
+ id="text2129"
+ transform="rotate(-11.92579)"><tspan
+ sodipodi:role="line"
+ id="tspan2127"
+ x="-10.587813"
+ y="607.22388"
+ style="fill:#0000ff;stroke-width:0.746963">elsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2131">el</tspan>)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="69.625122"
+ y="487.75339"
+ id="text2137"
+ transform="rotate(-15.943369)"><tspan
+ sodipodi:role="line"
+ id="tspan2135"
+ x="69.625122"
+ y="487.75339"
+ style="fill:#ff0000;stroke-width:0.746963">slsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2141">sl</tspan>)</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 163.75575,445.79773 41.359774,478.44179"
+ id="path2143"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2291)"
+ d="M 496.48889,385.98564 557.3894,623.74491"
+ id="path2181" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="546.75031"
+ y="564.02533"
+ id="text2185"><tspan
+ sodipodi:role="line"
+ id="tspan2183"
+ x="546.75031"
+ y="564.02533">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2281)"
+ d="M 654.35464,410.88914 489.25291,533.09623"
+ id="path2187"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="591.71692"
+ y="475.99301"
+ id="text2191"><tspan
+ sodipodi:role="line"
+ id="tspan2189"
+ x="591.71692"
+ y="475.99301">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2271)"
+ d="m 496.48889,385.98564 157.86575,24.9035"
+ id="path2193" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2261)"
+ d="m 496.48889,385.98564 -7.23598,147.11059"
+ id="path2195"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="560.0163"
+ y="393.86002"
+ id="text2199"><tspan
+ sodipodi:role="line"
+ id="tspan2197"
+ x="560.0163"
+ y="393.86002">sl</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="473.11127"
+ y="477.11063"
+ id="text2203"><tspan
+ sodipodi:role="line"
+ id="tspan2201"
+ x="473.11127"
+ y="477.11063">el</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2251)"
+ d="m 503.41263,413.32017 c 0,0 14.51945,1.80683 23.00678,-20.18324"
+ id="path2205"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2241)"
+ d="m 503.41263,413.32017 c 0,0 2.39249,9.48133 -7.38317,4.95956"
+ id="path2207"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="521.22894"
+ y="418.41327"
+ id="text2213"><tspan
+ sodipodi:role="line"
+ id="tspan2211"
+ x="521.22894"
+ y="418.41327"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:7.76841px;baseline-shift:sub;fill:#ff0000;stroke-width:0.746963"
+ id="tspan2209">sl</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="495.46582"
+ y="446.24545"
+ id="text2219"><tspan
+ sodipodi:role="line"
+ id="tspan2217"
+ x="495.46582"
+ y="446.24545"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#0000ff"
+ id="tspan2215">el</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 512.17957,447.69363 651.9968,411.53234"
+ id="path2221"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 532.14415,522.28889 -42.89124,10.80734"
+ id="path2223"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="358.86017"
+ y="638.76202"
+ id="text2229"
+ transform="rotate(-11.92579)"><tspan
+ sodipodi:role="line"
+ id="tspan2227"
+ x="358.86017"
+ y="638.76202"
+ style="fill:#0000ff;stroke-width:0.746963">elsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2225">el</tspan>)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="404.12558"
+ y="585.28394"
+ id="text2235"
+ transform="rotate(-15.943369)"><tspan
+ sodipodi:role="line"
+ id="tspan2233"
+ x="404.12558"
+ y="585.28394"
+ style="fill:#ff0000;stroke-width:0.746963">slsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2231">sl</tspan>)</tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 512.17957,447.69363 -42.89124,10.80734"
+ id="path2425"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2789)"
+ d="m 151.07875,697.80999 60.90051,237.75927"
+ id="path2679" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="138.66779"
+ y="765.84698"
+ id="text2683"><tspan
+ sodipodi:role="line"
+ id="tspan2681"
+ x="138.66779"
+ y="765.84698">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2779)"
+ d="M 308.9445,722.71349 74.182065,908.15152"
+ id="path2685" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="87.225952"
+ y="865.48138"
+ id="text2689"><tspan
+ sodipodi:role="line"
+ id="tspan2687"
+ x="87.225952"
+ y="865.48138">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2769)"
+ d="M 308.9445,722.71349 211.97926,935.56926"
+ id="path2691"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2759)"
+ d="M 308.9445,722.71349 151.07875,697.80999"
+ id="path2693"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="272.24536"
+ y="832.289"
+ id="text2697"><tspan
+ sodipodi:role="line"
+ id="tspan2695"
+ x="272.24536"
+ y="832.289">er</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="217.12143"
+ y="704.2002"
+ id="text2701"><tspan
+ sodipodi:role="line"
+ id="tspan2699"
+ x="217.12143"
+ y="704.2002">sr</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="268.44763"
+ y="769.25641"
+ id="text2711"><tspan
+ sodipodi:role="line"
+ id="tspan2709"
+ x="268.44763"
+ y="769.25641"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2969">er</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="255.62274"
+ y="737.24817"
+ id="text2717"><tspan
+ sodipodi:role="line"
+ id="tspan2715"
+ x="255.62274"
+ y="737.24817"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan2967">sr</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2749)"
+ d="m 281.64851,744.21016 c 0,0 -18.3076,-9.79274 -6.56203,-24.96139"
+ id="path2911"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2923)"
+ d="m 281.64851,744.21016 c 0,0 -7.26638,14.11109 8.4247,15.05009"
+ id="path2919"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 144.96677,852.44629 67.01249,83.12297"
+ id="path2977"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 151.07875,697.80999 72.55876,91.45786"
+ id="path3007"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="673.98969"
+ y="333.04694"
+ id="text3013"
+ transform="rotate(49.85623)"><tspan
+ sodipodi:role="line"
+ id="tspan3011"
+ x="673.98969"
+ y="333.04694"
+ style="fill:#0000ff;stroke-width:0.746963">srsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan3015">sr</tspan>)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="801.20343"
+ y="389.59534"
+ id="text3021"
+ transform="rotate(54.217931)"><tspan
+ sodipodi:role="line"
+ id="tspan3019"
+ x="801.20343"
+ y="389.59534"
+ style="fill:#ff0000;stroke-width:0.746963">ersin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan3023">er</tspan>)</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 223.63751,789.26785 290.65,872.39082"
+ id="path3025"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3173)"
+ d="m 495.48037,703.99148 60.90051,237.75927"
+ id="path3063" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="484.33508"
+ y="780.65839"
+ id="text3067"><tspan
+ sodipodi:role="line"
+ id="tspan3065"
+ x="484.33508"
+ y="780.65839">left</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3163)"
+ d="M 653.34612,728.89498 488.24439,851.10207"
+ id="path3069"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="575.08008"
+ y="799.73828"
+ id="text3073"><tspan
+ sodipodi:role="line"
+ id="tspan3071"
+ x="575.08008"
+ y="799.73828">right</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3153)"
+ d="M 653.34612,728.89498 556.38088,941.75075"
+ id="path3075"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3143)"
+ d="M 653.34612,728.89498 495.48037,703.99148"
+ id="path3077"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="617.52051"
+ y="845.56146"
+ id="text3081"><tspan
+ sodipodi:role="line"
+ id="tspan3079"
+ x="617.52051"
+ y="845.56146">er</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff"
+ x="569.09357"
+ y="709.5929"
+ id="text3085"><tspan
+ sodipodi:role="line"
+ id="tspan3083"
+ x="569.09357"
+ y="709.5929">sr</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="595.19434"
+ y="747.26141"
+ id="text3095"><tspan
+ sodipodi:role="line"
+ id="tspan3093"
+ x="595.19434"
+ y="747.26141"
+ style="fill:#0000ff;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#0000ff"
+ id="tspan3339">sr</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="612.15448"
+ y="773.90698"
+ id="text3101"><tspan
+ sodipodi:role="line"
+ id="tspan3099"
+ x="612.15448"
+ y="773.90698"
+ style="fill:#ff0000;stroke-width:0.746963">θ<tspan
+ style="font-size:65%;baseline-shift:sub;fill:#ff0000"
+ id="tspan3341">er</tspan></tspan></text>
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3133)"
+ d="m 621.96485,752.41567 c 0,0 -18.95544,-7.75067 -6.38961,-27.19956"
+ id="path3307"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3319)"
+ d="m 621.96485,752.41567 c 0,0 -1.29219,14.56104 14.97198,11.96259"
+ id="path3315" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 559.79973,798.02066 495.48037,703.99148"
+ id="path3379"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 556.38088,941.75075 492.06152,847.72157"
+ id="path3409"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.746963"
+ x="903.65625"
+ y="76.356575"
+ id="text3415"
+ transform="rotate(49.85623)"><tspan
+ sodipodi:role="line"
+ id="tspan3413"
+ x="903.65625"
+ y="76.356575"
+ style="fill:#0000ff;stroke-width:0.746963">srsin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan3411">sr</tspan>)</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:11.9514px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke-width:0.746963"
+ x="1010.1659"
+ y="113.25944"
+ id="text3421"
+ transform="rotate(54.217931)"><tspan
+ sodipodi:role="line"
+ id="tspan3419"
+ x="1010.1659"
+ y="113.25944"
+ style="fill:#ff0000;stroke-width:0.746963">ersin(θ<tspan
+ style="font-size:65%;baseline-shift:sub"
+ id="tspan3417">er</tspan>)</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1, 1;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 624.11909,892.04984 559.79973,798.02066"
+ id="path3423"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="29.426485"
+ y="44.457829"
+ id="text3443"><tspan
+ sodipodi:role="line"
+ id="tspan3441"
+ x="29.426485"
+ y="44.457829"
+ style="font-size:26.6667px">Fig 0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="359.70151"
+ y="44.457829"
+ id="text3447"><tspan
+ sodipodi:role="line"
+ id="tspan3445"
+ x="359.70151"
+ y="44.457829"
+ style="font-size:26.6667px">Fig 1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="41.487854"
+ y="367.78854"
+ id="text3451"><tspan
+ sodipodi:role="line"
+ id="tspan3449"
+ x="41.487854"
+ y="367.78854"
+ style="font-size:26.6667px">Fig 2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="371.76288"
+ y="367.78854"
+ id="text3455"><tspan
+ sodipodi:role="line"
+ id="tspan3453"
+ x="371.76288"
+ y="367.78854"
+ style="font-size:26.6667px">Fig 3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="50.613743"
+ y="674.32947"
+ id="text3459"><tspan
+ sodipodi:role="line"
+ id="tspan3457"
+ x="50.613743"
+ y="674.32947"
+ style="font-size:26.6667px">Fig 4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="380.88876"
+ y="674.32947"
+ id="text3463"><tspan
+ sodipodi:role="line"
+ id="tspan3461"
+ x="380.88876"
+ y="674.32947"
+ style="font-size:26.6667px">Fig 5</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/lastChgtPt-from-avance.svg b/doc/livarot-images/lastChgtPt-from-avance.svg
new file mode 100644
index 0000000..6eb93cc
--- /dev/null
+++ b/doc/livarot-images/lastChgtPt-from-avance.svg
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="332.26663"
+ height="300.29181"
+ viewBox="0 0 332.26663 300.29181"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (80318448fe, 2020-08-23, custom)"
+ sodipodi:docname="lastChgtPt-from-avance.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker883"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path881" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.5020252"
+ inkscape:cx="173.09963"
+ inkscape:cy="156.12255"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-103.57619,-121.75057)">
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="path829"
+ cx="168.05617"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle831"
+ cx="263.57138"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle833"
+ cx="359.08658"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle835"
+ cx="167.10698"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle837"
+ cx="262.62219"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle839"
+ cx="358.13739"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle841"
+ cx="168.34859"
+ cy="352.23386"
+ r="14.716245" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="210.49413"
+ y="377.92395"
+ id="text865"><tspan
+ sodipodi:role="line"
+ id="tspan863"
+ x="210.49413"
+ y="377.92395">lastPointNo</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 230.20665,355.48728 c 0,0 11.64353,-39.00475 -41.64015,-17.29232"
+ id="path867" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="260.49899"
+ y="314.62433"
+ id="text877"><tspan
+ sodipodi:role="line"
+ id="tspan875"
+ x="260.49899"
+ y="314.62433">lastChgtPt</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker883)"
+ d="m 244.02337,313.50571 c 0,0 -38.11809,-8.29918 -55.70413,-31.97461"
+ id="path879" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/problematic-intersection-case.svg b/doc/livarot-images/problematic-intersection-case.svg
new file mode 100644
index 0000000..d47b474
--- /dev/null
+++ b/doc/livarot-images/problematic-intersection-case.svg
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="593.25421"
+ height="414.70798"
+ viewBox="0 0 593.25421 414.70798"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (e41a0c7bf5, 2020-08-24, custom)"
+ sodipodi:docname="problematic-intersection-case.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker973"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path971" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker963"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path961" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker859"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path857" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.53409942"
+ inkscape:cx="-56.169318"
+ inkscape:cy="317.35665"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="10"
+ fit-margin-top="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-172.41122,-63.625426)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 250.89042,81.406202 85.6937,319.813218"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker859)"
+ d="M 291.90829,238.05712 183.88162,144.92989"
+ id="path855"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="203.0696"
+ y="209.07495"
+ id="text887"><tspan
+ sodipodi:role="line"
+ id="tspan885"
+ x="203.0696"
+ y="209.07495">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="298.60837"
+ y="186.01599"
+ id="text891"><tspan
+ sodipodi:role="line"
+ id="tspan889"
+ x="298.60837"
+ y="186.01599">right</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker973)"
+ d="m 657.14458,73.754836 85.6937,319.813214"
+ id="path949" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker963)"
+ d="M 698.16245,230.40575 626.79513,357.48346"
+ id="path951"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="630.6897"
+ y="285.12833"
+ id="text955"><tspan
+ sodipodi:role="line"
+ id="tspan953"
+ x="630.6897"
+ y="285.12833">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="704.86255"
+ y="178.36462"
+ id="text959"><tspan
+ sodipodi:role="line"
+ id="tspan957"
+ x="704.86255"
+ y="178.36462">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:34.2668px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:2.14167"
+ x="205.33521"
+ y="467.84818"
+ id="text1029"><tspan
+ sodipodi:role="line"
+ id="tspan1027"
+ x="205.33521"
+ y="467.84818"
+ style="stroke-width:2.14167">lst &gt; lEn</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:33.5599px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:2.09749"
+ x="617.29639"
+ y="459.41025"
+ id="text1033"><tspan
+ sodipodi:role="line"
+ id="tspan1031"
+ x="617.29639"
+ y="459.41025"
+ style="stroke-width:2.09749">lst &lt; lEn</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/process-flat-to-convert.svg b/doc/livarot-images/process-flat-to-convert.svg
new file mode 100644
index 0000000..ad11931
--- /dev/null
+++ b/doc/livarot-images/process-flat-to-convert.svg
@@ -0,0 +1,855 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1500"
+ height="500"
+ viewBox="0 0 1500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="process-flat-to-convert.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker2838"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2836" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2816"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2814" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2764"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2762" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2730"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2728" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2714"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2712" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2692"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2690" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2676"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2674" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2660"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2658" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2644"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2642" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2446"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2444" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2436"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2434" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2426"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2424" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2416"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2414" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2406"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2404" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2396"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2394" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2386"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2384" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2376"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Mstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.4) translate(10,0)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path2374" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2040"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2038" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2018"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path2016" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1960"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1958" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1950"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1948" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1940"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1938" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1930"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1928" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1920"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1918" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1910"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1908" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1900"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1898" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1407"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1405" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1111"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1109" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1101"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1099" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1091"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1089" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1071"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1069" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1061"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1059" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1051"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1049" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1041"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1039" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1031"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1029" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker923"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path921" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.0550821"
+ inkscape:cx="1203.2461"
+ inkscape:cy="208.43131"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:lockguides="true" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 35.326022,353.69409 c 0,0 41.895205,-165.85263 212.908788,-152.66748 l -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 390.08736,342.48623 c 0,0 41.8952,-165.85263 212.90879,-152.66748 l -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path835" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="path831"
+ cx="391.24176"
+ cy="341.56976"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle853"
+ cx="437.13937"
+ cy="255.43558"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle855"
+ cx="497.14078"
+ cy="208.7459"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle857"
+ cx="562.44568"
+ cy="190.12463"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle859"
+ cx="603.85394"
+ cy="189.72343"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle861"
+ cx="512.40961"
+ cy="246.39914"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle863"
+ cx="590.08545"
+ cy="107.97838"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle865"
+ cx="699.90894"
+ cy="331.86072"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0"
+ d="m 390.08736,342.48623 47.54346,-88.03417 60.38131,-45.9603 64.83556,-18.10578 40.14846,-0.56723 -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path883" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle887"
+ cx="751.59222"
+ cy="330.35614"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle889"
+ cx="797.48981"
+ cy="244.22194"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle891"
+ cx="857.49121"
+ cy="197.53226"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle893"
+ cx="922.79614"
+ cy="178.911"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle895"
+ cx="964.20441"
+ cy="178.5098"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle897"
+ cx="872.76007"
+ cy="235.1855"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle899"
+ cx="950.43591"
+ cy="96.76474"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle901"
+ cx="1060.2594"
+ cy="320.64709"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2040)"
+ d="m 753.01517,325.9249 39.27636,-73.07465"
+ id="path1235"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1910)"
+ d="m 801.49521,241.76393 47.8429,-38.4059"
+ id="path1275"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1920)"
+ d="M 861.86391,196.83092 913.36747,181.965"
+ id="path1305"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2018)"
+ d="m 927.38106,178.75985 27.23737,0.0444"
+ id="path1335"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1930)"
+ d="m 960.70488,181.47408 -78.85054,49.14656"
+ id="path1365"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1940)"
+ d="M 874.20885,230.8235 945.09517,105.19924"
+ id="path1395"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1950)"
+ d="M 952.44023,101.03683 1056.2572,311.16797"
+ id="path1425"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1960)"
+ d="m 1055.605,320.94286 -293.89186,9.27867"
+ id="path1461"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle995"
+ cx="1136.7375"
+ cy="326.53745"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle997"
+ cx="1182.6351"
+ cy="240.40324"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle999"
+ cx="1242.6366"
+ cy="193.71356"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1001"
+ cx="1307.9415"
+ cy="175.0923"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1003"
+ cx="1349.3497"
+ cy="174.6911"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1005"
+ cx="1257.9054"
+ cy="231.36681"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1007"
+ cx="1335.5813"
+ cy="92.946053"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1009"
+ cx="1445.4048"
+ cy="316.8284"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2644)"
+ d="m 1180.6084,244.46984 -39.367,73.54152"
+ id="path1011"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2816)"
+ d="m 1239.2175,197.24738 -48.4404,36.88694"
+ id="path1015"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2838)"
+ d="m 1284.8779,182.16393 -32.8837,8.69811"
+ id="path1017"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1900)"
+ d="m 1312.5731,175.13895 30.642,-0.15315"
+ id="path1019"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2730)"
+ d="m 1346.0276,178.03976 -79.29,49.0325"
+ id="path1021"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2676)"
+ d="M 1443.3183,312.95924 1340.6121,101.88125"
+ id="path1025"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2660)"
+ d="m 1141.3047,326.72802 294.7223,-8.63214"
+ id="path1027"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1341"
+ cx="1284.6919"
+ cy="182.21416"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2692)"
+ d="m 1333.1858,96.850075 -42.8181,76.404755"
+ id="path1023"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2714)"
+ d="m 1260.3216,227.4814 19.5513,-36.48655"
+ id="path1373"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2764)"
+ d="m 1289.1656,181.47107 9.2725,-2.8258"
+ id="path1403"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="29.738272"
+ y="392.17133"
+ id="text1429"><tspan
+ sodipodi:role="line"
+ id="tspan1427"
+ x="29.738272"
+ y="392.17133">1. Path Descriptions </tspan><tspan
+ sodipodi:role="line"
+ x="29.738272"
+ y="425.5047"
+ id="tspan1431">Added.</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="373.73657"
+ y="383.69681"
+ id="text1437"><tspan
+ sodipodi:role="line"
+ x="373.73657"
+ y="383.69681"
+ id="tspan1435">2. Path::Convert</tspan><tspan
+ sodipodi:role="line"
+ x="373.73657"
+ y="417.03018"
+ id="tspan1441">or</tspan><tspan
+ sodipodi:role="line"
+ x="373.73657"
+ y="450.36356"
+ id="tspan1443">Path::ConvertWithBackData</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="763.67297"
+ y="372.67661"
+ id="text1451"><tspan
+ sodipodi:role="line"
+ x="763.67297"
+ y="372.67661"
+ id="tspan1449">3. Path::Fill</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1114.0807"
+ y="381.37952"
+ id="text1460"><tspan
+ sodipodi:role="line"
+ x="1114.0807"
+ y="381.37952"
+ id="tspan1458">4. Shape::ConvertToShape</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/process-flat-to-convert.svg.2020_08_20_00_55_09.0.svg b/doc/livarot-images/process-flat-to-convert.svg.2020_08_20_00_55_09.0.svg
new file mode 100644
index 0000000..33c525e
--- /dev/null
+++ b/doc/livarot-images/process-flat-to-convert.svg.2020_08_20_00_55_09.0.svg
@@ -0,0 +1,566 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1500"
+ height="500"
+ viewBox="0 0 1500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="process-flat-to-convert.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1655"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1653" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1645"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1643" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1635"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1633" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1625"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1623" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1615"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1613" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1605"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1603" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1595"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1593" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1585"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1583" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1575"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1573" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1465"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1463" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1429"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1427" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1399"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1397" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1369"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1367" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1339"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1337" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1309"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1307" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1279"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1277" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1261"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path1259" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow2Mend"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.6) rotate(180) translate(0,0)"
+ d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#0000ff;stroke-opacity:1;fill:#0000ff;fill-opacity:1"
+ id="path982" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker923"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path921" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.8380483"
+ inkscape:cx="933.59895"
+ inkscape:cy="234.21582"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:lockguides="true" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 35.326022,353.69409 c 0,0 41.895205,-165.85263 212.908788,-152.66748 l -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 390.08736,342.48623 c 0,0 41.8952,-165.85263 212.90879,-152.66748 l -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path835" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="path831"
+ cx="391.24176"
+ cy="341.56976"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle853"
+ cx="437.13937"
+ cy="255.43558"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle855"
+ cx="497.14078"
+ cy="208.7459"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle857"
+ cx="562.44568"
+ cy="190.12463"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle859"
+ cx="603.85394"
+ cy="189.72343"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle861"
+ cx="512.40961"
+ cy="246.39914"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle863"
+ cx="590.08545"
+ cy="107.97838"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle865"
+ cx="699.90894"
+ cy="331.86072"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0"
+ d="m 390.08736,342.48623 47.54346,-88.03417 60.38131,-45.9603 64.83556,-18.10578 40.14846,-0.56723 -92.49916,57.62752 79.35282,-138.30902 109.79549,222.65806 z"
+ id="path883" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle887"
+ cx="751.59222"
+ cy="330.35614"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle889"
+ cx="797.48981"
+ cy="244.22194"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle891"
+ cx="857.49121"
+ cy="197.53226"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle893"
+ cx="922.79614"
+ cy="178.911"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle895"
+ cx="964.20441"
+ cy="178.5098"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle897"
+ cx="872.76007"
+ cy="235.1855"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle899"
+ cx="950.43591"
+ cy="96.76474"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle901"
+ cx="1060.2594"
+ cy="320.64709"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
+ d="m 750.43782,331.27259 47.03937,-86.55458"
+ id="path905" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1261)"
+ d="m 750.43782,331.27259 47.03937,-86.55458"
+ id="path1235" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1279)"
+ d="M 797.47719,244.71801 857.5353,197.79005"
+ id="path1275"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1309)"
+ d="m 857.5353,197.79005 64.93717,-18.08061"
+ id="path1305"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1339)"
+ d="m 922.47247,179.70944 40.87414,-1.10433"
+ id="path1335"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1369)"
+ d="m 963.34661,178.60511 -92.49916,57.62752"
+ id="path1365"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1399)"
+ d="M 870.84745,236.23263 950.20027,97.923613"
+ id="path1395"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1429)"
+ d="M 950.20027,97.923613 1059.9958,320.58167"
+ id="path1425"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1465)"
+ d="M 1059.9958,320.58167 750.43782,331.27259"
+ id="path1461"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1539"
+ cx="1110.3844"
+ cy="318.76852"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1541"
+ cx="1156.282"
+ cy="232.63429"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1543"
+ cx="1216.2834"
+ cy="185.94461"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1545"
+ cx="1281.5884"
+ cy="167.32335"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1547"
+ cx="1322.9966"
+ cy="166.92215"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1549"
+ cx="1231.5522"
+ cy="223.59785"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1551"
+ cx="1309.2281"
+ cy="85.177101"
+ r="4.6614089" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1553"
+ cx="1419.0516"
+ cy="309.05948"
+ r="4.6614089" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1655)"
+ d="m 1109.23,319.68495 47.0393,-86.55458"
+ id="path1555" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1645)"
+ d="m 1109.23,319.68495 47.0393,-86.55458"
+ id="path1557" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1635)"
+ d="m 1156.2693,233.13037 60.0582,-46.92796"
+ id="path1559"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1625)"
+ d="m 1216.3275,186.20241 64.9371,-18.08061"
+ id="path1561"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1615)"
+ d="m 1281.2646,168.1218 40.8742,-1.10433"
+ id="path1563"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1605)"
+ d="m 1322.1388,167.01747 -92.4992,57.62752"
+ id="path1565"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1595)"
+ d="M 1229.6396,224.64499 1308.9924,86.335971"
+ id="path1567"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1585)"
+ d="M 1308.9924,86.335971 1418.788,308.99403"
+ id="path1569"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1575)"
+ d="M 1418.788,308.99403 1109.23,319.68495"
+ id="path1571"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:3.6465;stroke-dasharray:7.293, 7.293"
+ id="circle1771"
+ cx="1258.8988"
+ cy="174.04913"
+ r="4.6614089" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/rounded-edge-diagonal-avoid.svg b/doc/livarot-images/rounded-edge-diagonal-avoid.svg
new file mode 100644
index 0000000..d376a55
--- /dev/null
+++ b/doc/livarot-images/rounded-edge-diagonal-avoid.svg
@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="500"
+ height="500"
+ viewBox="0 0 500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (80318448fe, 2020-08-23, custom)"
+ sodipodi:docname="rounded-edge-diagonal-avoid.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1049"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1047" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker977"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path975" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker939"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path937" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker911"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path909" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4345874"
+ inkscape:cx="266.27865"
+ inkscape:cy="248.50351"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 191.78627,187.96645 V 316.27874 H 313.09566"
+ id="path971" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.54245;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect833"
+ width="119.04181"
+ height="119.04181"
+ x="130.48016"
+ y="128.77312" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.54245;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect835"
+ width="119.04181"
+ height="119.04181"
+ x="249.52196"
+ y="128.77312" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.54245;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect837"
+ width="119.04181"
+ height="119.04181"
+ x="130.48016"
+ y="247.81493" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.54245;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect839"
+ width="119.04181"
+ height="119.04181"
+ x="249.52196"
+ y="247.81493" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path841"
+ cx="191.12761"
+ cy="189.35629"
+ r="39.345333" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle859"
+ cx="311.5365"
+ cy="310.30621"
+ r="39.345333" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="235.49031"
+ y="76.456963"
+ id="text863"><tspan
+ sodipodi:role="line"
+ id="tspan861"
+ x="235.49031"
+ y="76.456963"
+ style="font-size:26.6667px">lp</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 214.05208,70.449106 c 0,0 -39.62381,9.305858 -28.67538,74.636724"
+ id="path865"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff00ff;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle895"
+ cx="191.12761"
+ cy="310.30621"
+ r="39.345333" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="406.09329"
+ y="317.00021"
+ id="text899"><tspan
+ sodipodi:role="line"
+ id="tspan897"
+ x="406.09329"
+ y="317.00021"
+ style="font-size:26.6667px">lftN</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker911)"
+ d="m 426.08485,291.19709 c 0,0 -2.05097,-13.04856 -67.38183,-2.10013"
+ id="path907"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="151.58751"
+ y="410.58646"
+ id="text933"><tspan
+ sodipodi:role="line"
+ id="tspan931"
+ x="151.58751"
+ y="410.58646"
+ style="font-size:26.6667px">lftN-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker939)"
+ d="m 144.77976,384.51252 c 0,0 -5.00305,-17.31523 14.35045,-42.59101"
+ id="path935"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 191.78627,187.96645 312.10026,312.47717"
+ id="path969"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker977)"
+ d="m 358.64187,93.761094 c 0,0 -72.99126,47.745006 -98.73333,140.759806"
+ id="path973"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="363.58093"
+ y="94.583557"
+ id="text993"><tspan
+ sodipodi:role="line"
+ id="tspan991"
+ x="363.58093"
+ y="94.583557"
+ style="font-size:16px">we want to</tspan><tspan
+ sodipodi:role="line"
+ x="363.58093"
+ y="114.58356"
+ id="tspan995"
+ style="font-size:16px">avoid</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1049)"
+ d="m 75.850462,292.37458 c 0,0 7.461366,-36.31628 109.013618,-30.14191"
+ id="path1045"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="9.8154373"
+ y="310.22327"
+ id="text1127"><tspan
+ sodipodi:role="line"
+ x="9.8154373"
+ y="310.22327"
+ id="tspan1125"
+ style="font-size:16px">we prefer</tspan><tspan
+ sodipodi:role="line"
+ x="9.8154373"
+ y="330.22327"
+ style="font-size:16px"
+ id="tspan1131">the magenta</tspan><tspan
+ sodipodi:role="line"
+ x="9.8154373"
+ y="350.22327"
+ style="font-size:16px"
+ id="tspan1133">edges instead</tspan><tspan
+ sodipodi:role="line"
+ x="9.8154373"
+ y="370.22327"
+ style="font-size:16px"
+ id="tspan1135">of the red</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/sequence-convert-shape-loop.svg b/doc/livarot-images/sequence-convert-shape-loop.svg
new file mode 100644
index 0000000..2070a79
--- /dev/null
+++ b/doc/livarot-images/sequence-convert-shape-loop.svg
@@ -0,0 +1,618 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="460.31302"
+ height="590.33685"
+ viewBox="0 0 460.31302 590.33685"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (b11d04efb7, 2020-08-25, custom)"
+ sodipodi:docname="sequence-convert-shape-loop.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#008000;fill-opacity:1;fill-rule:evenodd;stroke:#008000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.53018718"
+ inkscape:cx="475.30384"
+ inkscape:cy="510.19717"
+ inkscape:document-units="px"
+ inkscape:current-layer="g1066"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-85.279484,-60.687766)">
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="path829"
+ cx="119.1729"
+ cy="213.40791"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle831"
+ cx="231.82152"
+ cy="211.8035"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle833"
+ cx="340.60272"
+ cy="215.01233"
+ r="22.591625" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle835"
+ cx="117.87111"
+ cy="303.18491"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle837"
+ cx="230.51976"
+ cy="301.58047"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle839"
+ cx="339.30096"
+ cy="304.78931"
+ r="22.591625" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle843"
+ cx="118.44617"
+ cy="398.50806"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle845"
+ cx="231.09483"
+ cy="396.90359"
+ r="22.591625" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.966873;stroke-linecap:square;stroke-dasharray:0.966873, 0.966873"
+ id="circle847"
+ cx="339.87604"
+ cy="400.11243"
+ r="22.591625" />
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="114.44395"
+ y="218.86243"
+ id="text851"><tspan
+ sodipodi:role="line"
+ id="tspan849"
+ x="114.44395"
+ y="218.86243"
+ style="stroke-width:0.966873">0</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="225.49794"
+ y="217.54526"
+ id="text855"><tspan
+ sodipodi:role="line"
+ id="tspan853"
+ x="225.49794"
+ y="217.54526"
+ style="stroke-width:0.966873">1</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="335.65616"
+ y="219.52641"
+ id="text859"><tspan
+ sodipodi:role="line"
+ id="tspan857"
+ x="335.65616"
+ y="219.52641"
+ style="stroke-width:0.966873">2</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="224.48131"
+ y="308.00348"
+ id="text863"><tspan
+ sodipodi:role="line"
+ id="tspan861"
+ x="224.48131"
+ y="308.00348"
+ style="stroke-width:0.966873">4</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="113.22529"
+ y="309.7952"
+ id="text867"><tspan
+ sodipodi:role="line"
+ id="tspan865"
+ x="113.22529"
+ y="309.7952"
+ style="stroke-width:0.966873">3</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="333.99774"
+ y="311.33444"
+ id="text871"><tspan
+ sodipodi:role="line"
+ id="tspan869"
+ x="333.99774"
+ y="311.33444"
+ style="stroke-width:0.966873">5</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="113.64395"
+ y="403.90793"
+ id="text875"><tspan
+ sodipodi:role="line"
+ id="tspan873"
+ x="113.64395"
+ y="403.90793"
+ style="stroke-width:0.966873">6</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="225.44637"
+ y="403.42715"
+ id="text879"><tspan
+ sodipodi:role="line"
+ id="tspan877"
+ x="225.44637"
+ y="403.42715"
+ style="stroke-width:0.966873">7</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:15.4699px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;stroke-width:0.966873"
+ x="334.24973"
+ y="407.63211"
+ id="text883"><tspan
+ sodipodi:role="line"
+ id="tspan881"
+ x="334.24973"
+ y="407.63211"
+ style="stroke-width:0.966873">8</tspan></text>
+ <g
+ id="g926"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,-30.619609)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect917"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text921"><tspan
+ sodipodi:role="line"
+ id="tspan919"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 0</tspan></text>
+ </g>
+ <g
+ id="g934"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,-0.82354433)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect928"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text932"><tspan
+ sodipodi:role="line"
+ id="tspan930"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Reconstruction block</tspan></text>
+ </g>
+ <g
+ id="g942"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,28.972516)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect936"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text940"><tspan
+ sodipodi:role="line"
+ id="tspan938"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g950"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,58.768579)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect944"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text948"><tspan
+ sodipodi:role="line"
+ id="tspan946"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 1</tspan></text>
+ </g>
+ <g
+ id="g958"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,88.564639)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect952"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text956"><tspan
+ sodipodi:role="line"
+ id="tspan954"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g966"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,118.3607)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect960"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text964"><tspan
+ sodipodi:role="line"
+ id="tspan962"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 2</tspan></text>
+ </g>
+ <g
+ id="g974"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,148.15676)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect968"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text972"><tspan
+ sodipodi:role="line"
+ id="tspan970"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g990"
+ transform="matrix(0.53659598,0,0,0.53651321,143.85939,177.94316)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect984"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text988"><tspan
+ sodipodi:role="line"
+ id="tspan986"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 3</tspan></text>
+ </g>
+ <g
+ id="g998"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,207.75172)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect992"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text996"><tspan
+ sodipodi:role="line"
+ id="tspan994"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Reconstruction block</tspan></text>
+ </g>
+ <g
+ id="g1006"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,237.54778)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1000"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1004"><tspan
+ sodipodi:role="line"
+ id="tspan1002"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g1014"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,267.34385)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1008"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1012"><tspan
+ sodipodi:role="line"
+ id="tspan1010"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 4</tspan></text>
+ </g>
+ <g
+ id="g1022"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,297.13991)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1016"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1020"><tspan
+ sodipodi:role="line"
+ id="tspan1018"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g1030"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,326.93597)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1024"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1028"><tspan
+ sodipodi:role="line"
+ id="tspan1026"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 5</tspan></text>
+ </g>
+ <g
+ id="g1038"
+ transform="matrix(0.53646214,0,0,0.53646214,143.95697,356.73203)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1032"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1036"><tspan
+ sodipodi:role="line"
+ id="tspan1034"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:35.3405px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:2.20878"
+ x="499.6633"
+ y="-462.91425"
+ id="text1042"
+ transform="rotate(90)"><tspan
+ sodipodi:role="line"
+ id="tspan1040"
+ x="499.6633"
+ y="-462.91425"
+ style="stroke-width:2.20878">....</tspan></text>
+ <g
+ id="g1050"
+ transform="matrix(0.53646214,0,0,0.53646214,144.14933,449.79259)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1044"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1048"><tspan
+ sodipodi:role="line"
+ id="tspan1046"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Add point 8</tspan></text>
+ </g>
+ <g
+ id="g1058"
+ transform="matrix(0.53646214,0,0,0.53646214,144.14933,479.58865)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linecap:square;stroke-dasharray:1, 1"
+ id="rect1052"
+ width="254.51257"
+ height="55.541786"
+ x="474.66269"
+ y="189.34348" />
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="486.30383"
+ y="224.65175"
+ id="text1056"><tspan
+ sodipodi:role="line"
+ id="tspan1054"
+ x="486.30383"
+ y="224.65175"
+ style="font-size:21.3333px">Sweepline stuff</tspan></text>
+ </g>
+ <g
+ id="g1066"
+ transform="matrix(0.85532258,0,0,0.85532258,173.19641,770.13583)"
+ style="stroke:#008000">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#008000;stroke-width:0.627204;stroke-linecap:square;stroke-dasharray:0.627204, 0.627204"
+ id="rect1060"
+ width="159.63142"
+ height="34.836056"
+ x="263.75018"
+ y="-186.09998" />
+ <text
+ xml:space="preserve"
+ style="font-size:13.3803px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke:none;stroke-width:0.627204"
+ x="271.05154"
+ y="-163.95447"
+ id="text1064"><tspan
+ sodipodi:role="line"
+ id="tspan1062"
+ x="271.05154"
+ y="-163.95447"
+ style="font-size:13.3803px;fill:#008000;stroke:none;stroke-width:0.627204">Reconstruction block</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16.4634px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000;stroke:none;stroke-width:1.02896"
+ x="39.374828"
+ y="-226.5031"
+ id="text1070"><tspan
+ sodipodi:role="line"
+ id="tspan1068"
+ style="fill:#008000;stroke:none;stroke-width:1.02896"
+ x="39.374828"
+ y="-226.5031">Written after the loop</tspan></text>
+ <path
+ style="fill:none;stroke:#008000;stroke-width:0.733296;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 128.95645,-211.67322 c 0,0 4.50002,41.77953 117.60645,44.43107"
+ id="path1072" />
+ </g>
+ </g>
+</svg>
diff --git a/doc/livarot-images/situation-from-add-chgt.svg b/doc/livarot-images/situation-from-add-chgt.svg
new file mode 100644
index 0000000..a106f95
--- /dev/null
+++ b/doc/livarot-images/situation-from-add-chgt.svg
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="332.26663"
+ height="300.29181"
+ viewBox="0 0 332.26663 300.29181"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
+ sodipodi:docname="situation-from-add-chgt.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker966"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path964" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker883"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path881" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.5020252"
+ inkscape:cx="173.09963"
+ inkscape:cy="155.45678"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-103.57619,-121.75057)">
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="path829"
+ cx="168.05617"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle831"
+ cx="263.57138"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle833"
+ cx="359.08658"
+ cy="182.92595"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle835"
+ cx="167.10698"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle837"
+ cx="262.62219"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle839"
+ cx="358.13739"
+ cy="267.31601"
+ r="14.716245" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle841"
+ cx="168.34859"
+ cy="352.23386"
+ r="14.716245" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="234.48026"
+ y="409.72568"
+ id="text865"><tspan
+ sodipodi:role="line"
+ id="tspan863"
+ x="234.48026"
+ y="409.72568">lastPointNo</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="119.64504"
+ y="409.64163"
+ id="text877"><tspan
+ sodipodi:role="line"
+ id="tspan875"
+ x="119.64504"
+ y="409.64163">lastChgtPt</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker883)"
+ d="m 124.10989,390.24057 c 0,0 -8.78406,-11.69035 14.78151,-27.12439"
+ id="path952" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke-width:0.00465015;stroke-linecap:square"
+ id="circle960"
+ cx="262.62219"
+ cy="352.23386"
+ r="14.716245" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker966)"
+ d="m 320.20628,386.42472 c 0,0 -0.42318,-24.77027 -27.56073,-28.67999"
+ id="path962" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/snap-rounding-with.svg b/doc/livarot-images/snap-rounding-with.svg
new file mode 100644
index 0000000..702186f
--- /dev/null
+++ b/doc/livarot-images/snap-rounding-with.svg
@@ -0,0 +1,806 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (b11d04efb7, 2020-08-25, custom)"
+ sodipodi:docname="snap-rounding-with.svg"
+ inkscape:export-filename="/home/moazin/Desktop/snap-rounding-with.png"
+ inkscape:export-xdpi="96"
+ inkscape:export-ydpi="96"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.67911215"
+ inkscape:cx="222.34914"
+ inkscape:cy="539.67522"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 198.67033,286.84145 368.40575,285.112 792.25904,194.9126 793.43268,626.26572 618.80571,542.56997 368.40575,285.112 l 0.16756,174.08651 250.2324,83.37146 -424.4699,84.86538 z"
+ id="path1061"
+ sodipodi:nodetypes="cccccccccc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect829"
+ width="84.756966"
+ height="84.756966"
+ x="71.449844"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect831"
+ width="84.756966"
+ height="84.756966"
+ x="156.20682"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect833"
+ width="84.756966"
+ height="84.756966"
+ x="240.96378"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect835"
+ width="84.756966"
+ height="84.756966"
+ x="325.72073"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect837"
+ width="84.756966"
+ height="84.756966"
+ x="410.47769"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect839"
+ width="84.756966"
+ height="84.756966"
+ x="495.23468"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect841"
+ width="84.756966"
+ height="84.756966"
+ x="579.99164"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect843"
+ width="84.756966"
+ height="84.756966"
+ x="664.7486"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect845"
+ width="84.756966"
+ height="84.756966"
+ x="749.50555"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect847"
+ width="84.756966"
+ height="84.756966"
+ x="834.26251"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect849"
+ width="84.756966"
+ height="84.756966"
+ x="71.449875"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect851"
+ width="84.756966"
+ height="84.756966"
+ x="156.20685"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect853"
+ width="84.756966"
+ height="84.756966"
+ x="240.96381"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect855"
+ width="84.756966"
+ height="84.756966"
+ x="325.72076"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect857"
+ width="84.756966"
+ height="84.756966"
+ x="410.47772"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect859"
+ width="84.756966"
+ height="84.756966"
+ x="495.23471"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect861"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect863"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect865"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect867"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect869"
+ width="84.756966"
+ height="84.756966"
+ x="71.449905"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect871"
+ width="84.756966"
+ height="84.756966"
+ x="156.20688"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect873"
+ width="84.756966"
+ height="84.756966"
+ x="240.96384"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect875"
+ width="84.756966"
+ height="84.756966"
+ x="325.72079"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect877"
+ width="84.756966"
+ height="84.756966"
+ x="410.47775"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect879"
+ width="84.756966"
+ height="84.756966"
+ x="495.23474"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect881"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect883"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect885"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect887"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect889"
+ width="84.756966"
+ height="84.756966"
+ x="71.449875"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect891"
+ width="84.756966"
+ height="84.756966"
+ x="156.20685"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect893"
+ width="84.756966"
+ height="84.756966"
+ x="240.96381"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect895"
+ width="84.756966"
+ height="84.756966"
+ x="325.72076"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect897"
+ width="84.756966"
+ height="84.756966"
+ x="410.47772"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect899"
+ width="84.756966"
+ height="84.756966"
+ x="495.23471"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect901"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect903"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect905"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect907"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect909"
+ width="84.756966"
+ height="84.756966"
+ x="71.449905"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect911"
+ width="84.756966"
+ height="84.756966"
+ x="156.20688"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect913"
+ width="84.756966"
+ height="84.756966"
+ x="240.96384"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect915"
+ width="84.756966"
+ height="84.756966"
+ x="325.72079"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect917"
+ width="84.756966"
+ height="84.756966"
+ x="410.47775"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect919"
+ width="84.756966"
+ height="84.756966"
+ x="495.23474"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect921"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect923"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect925"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect927"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect929"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect931"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect933"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect935"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect937"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect939"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect941"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect943"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect945"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect947"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect949"
+ width="84.756966"
+ height="84.756966"
+ x="71.449966"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect951"
+ width="84.756966"
+ height="84.756966"
+ x="156.20694"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect953"
+ width="84.756966"
+ height="84.756966"
+ x="240.9639"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect955"
+ width="84.756966"
+ height="84.756966"
+ x="325.72086"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect957"
+ width="84.756966"
+ height="84.756966"
+ x="410.47781"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect959"
+ width="84.756966"
+ height="84.756966"
+ x="495.2348"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect961"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect963"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect965"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect967"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect969"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect971"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect973"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect975"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect977"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect979"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect981"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect983"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect985"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect987"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect989"
+ width="84.756966"
+ height="84.756966"
+ x="71.449966"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect991"
+ width="84.756966"
+ height="84.756966"
+ x="156.20694"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect993"
+ width="84.756966"
+ height="84.756966"
+ x="240.9639"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect995"
+ width="84.756966"
+ height="84.756966"
+ x="325.72086"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect997"
+ width="84.756966"
+ height="84.756966"
+ x="410.47781"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect999"
+ width="84.756966"
+ height="84.756966"
+ x="495.2348"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1001"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1003"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1005"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1007"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1009"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1011"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1013"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1015"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1017"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1019"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1021"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1023"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1025"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1027"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="834.30713" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1029"
+ cx="196.42531"
+ cy="283.91745"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1031"
+ cx="791.37793"
+ cy="197.10309"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1033"
+ cx="792.03827"
+ cy="625.56738"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1035"
+ cx="369.68683"
+ cy="285.2713"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1037"
+ cx="195.70045"
+ cy="625.53809"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1057"
+ cx="370.71881"
+ cy="455.9498"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1059"
+ cx="618.74072"
+ cy="541.64209"
+ r="21.058813" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/snap-rounding-without.png b/doc/livarot-images/snap-rounding-without.png
new file mode 100644
index 0000000..deb4620
--- /dev/null
+++ b/doc/livarot-images/snap-rounding-without.png
Binary files differ
diff --git a/doc/livarot-images/snap-rounding-without.svg b/doc/livarot-images/snap-rounding-without.svg
new file mode 100644
index 0000000..e6da690
--- /dev/null
+++ b/doc/livarot-images/snap-rounding-without.svg
@@ -0,0 +1,802 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (b11d04efb7, 2020-08-25, custom)"
+ sodipodi:docname="snap-rounding-without.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.8217843"
+ inkscape:cx="461.19158"
+ inkscape:cy="497.08908"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#ff00ff;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="M 198.67033,286.84145 792.25904,194.9126 793.43268,626.26572 368.40575,285.112 l 0.16756,174.08651 257.76564,84.28271 -432.00314,83.95413 z"
+ id="path1061" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect829"
+ width="84.756966"
+ height="84.756966"
+ x="71.449844"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect831"
+ width="84.756966"
+ height="84.756966"
+ x="156.20682"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect833"
+ width="84.756966"
+ height="84.756966"
+ x="240.96378"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect835"
+ width="84.756966"
+ height="84.756966"
+ x="325.72073"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect837"
+ width="84.756966"
+ height="84.756966"
+ x="410.47769"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect839"
+ width="84.756966"
+ height="84.756966"
+ x="495.23468"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect841"
+ width="84.756966"
+ height="84.756966"
+ x="579.99164"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect843"
+ width="84.756966"
+ height="84.756966"
+ x="664.7486"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect845"
+ width="84.756966"
+ height="84.756966"
+ x="749.50555"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect847"
+ width="84.756966"
+ height="84.756966"
+ x="834.26251"
+ y="71.494476" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect849"
+ width="84.756966"
+ height="84.756966"
+ x="71.449875"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect851"
+ width="84.756966"
+ height="84.756966"
+ x="156.20685"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect853"
+ width="84.756966"
+ height="84.756966"
+ x="240.96381"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect855"
+ width="84.756966"
+ height="84.756966"
+ x="325.72076"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect857"
+ width="84.756966"
+ height="84.756966"
+ x="410.47772"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect859"
+ width="84.756966"
+ height="84.756966"
+ x="495.23471"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect861"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect863"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect865"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect867"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="156.25143" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect869"
+ width="84.756966"
+ height="84.756966"
+ x="71.449905"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect871"
+ width="84.756966"
+ height="84.756966"
+ x="156.20688"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect873"
+ width="84.756966"
+ height="84.756966"
+ x="240.96384"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect875"
+ width="84.756966"
+ height="84.756966"
+ x="325.72079"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect877"
+ width="84.756966"
+ height="84.756966"
+ x="410.47775"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect879"
+ width="84.756966"
+ height="84.756966"
+ x="495.23474"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect881"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect883"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect885"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect887"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="241.00839" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect889"
+ width="84.756966"
+ height="84.756966"
+ x="71.449875"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect891"
+ width="84.756966"
+ height="84.756966"
+ x="156.20685"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect893"
+ width="84.756966"
+ height="84.756966"
+ x="240.96381"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect895"
+ width="84.756966"
+ height="84.756966"
+ x="325.72076"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect897"
+ width="84.756966"
+ height="84.756966"
+ x="410.47772"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect899"
+ width="84.756966"
+ height="84.756966"
+ x="495.23471"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect901"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect903"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect905"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect907"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="325.76535" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect909"
+ width="84.756966"
+ height="84.756966"
+ x="71.449905"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect911"
+ width="84.756966"
+ height="84.756966"
+ x="156.20688"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect913"
+ width="84.756966"
+ height="84.756966"
+ x="240.96384"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect915"
+ width="84.756966"
+ height="84.756966"
+ x="325.72079"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect917"
+ width="84.756966"
+ height="84.756966"
+ x="410.47775"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect919"
+ width="84.756966"
+ height="84.756966"
+ x="495.23474"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect921"
+ width="84.756966"
+ height="84.756966"
+ x="579.9917"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect923"
+ width="84.756966"
+ height="84.756966"
+ x="664.74866"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect925"
+ width="84.756966"
+ height="84.756966"
+ x="749.50562"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect927"
+ width="84.756966"
+ height="84.756966"
+ x="834.26257"
+ y="410.52231" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect929"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect931"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect933"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect935"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect937"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect939"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect941"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect943"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect945"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect947"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="495.27927" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect949"
+ width="84.756966"
+ height="84.756966"
+ x="71.449966"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect951"
+ width="84.756966"
+ height="84.756966"
+ x="156.20694"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect953"
+ width="84.756966"
+ height="84.756966"
+ x="240.9639"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect955"
+ width="84.756966"
+ height="84.756966"
+ x="325.72086"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect957"
+ width="84.756966"
+ height="84.756966"
+ x="410.47781"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect959"
+ width="84.756966"
+ height="84.756966"
+ x="495.2348"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect961"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect963"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect965"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect967"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="580.03625" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect969"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect971"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect973"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect975"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect977"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect979"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect981"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect983"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect985"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect987"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="664.79321" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect989"
+ width="84.756966"
+ height="84.756966"
+ x="71.449966"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect991"
+ width="84.756966"
+ height="84.756966"
+ x="156.20694"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect993"
+ width="84.756966"
+ height="84.756966"
+ x="240.9639"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect995"
+ width="84.756966"
+ height="84.756966"
+ x="325.72086"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect997"
+ width="84.756966"
+ height="84.756966"
+ x="410.47781"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect999"
+ width="84.756966"
+ height="84.756966"
+ x="495.2348"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1001"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1003"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1005"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1007"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="749.55017" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1009"
+ width="84.756966"
+ height="84.756966"
+ x="71.449936"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1011"
+ width="84.756966"
+ height="84.756966"
+ x="156.20691"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1013"
+ width="84.756966"
+ height="84.756966"
+ x="240.96387"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1015"
+ width="84.756966"
+ height="84.756966"
+ x="325.72083"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1017"
+ width="84.756966"
+ height="84.756966"
+ x="410.47778"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1019"
+ width="84.756966"
+ height="84.756966"
+ x="495.23477"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1021"
+ width="84.756966"
+ height="84.756966"
+ x="579.99176"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1023"
+ width="84.756966"
+ height="84.756966"
+ x="664.74872"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1025"
+ width="84.756966"
+ height="84.756966"
+ x="749.50568"
+ y="834.30713" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1027"
+ width="84.756966"
+ height="84.756966"
+ x="834.26263"
+ y="834.30713" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1029"
+ cx="196.42531"
+ cy="283.91745"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1031"
+ cx="791.37793"
+ cy="197.10309"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1033"
+ cx="792.03827"
+ cy="625.56738"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1035"
+ cx="369.68683"
+ cy="285.2713"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1037"
+ cx="195.70045"
+ cy="625.53809"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1057"
+ cx="370.71881"
+ cy="455.9498"
+ r="21.058813" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1059"
+ cx="618.74072"
+ cy="541.64209"
+ r="21.058813" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/sweep-tree.svg b/doc/livarot-images/sweep-tree.svg
new file mode 100644
index 0000000..6e9b15b
--- /dev/null
+++ b/doc/livarot-images/sweep-tree.svg
@@ -0,0 +1,527 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="124.28852mm"
+ height="94.016853mm"
+ viewBox="0 0 124.28852 94.016851"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="sweep-tree.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1760"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1758" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1726"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1724" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1692"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1690" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1658"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1656" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1624"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1622" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lstart"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path948" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1570"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1568" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1552"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1550" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1528"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1526" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1510"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1508" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1492"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1490" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1456"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1454" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1342"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1340" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1318"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1316" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1294"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1292" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1270"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1268" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1246"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1244" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path951" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow2Mend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow2Mend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(-0.6)"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+ id="path975" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="28"
+ inkscape:cy="292.5"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-40.978363,-3.0172235)">
+ <g
+ id="g832">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="path823"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text827"><tspan
+ sodipodi:role="line"
+ id="tspan825"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302">10</tspan></text>
+ </g>
+ <g
+ id="g872"
+ transform="translate(-23.348819,27.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle866"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text870"><tspan
+ sodipodi:role="line"
+ id="tspan868"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"> 5</tspan></text>
+ </g>
+ <g
+ id="g880"
+ transform="translate(22.799712,27.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle874"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text878"><tspan
+ sodipodi:role="line"
+ id="tspan876"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302">15</tspan></text>
+ </g>
+ <g
+ id="g888"
+ transform="translate(-45.471245,58.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle882"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text886"><tspan
+ sodipodi:role="line"
+ id="tspan884"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"> 2</tspan></text>
+ </g>
+ <g
+ id="g896"
+ transform="translate(-10.320324,58.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle890"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text894"><tspan
+ sodipodi:role="line"
+ id="tspan892"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"> 6</tspan></text>
+ </g>
+ <g
+ id="g904"
+ transform="translate(13.727096,58.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle898"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text902"><tspan
+ sodipodi:role="line"
+ id="tspan900"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302">12</tspan></text>
+ </g>
+ <g
+ id="g912"
+ transform="translate(42.963188,58.982776)">
+ <circle
+ style="opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.765"
+ id="circle906"
+ cx="104.78666"
+ cy="20.534264"
+ r="7.1345401" />
+ <text
+ xml:space="preserve"
+ style="font-size:4.93889px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302"
+ id="text910"><tspan
+ sodipodi:role="line"
+ id="tspan908"
+ style="font-size:4.93889px;stroke-width:0.264583"
+ x="101.53806"
+ y="22.276302">16</tspan></text>
+ </g>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="M 100.25707,26.41835 86.117126,42.284718"
+ id="path946"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1246)"
+ d="m 110.55328,25.303924 13.32307,16.504903"
+ id="path1242"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1270)"
+ d="M 75.828181,53.445818 62.095933,72.494939"
+ id="path1266"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1294)"
+ d="m 86.994418,53.481936 6.28842,18.408665"
+ id="path1290"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1318)"
+ d="m 123.69923,54.909719 -5.50839,16.911353"
+ id="path1314"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1342)"
+ d="M 133.16502,53.221276 144.26564,72.61295"
+ id="path1338"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#marker1456)"
+ d="m 53.998481,73.746375 c 0,0 -8.467299,-17.695479 19.445787,-25.117427"
+ id="path1452" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1624);marker-end:url(#marker1492)"
+ d="m 83.044574,55.610074 c 0,0 -6.423041,13.995289 5.671534,19.427698"
+ id="path1488" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1658);marker-end:url(#marker1510)"
+ d="m 97.226875,72.582952 c 0,0 -9.390967,-23.446878 5.899485,-45.018169"
+ id="path1506" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1692);marker-end:url(#marker1528)"
+ d="m 107.63796,27.676623 c 0,0 11.11293,17.049964 7.50924,45.042653"
+ id="path1524" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1726);marker-end:url(#marker1552)"
+ d="m 123.64723,74.063491 c 0,0 -2.08728,-6.595073 3.61579,-18.253844"
+ id="path1548" />
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1760);marker-end:url(#marker1570)"
+ d="m 135.20751,48.710794 c 0,0 13.47163,6.568286 13.01054,23.537195"
+ id="path1566" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/sweepline-list-node-add-removal.svg b/doc/livarot-images/sweepline-list-node-add-removal.svg
new file mode 100644
index 0000000..10dd86e
--- /dev/null
+++ b/doc/livarot-images/sweepline-list-node-add-removal.svg
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="sweepline-list-node-add-removal.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1675"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1673" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1603"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1601" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1501"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1499" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1491"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1489" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1481"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1479" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1471"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1469" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1461"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1459" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1451"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1449" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1235"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1233" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1219"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1217" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1195"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1193" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lstart"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path913" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker875"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path873" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.64995572"
+ inkscape:cx="361.56309"
+ inkscape:cy="626.96579"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g1847">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect829"
+ width="144.05873"
+ height="72.029366"
+ x="227.12935"
+ y="113.07404" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect833"
+ width="144.05873"
+ height="72.029366"
+ x="614.05084"
+ y="113.07404" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 398.25309,147.95307 H 580.47504"
+ id="path835" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="248.59921"
+ y="158.92729"
+ id="text851"><tspan
+ sodipodi:role="line"
+ id="tspan849"
+ x="248.59921"
+ y="158.92729">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="638.16888"
+ y="158.95834"
+ id="text855"><tspan
+ sodipodi:role="line"
+ id="tspan853"
+ x="638.16888"
+ y="158.95834">Node C</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect857"
+ width="144.05873"
+ height="72.029366"
+ x="416.0134"
+ y="289.00961" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="162.1252"
+ y="150.03897"
+ id="text861"><tspan
+ sodipodi:role="line"
+ id="tspan859"
+ x="162.1252"
+ y="150.03897">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="799.82977"
+ y="150.34343"
+ id="text865"><tspan
+ sodipodi:role="line"
+ id="tspan863"
+ x="799.82977"
+ y="150.34343">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="438.8143"
+ y="334.28433"
+ id="text869"><tspan
+ sodipodi:role="line"
+ id="tspan867"
+ x="438.8143"
+ y="334.28433">Node B</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker875)"
+ d="m 479.34323,276.90051 c 0,0 -7.47623,-74.55159 0.49492,-110.25811"
+ id="path871" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="482.88586"
+ y="214.18095"
+ id="text891"><tspan
+ sodipodi:role="line"
+ id="tspan889"
+ x="482.88586"
+ y="214.18095"
+ style="font-size:16px">Node B should</tspan><tspan
+ sodipodi:role="line"
+ x="482.88586"
+ y="234.18095"
+ id="tspan893"
+ style="font-size:16px">go here!</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Lstart);marker-end:url(#marker1195)"
+ d="m 289.35549,204.02359 c 0,0 -14.54869,110.6081 100.03454,119.46346"
+ id="path911" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1235);marker-end:url(#marker1219)"
+ d="m 687.26266,201.72696 c 0,0 18.23666,80.13707 -87.49543,121.9944"
+ id="path1215" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="136.2262"
+ y="336.39407"
+ id="text1281"><tspan
+ sodipodi:role="line"
+ x="136.2262"
+ y="336.39407"
+ id="tspan1279"
+ style="font-size:16px">Test intersection of Node A</tspan><tspan
+ sodipodi:role="line"
+ x="136.2262"
+ y="356.39407"
+ style="font-size:16px"
+ id="tspan1285">and Node B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="650.39099"
+ y="326.96677"
+ id="text1291"><tspan
+ sodipodi:role="line"
+ x="650.39099"
+ y="326.96677"
+ style="font-size:16px"
+ id="tspan1295">Test interesction of Node B</tspan><tspan
+ sodipodi:role="line"
+ x="650.39099"
+ y="346.96677"
+ style="font-size:16px"
+ id="tspan1299">and Node C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="406.17383"
+ y="83.143784"
+ id="text1355"><tspan
+ sodipodi:role="line"
+ id="tspan1353"
+ x="406.17383"
+ y="83.143784">Node Insertion</tspan></text>
+ </g>
+ <g
+ id="g1993">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1393"
+ width="144.05873"
+ height="72.029366"
+ x="163.45003"
+ y="593.651" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1395"
+ width="144.05873"
+ height="72.029366"
+ x="664.37152"
+ y="593.651" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1501)"
+ d="m 321.20528,628.87828 h 64.22195"
+ id="path1397"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="186.91988"
+ y="639.50427"
+ id="text1401"><tspan
+ sodipodi:role="line"
+ id="tspan1399"
+ x="186.91988"
+ y="639.50427">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="688.48956"
+ y="639.53534"
+ id="text1405"><tspan
+ sodipodi:role="line"
+ id="tspan1403"
+ x="688.48956"
+ y="639.53534">Node C</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1407"
+ width="144.05873"
+ height="72.029366"
+ x="408.97522"
+ y="593.33228" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="106.44588"
+ y="630.61597"
+ id="text1411"><tspan
+ sodipodi:role="line"
+ id="tspan1409"
+ x="106.44588"
+ y="630.61597">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="868.15045"
+ y="630.92041"
+ id="text1415"><tspan
+ sodipodi:role="line"
+ id="tspan1413"
+ x="868.15045"
+ y="630.92041">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="431.77612"
+ y="638.60706"
+ id="text1419"><tspan
+ sodipodi:role="line"
+ id="tspan1417"
+ x="431.77612"
+ y="638.60706">Node B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="396.54059"
+ y="708.59326"
+ id="text1443"><tspan
+ sodipodi:role="line"
+ x="396.54059"
+ y="708.59326"
+ style="font-size:16px"
+ id="tspan1441">Node B is to removed!</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="390.60059"
+ y="554.08777"
+ id="text1447"><tspan
+ sodipodi:role="line"
+ id="tspan1445"
+ x="390.60059"
+ y="554.08777">Node Removal</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1603)"
+ d="m 575.83993,628.89852 h 64.22195"
+ id="path1599"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:200px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="421.59924"
+ y="689.41443"
+ id="text1657"><tspan
+ sodipodi:role="line"
+ id="tspan1655"
+ x="421.59924"
+ y="689.41443"
+ style="font-size:200px;fill:#ff0000">x</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1461);marker-end:url(#marker1675)"
+ d="m 235.19859,678.95928 c 0,0 261.58614,386.40472 501.64177,-0.73691"
+ id="path1659" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="334.86252"
+ y="879.20044"
+ id="text1697"><tspan
+ sodipodi:role="line"
+ id="tspan1695"
+ x="334.86252"
+ y="879.20044"
+ style="font-size:16px">Test intersection of Node A and Node C</tspan></text>
+ </g>
+ </g>
+</svg>
diff --git a/doc/livarot-images/sweepline-list-node-event.svg b/doc/livarot-images/sweepline-list-node-event.svg
new file mode 100644
index 0000000..113b038
--- /dev/null
+++ b/doc/livarot-images/sweepline-list-node-event.svg
@@ -0,0 +1,749 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="968.10083"
+ height="331.81192"
+ viewBox="0 0 968.10083 331.81192"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="sweepline-list-node-event.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker5479"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5477" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5433"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5431" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5393"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5391" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5353"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5351" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5313"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5311" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5267"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5265" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5033"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5031" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker5023"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path5021" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4979"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path4977" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4949"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path4947" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker4905"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path4903" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1675"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#0000ff;fill-opacity:1;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1673" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1603"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1601" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1491"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1489" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1481"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1479" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1471"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1469" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1461"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1459" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1451"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1449" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1501"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1499" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1603-3"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1601-6" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2716"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2714" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2822"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2820" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2910"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2908" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3148"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3146" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3158"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3156" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="456"
+ inkscape:cy="218.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-19.258692,-171.43173)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1393"
+ width="144.05873"
+ height="72.029366"
+ x="79.677895"
+ y="184.81586" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1395"
+ width="144.05873"
+ height="72.029366"
+ x="552.59943"
+ y="184.81586" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1501)"
+ d="m 235.43316,222.04313 h 64.22195"
+ id="path1397"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="103.14777"
+ y="230.66913"
+ id="text1401"><tspan
+ sodipodi:role="line"
+ id="tspan1399"
+ x="103.14777"
+ y="230.66913">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="576.71747"
+ y="230.7002"
+ id="text1405"><tspan
+ sodipodi:role="line"
+ id="tspan1403"
+ x="576.71747"
+ y="230.7002">Node C</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1407"
+ width="144.05873"
+ height="72.029366"
+ x="313.20309"
+ y="184.49713" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="38.673744"
+ y="221.78082"
+ id="text1411"><tspan
+ sodipodi:role="line"
+ id="tspan1409"
+ x="38.673744"
+ y="221.78082">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="336.004"
+ y="229.77191"
+ id="text1419"><tspan
+ sodipodi:role="line"
+ id="tspan1417"
+ x="336.004"
+ y="229.77191">Node B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="372.01352"
+ y="468.19766"
+ id="text1447"><tspan
+ sodipodi:role="line"
+ id="tspan1445"
+ x="372.01352"
+ y="468.19766">Intersection Event Y</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1603-3)"
+ d="m 470.06781,220.06337 h 64.22195"
+ id="path1599"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2716)"
+ d="m 711.3125,221.08891 h 64.22195"
+ id="path2712"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2736"
+ width="144.05873"
+ height="72.029366"
+ x="790.00989"
+ y="183.93173" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="814.12793"
+ y="229.81607"
+ id="text2740"><tspan
+ sodipodi:role="line"
+ id="tspan2738"
+ x="814.12793"
+ y="229.81607">Node D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="954.80743"
+ y="222.15726"
+ id="text2768"><tspan
+ sodipodi:role="line"
+ id="tspan2766"
+ x="954.80743"
+ y="222.15726">...</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5"
+ id="rect4865"
+ width="280.40131"
+ height="60.872498"
+ x="366.26901"
+ y="427.63132" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1675)"
+ d="m 411.9676,421.78292 c 0,0 -20.52681,-102.8869 -10.50871,-145.89724"
+ id="path4887" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4905)"
+ d="m 602.98362,419.05248 c 0,0 20.52681,-102.8869 10.50871,-145.89724"
+ id="path4901" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="35.503197"
+ y="467.66599"
+ id="text4929"><tspan
+ sodipodi:role="line"
+ id="tspan4927"
+ x="35.503197"
+ y="467.66599">Intersection Event X</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5"
+ id="rect4931"
+ width="280.40131"
+ height="60.872498"
+ x="31.758692"
+ y="427.09964" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="685.30121"
+ y="470.4375"
+ id="text4935"><tspan
+ sodipodi:role="line"
+ id="tspan4933"
+ x="685.30121"
+ y="470.4375">Intersection Event Z</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5"
+ id="rect4937"
+ width="280.40131"
+ height="60.872498"
+ x="681.5567"
+ y="429.87115" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4949)"
+ d="m 275.70823,415.58419 c 0,0 17.41976,-99.46264 48.07449,-147.62808"
+ id="path4945"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker4979)"
+ d="m 118.09847,415.23126 c 0,0 -20.526812,-102.8869 -10.50871,-145.89724"
+ id="path4975" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5033)"
+ d="m 701.16684,420.74245 c 0,0 -20.52681,-102.8869 -10.50871,-145.89724"
+ id="path5017" />
+ <path
+ style="fill:none;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5023)"
+ d="m 894.18286,416.01201 c 0,0 20.52681,-102.8869 10.50871,-145.89724"
+ id="path5019" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="31.799215"
+ y="397.14044"
+ id="text5241"><tspan
+ sodipodi:role="line"
+ id="tspan5239"
+ x="31.799215"
+ y="397.14044"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[0]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="201.39487"
+ y="394.77426"
+ id="text5245"><tspan
+ sodipodi:role="line"
+ id="tspan5243"
+ x="201.39487"
+ y="394.77426"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[1]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="331.86487"
+ y="412.71164"
+ id="text5249"><tspan
+ sodipodi:role="line"
+ id="tspan5247"
+ x="331.86487"
+ y="412.71164"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[0]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="594.96307"
+ y="399.85498"
+ id="text5253"><tspan
+ sodipodi:role="line"
+ id="tspan5251"
+ x="594.96307"
+ y="399.85498"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[1]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="644.31329"
+ y="366.16492"
+ id="text5257"><tspan
+ sodipodi:role="line"
+ id="tspan5255"
+ x="644.31329"
+ y="366.16492"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[0]</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke:none"
+ x="818.49713"
+ y="398.42136"
+ id="text5261"><tspan
+ sodipodi:role="line"
+ id="tspan5259"
+ x="818.49713"
+ y="398.42136"
+ style="font-size:16px;fill:#0000ff;stroke:none">sweep[1]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5267)"
+ d="m 146.80155,268.85211 c 0,0 17.80183,84.37686 9.26573,141.4038"
+ id="path5263"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="161.88095"
+ y="288.25156"
+ id="text5301"><tspan
+ sodipodi:role="line"
+ id="tspan5299"
+ x="161.88095"
+ y="288.25156"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[1]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5313)"
+ d="m 338.14022,269.7805 c 0,0 -11.59661,85.01459 -40.50607,144.5068"
+ id="path5309"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="341.47235"
+ y="286.50262"
+ id="text5341"><tspan
+ sodipodi:role="line"
+ id="tspan5339"
+ x="341.47235"
+ y="286.50262"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[0]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5353)"
+ d="m 438.36393,268.58972 c 0,0 9.90869,82.06385 -2.54565,147.47676"
+ id="path5349"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="451.87653"
+ y="285.96515"
+ id="text5381"><tspan
+ sodipodi:role="line"
+ id="tspan5379"
+ x="451.87653"
+ y="285.96515"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[1]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5393)"
+ d="m 586.78974,268.88019 c 0,0 9.90869,82.06385 -2.54565,147.47676"
+ id="path5389"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="530.96545"
+ y="288.37717"
+ id="text5421"><tspan
+ sodipodi:role="line"
+ id="tspan5419"
+ x="530.96545"
+ y="288.37717"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[0]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5433)"
+ d="m 705.77116,266.30022 c 0,0 30.56394,86.10881 18.1096,151.52172"
+ id="path5429"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="824.99908"
+ y="285.34741"
+ id="text5467"><tspan
+ sodipodi:role="line"
+ id="tspan5465"
+ x="824.99908"
+ y="285.34741"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[0]</tspan></text>
+ <path
+ style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker5479)"
+ d="m 824.20936,267.3433 c 0,0 -30.56394,86.10881 -18.1096,151.52172"
+ id="path5475"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="728.1355"
+ y="288.90375"
+ id="text5603"><tspan
+ sodipodi:role="line"
+ id="tspan5601"
+ x="728.1355"
+ y="288.90375"
+ style="font-size:16px;fill:#ff0000;stroke:none">evt[1]</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/sweepline-list-node-intersection.svg b/doc/livarot-images/sweepline-list-node-intersection.svg
new file mode 100644
index 0000000..d625ee8
--- /dev/null
+++ b/doc/livarot-images/sweepline-list-node-intersection.svg
@@ -0,0 +1,607 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="976.51135"
+ height="558.99365"
+ viewBox="0 0 976.51135 558.99365"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (037b845d7b, 2020-08-19, custom)"
+ sodipodi:docname="sweepline-list-node-intersection.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker3158"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3156" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3148"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3146" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3112"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3110" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3090"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3088" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3066"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3064" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3018"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3016" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker3002"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path3000" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2920"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2918" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2910"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2908" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2900"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2898" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2822"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2820" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2716"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2714" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1675"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1673" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1603"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1601" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1501"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1499" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1491"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1489" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1481"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1479" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1471"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1469" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1461"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1459" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1451"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lstart"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(0.8,0,0,0.8,10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1449" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.5"
+ inkscape:cx="234"
+ inkscape:cy="441"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-left="20"
+ fit-margin-right="20"
+ fit-margin-bottom="20"
+ fit-margin-top="20" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-4.514839,-14.117568)">
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1393"
+ width="144.05873"
+ height="72.029366"
+ x="62.667423"
+ y="174.41948" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1395"
+ width="144.05873"
+ height="72.029366"
+ x="535.58893"
+ y="174.41948" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1501)"
+ d="m 218.42268,211.64676 h 64.22195"
+ id="path1397"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="86.137276"
+ y="220.27275"
+ id="text1401"><tspan
+ sodipodi:role="line"
+ id="tspan1399"
+ x="86.137276"
+ y="220.27275">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="559.70697"
+ y="220.30382"
+ id="text1405"><tspan
+ sodipodi:role="line"
+ id="tspan1403"
+ x="559.70697"
+ y="220.30382">Node C</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect1407"
+ width="144.05873"
+ height="72.029366"
+ x="296.1926"
+ y="174.10075" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="21.663273"
+ y="211.38445"
+ id="text1411"><tspan
+ sodipodi:role="line"
+ id="tspan1409"
+ x="21.663273"
+ y="211.38445">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="318.9935"
+ y="219.37553"
+ id="text1419"><tspan
+ sodipodi:role="line"
+ id="tspan1417"
+ x="318.9935"
+ y="219.37553">Node B</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="383.48172"
+ y="54.37801"
+ id="text1447"><tspan
+ sodipodi:role="line"
+ id="tspan1445"
+ x="383.48172"
+ y="54.37801">Intersection Event</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1603)"
+ d="m 453.05733,209.667 h 64.22195"
+ id="path1599"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2716)"
+ d="m 694.30202,210.69254 h 64.22195"
+ id="path2712"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2736"
+ width="144.05873"
+ height="72.029366"
+ x="772.99939"
+ y="173.53534" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="797.11743"
+ y="219.41968"
+ id="text2740"><tspan
+ sodipodi:role="line"
+ id="tspan2738"
+ x="797.11743"
+ y="219.41968">Node D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="937.79694"
+ y="211.76088"
+ id="text2768"><tspan
+ sodipodi:role="line"
+ id="tspan2766"
+ x="937.79694"
+ y="211.76088">...</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker1461);marker-end:url(#marker2822)"
+ d="m 367.07502,165.02758 c 0,0 122.44573,-169.2719463 237.84173,-1.9313"
+ id="path2806" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2860"
+ width="144.05873"
+ height="72.029366"
+ x="63.344536"
+ y="350.12198" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2862"
+ width="144.05873"
+ height="72.029366"
+ x="536.26605"
+ y="350.12198" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2920)"
+ d="m 219.0998,387.34925 h 64.22195"
+ id="path2864"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="86.814392"
+ y="395.97525"
+ id="text2868"><tspan
+ sodipodi:role="line"
+ id="tspan2866"
+ x="86.814392"
+ y="395.97525">Node A</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="560.38409"
+ y="396.00632"
+ id="text2872"><tspan
+ sodipodi:role="line"
+ id="tspan2870"
+ x="560.38409"
+ y="396.00632">Node B</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2874"
+ width="144.05873"
+ height="72.029366"
+ x="296.86972"
+ y="349.80325" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="22.340389"
+ y="387.08694"
+ id="text2878"><tspan
+ sodipodi:role="line"
+ id="tspan2876"
+ x="22.340389"
+ y="387.08694">...</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="319.67062"
+ y="395.07803"
+ id="text2882"><tspan
+ sodipodi:role="line"
+ id="tspan2880"
+ x="319.67062"
+ y="395.07803">Node C</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2910)"
+ d="M 453.73445,385.36949 H 517.9564"
+ id="path2884"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker2900)"
+ d="m 694.97914,386.39503 h 64.22195"
+ id="path2886"
+ sodipodi:nodetypes="cc" />
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:5;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect2888"
+ width="144.05873"
+ height="72.029366"
+ x="773.67651"
+ y="349.23782" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="797.79456"
+ y="395.12216"
+ id="text2892"><tspan
+ sodipodi:role="line"
+ id="tspan2890"
+ x="797.79456"
+ y="395.12216">Node D</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="938.47406"
+ y="387.46338"
+ id="text2896"><tspan
+ sodipodi:role="line"
+ id="tspan2894"
+ x="938.47406"
+ y="387.46338">...</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3018)"
+ d="m 354.89564,261.0309 c 23.13156,81.68357 127.46419,10.52624 205.68985,76.25342"
+ id="path2982"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3066)"
+ d="M 566.79266,261.80415 C 543.6611,343.48772 439.32847,272.33039 361.10281,338.05757"
+ id="path3062"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker3090);marker-end:url(#marker3112)"
+ d="m 148.79191,446.67774 c 0,0 101.99589,128.05773 194.32452,1.50452"
+ id="path3086" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#marker3148);marker-end:url(#marker3158)"
+ d="m 627.74341,445.12726 c 0,0 101.99589,128.05773 194.32452,1.50452"
+ id="path3144" />
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="155.84358"
+ y="528.97888"
+ id="text3192"><tspan
+ sodipodi:role="line"
+ id="tspan3190"
+ x="155.84358"
+ y="528.97888"
+ style="font-size:16px">Test intersection between</tspan><tspan
+ sodipodi:role="line"
+ x="155.84358"
+ y="548.97888"
+ style="font-size:16px"
+ id="tspan3194">Node A and Node C</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:16px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="636.01483"
+ y="532.88464"
+ id="text3200"><tspan
+ sodipodi:role="line"
+ id="tspan3196"
+ x="636.01483"
+ y="532.88464"
+ style="font-size:16px">Test intersection between</tspan><tspan
+ sodipodi:role="line"
+ x="636.01483"
+ y="552.88464"
+ style="font-size:16px"
+ id="tspan3198">Node B and Node D</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/teste-intersection.svg b/doc/livarot-images/teste-intersection.svg
new file mode 100644
index 0000000..6da9eff
--- /dev/null
+++ b/doc/livarot-images/teste-intersection.svg
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="500"
+ viewBox="0 0 1000 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (6f52e792f5, 2020-08-23, custom)"
+ sodipodi:docname="teste-intersection.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1039"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1037" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1029"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1027" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker979"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path977" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker949"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path947" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.0419628"
+ inkscape:cx="481.78306"
+ inkscape:cy="314.31066"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ height="500px" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.72916;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 100.23342,95.023744 359.84197,387.71018"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.72916;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker979)"
+ d="M 361.73888,93.579984 102.13033,386.26641"
+ id="path975" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.72916;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1039)"
+ d="M 577.69298,97.217464 837.30153,389.90391"
+ id="path1023" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.72916;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1029)"
+ d="M 839.19844,95.773704 579.58989,388.46014"
+ id="path1025" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="79.295097"
+ y="83.473335"
+ id="text1085"><tspan
+ sodipodi:role="line"
+ id="tspan1083"
+ x="79.295097"
+ y="83.473335">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="339.72794"
+ y="83.15741"
+ id="text1089"><tspan
+ sodipodi:role="line"
+ id="tspan1087"
+ x="339.72794"
+ y="83.15741">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="550.44861"
+ y="80.070129"
+ id="text1093"><tspan
+ sodipodi:role="line"
+ id="tspan1091"
+ x="550.44861"
+ y="80.070129">right</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="810.88141"
+ y="79.754204"
+ id="text1097"><tspan
+ sodipodi:role="line"
+ id="tspan1095"
+ x="810.88141"
+ y="79.754204">left</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="69.516663"
+ y="433.01526"
+ id="text1117"><tspan
+ sodipodi:role="line"
+ id="tspan1115"
+ x="69.516663"
+ y="433.01526"
+ style="font-size:21.3333px">intersection will be detected!</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:21.3333px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none"
+ x="543.74603"
+ y="429.28043"
+ id="text1121"><tspan
+ sodipodi:role="line"
+ id="tspan1119"
+ x="543.74603"
+ y="429.28043"
+ style="font-size:21.3333px;fill:#ff0000;stroke:none">intersection won't be detected!</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-brutal-bounds.svg b/doc/livarot-images/winding-brutal-bounds.svg
new file mode 100644
index 0000000..8686d52
--- /dev/null
+++ b/doc/livarot-images/winding-brutal-bounds.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d255dbba1b, 2020-08-17, custom)"
+ sodipodi:docname="winding-brutal-bounds.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="Arrow1Lend"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1262" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker841"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#9d9d9d;stroke-width:1pt;stroke-opacity:1;fill:#9d9d9d;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path839" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#9d9d9d;stroke-width:1pt;stroke-opacity:1;fill:#9d9d9d;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.75218964"
+ inkscape:cx="438.71915"
+ inkscape:cy="477.93798"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#9d9d9d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="m 268.58337,281.77376 381.89668,-75.04827 170.54306,234.09509 3.59727,293.7843 -240.71554,101.7599 -382.00521,41.82466 -40.08303,-314.83498 z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#9d9d9d;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker841)"
+ d="m 386.72433,423.48759 248.27774,-57.7043 51.39574,230.68115 -79.13973,115.11225 -303.03516,-17.57966 z"
+ id="path837" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend);stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 386.72433,423.48759 248.27774,-57.7043"
+ id="path1257" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 385.82101,4.5522816 V 998.06984"
+ id="path1533" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:4, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 634.64283,2.2138937 V 995.73145"
+ id="path1535" />
+ <circle
+ style="opacity:1;fill:#000000;fill-rule:evenodd;stroke:#9d9d9d;stroke-width:0.675296;stroke-miterlimit:4;stroke-dasharray:2.70118, 2.70118;stroke-dashoffset:0;stroke-opacity:1"
+ id="path1537"
+ cx="501.03006"
+ cy="531.95819"
+ r="7.3470368" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="516.05164"
+ y="530.62878"
+ id="text1541"><tspan
+ sodipodi:role="line"
+ id="tspan1539"
+ x="516.05164"
+ y="530.62878">px</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-brutal-endpoints-end.svg b/doc/livarot-images/winding-brutal-endpoints-end.svg
new file mode 100644
index 0000000..8651451
--- /dev/null
+++ b/doc/livarot-images/winding-brutal-endpoints-end.svg
@@ -0,0 +1,497 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1500"
+ height="500"
+ viewBox="0 0 1500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d255dbba1b, 2020-08-17, custom)"
+ sodipodi:docname="winding-brutal-endpoints-end.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1262" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1942"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1940" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2028"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2026" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2090"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2088" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2184"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2182" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.2996964"
+ inkscape:cx="1217.2073"
+ inkscape:cy="312.76535"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 97.829677,62.083183 V 432.4746"
+ id="path1878" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 391.74945,230.44379 -294.128343,6.6255"
+ id="path1712" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1838"
+ cx="97.440231"
+ cy="237.38846"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1840"
+ cx="396.2977"
+ cy="230.35394"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="413.01929"
+ y="258.05316"
+ id="text1844"><tspan
+ sodipodi:role="line"
+ id="tspan1842"
+ x="413.01929"
+ y="258.05316">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="52.019428"
+ y="254.02423"
+ id="text1848"><tspan
+ sodipodi:role="line"
+ id="tspan1846"
+ x="52.019428"
+ y="254.02423">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1872"
+ cx="97.669662"
+ cy="144.77304"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="115.17683"
+ y="148.27361"
+ id="text1876"><tspan
+ sodipodi:role="line"
+ id="tspan1874"
+ x="115.17683"
+ y="148.27361">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 508.43652,67.795173 V 438.18658"
+ id="path1918" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1942)"
+ d="M 508.22795,68.781263 508.00138,327.99903"
+ id="path1920"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1922"
+ cx="508.04703"
+ cy="69.100441"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1924"
+ cx="508.47964"
+ cy="331.97455"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="469.4422"
+ y="99.835777"
+ id="text1928"><tspan
+ sodipodi:role="line"
+ id="tspan1926"
+ x="469.4422"
+ y="99.835777">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="520.54718"
+ y="336.90927"
+ id="text1932"><tspan
+ sodipodi:role="line"
+ id="tspan1930"
+ x="520.54718"
+ y="336.90927">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1934"
+ cx="507.46701"
+ cy="373.78403"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="524.76398"
+ y="379.10217"
+ id="text1938"><tspan
+ sodipodi:role="line"
+ id="tspan1936"
+ x="524.76398"
+ y="379.10217">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 672.03367,73.661163 V 444.05258"
+ id="path2004" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2028)"
+ d="M 671.8071,332.87893 672.03367,73.661163"
+ id="path2006"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2008"
+ cx="671.64423"
+ cy="74.966438"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2010"
+ cx="672.07684"
+ cy="337.84055"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="627.03937"
+ y="105.70177"
+ id="text2014"><tspan
+ sodipodi:role="line"
+ id="tspan2012"
+ x="627.03937"
+ y="105.70177">en</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="684.14435"
+ y="342.77527"
+ id="text2018"><tspan
+ sodipodi:role="line"
+ id="tspan2016"
+ x="684.14435"
+ y="342.77527">st</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2020"
+ cx="671.06421"
+ cy="379.65002"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="688.36115"
+ y="384.96817"
+ id="text2024"><tspan
+ sodipodi:role="line"
+ id="tspan2022"
+ x="688.36115"
+ y="384.96817">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1074.1954,68.909523 V 439.30094"
+ id="path2066" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2090)"
+ d="m 811.27004,274.91853 262.71676,-31.0229"
+ id="path2068"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2070"
+ cx="1073.8058"
+ cy="244.21478"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2072"
+ cx="804.8031"
+ cy="274.3696"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="795.71118"
+ y="312.6402"
+ id="text2076"><tspan
+ sodipodi:role="line"
+ id="tspan2074"
+ x="795.71118"
+ y="312.6402">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1031.8691"
+ y="282.4342"
+ id="text2080"><tspan
+ sodipodi:role="line"
+ id="tspan2078"
+ x="1031.8691"
+ y="282.4342">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2110"
+ cx="1075.1056"
+ cy="351.57867"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1092.6128"
+ y="355.07922"
+ id="text2114"><tspan
+ sodipodi:role="line"
+ id="tspan2112"
+ x="1092.6128"
+ y="355.07922">px</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+ id="rect2146"
+ width="745.49908"
+ height="479.21591"
+ x="15.103928"
+ y="12.970182" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1185.0759,66.706113 V 437.09753"
+ id="path2160" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2184)"
+ d="M 1454.9518,287.60526 1184.8673,241.69222"
+ id="path2162"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2164"
+ cx="1184.6863"
+ cy="242.01138"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2166"
+ cx="1460.5824"
+ cy="288.33813"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1444.3207"
+ y="327.28195"
+ id="text2170"><tspan
+ sodipodi:role="line"
+ id="tspan2168"
+ x="1444.3207"
+ y="327.28195">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1143.5872"
+ y="270.00342"
+ id="text2174"><tspan
+ sodipodi:role="line"
+ id="tspan2172"
+ x="1143.5872"
+ y="270.00342">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2176"
+ cx="1185.9861"
+ cy="349.37524"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1203.4933"
+ y="352.87579"
+ id="text2180"><tspan
+ sodipodi:role="line"
+ id="tspan2178"
+ x="1203.4933"
+ y="352.87579">px</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#008000;stroke-width:0.987852;stroke-miterlimit:4;stroke-dasharray:2.96356, 2.96356;stroke-dashoffset:0"
+ id="rect2216"
+ width="711.75806"
+ height="478.97443"
+ x="778.21667"
+ y="12.970182" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="877.24799"
+ y="163.7778"
+ id="text2220"><tspan
+ sodipodi:role="line"
+ id="tspan2218"
+ x="877.24799"
+ y="163.7778">ll -= weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1242.0385"
+ y="87.960579"
+ id="text2224"><tspan
+ sodipodi:role="line"
+ id="tspan2222"
+ x="1242.0385"
+ y="87.960579">rr += weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="146.97099"
+ y="50.400936"
+ id="text3150"><tspan
+ sodipodi:role="line"
+ id="tspan3148"
+ x="146.97099"
+ y="50.400936">en.y &gt;= px.y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="415.3587"
+ y="470.14624"
+ id="text3185"><tspan
+ sodipodi:role="line"
+ id="tspan3183"
+ x="415.3587"
+ y="470.14624">st.x == px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="586.68628"
+ y="46.106606"
+ id="text3189"><tspan
+ sodipodi:role="line"
+ id="tspan3187"
+ x="586.68628"
+ y="46.106606">st.x == px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="844.28601"
+ y="434.89484"
+ id="text3193"><tspan
+ sodipodi:role="line"
+ id="tspan3191"
+ x="844.28601"
+ y="434.89484">st.x &lt; px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="1263.3663"
+ y="434.08752"
+ id="text3197"><tspan
+ sodipodi:role="line"
+ id="tspan3195"
+ x="1263.3663"
+ y="434.08752">st.x &gt; px.x</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-brutal-endpoints-start.svg b/doc/livarot-images/winding-brutal-endpoints-start.svg
new file mode 100644
index 0000000..7522dfb
--- /dev/null
+++ b/doc/livarot-images/winding-brutal-endpoints-start.svg
@@ -0,0 +1,511 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1500"
+ height="500"
+ viewBox="0 0 1500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d255dbba1b, 2020-08-17, custom)"
+ sodipodi:docname="winding-brutal-endpoints-start.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker2184"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2182" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2090"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2088" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker2028"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path2026" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1942"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1940" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Send"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Send"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1274" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Arrow1Lend"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1262" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.2996964"
+ inkscape:cx="1132.5722"
+ inkscape:cy="259.67602"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1200px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 96.784771,60.327315 V 430.71873"
+ id="path1878" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 96.576201,235.31342 294.128349,-6.6255"
+ id="path1712" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path1838"
+ cx="96.395317"
+ cy="235.63258"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1840"
+ cx="395.25281"
+ cy="228.59808"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="57.790482"
+ y="266.36792"
+ id="text1844"><tspan
+ sodipodi:role="line"
+ id="tspan1842"
+ x="57.790482"
+ y="266.36792">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="411.57416"
+ y="252.49287"
+ id="text1848"><tspan
+ sodipodi:role="line"
+ id="tspan1846"
+ x="411.57416"
+ y="252.49287">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1872"
+ cx="96.624763"
+ cy="143.01718"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="114.13193"
+ y="146.51775"
+ id="text1876"><tspan
+ sodipodi:role="line"
+ id="tspan1874"
+ x="114.13193"
+ y="146.51775">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 507.39161,66.039298 V 436.43071"
+ id="path1918" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1942)"
+ d="M 507.18304,67.025395 506.95647,326.24316"
+ id="path1920"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1922"
+ cx="507.00214"
+ cy="67.344566"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1924"
+ cx="507.43475"
+ cy="330.21866"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="468.39731"
+ y="98.079903"
+ id="text1928"><tspan
+ sodipodi:role="line"
+ id="tspan1926"
+ x="468.39731"
+ y="98.079903">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="519.50226"
+ y="335.15338"
+ id="text1932"><tspan
+ sodipodi:role="line"
+ id="tspan1930"
+ x="519.50226"
+ y="335.15338">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle1934"
+ cx="506.42212"
+ cy="372.02814"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="523.71906"
+ y="377.34628"
+ id="text1938"><tspan
+ sodipodi:role="line"
+ id="tspan1936"
+ x="523.71906"
+ y="377.34628">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 670.98876,71.905293 V 442.29671"
+ id="path2004" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2028)"
+ d="M 670.76219,331.12306 670.98876,71.905293"
+ id="path2006"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2008"
+ cx="670.5993"
+ cy="73.210564"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2010"
+ cx="671.03192"
+ cy="336.08466"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="625.99445"
+ y="103.9459"
+ id="text2014"><tspan
+ sodipodi:role="line"
+ id="tspan2012"
+ x="625.99445"
+ y="103.9459">en</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="683.09943"
+ y="341.01938"
+ id="text2018"><tspan
+ sodipodi:role="line"
+ id="tspan2016"
+ x="683.09943"
+ y="341.01938">st</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2020"
+ cx="670.01929"
+ cy="377.89413"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="687.31622"
+ y="383.21228"
+ id="text2024"><tspan
+ sodipodi:role="line"
+ id="tspan2022"
+ x="687.31622"
+ y="383.21228">px</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1073.1505,67.153656 V 437.54507"
+ id="path2066" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2090)"
+ d="m 1072.9419,242.13976 -262.71677,31.0229"
+ id="path2068"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2070"
+ cx="1072.761"
+ cy="242.45892"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2072"
+ cx="803.75818"
+ cy="272.61371"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1034.1561"
+ y="273.19427"
+ id="text2076"><tspan
+ sodipodi:role="line"
+ id="tspan2074"
+ x="1034.1561"
+ y="273.19427">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="796.10779"
+ y="305.62875"
+ id="text2080"><tspan
+ sodipodi:role="line"
+ id="tspan2078"
+ x="796.10779"
+ y="305.62875">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2110"
+ cx="1074.0608"
+ cy="349.82278"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1091.568"
+ y="353.32333"
+ id="text2114"><tspan
+ sodipodi:role="line"
+ id="tspan2112"
+ x="1091.568"
+ y="353.32333">px</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#ff0000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0"
+ id="rect2146"
+ width="745.49908"
+ height="479.21591"
+ x="14.059022"
+ y="11.214308" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 1184.031,64.950242 V 435.34166"
+ id="path2160" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker2184)"
+ d="m 1183.8224,239.93635 270.0845,45.91304"
+ id="path2162"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2164"
+ cx="1183.6415"
+ cy="240.25551"
+ r="6.9231076" />
+ <circle
+ style="fill:#ff0000;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2166"
+ cx="1459.5376"
+ cy="286.58224"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1145.0366"
+ y="270.99084"
+ id="text2170"><tspan
+ sodipodi:role="line"
+ id="tspan2168"
+ x="1145.0366"
+ y="270.99084">st</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1450.072"
+ y="318.70618"
+ id="text2174"><tspan
+ sodipodi:role="line"
+ id="tspan2172"
+ x="1450.072"
+ y="318.70618">en</tspan></text>
+ <circle
+ style="fill:#0000ff;fill-rule:evenodd;stroke:none;stroke-width:2.2;stroke-miterlimit:4;stroke-dasharray:none"
+ id="circle2176"
+ cx="1184.9413"
+ cy="347.61935"
+ r="6.9231076" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1202.4485"
+ y="351.1199"
+ id="text2180"><tspan
+ sodipodi:role="line"
+ id="tspan2178"
+ x="1202.4485"
+ y="351.1199">px</tspan></text>
+ <rect
+ style="fill:none;fill-rule:evenodd;stroke:#008000;stroke-width:0.987852;stroke-miterlimit:4;stroke-dasharray:2.96356, 2.96356;stroke-dashoffset:0"
+ id="rect2216"
+ width="711.75806"
+ height="478.97443"
+ x="777.17175"
+ y="11.214308" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="819.9256"
+ y="94.482887"
+ id="text2220"><tspan
+ sodipodi:role="line"
+ id="tspan2218"
+ x="819.9256"
+ y="94.482887">ll += weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1240.9937"
+ y="86.204704"
+ id="text2224"><tspan
+ sodipodi:role="line"
+ id="tspan2222"
+ x="1240.9937"
+ y="86.204704">rr -= weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="125.74956"
+ y="48.354774"
+ id="text3150"><tspan
+ sodipodi:role="line"
+ id="tspan3148"
+ x="125.74956"
+ y="48.354774">st.y &gt;= px.y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="420.27167"
+ y="41.737579"
+ id="text3154"><tspan
+ sodipodi:role="line"
+ id="tspan3152"
+ x="420.27167"
+ y="41.737579">en.x == px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000"
+ x="574.83295"
+ y="470.11664"
+ id="text3158"><tspan
+ sodipodi:role="line"
+ id="tspan3156"
+ x="574.83295"
+ y="470.11664">en.x == px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="845.35382"
+ y="457.98773"
+ id="text3162"><tspan
+ sodipodi:role="line"
+ id="tspan3160"
+ x="845.35382"
+ y="457.98773">en.x &lt; px.x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#008000"
+ x="1265.2245"
+ y="452.51105"
+ id="text3166"><tspan
+ sodipodi:role="line"
+ id="tspan3164"
+ x="1265.2245"
+ y="452.51105">en.x &gt; px.x</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-brutal-endpoints.svg b/doc/livarot-images/winding-brutal-endpoints.svg
new file mode 100644
index 0000000..9cab8c4
--- /dev/null
+++ b/doc/livarot-images/winding-brutal-endpoints.svg
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="829.88721"
+ height="493.87897"
+ viewBox="0 0 829.88721 493.87897"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d255dbba1b, 2020-08-17, custom)"
+ sodipodi:docname="winding-brutal-endpoints.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1365"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1363" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1355"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1353" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1033"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1031" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.45951208"
+ inkscape:cx="278.55633"
+ inkscape:cy="477.68058"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ fit-margin-top="10"
+ fit-margin-left="10"
+ fit-margin-right="10"
+ fit-margin-bottom="10" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-115.52707,-7.680121)">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 125.72018,133.13399 499.61226,69.44625"
+ id="path1015"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1033)"
+ d="M 499.61226,69.44625 924.63869,130.4916"
+ id="path1029"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1365)"
+ d="M 498.83224,293.19301 136.33836,356.14224"
+ id="path1349"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:2.3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1355)"
+ d="M 935.25687,353.49985 498.83224,293.19301"
+ id="path1351"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 499.32489,17.680121 V 491.55908"
+ id="path1421"
+ sodipodi:nodetypes="cc" />
+ <circle
+ style="opacity:1;fill:#ff0000;fill-rule:evenodd;stroke:#008000;stroke-width:0.0311553;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0"
+ id="path1457"
+ cx="499.85498"
+ cy="70.172821"
+ r="8.2645006" />
+ <circle
+ style="opacity:1;fill:#ff0000;fill-rule:evenodd;stroke:#008000;stroke-width:0.0311553;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0"
+ id="circle1459"
+ cx="500.37192"
+ cy="294.22516"
+ r="8.2645006" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="636.28711"
+ y="55.133041"
+ id="text1786"><tspan
+ sodipodi:role="line"
+ id="tspan1784"
+ x="636.28711"
+ y="55.133041">rr -= weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="218.99373"
+ y="55.669769"
+ id="text1790"><tspan
+ sodipodi:role="line"
+ id="tspan1788"
+ x="218.99373"
+ y="55.669769">ll -= weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="647.1358"
+ y="284.53876"
+ id="text1794"><tspan
+ sodipodi:role="line"
+ id="tspan1792"
+ x="647.1358"
+ y="284.53876">rr += weight</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="229.84239"
+ y="285.0755"
+ id="text1798"><tspan
+ sodipodi:role="line"
+ id="tspan1796"
+ x="229.84239"
+ y="285.0755">ll += weight</tspan></text>
+ <circle
+ style="opacity:1;fill:#000080;fill-rule:evenodd;stroke:#008000;stroke-width:0.0311553;stroke-miterlimit:4;stroke-dasharray:2, 4;stroke-dashoffset:0"
+ id="path1836"
+ cx="499.31451"
+ cy="433.13156"
+ r="8.9434338" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-computation-seed.svg b/doc/livarot-images/winding-computation-seed.svg
new file mode 100644
index 0000000..8b9b947
--- /dev/null
+++ b/doc/livarot-images/winding-computation-seed.svg
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1000"
+ height="1000"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="winding-computation-seed.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible;"
+ id="marker1269"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1267" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1227"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1225" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1165"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1163" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow1Lend"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path834" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="marker1121"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8) rotate(180) translate(12.5,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.56765702"
+ inkscape:cx="177.92434"
+ inkscape:cy="229.89234"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Lend)"
+ d="m 121.86956,280.70098 207.15235,-92.80807 247.52662,6.76662 197.81409,40.11693 105.28065,151.2316 L 859.60009,639.83349 781.39598,762.50486 581.42394,813.80327 327.54639,713.16209 175.00692,516.32686 Z"
+ id="path829" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1121)"
+ d="M 291.03612,295.36209 317.57139,559.41742 504.16027,691.69731 772.31549,514.56028 605.20006,283.82539 Z"
+ id="path1105" />
+ <text
+ xml:space="preserve"
+ style="font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="355.65457"
+ y="98.934639"
+ id="text1159"><tspan
+ sodipodi:role="line"
+ id="tspan1157"
+ x="355.65457"
+ y="98.934639"
+ style="font-size:40px">0</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1165)"
+ d="m 348.01331,88.401867 c 0,0 -36.29881,17.850513 -20.67928,81.507783"
+ id="path1205" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="325.54794"
+ y="229.36482"
+ id="text1215"><tspan
+ sodipodi:role="line"
+ id="tspan1213"
+ x="325.54794"
+ y="229.36482"
+ style="font-size:26.6667px">-1</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1269)"
+ d="m 321.25906,222.28064 c 0,0 -46.68494,-11.6065 -30.57198,62.59189"
+ id="path1259"
+ sodipodi:nodetypes="cc" />
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-computation.svg b/doc/livarot-images/winding-computation.svg
new file mode 100644
index 0000000..205db22
--- /dev/null
+++ b/doc/livarot-images/winding-computation.svg
@@ -0,0 +1,391 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="1200"
+ height="400"
+ viewBox="0 0 1200 400"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (d63ee585f6, 2020-08-11, custom)"
+ sodipodi:docname="winding-computation.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1782"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1780" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1772"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1770" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1664"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1662" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1654"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1652" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1526"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1524" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1516"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1514" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1410"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path1408" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="TriangleOutL"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="TriangleOutL"
+ inkscape:isstock="true"
+ inkscape:collect="always">
+ <path
+ transform="scale(0.8)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
+ id="path973" />
+ </marker>
+ <marker
+ style="overflow:visible;"
+ id="Arrow1Send"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Arrow1Send"
+ inkscape:isstock="true">
+ <path
+ transform="scale(0.2) rotate(180) translate(6,0)"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+ d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+ id="path846" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.76481579"
+ inkscape:cx="456.31903"
+ inkscape:cy="224.237"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="1000px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ height="400px" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutL)"
+ d="M 53.102856,121.31063 H 236.91895"
+ id="path1358" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1410)"
+ d="m 236.91895,121.31063 v 183.8161"
+ id="path1406" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="140.01514"
+ y="112.12971"
+ id="text1432"><tspan
+ sodipodi:role="line"
+ id="tspan1430"
+ x="140.01514"
+ y="112.12971">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="140.19936"
+ y="146.32263"
+ id="text1436"><tspan
+ sodipodi:role="line"
+ id="tspan1434"
+ x="140.19936"
+ y="146.32263">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="203.02963"
+ y="224.92418"
+ id="text1440"><tspan
+ sodipodi:role="line"
+ id="tspan1438"
+ x="203.02963"
+ y="224.92418">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="252.29536"
+ y="225.19261"
+ id="text1444"><tspan
+ sodipodi:role="line"
+ id="tspan1442"
+ x="252.29536"
+ y="225.19261">y+w</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="15.981778"
+ y="31.220333"
+ id="text1464"><tspan
+ sodipodi:role="line"
+ id="tspan1462"
+ x="15.981778"
+ y="31.220333">* w = weight of edge</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1526)"
+ d="M 533.64887,119.57667 H 349.83278"
+ id="path1494" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1516)"
+ d="M 533.64887,305.39277 V 121.57667"
+ id="path1496" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="436.74506"
+ y="110.39574"
+ id="text1500"><tspan
+ sodipodi:role="line"
+ id="tspan1498"
+ x="436.74506"
+ y="110.39574">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="436.92929"
+ y="144.58867"
+ id="text1504"><tspan
+ sodipodi:role="line"
+ id="tspan1502"
+ x="436.92929"
+ y="144.58867">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="499.75955"
+ y="223.19022"
+ id="text1508"><tspan
+ sodipodi:role="line"
+ id="tspan1506"
+ x="499.75955"
+ y="223.19022">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="549.02527"
+ y="223.45865"
+ id="text1512"><tspan
+ sodipodi:role="line"
+ id="tspan1510"
+ x="549.02527"
+ y="223.45865">y-w</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1664)"
+ d="M 614.64569,119.84539 H 798.46178"
+ id="path1632" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1654)"
+ d="M 804.46178,305.66149 V 121.84539"
+ id="path1634" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="707.55792"
+ y="110.66445"
+ id="text1638"><tspan
+ sodipodi:role="line"
+ id="tspan1636"
+ x="707.55792"
+ y="110.66445">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="707.74219"
+ y="144.85739"
+ id="text1642"><tspan
+ sodipodi:role="line"
+ id="tspan1640"
+ x="707.74219"
+ y="144.85739">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="770.57245"
+ y="223.45894"
+ id="text1646"><tspan
+ sodipodi:role="line"
+ id="tspan1644"
+ x="770.57245"
+ y="223.45894">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="819.83813"
+ y="223.72737"
+ id="text1650"><tspan
+ sodipodi:role="line"
+ id="tspan1648"
+ x="819.83813"
+ y="223.72737">y-w</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1782)"
+ d="M 1092.9279,123.93169 H 909.11177"
+ id="path1750" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker1772)"
+ d="m 1092.9279,123.93169 v 183.8161"
+ id="path1752" />
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="996.02399"
+ y="114.75076"
+ id="text1756"><tspan
+ sodipodi:role="line"
+ id="tspan1754"
+ x="996.02399"
+ y="114.75076">x</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="996.20825"
+ y="148.9437"
+ id="text1760"><tspan
+ sodipodi:role="line"
+ id="tspan1758"
+ x="996.20825"
+ y="148.9437">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1059.0386"
+ y="227.54524"
+ id="text1764"><tspan
+ sodipodi:role="line"
+ id="tspan1762"
+ x="1059.0386"
+ y="227.54524">y</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:26.6667px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px"
+ x="1108.3042"
+ y="227.81367"
+ id="text1768"><tspan
+ sodipodi:role="line"
+ id="tspan1766"
+ x="1108.3042"
+ y="227.81367">y+w</tspan></text>
+ </g>
+</svg>
diff --git a/doc/livarot-images/winding-fundamental-principle.svg b/doc/livarot-images/winding-fundamental-principle.svg
new file mode 100644
index 0000000..902e780
--- /dev/null
+++ b/doc/livarot-images/winding-fundamental-principle.svg
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ width="500"
+ height="500"
+ viewBox="0 0 500 500"
+ version="1.1"
+ id="svg6"
+ inkscape:version="1.1-dev (1a7913d4e8, 2020-08-20, custom)"
+ sodipodi:docname="winding-fundamental-principle.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ id="defs2">
+ <marker
+ style="overflow:visible"
+ id="marker1121"
+ refX="0"
+ refY="0"
+ orient="auto"
+ inkscape:stockid="Arrow1Lend"
+ inkscape:isstock="true">
+ <path
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+ d="M 0,0 5,-5 -12.5,0 5,5 Z"
+ id="path1119" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.99317345"
+ inkscape:cx="231.5809"
+ inkscape:cy="261.28367"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ units="px"
+ width="500px"
+ inkscape:window-width="1920"
+ inkscape:window-height="1016"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.42384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 29.636171,408.04605 322.53398,114.92512"
+ id="path829" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.42384;stroke-linecap:square;stroke-dasharray:1.42384, 4.27153"
+ id="path831"
+ cx="322.59906"
+ cy="114.70495"
+ r="8.5719481" />
+ <circle
+ style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-width:1.42384;stroke-linecap:square;stroke-dasharray:1.42384, 4.27153"
+ id="circle833"
+ cx="30.021046"
+ cy="409.39725"
+ r="8.5719481" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.42384px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 450.0606,368.89604 322.53398,114.92512"
+ id="path835"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:12.4757px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.779732"
+ x="-172.9818"
+ y="302.38113"
+ id="text839"
+ transform="rotate(-43.803513)"><tspan
+ sodipodi:role="line"
+ id="tspan837"
+ x="-172.9818"
+ y="302.38113"
+ style="font-size:12.4757px;stroke-width:0.779732">edge whose winding numbers we know</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:12.4757px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.779732"
+ x="277.55835"
+ y="-238.94035"
+ id="text843"
+ transform="rotate(62.524585)"><tspan
+ sodipodi:role="line"
+ id="tspan841"
+ x="277.55835"
+ y="-238.94035"
+ style="font-size:12.4757px;stroke-width:0.779732">edge whose winding numbers we want to find</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.42384;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:1.42384, 4.27153;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 322.53398,114.92512 265.45954,397.65915"
+ id="path861" />
+ <text
+ xml:space="preserve"
+ style="font-size:37.9692px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff0000;stroke:none;stroke-width:1.42384"
+ x="268.44699"
+ y="328.28156"
+ id="text865"><tspan
+ sodipodi:role="line"
+ id="tspan863"
+ x="268.44699"
+ y="328.28156"
+ style="stroke-width:1.42384">x</tspan></text>
+ </g>
+</svg>