diff --git a/Code/hull.cpp b/Code/hull.cpp
index 9a467ff000259d7d598ba165ad341b891f8c762c..25249b6ccbbc01eb20c197c883d7a27f7d2b8811 100644
--- a/Code/hull.cpp
+++ b/Code/hull.cpp
@@ -10,6 +10,8 @@
 #include <sstream>
 #include <cmath>
 
+//{{{ struct vec
+
 struct vec {
   vec(float x, float y) : x(x), y(y) {}
   float x ;
@@ -36,33 +38,23 @@ struct vec {
   }
 } ;
 
-using rational = boost::multiprecision::cpp_rational ;
+//}}}
 
-template<typename number = rational>
 int orient(const vec& v0, const vec& v1) {
-  number v0x = v0.x ;
-  number v0y = v0.y ;
-  number v1x = v1.x ;
-  number v1y = v1.y ;
+  //determinant
+  float d = v0.x*v1.y - v0.y*v1.x ;
 
-  number d = v0x*v1y - v0y*v1x ;
+  //encode as sign
   if(d > 0) return 1 ;
   if(d < 0) return -1 ;
-  std::cout << "zero case" << std::endl ;
-  //return 0 ;
-  if(v1y > 0) return 1 ;
-  if(v1y < 0) return -1 ;
-  if(v1x > 0) return -1 ;
-  if(v1x < 0) return 1 ;
-  if(v0y > 0) return -1 ;
-  if(v0y < 0) return 1 ;
-  if(v0x > 0) return 1 ;
-  if(v0y < 0) return -1 ;
-  return 1 ;
+  return 0 ;
 }
 
 struct vec_compare {
+  //functor given leftmost point for sort
   vec_compare(const vec& origin) : origin(origin) {}
+
+  //comparison
   bool operator()(const vec& p0, const vec& p1) {
     int o = orient(p0-origin, p1-origin) ;
     return o < 0 ;
@@ -70,6 +62,8 @@ struct vec_compare {
   const vec& origin ;
 } ;
 
+//{{{leftmost
+
 size_t leftmost(const std::vector<vec>& points) {
   size_t min =  0 ;
   for(size_t i = 1; i < points.size(); ++i) {
@@ -80,18 +74,26 @@ size_t leftmost(const std::vector<vec>& points) {
   return min ;
 }
 
+//}}}
+
 void compute_hull(std::vector<vec>& points, std::vector<vec>& hull) {
+  //leftmost point ahead
   size_t l = leftmost(points) ;
   std::swap(*points.begin(), *(points.begin() + l)) ;
+  //sort the rest by angle
   std::sort(points.begin() + 1, points.end(), vec_compare(points[0])) ;
 
+  //add the first two points to the hull
   hull.push_back(points[0]) ;
   hull.push_back(points[1]) ;
+  //sweep the remaining points
   for(size_t i = 2; i < points.size(); ++i) {
+    //check whether the last segment creates a wrong turn
     const vec& p = points[i] ;
     vec v1 = p - *(hull.end() - 1) ;
     vec v2 = *(hull.end() - 1) - *(hull.end() - 2) ;
     while(hull.size() > 1 && orient(v1, v2) < 0) {
+      //in case of wrong turn, rease the last point of the hull and iterate
       hull.erase(hull.end() - 1) ;
       v1 = p - *(hull.end() - 1) ;
       v2 = p - *(hull.end() - 2) ;
@@ -100,6 +102,8 @@ void compute_hull(std::vector<vec>& points, std::vector<vec>& hull) {
   }
 }
 
+//{{{ generate svg
+
 void svg_hull(const std::string& filename, const std::vector<vec>& points, const std::vector<vec>& hull) {
   std::ofstream file(filename) ;
   SvgPad svg(file, 1024, 1024) ;
@@ -118,12 +122,33 @@ void svg_hull(const std::string& filename, const std::vector<vec>& points, const
   svg.close() ;
 }
 
+void svg_sort(const std::string& filename, const std::vector<vec>& points) {
+  std::ofstream file(filename) ;
+  SvgPad svg(file, 1024, 1024) ;
+  svg.open() ;
+
+  float col0[3] = { 1., 0.9, 0.3 } ;
+  float col1[3] = { 0.35, 0.2, 0.4 } ;
+  for(size_t i = 1; i < points.size(); ++i) {
+    float b = ((float) i-1) / (points.size() - 1) ;
+    float a = 1-b ;
+    svg.stroke(a*col0[0] + b*col1[0], a*col0[1] + b*col1[1], a*col0[2] + b*col1[2]) ;
+    svg.line(points[0].x, points[0].y, points[i].x, points[i].y) ;
+  }
+
+  svg.close() ;
+}
+
+//}}}
+
 int main() {
 
   unsigned int size = 100 ;
 
+  //{{{ random test
 
   {
+    //random numbers
     std::random_device rd ;
     std::mt19937 alea(rd()) ;
     std::uniform_real_distribution<float> uniform_float(0, 1) ;
@@ -131,50 +156,42 @@ int main() {
 
     std::vector<vec> points ;
     for(unsigned int i = 0; i < size; ++i) {
+      //generate a uniform point in a ball
       vec p(normal_float(alea), normal_float(alea)) ;
       float n = sqrt(uniform_float(alea)) / 2 ;
       p = p * (n / p.length()) + vec(0.5,0.5);
       points.push_back(p) ;
     }
 
+    //hull
     std::vector<vec> hull ;
     compute_hull(points, hull) ;
-    svg_hull("/tmp/test_hull.svg", points, hull) ;
+    svg_hull("/tmp/hull_test.svg", points, hull) ;
+    svg_sort("/tmp/hull_lines.svg", points) ;
   }
 
-  {
-    unsigned int subdivisions = 30 ;
-    float near = 127 ;
-    float mid = 0.5 ;
-    for(unsigned int ratio = 1; ratio < subdivisions; ++ratio) {
-      std::vector<vec> points ;
-      points.emplace_back(1, 0) ;
-      points.emplace_back(0, 0) ;
-      points.emplace_back(mid, 1) ;
-      points.emplace_back(mid/near, 1./near) ;
-      points.emplace_back(mid/near + (mid - 1./near) * ((float) ratio) / subdivisions, 1./near + (1 - 2./near) * ((float) ratio) / subdivisions) ;
-
-      std::vector<vec> hull ;
-      compute_hull(points, hull) ;
-      std::stringstream fname ;
-      fname << "/tmp/pbm_hull" << ratio << ".svg" ;
-      svg_hull(fname.str(), points, hull) ;
-    }
-  }
+  //}}}
+
+  //{{{ wicked test
 
   {
     std::vector<vec> points ;
+    //aligned points
     points.emplace_back(0, 0.5) ;
     points.emplace_back(0, 1) ;
     points.emplace_back(0, 0) ;
     points.emplace_back(0, 0.8) ;
+    //make the hull non flat
     points.emplace_back(1, 0.5) ;
 
+    //hull
     std::vector<vec> hull ;
     compute_hull(points, hull) ;
-    svg_hull("/tmp/ordered.svg", points, hull) ;
+    svg_hull("/tmp/hull_aligned.svg", points, hull) ;
 
   }
 
+  //}}}
+
   return 0 ;
 }
diff --git a/Presentation/Figures/hull.pdf b/Presentation/Figures/hull.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..df58a760afc4eb7f936bd737d773fdb24a16f995
Binary files /dev/null and b/Presentation/Figures/hull.pdf differ
diff --git a/Presentation/Figures/hull.svg b/Presentation/Figures/hull.svg
new file mode 100644
index 0000000000000000000000000000000000000000..7a44f379651decc26660176777ea06ba1ac7524b
--- /dev/null
+++ b/Presentation/Figures/hull.svg
@@ -0,0 +1,1695 @@
+<?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"
+   height="1024"
+   width="1024"
+   version="1.1"
+   id="svg1890"
+   sodipodi:docname="hull.svg"
+   inkscape:version="0.92.4 5da689c313, 2019-01-14">
+  <metadata
+     id="metadata1896">
+    <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="defs1894">
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path2197"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#f57900;stroke-opacity:1;fill:#f57900;fill-opacity:1"
+         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 "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path2191"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#f57900;stroke-opacity:1;fill:#f57900;fill-opacity:1"
+         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 "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="480"
+     id="namedview1892"
+     showgrid="false"
+     inkscape:zoom="1.3796869"
+     inkscape:cx="454.51793"
+     inkscape:cy="483.23057"
+     inkscape:current-layer="layer6"
+     inkscape:snap-object-midpoints="true" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="sort"
+     style="display:inline">
+    <g
+       id="g2447">
+      <line
+         id="line2142"
+         y2="409"
+         x2="75"
+         y1="481"
+         x1="56"
+         style="stroke:#ffe64c;stroke-width:2" />
+      <line
+         id="line2144"
+         y2="286"
+         x2="149"
+         y1="481"
+         x1="56"
+         style="stroke:#fee44d;stroke-width:2" />
+      <line
+         id="line2146"
+         y2="180"
+         x2="204"
+         y1="481"
+         x1="56"
+         style="stroke:#fce24d;stroke-width:2" />
+      <line
+         id="line2148"
+         y2="225"
+         x2="190"
+         y1="481"
+         x1="56"
+         style="stroke:#fae04d;stroke-width:2" />
+      <line
+         id="line2150"
+         y2="238"
+         x2="196"
+         y1="481"
+         x1="56"
+         style="stroke:#f9df4d;stroke-width:2" />
+      <line
+         id="line2152"
+         y2="329"
+         x2="153"
+         y1="481"
+         x1="56"
+         style="stroke:#f7dd4e;stroke-width:2" />
+      <line
+         id="line2154"
+         y2="213"
+         x2="256"
+         y1="481"
+         x1="56"
+         style="stroke:#f5db4e;stroke-width:2" />
+      <line
+         id="line2156"
+         y2="244"
+         x2="234"
+         y1="481"
+         x1="56"
+         style="stroke:#f4d94e;stroke-width:2" />
+      <line
+         id="line2158"
+         y2="391"
+         x2="133"
+         y1="481"
+         x1="56"
+         style="stroke:#f2d74e;stroke-width:2" />
+      <line
+         id="line2160"
+         y2="367"
+         x2="158"
+         y1="481"
+         x1="56"
+         style="stroke:#f0d64f;stroke-width:2" />
+      <line
+         id="line2162"
+         y2="300"
+         x2="249"
+         y1="481"
+         x1="56"
+         style="stroke:#efd44f;stroke-width:2" />
+      <line
+         id="line2164"
+         y2="193"
+         x2="412"
+         y1="481"
+         x1="56"
+         style="stroke:#edd24f;stroke-width:2" />
+      <line
+         id="line2166"
+         y2="132"
+         x2="531"
+         y1="481"
+         x1="56"
+         style="stroke:#ebd04f;stroke-width:2" />
+      <line
+         id="line2168"
+         y2="80"
+         x2="628"
+         y1="481"
+         x1="56"
+         style="stroke:#eace50;stroke-width:2" />
+      <line
+         id="line2170"
+         y2="221"
+         x2="434"
+         y1="481"
+         x1="56"
+         style="stroke:#e8cd50;stroke-width:2" />
+      <line
+         id="line2172"
+         y2="135"
+         x2="623"
+         y1="481"
+         x1="56"
+         style="stroke:#e6cb50;stroke-width:2" />
+      <line
+         id="line2174"
+         y2="100"
+         x2="685"
+         y1="481"
+         x1="56"
+         style="stroke:#e5c950;stroke-width:2" />
+      <line
+         id="line2176"
+         y2="242"
+         x2="462"
+         y1="481"
+         x1="56"
+         style="stroke:#e3c751;stroke-width:2" />
+      <line
+         id="line2178"
+         y2="190"
+         x2="607"
+         y1="481"
+         x1="56"
+         style="stroke:#e1c551;stroke-width:2" />
+      <line
+         id="line2180"
+         y2="366"
+         x2="274"
+         y1="481"
+         x1="56"
+         style="stroke:#e0c451;stroke-width:2" />
+      <line
+         id="line2182"
+         y2="212"
+         x2="619"
+         y1="481"
+         x1="56"
+         style="stroke:#dec251;stroke-width:2" />
+      <line
+         id="line2184"
+         y2="257"
+         x2="539"
+         y1="481"
+         x1="56"
+         style="stroke:#dcc052;stroke-width:2" />
+      <line
+         id="line2186"
+         y2="259"
+         x2="590"
+         y1="481"
+         x1="56"
+         style="stroke:#dbbe52;stroke-width:2" />
+      <line
+         id="line2188"
+         y2="196"
+         x2="764"
+         y1="481"
+         x1="56"
+         style="stroke:#d9bc52;stroke-width:2" />
+      <line
+         id="line2190"
+         y2="199"
+         x2="771"
+         y1="481"
+         x1="56"
+         style="stroke:#d7ba53;stroke-width:2" />
+      <line
+         id="line2192"
+         y2="211"
+         x2="741"
+         y1="481"
+         x1="56"
+         style="stroke:#d5b953;stroke-width:2" />
+      <line
+         id="line2194"
+         y2="262"
+         x2="667"
+         y1="481"
+         x1="56"
+         style="stroke:#d4b753;stroke-width:2" />
+      <line
+         id="line2196"
+         y2="395"
+         x2="313"
+         y1="481"
+         x1="56"
+         style="stroke:#d2b553;stroke-width:2" />
+      <line
+         id="line2198"
+         y2="255"
+         x2="766"
+         y1="481"
+         x1="56"
+         style="stroke:#d0b354;stroke-width:2" />
+      <line
+         id="line2200"
+         y2="349"
+         x2="501"
+         y1="481"
+         x1="56"
+         style="stroke:#cfb154;stroke-width:2" />
+      <line
+         id="line2202"
+         y2="382"
+         x2="421"
+         y1="481"
+         x1="56"
+         style="stroke:#cdb054;stroke-width:2" />
+      <line
+         id="line2204"
+         y2="315"
+         x2="669"
+         y1="481"
+         x1="56"
+         style="stroke:#cbae54;stroke-width:2" />
+      <line
+         id="line2206"
+         y2="329"
+         x2="684"
+         y1="481"
+         x1="56"
+         style="stroke:#caac55;stroke-width:2" />
+      <line
+         id="line2208"
+         y2="322"
+         x2="727"
+         y1="481"
+         x1="56"
+         style="stroke:#c8aa55;stroke-width:2" />
+      <line
+         id="line2210"
+         y2="317"
+         x2="798"
+         y1="481"
+         x1="56"
+         style="stroke:#c6a855;stroke-width:2" />
+      <line
+         id="line2212"
+         y2="398"
+         x2="465"
+         y1="481"
+         x1="56"
+         style="stroke:#c5a755;stroke-width:2" />
+      <line
+         id="line2214"
+         y2="466"
+         x2="144"
+         y1="481"
+         x1="56"
+         style="stroke:#c3a556;stroke-width:2" />
+      <line
+         id="line2216"
+         y2="397"
+         x2="602"
+         y1="481"
+         x1="56"
+         style="stroke:#c1a356;stroke-width:2" />
+      <line
+         id="line2218"
+         y2="412"
+         x2="523"
+         y1="481"
+         x1="56"
+         style="stroke:#c0a156;stroke-width:2" />
+      <line
+         id="line2220"
+         y2="383"
+         x2="834"
+         y1="481"
+         x1="56"
+         style="stroke:#be9f56;stroke-width:2" />
+      <line
+         id="line2222"
+         y2="406"
+         x2="870"
+         y1="481"
+         x1="56"
+         style="stroke:#bc9d57;stroke-width:2" />
+      <line
+         id="line2224"
+         y2="443"
+         x2="729"
+         y1="481"
+         x1="56"
+         style="stroke:#bb9c57;stroke-width:2" />
+      <line
+         id="line2226"
+         y2="438"
+         x2="953"
+         y1="481"
+         x1="56"
+         style="stroke:#b99a57;stroke-width:2" />
+      <line
+         id="line2228"
+         y2="455"
+         x2="683"
+         y1="481"
+         x1="56"
+         style="stroke:#b79857;stroke-width:2" />
+      <line
+         id="line2230"
+         y2="470"
+         x2="558"
+         y1="481"
+         x1="56"
+         style="stroke:#b69658;stroke-width:2" />
+      <line
+         id="line2232"
+         y2="467"
+         x2="936"
+         y1="481"
+         x1="56"
+         style="stroke:#b49458;stroke-width:2" />
+      <line
+         id="line2234"
+         y2="479"
+         x2="434"
+         y1="481"
+         x1="56"
+         style="stroke:#b29358;stroke-width:2" />
+      <line
+         id="line2236"
+         y2="481"
+         x2="711"
+         y1="481"
+         x1="56"
+         style="stroke:#b19158;stroke-width:2" />
+      <line
+         id="line2238"
+         y2="528"
+         x2="917"
+         y1="481"
+         x1="56"
+         style="stroke:#af8f59;stroke-width:2" />
+      <line
+         id="line2240"
+         y2="516"
+         x2="690"
+         y1="481"
+         x1="56"
+         style="stroke:#ad8d59;stroke-width:2" />
+      <line
+         id="line2242"
+         y2="544"
+         x2="893"
+         y1="481"
+         x1="56"
+         style="stroke:#ab8b59;stroke-width:2" />
+      <line
+         id="line2244"
+         y2="574"
+         x2="772"
+         y1="481"
+         x1="56"
+         style="stroke:#aa8a59;stroke-width:2" />
+      <line
+         id="line2246"
+         y2="561"
+         x2="595"
+         y1="481"
+         x1="56"
+         style="stroke:#a8885a;stroke-width:2" />
+      <line
+         id="line2248"
+         y2="615"
+         x2="814"
+         y1="481"
+         x1="56"
+         style="stroke:#a6865a;stroke-width:2" />
+      <line
+         id="line2250"
+         y2="627"
+         x2="830"
+         y1="481"
+         x1="56"
+         style="stroke:#a5845a;stroke-width:2" />
+      <line
+         id="line2252"
+         y2="529"
+         x2="305"
+         y1="481"
+         x1="56"
+         style="stroke:#a3825b;stroke-width:2" />
+      <line
+         id="line2254"
+         y2="599"
+         x2="624"
+         y1="481"
+         x1="56"
+         style="stroke:#a1815b;stroke-width:2" />
+      <line
+         id="line2256"
+         y2="647"
+         x2="791"
+         y1="481"
+         x1="56"
+         style="stroke:#a07f5b;stroke-width:2" />
+      <line
+         id="line2258"
+         y2="657"
+         x2="783"
+         y1="481"
+         x1="56"
+         style="stroke:#9e7d5b;stroke-width:2" />
+      <line
+         id="line2260"
+         y2="608"
+         x2="575"
+         y1="481"
+         x1="56"
+         style="stroke:#9c7b5c;stroke-width:2" />
+      <line
+         id="line2262"
+         y2="602"
+         x2="517"
+         y1="481"
+         x1="56"
+         style="stroke:#9b795c;stroke-width:2" />
+      <line
+         id="line2264"
+         y2="644"
+         x2="624"
+         y1="481"
+         x1="56"
+         style="stroke:#99775c;stroke-width:2" />
+      <line
+         id="line2266"
+         y2="714"
+         x2="790"
+         y1="481"
+         x1="56"
+         style="stroke:#97765c;stroke-width:2" />
+      <line
+         id="line2268"
+         y2="562"
+         x2="310"
+         y1="481"
+         x1="56"
+         style="stroke:#96745d;stroke-width:2" />
+      <line
+         id="line2270"
+         y2="778"
+         x2="857"
+         y1="481"
+         x1="56"
+         style="stroke:#94725d;stroke-width:2" />
+      <line
+         id="line2272"
+         y2="744"
+         x2="752"
+         y1="481"
+         x1="56"
+         style="stroke:#92705d;stroke-width:2" />
+      <line
+         id="line2274"
+         y2="597"
+         x2="346"
+         y1="481"
+         x1="56"
+         style="stroke:#916e5d;stroke-width:2" />
+      <line
+         id="line2276"
+         y2="703"
+         x2="595"
+         y1="481"
+         x1="56"
+         style="stroke:#8f6d5e;stroke-width:2" />
+      <line
+         id="line2278"
+         y2="800"
+         x2="814"
+         y1="481"
+         x1="56"
+         style="stroke:#8d6b5e;stroke-width:2" />
+      <line
+         id="line2280"
+         y2="750"
+         x2="635"
+         y1="481"
+         x1="56"
+         style="stroke:#8c695e;stroke-width:2" />
+      <line
+         id="line2282"
+         y2="697"
+         x2="520"
+         y1="481"
+         x1="56"
+         style="stroke:#8a675e;stroke-width:2" />
+      <line
+         id="line2284"
+         y2="844"
+         x2="800"
+         y1="481"
+         x1="56"
+         style="stroke:#88655f;stroke-width:2" />
+      <line
+         id="line2286"
+         y2="858"
+         x2="809"
+         y1="481"
+         x1="56"
+         style="stroke:#86645f;stroke-width:2" />
+      <line
+         id="line2288"
+         y2="740"
+         x2="562"
+         y1="481"
+         x1="56"
+         style="stroke:#85625f;stroke-width:2" />
+      <line
+         id="line2290"
+         y2="734"
+         x2="482"
+         y1="481"
+         x1="56"
+         style="stroke:#83605f;stroke-width:2" />
+      <line
+         id="line2292"
+         y2="702"
+         x2="423"
+         y1="481"
+         x1="56"
+         style="stroke:#815e60;stroke-width:2" />
+      <line
+         id="line2294"
+         y2="692"
+         x2="400"
+         y1="481"
+         x1="56"
+         style="stroke:#805c60;stroke-width:2" />
+      <line
+         id="line2296"
+         y2="686"
+         x2="392"
+         y1="481"
+         x1="56"
+         style="stroke:#7e5b60;stroke-width:2" />
+      <line
+         id="line2298"
+         y2="627"
+         x2="289"
+         y1="481"
+         x1="56"
+         style="stroke:#7c5960;stroke-width:2" />
+      <line
+         id="line2300"
+         y2="900"
+         x2="714"
+         y1="481"
+         x1="56"
+         style="stroke:#7b5761;stroke-width:2" />
+      <line
+         id="line2302"
+         y2="785"
+         x2="529"
+         y1="481"
+         x1="56"
+         style="stroke:#795561;stroke-width:2" />
+      <line
+         id="line2304"
+         y2="876"
+         x2="606"
+         y1="481"
+         x1="56"
+         style="stroke:#775361;stroke-width:2" />
+      <line
+         id="line2306"
+         y2="834"
+         x2="522"
+         y1="481"
+         x1="56"
+         style="stroke:#765162;stroke-width:2" />
+      <line
+         id="line2308"
+         y2="675"
+         x2="302"
+         y1="481"
+         x1="56"
+         style="stroke:#745062;stroke-width:2" />
+      <line
+         id="line2310"
+         y2="849"
+         x2="506"
+         y1="481"
+         x1="56"
+         style="stroke:#724e62;stroke-width:2" />
+      <line
+         id="line2312"
+         y2="775"
+         x2="411"
+         y1="481"
+         x1="56"
+         style="stroke:#714c62;stroke-width:2" />
+      <line
+         id="line2314"
+         y2="871"
+         x2="479"
+         y1="481"
+         x1="56"
+         style="stroke:#6f4a63;stroke-width:2" />
+      <line
+         id="line2316"
+         y2="962"
+         x2="545"
+         y1="481"
+         x1="56"
+         style="stroke:#6d4863;stroke-width:2" />
+      <line
+         id="line2318"
+         y2="629"
+         x2="204"
+         y1="481"
+         x1="56"
+         style="stroke:#6c4763;stroke-width:2" />
+      <line
+         id="line2320"
+         y2="707"
+         x2="259"
+         y1="481"
+         x1="56"
+         style="stroke:#6a4563;stroke-width:2" />
+      <line
+         id="line2322"
+         y2="847"
+         x2="364"
+         y1="481"
+         x1="56"
+         style="stroke:#684364;stroke-width:2" />
+      <line
+         id="line2324"
+         y2="763"
+         x2="285"
+         y1="481"
+         x1="56"
+         style="stroke:#674164;stroke-width:2" />
+      <line
+         id="line2326"
+         y2="893"
+         x2="382"
+         y1="481"
+         x1="56"
+         style="stroke:#653f64;stroke-width:2" />
+      <line
+         id="line2328"
+         y2="907"
+         x2="346"
+         y1="481"
+         x1="56"
+         style="stroke:#633e64;stroke-width:2" />
+      <line
+         id="line2330"
+         y2="740"
+         x2="177"
+         y1="481"
+         x1="56"
+         style="stroke:#623c65;stroke-width:2" />
+      <line
+         id="line2332"
+         y2="792"
+         x2="194"
+         y1="481"
+         x1="56"
+         style="stroke:#603a65;stroke-width:2" />
+      <line
+         id="line2334"
+         y2="745"
+         x2="149"
+         y1="481"
+         x1="56"
+         style="stroke:#5e3865;stroke-width:2" />
+      <line
+         id="line2336"
+         y2="748"
+         x2="145"
+         y1="481"
+         x1="56"
+         style="stroke:#5c3665;stroke-width:2" />
+      <line
+         id="line2338"
+         y2="528"
+         x2="64"
+         y1="481"
+         x1="56"
+         style="stroke:#5b3566;stroke-width:2" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer6"
+     inkscape:label="partial_hull"
+     style="display:inline">
+    <circle
+       cx="56"
+       cy="481"
+       r="12"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       id="circle1838-3" />
+    <circle
+       cx="75"
+       cy="409"
+       r="12"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       id="circle1838-6" />
+    <circle
+       cx="204"
+       cy="180"
+       r="12"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       id="circle1838-5" />
+    <circle
+       cx="256"
+       cy="213"
+       r="12"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       id="circle1838-35" />
+    <circle
+       cx="249"
+       cy="300"
+       r="12"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       id="circle1838-62" />
+    <path
+       style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:16, 16;stroke-dashoffset:0;stroke-opacity:1"
+       d="M 56,481 614.69257,8.9981087"
+       id="path2140"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       d="M 249,300 256,213 204,180 75,409 56,481"
+       id="path2142"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer7"
+     inkscape:label="adding_point_1"
+     style="display:inline">
+    <path
+       inkscape:connector-curvature="0"
+       id="path2434"
+       d="M 249,300 256,213 204,180 75,409 56,481"
+       style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    <circle
+       id="circle2437"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       r="12"
+       cy="481"
+       cx="56" />
+    <circle
+       id="circle2439"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       r="12"
+       cy="409"
+       cx="75" />
+    <circle
+       id="circle2441"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       r="12"
+       cy="180"
+       cx="204" />
+    <circle
+       id="circle2443"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       r="12"
+       cy="213"
+       cx="256" />
+    <circle
+       id="circle2445"
+       style="display:inline;fill:none;stroke:#000000;stroke-width:2"
+       r="12"
+       cy="300"
+       cx="249" />
+    <circle
+       cx="412"
+       cy="193"
+       r="12"
+       style="display:inline;fill:#f57900;stroke:#f57900;stroke-width:2"
+       id="circle1838-62-9" />
+    <path
+       style="display:inline;opacity:1;fill:#f57900;fill-opacity:1;stroke:#f57900;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       d="M 249,300 412,193"
+       id="path2160"
+       inkscape:connector-curvature="0" />
+    <path
+       style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#f57900;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Arrow2Send)"
+       d="m 286.70433,227.21216 c 0,6.93447 5.56889,12.58358 12.50265,12.68274 6.93376,0.0992 12.66193,-5.38837 12.86024,-12.32 0.19831,-6.93163 -4.18172,-9.66261 -12.13483,-13.0351"
+       id="path2162"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cssc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer8"
+     inkscape:label="adding_point_2" />
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="hull"
+     style="display:none">
+    <circle
+       cx="56"
+       cy="481"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1830" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="56"
+       y1="481"
+       x2="75"
+       y2="409"
+       id="line1832" />
+    <circle
+       cx="75"
+       cy="409"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1834" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="75"
+       y1="409"
+       x2="204"
+       y2="180"
+       id="line1836" />
+    <circle
+       cx="204"
+       cy="180"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1838" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="204"
+       y1="180"
+       x2="628"
+       y2="80"
+       id="line1840" />
+    <circle
+       cx="628"
+       cy="80"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1842" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="628"
+       y1="80"
+       x2="685"
+       y2="100"
+       id="line1844" />
+    <circle
+       cx="685"
+       cy="100"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1846" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="685"
+       y1="100"
+       x2="771"
+       y2="199"
+       id="line1848" />
+    <circle
+       cx="771"
+       cy="199"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1850" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="771"
+       y1="199"
+       x2="953"
+       y2="438"
+       id="line1852" />
+    <circle
+       cx="953"
+       cy="438"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1854" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="953"
+       y1="438"
+       x2="857"
+       y2="778"
+       id="line1856" />
+    <circle
+       cx="857"
+       cy="778"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1858" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="857"
+       y1="778"
+       x2="809"
+       y2="858"
+       id="line1860" />
+    <circle
+       cx="809"
+       cy="858"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1862" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="809"
+       y1="858"
+       x2="714"
+       y2="900"
+       id="line1864" />
+    <circle
+       cx="714"
+       cy="900"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1866" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="714"
+       y1="900"
+       x2="545"
+       y2="962"
+       id="line1868" />
+    <circle
+       cx="545"
+       cy="962"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1870" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="545"
+       y1="962"
+       x2="346"
+       y2="907"
+       id="line1872" />
+    <circle
+       cx="346"
+       cy="907"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1874" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="346"
+       y1="907"
+       x2="194"
+       y2="792"
+       id="line1876" />
+    <circle
+       cx="194"
+       cy="792"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1878" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="194"
+       y1="792"
+       x2="145"
+       y2="748"
+       id="line1880" />
+    <circle
+       cx="145"
+       cy="748"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1882" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="145"
+       y1="748"
+       x2="64"
+       y2="528"
+       id="line1884" />
+    <circle
+       cx="64"
+       cy="528"
+       r="12"
+       style="fill:none;stroke:#000000;stroke-width:2"
+       id="circle1886" />
+    <line
+       style="stroke:#000000;stroke-width:2"
+       x1="64"
+       y1="528"
+       x2="56"
+       y2="481"
+       id="line1888" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer5"
+     inkscape:label="points"
+     style="display:inline">
+    <circle
+       style="fill:#000000"
+       cx="56"
+       cy="481"
+       r="8"
+       id="circle1630" />
+    <circle
+       style="fill:#000000"
+       cx="75"
+       cy="409"
+       r="8"
+       id="circle1632" />
+    <circle
+       style="fill:#000000"
+       cx="149"
+       cy="286"
+       r="8"
+       id="circle1634" />
+    <circle
+       style="fill:#000000"
+       cx="204"
+       cy="180"
+       r="8"
+       id="circle1636" />
+    <circle
+       style="fill:#000000"
+       cx="190"
+       cy="225"
+       r="8"
+       id="circle1638" />
+    <circle
+       style="fill:#000000"
+       cx="196"
+       cy="238"
+       r="8"
+       id="circle1640" />
+    <circle
+       style="fill:#000000"
+       cx="153"
+       cy="329"
+       r="8"
+       id="circle1642" />
+    <circle
+       style="fill:#000000"
+       cx="256"
+       cy="213"
+       r="8"
+       id="circle1644" />
+    <circle
+       style="fill:#000000"
+       cx="234"
+       cy="244"
+       r="8"
+       id="circle1646" />
+    <circle
+       style="fill:#000000"
+       cx="133"
+       cy="391"
+       r="8"
+       id="circle1648" />
+    <circle
+       style="fill:#000000"
+       cx="158"
+       cy="367"
+       r="8"
+       id="circle1650" />
+    <circle
+       style="fill:#000000"
+       cx="249"
+       cy="300"
+       r="8"
+       id="circle1652" />
+    <circle
+       style="fill:#000000"
+       cx="412"
+       cy="193"
+       r="8"
+       id="circle1654" />
+    <circle
+       style="fill:#000000"
+       cx="531"
+       cy="132"
+       r="8"
+       id="circle1656" />
+    <circle
+       style="fill:#000000"
+       cx="628"
+       cy="80"
+       r="8"
+       id="circle1658" />
+    <circle
+       style="fill:#000000"
+       cx="434"
+       cy="221"
+       r="8"
+       id="circle1660" />
+    <circle
+       style="fill:#000000"
+       cx="623"
+       cy="135"
+       r="8"
+       id="circle1662" />
+    <circle
+       style="fill:#000000"
+       cx="685"
+       cy="100"
+       r="8"
+       id="circle1664" />
+    <circle
+       style="fill:#000000"
+       cx="462"
+       cy="242"
+       r="8"
+       id="circle1666" />
+    <circle
+       style="fill:#000000"
+       cx="607"
+       cy="190"
+       r="8"
+       id="circle1668" />
+    <circle
+       style="fill:#000000"
+       cx="274"
+       cy="366"
+       r="8"
+       id="circle1670" />
+    <circle
+       style="fill:#000000"
+       cx="619"
+       cy="212"
+       r="8"
+       id="circle1672" />
+    <circle
+       style="fill:#000000"
+       cx="539"
+       cy="257"
+       r="8"
+       id="circle1674" />
+    <circle
+       style="fill:#000000"
+       cx="590"
+       cy="259"
+       r="8"
+       id="circle1676" />
+    <circle
+       style="fill:#000000"
+       cx="764"
+       cy="196"
+       r="8"
+       id="circle1678" />
+    <circle
+       style="fill:#000000"
+       cx="771"
+       cy="199"
+       r="8"
+       id="circle1680" />
+    <circle
+       style="fill:#000000"
+       cx="741"
+       cy="211"
+       r="8"
+       id="circle1682" />
+    <circle
+       style="fill:#000000"
+       cx="667"
+       cy="262"
+       r="8"
+       id="circle1684" />
+    <circle
+       style="fill:#000000"
+       cx="313"
+       cy="395"
+       r="8"
+       id="circle1686" />
+    <circle
+       style="fill:#000000"
+       cx="766"
+       cy="255"
+       r="8"
+       id="circle1688" />
+    <circle
+       style="fill:#000000"
+       cx="501"
+       cy="349"
+       r="8"
+       id="circle1690" />
+    <circle
+       style="fill:#000000"
+       cx="421"
+       cy="382"
+       r="8"
+       id="circle1692" />
+    <circle
+       style="fill:#000000"
+       cx="669"
+       cy="315"
+       r="8"
+       id="circle1694" />
+    <circle
+       style="fill:#000000"
+       cx="684"
+       cy="329"
+       r="8"
+       id="circle1696" />
+    <circle
+       style="fill:#000000"
+       cx="727"
+       cy="322"
+       r="8"
+       id="circle1698" />
+    <circle
+       style="fill:#000000"
+       cx="798"
+       cy="317"
+       r="8"
+       id="circle1700" />
+    <circle
+       style="fill:#000000"
+       cx="465"
+       cy="398"
+       r="8"
+       id="circle1702" />
+    <circle
+       style="fill:#000000"
+       cx="144"
+       cy="466"
+       r="8"
+       id="circle1704" />
+    <circle
+       style="fill:#000000"
+       cx="602"
+       cy="397"
+       r="8"
+       id="circle1706" />
+    <circle
+       style="fill:#000000"
+       cx="523"
+       cy="412"
+       r="8"
+       id="circle1708" />
+    <circle
+       style="fill:#000000"
+       cx="834"
+       cy="383"
+       r="8"
+       id="circle1710" />
+    <circle
+       style="fill:#000000"
+       cx="870"
+       cy="406"
+       r="8"
+       id="circle1712" />
+    <circle
+       style="fill:#000000"
+       cx="729"
+       cy="443"
+       r="8"
+       id="circle1714" />
+    <circle
+       style="fill:#000000"
+       cx="953"
+       cy="438"
+       r="8"
+       id="circle1716" />
+    <circle
+       style="fill:#000000"
+       cx="683"
+       cy="455"
+       r="8"
+       id="circle1718" />
+    <circle
+       style="fill:#000000"
+       cx="558"
+       cy="470"
+       r="8"
+       id="circle1720" />
+    <circle
+       style="fill:#000000"
+       cx="936"
+       cy="467"
+       r="8"
+       id="circle1722" />
+    <circle
+       style="fill:#000000"
+       cx="434"
+       cy="479"
+       r="8"
+       id="circle1724" />
+    <circle
+       style="fill:#000000"
+       cx="711"
+       cy="481"
+       r="8"
+       id="circle1726" />
+    <circle
+       style="fill:#000000"
+       cx="917"
+       cy="528"
+       r="8"
+       id="circle1728" />
+    <circle
+       style="fill:#000000"
+       cx="690"
+       cy="516"
+       r="8"
+       id="circle1730" />
+    <circle
+       style="fill:#000000"
+       cx="893"
+       cy="544"
+       r="8"
+       id="circle1732" />
+    <circle
+       style="fill:#000000"
+       cx="772"
+       cy="574"
+       r="8"
+       id="circle1734" />
+    <circle
+       style="fill:#000000"
+       cx="595"
+       cy="561"
+       r="8"
+       id="circle1736" />
+    <circle
+       style="fill:#000000"
+       cx="814"
+       cy="615"
+       r="8"
+       id="circle1738" />
+    <circle
+       style="fill:#000000"
+       cx="830"
+       cy="627"
+       r="8"
+       id="circle1740" />
+    <circle
+       style="fill:#000000"
+       cx="305"
+       cy="529"
+       r="8"
+       id="circle1742" />
+    <circle
+       style="fill:#000000"
+       cx="624"
+       cy="599"
+       r="8"
+       id="circle1744" />
+    <circle
+       style="fill:#000000"
+       cx="791"
+       cy="647"
+       r="8"
+       id="circle1746" />
+    <circle
+       style="fill:#000000"
+       cx="783"
+       cy="657"
+       r="8"
+       id="circle1748" />
+    <circle
+       style="fill:#000000"
+       cx="575"
+       cy="608"
+       r="8"
+       id="circle1750" />
+    <circle
+       style="fill:#000000"
+       cx="517"
+       cy="602"
+       r="8"
+       id="circle1752" />
+    <circle
+       style="fill:#000000"
+       cx="624"
+       cy="644"
+       r="8"
+       id="circle1754" />
+    <circle
+       style="fill:#000000"
+       cx="790"
+       cy="714"
+       r="8"
+       id="circle1756" />
+    <circle
+       style="fill:#000000"
+       cx="310"
+       cy="562"
+       r="8"
+       id="circle1758" />
+    <circle
+       style="fill:#000000"
+       cx="857"
+       cy="778"
+       r="8"
+       id="circle1760" />
+    <circle
+       style="fill:#000000"
+       cx="752"
+       cy="744"
+       r="8"
+       id="circle1762" />
+    <circle
+       style="fill:#000000"
+       cx="346"
+       cy="597"
+       r="8"
+       id="circle1764" />
+    <circle
+       style="fill:#000000"
+       cx="595"
+       cy="703"
+       r="8"
+       id="circle1766" />
+    <circle
+       style="fill:#000000"
+       cx="814"
+       cy="800"
+       r="8"
+       id="circle1768" />
+    <circle
+       style="fill:#000000"
+       cx="635"
+       cy="750"
+       r="8"
+       id="circle1770" />
+    <circle
+       style="fill:#000000"
+       cx="520"
+       cy="697"
+       r="8"
+       id="circle1772" />
+    <circle
+       style="fill:#000000"
+       cx="800"
+       cy="844"
+       r="8"
+       id="circle1774" />
+    <circle
+       style="fill:#000000"
+       cx="809"
+       cy="858"
+       r="8"
+       id="circle1776" />
+    <circle
+       style="fill:#000000"
+       cx="562"
+       cy="740"
+       r="8"
+       id="circle1778" />
+    <circle
+       style="fill:#000000"
+       cx="482"
+       cy="734"
+       r="8"
+       id="circle1780" />
+    <circle
+       style="fill:#000000"
+       cx="423"
+       cy="702"
+       r="8"
+       id="circle1782" />
+    <circle
+       style="fill:#000000"
+       cx="400"
+       cy="692"
+       r="8"
+       id="circle1784" />
+    <circle
+       style="fill:#000000"
+       cx="392"
+       cy="686"
+       r="8"
+       id="circle1786" />
+    <circle
+       style="fill:#000000"
+       cx="289"
+       cy="627"
+       r="8"
+       id="circle1788" />
+    <circle
+       style="fill:#000000"
+       cx="714"
+       cy="900"
+       r="8"
+       id="circle1790" />
+    <circle
+       style="fill:#000000"
+       cx="529"
+       cy="785"
+       r="8"
+       id="circle1792" />
+    <circle
+       style="fill:#000000"
+       cx="606"
+       cy="876"
+       r="8"
+       id="circle1794" />
+    <circle
+       style="fill:#000000"
+       cx="522"
+       cy="834"
+       r="8"
+       id="circle1796" />
+    <circle
+       style="fill:#000000"
+       cx="302"
+       cy="675"
+       r="8"
+       id="circle1798" />
+    <circle
+       style="fill:#000000"
+       cx="506"
+       cy="849"
+       r="8"
+       id="circle1800" />
+    <circle
+       style="fill:#000000"
+       cx="411"
+       cy="775"
+       r="8"
+       id="circle1802" />
+    <circle
+       style="fill:#000000"
+       cx="479"
+       cy="871"
+       r="8"
+       id="circle1804" />
+    <circle
+       style="fill:#000000"
+       cx="545"
+       cy="962"
+       r="8"
+       id="circle1806" />
+    <circle
+       style="fill:#000000"
+       cx="204"
+       cy="629"
+       r="8"
+       id="circle1808" />
+    <circle
+       style="fill:#000000"
+       cx="259"
+       cy="707"
+       r="8"
+       id="circle1810" />
+    <circle
+       style="fill:#000000"
+       cx="364"
+       cy="847"
+       r="8"
+       id="circle1812" />
+    <circle
+       style="fill:#000000"
+       cx="285"
+       cy="763"
+       r="8"
+       id="circle1814" />
+    <circle
+       style="fill:#000000"
+       cx="382"
+       cy="893"
+       r="8"
+       id="circle1816" />
+    <circle
+       style="fill:#000000"
+       cx="346"
+       cy="907"
+       r="8"
+       id="circle1818" />
+    <circle
+       style="fill:#000000"
+       cx="177"
+       cy="740"
+       r="8"
+       id="circle1820" />
+    <circle
+       style="fill:#000000"
+       cx="194"
+       cy="792"
+       r="8"
+       id="circle1822" />
+    <circle
+       style="fill:#000000"
+       cx="149"
+       cy="745"
+       r="8"
+       id="circle1824" />
+    <circle
+       style="fill:#000000"
+       cx="145"
+       cy="748"
+       r="8"
+       id="circle1826" />
+    <circle
+       style="fill:#000000"
+       cx="64"
+       cy="528"
+       r="8"
+       id="circle1828" />
+  </g>
+</svg>
diff --git a/Presentation/Figures/hull_aligned.pdf b/Presentation/Figures/hull_aligned.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..01056c98356355dd5ecbad756eb9f383f1703f53
Binary files /dev/null and b/Presentation/Figures/hull_aligned.pdf differ
diff --git a/Presentation/Figures/hull_aligned.svg b/Presentation/Figures/hull_aligned.svg
new file mode 100644
index 0000000000000000000000000000000000000000..c0a54c2e0a07a3aec51b9dbf8ea41ec0c8447d0b
--- /dev/null
+++ b/Presentation/Figures/hull_aligned.svg
@@ -0,0 +1,17 @@
+<svg height="1024" width="1024">
+<circle cx="51" cy="512" r="8" fill="rgb(0, 0, 0)" />
+<circle cx="51" cy="51" r="8" fill="rgb(0, 0, 0)" />
+<circle cx="51" cy="973" r="8" fill="rgb(0, 0, 0)" />
+<circle cx="51" cy="235" r="8" fill="rgb(0, 0, 0)" />
+<circle cx="973" cy="512" r="8" fill="rgb(0, 0, 0)" />
+<circle cx="51" cy="512" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/>
+<line x1="51" y1="512" x2="51" y2="51" stroke="rgb(0, 0, 0)" stroke-width="2"/>
+<circle cx="51" cy="51" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/>
+<line x1="51" y1="51" x2="51" y2="973" stroke="rgb(0, 0, 0)" stroke-width="2"/>
+<circle cx="51" cy="973" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/>
+<line x1="51" y1="973" x2="51" y2="235" stroke="rgb(0, 0, 0)" stroke-width="2"/>
+<circle cx="51" cy="235" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/>
+<line x1="51" y1="235" x2="973" y2="512" stroke="rgb(0, 0, 0)" stroke-width="2"/>
+<circle cx="973" cy="512" r="12" stroke="rgb(0, 0, 0)" stroke-width="2" style="fill:none"/>
+<line x1="973" y1="512" x2="51" y2="512" stroke="rgb(0, 0, 0)" stroke-width="2"/>
+</svg>
diff --git a/Presentation/Figures/hull_sort.pdf b/Presentation/Figures/hull_sort.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..3790fd9a497435cbf453740384bc81c9774665d2
Binary files /dev/null and b/Presentation/Figures/hull_sort.pdf differ
diff --git a/Presentation/Figures/increment_hull_1.pdf b/Presentation/Figures/increment_hull_1.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..542821b19c75bcf689b94aaa01d6d89daee95a56
Binary files /dev/null and b/Presentation/Figures/increment_hull_1.pdf differ
diff --git a/Presentation/Figures/increment_hull_2.pdf b/Presentation/Figures/increment_hull_2.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..81c9cd8ae904bd96feba2eed624ff89183be81ef
Binary files /dev/null and b/Presentation/Figures/increment_hull_2.pdf differ
diff --git a/Presentation/Figures/increment_hull_3.pdf b/Presentation/Figures/increment_hull_3.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..52bbbd42052d101ff4aefec0b6ba27b3022c8037
Binary files /dev/null and b/Presentation/Figures/increment_hull_3.pdf differ
diff --git a/Presentation/Figures/partial_hull.pdf b/Presentation/Figures/partial_hull.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..0196d8ec1e3ceef7e4ed95603f3ffc0a9ee33af2
Binary files /dev/null and b/Presentation/Figures/partial_hull.pdf differ
diff --git a/Presentation/beamer_preamble.tex b/Presentation/beamer_preamble.tex
new file mode 100644
index 0000000000000000000000000000000000000000..b87fe3d72b7a1390af2149f6b3ba10d2f38304b2
--- /dev/null
+++ b/Presentation/beamer_preamble.tex
@@ -0,0 +1,183 @@
+\documentclass[french,pdftex]{beamer}
+\usepackage[french]{babel}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[rm={oldstyle=false}, sf={oldstyle=false}, tt={oldstyle=false}]{cfr-lm}
+\usetheme[compress]{Nivoliev}
+\usepackage{tabularx}
+\usepackage{hyperref}
+\usepackage{graphicx}
+\usepackage{tikz}
+\usepackage{amsmath, amssymb, amsfonts}
+\usepackage{mathrsfs}
+\usepackage{amsthm}
+\usepackage{verbatim}
+\usepackage{color}
+\usepackage{colortbl}
+\usepackage{multimedia}
+\usepackage{listings}
+\usepackage{multimedia}
+\usepackage{xparse}
+\usepackage{comment}
+\usepackage{animate}
+
+\setbeamersize{text margin left=0.5cm}
+\setbeamersize{text margin right=0.5cm}
+\definecolor{thcolor}{rgb}{0.8,0.3,0}
+\setbeamercolor{structure}{fg=thcolor}
+\setbeamertemplate{navigation symbols}{}
+\setbeamertemplate{enumerate items}[default]
+\setbeamercovered{transparent}
+
+\lstset{breakatwhitespace,
+basicstyle=\tiny\ttfamily,
+columns=fullflexible,
+keepspaces,
+breaklines,
+tabsize=3, 
+showstringspaces=false,
+extendedchars=true}
+
+\setcounter{tocdepth}{1}
+
+\newcommand{\hl}[1]{\textcolor{structure}{#1}}
+\newcommand{\lighten}{\xglobal\blendcolors*{!20!white}\color{black}}
+\newcommand{\unlighten}{\xglobal\blendcolors{}\color{black}}
+
+\newcommand{\li}{\linewidth}
+
+%{fold} minipages
+
+\newcommand{\minip}[2]{
+  \begin{minipage}[c]{#1\linewidth} 
+    #2
+  \end{minipage}
+}
+
+\newcommand{\cminip}[2]{
+  \begin{minipage}[c]{#1\linewidth} 
+    \begin{center}
+      #2
+    \end{center} 
+  \end{minipage}
+}
+
+%{endfold}
+
+%{fold} blocks
+
+%\newsavebox{\blockbox}
+%\NewDocumentEnvironment{myblock}{O{} O{} m}%
+%{%
+%  \sbox{\blockbox}\bgroup%
+%}
+%{%
+%  \egroup
+%  \begin{tikzpicture}%
+%    \draw%
+%      node[ drop shadow,%
+%            rounded corners,%
+%            draw, fill=white,%
+%            inner sep = 3mm,%
+%            #2%
+%          ] (#1) {
+%            \usebox{\blockbox}
+%          } ;
+%  \end{tikzpicture}%
+%}
+
+\NewDocumentEnvironment{myblock}{O{} O{} m}%
+{%
+  \begin{tikzpicture}%
+    \draw%
+      node[ drop shadow,%
+            rounded corners,%
+            draw, fill=white,%
+            inner sep = 3mm,%
+            #2%
+          ] (#1) \bgroup%
+        \begin{minipage}[c]{#3}%
+}
+{%
+        \end{minipage}%
+  \egroup
+  ;
+  \end{tikzpicture}%
+}
+
+\NewDocumentEnvironment{myoverlayblock}{O{} O{} m m}%
+{%
+  \begin{tikzpicture}[overlay]%
+    \draw #4%
+      node[ drop shadow,%
+            rounded corners,%
+            draw, fill=white,%
+            inner sep = 3mm,%
+            #2%
+          ]%
+      (#1)
+      \bgroup%
+        \begin{minipage}[c]{#3}%
+}
+{%
+        \end{minipage}%
+      \egroup ;%
+  \end{tikzpicture}%
+}
+
+%{endfold}
+
+%{fold} Tikz
+\everymath{\displaystyle}
+\tikzstyle{every picture}+=[remember picture]
+\usetikzlibrary{calc,fit,decorations.pathreplacing,decorations.pathmorphing,shadows}
+
+\tikzstyle{rounded boxed}=[thick, draw=black, fill=white, rounded corners]
+
+%blocks and arrows between them
+\newcommand{\pin}[2]{
+  \tikz[baseline]{
+    \node[anchor=base,inner sep=0pt, outer sep=0pt, minimum height=1em] (#1) {#2};
+  }
+}
+\newcommand{\back}[3]{
+  \tikz[baseline]{
+    \node[rectangle,rounded corners,anchor=base,fill=#2!10] (#1) {#3};
+  }
+}
+\newcommand{\backcol}[3]{
+  \tikz[baseline]{
+    \node[very thin,rectangle,rounded corners,anchor=base,fill=#2] (#1) {#3};
+  }
+}
+\newcommand{\arrow}[3]{
+  \tikz[overlay]{
+    \path[->] (#2) edge [#1] (#3);
+  }
+}
+
+\newcommand{\tikzmark}[1]{
+  \tikz[overlay,baseline=0pt]{
+    \node [anchor=base, inner sep = 0pt, outer sep = 0pt] (#1) {};
+  }
+}
+%{endfold}
+
+%{fold} listings
+
+\newcommand{\CodeSymbol}[1]{\textcolor{red}{#1}}
+
+\lstset{
+  showspaces=false,
+  showstringspaces=false,
+  basicstyle=\footnotesize,
+  numbersep=0pt,
+  keywordstyle=\color{structure!90!black},
+  belowskip=-0.8\baselineskip,
+  aboveskip=0pt,
+  escapechar=§
+}
+
+%{endfold}
+
+%\renewcommand\textbullet{\ensuremath{\bullet}}
diff --git a/Presentation/beamerthemeNivoliev.sty b/Presentation/beamerthemeNivoliev.sty
new file mode 100644
index 0000000000000000000000000000000000000000..b52417f423ab654c661e0ccf5c32859b46bd6075
--- /dev/null
+++ b/Presentation/beamerthemeNivoliev.sty
@@ -0,0 +1,65 @@
+% Copyright 2007 by Vincent Nivoliers
+%
+% This file may be distributed and/or modified
+%
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+%
+% See the file doc/licenses/LICENSE for more details.
+
+\DeclareOptionBeamer{compress}{\beamer@compresstrue}
+\ProcessOptionsBeamer
+  
+
+\mode<presentation>
+
+\setbeamercolor{section in head/foot}{use=structure,bg=structure.fg!25!bg}
+
+\useoutertheme[subsection=false]{miniframes}
+
+\useinnertheme[shadow=true]{rounded}
+
+\setbeamertemplate{frametitle}[default][center]
+
+\AtBeginDocument{%
+  {
+    \usebeamercolor{section in head/foot}
+  }
+  
+  \pgfdeclareverticalshading{beamer@headfade}{\paperwidth}
+  {%
+    color(0cm)=(bg);
+    color(1cm)=(section in head/foot.bg)%
+  }
+
+  \pgfdeclareverticalshading{beamer@footfade}{\paperwidth}
+  {%
+    color(0cm)=(section in head/foot.bg);
+    color(2.5ex)=(bg)%
+  }
+
+  \setbeamercolor{section in head/foot}{bg=}
+}
+
+\addtoheadtemplate{\pgfuseshading{beamer@headfade}\vskip-1cm}{}
+
+\defbeamertemplate*{footline}{mytheme theme}
+{
+  \leavevmode%
+  \pgfuseshading{beamer@footfade}%
+  \vskip-3.5ex
+  \begin{beamercolorbox}[wd=\textwidth,ht=2.25ex,dp=1.25ex]{section in head/foot}%
+    \hspace{1em}
+    \insertshorttitle
+    \hfill
+    \insertauthor
+    \hfill
+    \insertframenumber{} $/$ \inserttotalframenumber
+    \hspace{1em}
+  \end{beamercolorbox}
+  \vskip0pt%
+}
+
+\beamertemplatedotitem
+
+\mode<all>
diff --git a/Presentation/presentation.tex b/Presentation/presentation.tex
new file mode 100644
index 0000000000000000000000000000000000000000..d70438fd7851f8cb0f6fa224068996a0c819ef45
--- /dev/null
+++ b/Presentation/presentation.tex
@@ -0,0 +1,83 @@
+\input{beamer_preamble}
+
+\usepackage{ucblalgo}
+\setbeamercovered{invisible}
+
+\newcommand{\vor}[1]{\ensuremath{\mathrm{Vor}(#1)}}
+\newcommand{\site}{\mathbf{v}}
+\newcommand{\sites}{\mathbf{V}}
+\newcommand{\point}{\mathbf{p}}
+\newcommand{\R}{\mathbb{R}}
+
+\title{Robustesse des algorithmes géométriques : \\ prédicats, filtrage et perturbation}
+
+\author{Vincent Nivoliers}
+
+\begin{document}
+
+\frame{
+  \maketitle
+}
+
+
+\section{Enveloppe Convexe}
+
+\frame {
+  \frametitle{Enveloppe convexe}
+  \centering
+  \includegraphics[width=0.6\li]{Figures/hull.pdf}
+}
+
+\frame {
+  \frametitle{1 -- trier par angle}
+  \centering
+  \includegraphics[width=0.6\li]{Figures/hull_sort.pdf}
+}
+
+\frame {
+  \frametitle{2 -- balayage}
+  \centering
+  \only<1>{\includegraphics[width=0.6\li]{Figures/partial_hull.pdf}}%
+  \only<2>{\includegraphics[width=0.6\li]{Figures/increment_hull_1.pdf}}%
+  \only<3>{\includegraphics[width=0.6\li]{Figures/increment_hull_2.pdf}}%
+  \only<4>{\includegraphics[width=0.6\li]{Figures/increment_hull_3.pdf}}%
+  \only<5>{\includegraphics[width=0.6\li]{Figures/hull.pdf}}%
+}
+
+\frame {
+  \frametitle{Robustesse : alignements de points}
+  \centering
+  \includegraphics[width=0.6\li]{Figures/hull_aligned.pdf}
+}
+
+\frame {
+  \frametitle{Algorithme}
+  \centering
+  \begin{ucblalgo}
+    \SetKwData{pt}{p}
+    \SetKwData{hull}{enveloppe}
+    \Algorithme{
+      déterminer le point le plus à gauche \;
+      \only<1>{trier les points par angle \;}%
+      \only<2>{\hl{trier les points par angle} \;}
+      $\hull \leftarrow$ une nouvelle pile\;
+      ajouter les deux premiers points à \hull \;
+      \PourCh{autre point \pt dans l'ordre}{
+        $\pt_0 \leftarrow $ dernier point de l'\hull \;
+        $\pt_1 \leftarrow $ avant dernier point de l'\hull \;
+        \Tq{
+          \only<1>{$(\pt_0\pt)$ tourne à gauche par rapport à $(\pt_1\pt)$}%
+          \only<2>{\hl{$(\pt_0\pt)$ tourne à gauche par rapport à $(\pt_1\pt)$}}
+        }{
+          retirer le sommet de l'\hull \;
+          $\pt_0 \leftarrow $ dernier point de l'\hull \;
+          $\pt_1 \leftarrow $ avant dernier point de l'\hull \;
+        }
+        ajouter \pt à l'\hull \;
+      }
+      \Retour{l'\hull} \;
+    }
+  \end{ucblalgo}
+}
+
+\end{document}
diff --git a/Presentation/ucblalgo.sty b/Presentation/ucblalgo.sty
new file mode 100644
index 0000000000000000000000000000000000000000..e7353f6fb2eb62dbf514b08da16c3a62223b9c46
--- /dev/null
+++ b/Presentation/ucblalgo.sty
@@ -0,0 +1,92 @@
+\ProvidesPackage{ucblalgo}
+\RequirePackage[vlined, french, nofillcomment]{algorithm2e}
+\RequirePackage{xstring}
+\RequirePackage{ifthen}
+
+%\SetFuncSty{textsf}%
+%\SetProcArgSty{textsf}%
+%\SetFuncArgSty{textsf}%
+%\SetArgSty{textrm}%
+\SetCommentSty{}%
+
+\SetKw{vrai}{vrai}
+\SetKw{faux}{faux}
+\SetKw{tableau}{tableau}
+
+\SetKwInput{donres}{données-résultat}
+\SetKwInput{donnee}{données}
+\SetKwInput{resultat}{résultat}
+\SetKwInput{variables}{variables}
+
+\SetKwFor{FonctionInner}{Fonction}{}{fin}
+\SetKwFor{ProcedureInner}{Procédure}{}{fin}
+
+\newcommand{\algoname}[1]{%
+  \StrBefore{#1}{(}%
+}
+
+\newcommand{\algoargs}[1]{%
+  (\StrBehind{#1}{(}%
+}
+
+\newcommand{\Fonction}[2]{
+  %\def\ucblalgoname{\algoname{#1}}%
+  %\def\ucblalgoargs{\algoargs{#1}}%
+  \SetKwFunction{#1}{#1}%
+  \FonctionInner{\expandafter\csname#1\endcsname{} \ifthenelse{\equal{#2}{}}{}{$\rightarrow$ #2}}
+}
+\newcommand{\ArgFonction}[3]{
+  \SetKwFunction{#1}{#1}%
+  \FonctionInner{\expandafter\csname#1\endcsname{#2} \ifthenelse{\equal{#3}{}}{}{$\rightarrow$ #3}}
+}
+\newcommand{\Procedure}[1]{
+  \SetKwFunction{#1}{#1}% 
+  \ProcedureInner{\expandafter\csname#1\endcsname}
+}
+
+\newlength{\forewordlen}
+\newlength{\forewordantilen}
+
+\newenvironment{foreword}[1]{%
+  \settowidth{\forewordlen}{#1 : }%
+  \setlength{\forewordantilen}{\linewidth}%
+  \addtolength{\forewordantilen}{-\forewordlen}%
+  \begin{minipage}[t]{\forewordlen}%
+    #1 : %
+  \end{minipage}%
+  \begin{minipage}[t]{\forewordantilen}%
+}{%
+  \end{minipage}%
+}
+
+\newcommand{\precond}[1]{%
+  \begin{foreword}{précondition}%
+    \itshape{%
+      #1%
+    }%
+  \end{foreword}%
+}
+
+\newcommand{\postcond}[1]{%
+  \begin{foreword}{postcondition}%
+    \itshape{%
+      #1%
+    }%
+  \end{foreword}%
+}
+
+\newcommand{\incr}[1]{#1${+}{+}$}
+\newcommand{\decr}[1]{#1${-}{-}$}
+
+\newenvironment{ucblalgo}[1][H]{%
+  \renewcommand{\algorithmcfname}{Algorithme}%
+  \IncMargin{0em}%
+  \DontPrintSemicolon%
+  \begin{algorithm}[#1]%
+    \SetKwBlock{Algorithme}{Algorithme}{Fin}%
+}{%
+  \end{algorithm}%
+  \DecMargin{0em}%
+}
+
+\endinput