diff --git a/04-ContraintesRessources/03.04.ValidationGeometrique.md b/04-ContraintesRessources/03.04.ValidationGeometrique.md index a0d63bb4dd7d236434dd6b4c4be55bab74031d30..cb4754c4a567d840e27c6f2494bd6a3ce0bbf936 100644 --- a/04-ContraintesRessources/03.04.ValidationGeometrique.md +++ b/04-ContraintesRessources/03.04.ValidationGeometrique.md @@ -17,92 +17,92 @@ Qualigéo permet la spécification et le contrôle de la géométrie des types d <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> + <th class="tg-0pn5">Définition</th> + <th class="tg-0pn5">Chaîne WKT</th> + <th class="tg-0pn5">Exemple de géométrie</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-0pn5">Géométries corrompues ou dégénérées</td> + <td class="tg-avj4">L<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"></span></td> + <td class="tg-avj4"><span style="font-weight:normal;color:rgb(146, 50, 136)">POLYGON ((15 35))</span><br><span style="font-weight:normal"></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-0pn5">Auto intersection</td> + <td class="tg-o6tx">L<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"></span></td> + <td class="tg-o6tx"><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"></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-0pn5">Points consécutifs dupliqués en 3D</td> + <td class="tg-avj4"><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"></span></td> + <td class="tg-avj4">LINESTRING Z (0 0 10,0 0 10,1 1 10,2 2 10)</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-0pn5">Points consécutifs dupliqués en 2D</td> + <td class="tg-o6tx">L<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"></span></td> + <td class="tg-o6tx">LINESTRING (0 0,0 0,1 1,2 0)</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-0pn5">Contient des valeurs NaN ou infinies</td> + <td class="tg-avj4">L<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"></span></td> + <td class="tg-avj4">POINT (0 nan)</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-0pn5">Contient des parties de géométries nulles</td> + <td class="tg-o6tx">L<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"></span></td> + <td class="tg-o6tx">GEOMETRYCOLLECTION (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)</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-0pn5">Vertex "normaux" manquants</td> + <td class="tg-avj4"><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"></span></td> + <td class="tg-avj4"><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"></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-0pn5">Surface non plane</td> + <td class="tg-o6tx"><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"></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-0pn5">Limites de solides invalides</td> + <td class="tg-avj4"><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>.</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"><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>.</td> + <td class="tg-o6tx"><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))</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-0pn5">Toutes les erreurs OGC simples</td> + <td class="tg-avj4">La contrainte OGC simple regroupe les trois contraintes :<br>- auto Intersection,<br>- point répété,<br>- géométrie corrompue.</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-0pn5">Toutes les erreurs OGC valides</td> + <td class="tg-o6tx">La 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.</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-0pn5">Coordonnées de texture manquantes</td> + <td class="tg-avj4"><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"></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-0pn5">Orientation surfacique invalide</td> + <td class="tg-o6tx"><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"></span></td> + <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"><img src="https://gitlab.veremes.net/Documentation/doc_qualigeo/raw/5a57cfe99d6f5297fc2db7e2ae34790440f9ad59/Ressources/Images/geom11.png" width="400" height="300"></td> </tr> </table>