diff --git a/04-ContraintesRessources/03.04.ValidationGeometrique.md b/04-ContraintesRessources/03.04.ValidationGeometrique.md
index 0d1714e80f75bd812477b01022badaa58814cb11..6911ff24b84fa0ca022f39a21f97deb332b01992 100644
--- a/04-ContraintesRessources/03.04.ValidationGeometrique.md
+++ b/04-ContraintesRessources/03.04.ValidationGeometrique.md
@@ -507,4 +507,110 @@ Pour plus d’informations sur JTS : [http://www.vividsolutions.com/jts](http://
     <td class="tg-o6tx">POLYGON ((31 21,31 30,40 30,40 21,31 21),(35 25,35 27,36 27,36 25,35 25))</td>
     <td class="tg-o6tx">14</td>
   </tr>
+</table>
+
+
+
+
+<style type="text/css">
+.tg  {border-collapse:collapse;border-spacing:0;}
+.tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
+  overflow:hidden;padding:10px 5px;word-break:normal;}
+.tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
+  font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}
+.tg .tg-o6tx{background-color:#eae8e8;border-color:#d6d6d6;text-align:left;vertical-align:top}
+.tg .tg-0pn5{background-color:#923288;border-color:#d6d6d6;color:#ffffff;text-align:left;vertical-align:top}
+.tg .tg-avj4{border-color:#d6d6d6;text-align:left;vertical-align:top}
+</style>
+<table class="tg">
+  <tr>
+    <th class="tg-0pn5">Critère de validation</th>
+    <th class="tg-0pn5">StartFragmentDéfinitionEndFragment</th>
+    <th class="tg-0pn5">StartFragmentChaîne WKTEndFragment</th>
+    <th class="tg-0pn5">StartFragmentExemple de géométrieEndFragment</th>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentGéométries corrompues ou dégénéréesEndFragment</td>
+    <td class="tg-avj4">StartFragmentL<span style="font-weight:400;font-style:normal">es dégénérescences et </span><br><span style="font-weight:400;font-style:normal">corruptions vont être détectées. Une géométrie dégénérée est une </span><br><span style="font-weight:400;font-style:normal">géométrie dont le type de géométrie peut être simplifié. Un polygone </span><br><span style="font-weight:400;font-style:normal">avec une surface nulle, par exemple, est dégénéré, et peut être </span><br><span style="font-weight:400;font-style:normal">simplifié en une ligne, un point ou un IFMENull. Une géométrie </span><br><span style="font-weight:400;font-style:normal">corrompue, quant à elle, contient des éléments conflictuels dans la </span><br><span style="font-weight:400;font-style:normal">définition de sa géométrie (ex : un arc dont les angles et les points </span><br><span style="font-weight:400;font-style:normal">finals sont incohérents).</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-avj4">StartFragment<span style="font-weight:normal;color:rgb(146, 50, 136)">POLYGON ((15 35))</span><br><span style="font-weight:normal">EndFragment</span></td>
+    <td class="tg-avj4"><img src="https://gitlab.veremes.net/Documentation/doc_qualigeo/raw/5a57cfe99d6f5297fc2db7e2ae34790440f9ad59/Ressources/Images/geom1.png" width="400" height="300"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentAuto intersectionEndFragment</td>
+    <td class="tg-o6tx">StartFragmentL<span style="font-weight:400;font-style:normal">es points d’auto-intersection sont détectés.</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-o6tx">StartFragment<span style="font-weight:normal">POLYGON ((0 11,0 20,10 20,10 11,0 11),(0 15,2 16,0 17,0 15)) </span><br><span style="font-weight:normal">EndFragment</span></td>
+    <td class="tg-o6tx"><img src="https://gitlab.veremes.net/Documentation/doc_qualigeo/raw/5a57cfe99d6f5297fc2db7e2ae34790440f9ad59/Ressources/Images/geom2.png" width="400" height="300"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentPoints consécutifs dupliqués en 3DEndFragment</td>
+    <td class="tg-avj4">StartFragment<span style="font-weight:400;font-style:normal">La détection des entités dupliquées est réalisée en 3D.</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-avj4">StartFragmentLINESTRING Z (0 0 10,0 0 10,1 1 10,2 2 10)EndFragment</td>
+    <td class="tg-avj4"><img src="https://gitlab.veremes.net/Documentation/doc_qualigeo/raw/5a57cfe99d6f5297fc2db7e2ae34790440f9ad59/Ressources/Images/geom3_4.png" width="400" height="300"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentPoints consécutifs dupliqués en 2DEndFragment</td>
+    <td class="tg-o6tx">StartFragmentL<span style="font-weight:400;font-style:normal">a détection des entités dupliquées est réalisée en 2D.</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-o6tx">StartFragmentLINESTRING (0 0,0 0,1 1,2 0)EndFragment</td>
+    <td class="tg-o6tx"><img src="https://gitlab.veremes.net/Documentation/doc_qualigeo/raw/5a57cfe99d6f5297fc2db7e2ae34790440f9ad59/Ressources/Images/geom3_4.png" width="400" height="300"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentContient des valeurs NaN ou infiniesEndFragment</td>
+    <td class="tg-avj4">StartFragmentL<span style="font-weight:400;font-style:normal">es NaN (Not a Number) et les valeurs infinies vont être détectées.</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-avj4">StartFragmentPOINT (0 nan)EndFragment</td>
+    <td class="tg-avj4"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentContient des parties de géométries nullesEndFragment</td>
+    <td class="tg-o6tx">StartFragmentL<span style="font-weight:400;font-style:normal">es IFMENull vont être </span><br><span style="font-weight:400;font-style:normal">détectés. Noter qu’un IFMENull n’est considéré comme une « partie » que </span><br><span style="font-weight:400;font-style:normal">s’il provient d’un agrégat. Seuls les IFMNull enfants de certains </span><br><span style="font-weight:400;font-style:normal">agrégats sont considérés comme des « parties ».</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-o6tx">StartFragmentGEOMETRYCOLLECTION (POLYGON ((0 0,1 0,1 1,0 1,0 0)),POLYGON ((3 0,4 0,4 4,3 4,0 4,3 0)),GEOMETRYCOLLECTION EMPTY)EndFragment</td>
+    <td class="tg-o6tx"><img src="https://gitlab.veremes.net/Documentation/doc_qualigeo/raw/5a57cfe99d6f5297fc2db7e2ae34790440f9ad59/Ressources/Images/geom6.png" width="400" height="300"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentVertex "normaux" manquantsEndFragment</td>
+    <td class="tg-avj4">StartFragment<span style="font-weight:400;font-style:normal">Les vertex sans normale et les coordonnées de texture manquantes sont détectés (un vertex est rapporté par géométrie).</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-avj4">StartFragment<span style="font-weight:normal">MULTILINESTRING Z ((1 5 0,1 5 0),(1 5 0,2 3 4),(2 3 4,1 5 0))</span><br><span style="font-weight:normal">EndFragment</span></td>
+    <td class="tg-avj4"><img src="https://gitlab.veremes.net/Documentation/doc_qualigeo/raw/5a57cfe99d6f5297fc2db7e2ae34790440f9ad59/Ressources/Images/geom7.png" width="400" height="300"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentSurface non planeEndFragment</td>
+    <td class="tg-o6tx">StartFragment<span style="font-weight:400;font-style:normal">Les faces et parties de </span><br><span style="font-weight:400;font-style:normal">surfaces non planes, comme par exemple des parties de mailles ou des </span><br><span style="font-weight:400;font-style:normal">parties de surfaces composées, vont être détectées. Une face ou une </span><br><span style="font-weight:400;font-style:normal">partie de surface non planaire n’a pas tous les vertex dans le même plan</span><br><span style="font-weight:400;font-style:normal"> de l’espace.</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-o6tx"></td>
+    <td class="tg-o6tx"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentLimites de solides invalidesEndFragment</td>
+    <td class="tg-avj4">StartFragment<span style="font-weight:400;font-style:normal">Les types d’anomalies suivants peuvent être détectés :</span><br><br><span style="font-weight:400;font-style:normal">- vertex non utilisés</span><br>,<br><span style="font-weight:400;font-style:normal">- pas assez de faces</span><br>,<br><span style="font-weight:400;font-style:normal">- mauvaise orientation de face</span><br>,<br><span style="font-weight:400;font-style:normal">- géométrie 2-Manifold invalide</span><br>,<br><span style="font-weight:400;font-style:normal">- surface auto-intersectée</span><br>,<br><span style="font-weight:400;font-style:normal">- surface non fermée</span><br>,<br><span style="font-weight:400;font-style:normal">- mauvaise orientation de surface</span><br>,<br><span style="font-weight:400;font-style:normal">- plusieurs composants connectés</span><br>.EndFragment</td>
+    <td class="tg-avj4"></td>
+    <td class="tg-avj4"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">Vides de solides invalides</td>
+    <td class="tg-o6tx">StartFragment<span style="font-weight:400;font-style:normal">Un vide est une cavité, </span><br><span style="font-weight:400;font-style:normal">ou une région vide à l’intérieur d’un solide et est définie par sa </span><br><span style="font-weight:400;font-style:normal">bordure interne. Un solide est défini par sa bordure externe et une ou </span><br><span style="font-weight:400;font-style:normal">plusieurs bordures internes.</span><br><br><span style="font-weight:400;font-style:normal">Les types d’anomalies suivants peuvent être détectés :</span><br><br><span style="font-weight:400;font-style:normal">- dupliquer les enveloppes</span><br>,<br><span style="font-weight:400;font-style:normal">- intersection des enveloppes</span><br>,<br><span style="font-weight:400;font-style:normal">- coquille interne à l’extérieur de coquille externe,</span><br><br><span style="font-weight:400;font-style:normal">- intérieur de coquille non connecté,</span><br><br><span style="font-weight:400;font-style:normal">- bordures de solide invalides</span><br>.EndFragment</td>
+    <td class="tg-o6tx">StartFragment<span style="font-weight:normal">MULTILINESTRING Z ((0 0 0,10 0 0),(10 0 0,10 0 10),(10 0 10,0 0 10),(0 0 10,0 0 </span><br><span style="font-weight:normal">0),(10 0 0,10 10 0),(10 10 0,10 10 10),(10 10 10,10 0 10),(10 0 10,10 0 0),(0 0 </span><br><span style="font-weight:normal">0,0 10 0),(0 10 0,10 10 0),(10 10 0,10 0 0),(10 0 0,0 0 0),(0 0 0,0 0 10),(0 0 </span><br><span style="font-weight:normal">10,0 10 10),(0 10 10,0 10 0),(0 10 0,0 0 0),(0 0 10,10 0 10),(10 0 10,10 10 </span><br><span style="font-weight:normal">10),(10 10 10,0 10 10),(0 10 10,0 0 10),(0 10 0,0 10 10),(0 10 10,10 10 10),(10 </span><br><span style="font-weight:normal">10 10,10 10 0),(10 10 0,0 10 0),(2 2 2,2 2 5),(2 2 5,5 2 5),(5 2 5,5 2 2),(5 2 </span><br><span style="font-weight:normal">2,2 2 2),(2 2 2,5 2 2),(5 2 2,5 5 2),(5 5 2,2 5 2),(2 5 2,2 2 2),(5 2 2,5 2 </span><br><span style="font-weight:normal">5),(5 2 5,5 5 5),(5 5 5,5 5 2),(5 5 2,5 2 2),(2 2 2,2 5 2),(2 5 2,2 5 5),(2 5 </span><br><span style="font-weight:normal">5,2 2 5),(2 2 5,2 2 2),(2 2 5,2 5 5),(2 5 5,5 5 5),(5 5 5,5 2 5),(5 2 5,2 2 </span><br><span style="font-weight:normal">5),(2 5 2,5 5 2),(5 5 2,5 5 5),(5 5 5,2 5 5),(2 5 5,2 5 2),(5 5 5,5 7 5),(5 7 </span><br><span style="font-weight:normal">5,5 7 7),(5 7 7,5 5 7),(5 5 7,5 5 5),(5 5 5,7 5 5),(7 5 5,7 7 5),(7 7 5,5 7 </span><br><span style="font-weight:normal">5),(5 7 5,5 5 5),(5 5 5,5 5 7),(5 5 7,7 5 7),(7 5 7,7 5 5),(7 5 5,5 5 5),(5 5 </span><br><span style="font-weight:normal">7,5 7 7),(5 7 7,7 7 7),(7 7 7,7 5 7),(7 5 7,5 5 7),(5 7 5,7 7 5),(7 7 5,7 7 </span><br><span style="font-weight:normal">7),(7 7 7,5 7 7),(5 7 7,5 7 5),(7 5 5,7 5 7),(7 5 7,7 7 7),(7 7 7,7 7 5),(7 7 </span><br><span style="font-weight:normal">5,7 5 5))EndFragment</span></td>
+    <td class="tg-o6tx"><img src="https://gitlab.veremes.net/Documentation/doc_qualigeo/raw/5a57cfe99d6f5297fc2db7e2ae34790440f9ad59/Ressources/Images/geom10.png" width="400" height="300"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentToutes les erreurs OGC simplesEndFragment</td>
+    <td class="tg-avj4">StartFragmentLa contrainte OGC simple regroupe les trois contraintes :<br>- auto Intersection,<br>- point répété,<br>- géométrie corrompue.EndFragment</td>
+    <td class="tg-avj4"></td>
+    <td class="tg-avj4"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentToutes les erreurs OGC validesEndFragment</td>
+    <td class="tg-o6tx">StartFragmentLa contrainte OGC valide regroupes les contraintes :<br>- trou à l’extérieur,<br>- trous imbriqués,<br>- intérieur déconnecté,<br>- anneau auto intersecté,<br>- enveloppes complémentaires,<br>- anneaux dupliqués,<br>- pas assez de points,<br>- coordonnée invalide,<br>- anneau non fermé,<br>- géométrie corrompue.EndFragment</td>
+    <td class="tg-o6tx"></td>
+    <td class="tg-o6tx"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentCoordonnées de texture manquantesEndFragment</td>
+    <td class="tg-avj4">StartFragment<span style="font-weight:400;font-style:normal">Certaines géométries, </span><br><span style="font-weight:400;font-style:normal">comme les mailles et les faces, supportent les apparences. Ces </span><br><span style="font-weight:400;font-style:normal">géométries peuvent être incluses dans des surfaces complexes ou de </span><br><span style="font-weight:400;font-style:normal">solides. Parfois, les apparences ont des textures associées, en raster. </span><br><span style="font-weight:400;font-style:normal">Si c’est le cas, il est nécessaire que les géométries correspondantes </span><br><span style="font-weight:400;font-style:normal">disposent des coordonnées de texture. Sans celles-ci, il ne sera par </span><br><span style="font-weight:400;font-style:normal">exemple pas possible, lors de la visualisation, de faire le lien entre </span><br><span style="font-weight:400;font-style:normal">la texture et la géométrie correspondante.</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-avj4"></td>
+    <td class="tg-avj4"></td>
+  </tr>
+  <tr>
+    <td class="tg-0pn5">StartFragmentOrientation surfacique invalideEndFragment</td>
+    <td class="tg-o6tx">StartFragment<span style="font-weight:400;font-style:normal">Les surfaces telles que </span><br><span style="font-weight:400;font-style:normal">les polygones, ellipses et polygones troués ont une orientation. Cette </span><br><span style="font-weight:400;font-style:normal">orientation peut suivre la règle de la main droite, de la main gauche ou</span><br><span style="font-weight:400;font-style:normal"> être invalide. Une orientation de type règle de main gauche signifie </span><br><span style="font-weight:400;font-style:normal">qu'une limite extérieure a ses vertex ordonnés dans le sens inverse des </span><br><span style="font-weight:400;font-style:normal">aiguilles d'une montre et les trous ont leurs vertex ordonnés dans le </span><br><span style="font-weight:400;font-style:normal">sens des aiguilles d'une montre. Avec une orientation de type règle de </span><br><span style="font-weight:400;font-style:normal">la main droite, la limite externe d'un polygone a ses vertex ordonnés </span><br><span style="font-weight:400;font-style:normal">dans le sens horaire, et les trous ont leurs vertex ordonnés dans le </span><br><span style="font-weight:400;font-style:normal">sens inverse. Un exemple de polygone invalide pourrait être un polygone </span><br><span style="font-weight:400;font-style:normal">troué dont les limites externes et les limites de trous orientées dans </span><br><span style="font-weight:400;font-style:normal">le même sens.</span><br><span style="font-weight:400;font-style:normal">EndFragment</span></td>
+    <td class="tg-o6tx">StartFragmentPOLYGON ((31 21,31 30,40 30,40 21,31 21),(35 25,35 27,36 27,36 25,35 25))EndFragment</td>
+    <td class="tg-o6tx"><img src="https://gitlab.veremes.net/Documentation/doc_qualigeo/raw/5a57cfe99d6f5297fc2db7e2ae34790440f9ad59/Ressources/Images/geom11.png" width="400" height="300"></td>
+  </tr>
 </table>
\ No newline at end of file