Commit 2452eacc authored by Matthias Betz's avatar Matthias Betz
Browse files

prepare for more languages

parent a68cdc6b
Pipeline #7621 passed with stages
in 9 seconds
......@@ -2,6 +2,8 @@ site_name: CityDoctor2
site_url: https://transfer.hft-stuttgart.de/pages/citydoctor/citydoctorhomepage/
repo_url: https://transfer.hft-stuttgart.de/gitlab/citydoctor/citydoctor2
repo_name: CityDoctor2
docs_dir: '../../docs/de'
site_dir: '../../public/de'
nav:
- CityDoctor2: index.md
- Installation: requiredSoftware.md
......@@ -36,6 +38,13 @@ nav:
- S_POLYGON_WRONG_ORIENTATION: R_GE_S_POLYGON_WRONG_ORIENTATION.md
- S_ALL_POLYGONS_WRONG_ORIENTATION: R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION.md
- SOLID: R_GE_SO.md
# Language Selection
extra:
alternate:
# Switch to English
- name: Deutsch
link: /de/
lang: de
theme:
name: material
language: de
......@@ -57,17 +66,15 @@ theme:
markdown_extensions:
- admonition
- toc:
permalink: true
permalink: "#"
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.superfences:
custom_fences:
-
name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
plugins:
- search:
lang: de
- mermaid2
extra_css:
- https://unpkg.com/mermaid/dist/mermaid.css
extra_javascript:
......
# R_GE_MS
## Anforderung
| ID | R_GE_MS |
|---- | ---- |
| Beschreibung | Ein MultiSurface ist eine Sammlung von Polygonen ohne weitere Einschränkungen. Ein MultiSurface ist nur gültig, wenn alle Polygone gültig sind. Die Anforderungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL müssen erfüllt werden |
| Fehlercode | -- |
## Prüfung
Keine weiteren Prüfungen notwendig
# R_GE_P_HOLE_OUTSIDE
## Anforderung
| ID | R_GE_P_HOLE_OUTSIDE |
|---- | ---- |
| Beschreibung | Innerer Ring darf nicht komplett außerhalb des äußeren Rings sein. |
| Fehlercode | GE_P_HOLE_OUTSIDE |
Beispiel:
![HoleOutside](img/HoleOutside.png)
## Prüfung
| ID | C_GE_P_HOLE_OUTSIDE |
|---- | ---- |
| Anforderungs ID | R_GE_P_HOLE_OUTSIDE |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL [R_GE_P_NON_PLANAR](R_GE_P_NON_PLANAR.md), [R_GE_P_ORIENTATION_RINGS_SAME](R_GE_P_ORIENTATION_RINGS_SAME.md) |
| Beschreibung | |
| Fehlercode | GE_P_HOLE_OUTSIDE |
# R_GE_P_INNER_RINGS_NESTED
## Anforderung
| ID | R_GE_P_INNER_RINGS_NESTED |
|---- | ---- |
| Beschreibung | Innere Ringe drüfen nicht innerhalb eines anderen inneren Rings sein. |
| Fehlercode | GE_P_INNER_RINGS_NESTED |
Beispiel:
![NestedRings](img/NestedRings.png)
## Prüfung
| ID | C_GE_P_INNER_RINGS_NESTED |
|---- | ---- |
| Anforderungs ID | R_GE_P_INNER_RINGS_NESTED |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, [R_GE_P_NON_PLANAR](R_GE_P_NON_PLANAR.md), [R_GE_P_ORIENTATION_RINGS_SAME](R_GE_P_ORIENTATION_RINGS_SAME.md) |
| Beschreibung | |
| Fehlercode | GE_P_INNER_RINGS_NESTED |
# R_GE_P_INTERIOR_DISCONNECTED
## Anforderung
| ID | R_GE_P_INTERIOR_DISCONNECTED |
|---- | ---- |
| Beschreibung | Die innere Fläche eines Polygons muss verbunden sein. |
| Parameter minVertexDistance | Ein Punkt berührt eine Kante wenn der Abstand kleiner als *minVertexDistance*,[siehe Vertex Anforderungen](geometric.md))|
| Fehlercode | GE_P_INTERIOR_DISCONNECTED |
Beispiele:
![IntDiscoOneInnerRing](img/IntDiscoOneInnerRing.png)
![IntDiscoTwoInnerRings](img/IntDiscoTwoInnerRings.png)
## Prüfung
| ID | C_GE_P_INTERIOR_DISCONNECTED |
|---- | ---- |
| Anforderungs ID | R_GE_P_INTERIOR_DISCONNECTED |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, [R_GE_P_NON_PLANAR](R_GE_P_NON_PLANAR.md), [R_GE_P_ORIENTATION_RINGS_SAME](R_GE_P_ORIENTATION_RINGS_SAME.md) |
| Beschreibung | |
| Fehlercode | GE_P_INTERIOR_DISCONNECTED |
# R_GE_P_INTERSECTING_RINGS
## Anforderung
| ID | R_GE_P_INTERSECTING_RINGS |
|---- | ---- |
| Beschreibung | Äußere und innere Ring dürfen sich nicht verschneiden |
| Parameter minVertexDistance | Zwei Ringe verschneiden sich nicht, wenn nur ein Punkt des einen Rings den Anderen berührt. Ein Punkt berührt eine Kante nur dann wenn der Abstand weniger als *minVertexDistance* ist. Punkte können als gleich angesehen werden, trotz (kleiner) Abstände, [siehe Vertex Anforderungen](geometric.md) |
| Fehlercode | GE_P_INTERSECTING_RINGS |
Beispiele:
Äußerer Ring verschneidet inneren Ring:
![exteriorIntersects](img/exteriorIntersects.png)
Zwei innere Rings verschneiden:
![interiorIntersects](img/interiorIntersects.png)
## Prüfung
| ID | C_GE_P_INTERSECTING_RINGS |
|---- | ---- |
| Anforderungs ID | R_GE_P_INTERSECTING_RINGS |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, [R_GE_P_NON_PLANAR](R_GE_P_NON_PLANAR.md), [R_GE_P_HOLE_OUTSIDE](R_GE_P_HOLE_OUTSIDE.md), [R_GE_P_INNER_RINGS_NESTED](R_GE_P_INNER_RINGS_NESTED.md), [R_GE_P_ORIENTATION_RINGS_SAME](R_GE_P_ORIENTATION_RINGS_SAME.md) |
| Beschreibung | Wenn ein Punkt eines inneren Rings außerhalb des äußeren ist oder innerhalb eines anderen inneren Rings, ist das eine Verschneidung. |
| Fehlercode | GE_P_INTERSECTING_RINGS |
# R_GE_P_NON_PLANAR
## Anforderung
| ID | R_GE_P_NON_PLANAR |
|---- | ---- |
| Beschreibung | Jedes Polygon muss Planar sein. Planrität ist erreicht wenn kein Punkt weiter als *distanceTolerance* von der Regressionsebene aller Punkte ist, sowie die Normalen jedes Dreicks des tessilierten Polygons keine größere Winkelabweichung als *angleTolerance* haben. |
| Parameter 1: type | Der Typ der Panaritätsprüfung kann ausgewählt werden. Muss eins von *distance*, *angle*, *both* sein.<ul><li>Wenn der Parameter *distance* ist: Nur die Distanzprüfung wird ausgeführt.</li><li> Wenn der Parameter *angle* ist: Nur die Normalenabweichungsprüfung wird ausgeführt.</li><li>Wenn der Parameter *both* ist: Beide Prüfungen werden ausgeführt.</li></ul> |
| Parameter 2: distanceTolerance | Toleranz der Distanz eines Punktens von der Regressionsebene |
| Parameter 3: angleTolerance | Toleranz des Winkels der Dreiecksnormalen |
| Fehlercodes | GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE, GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION |
Normalen Abweichung:
![normalDeviation](img/normalDeviation.png)
!!! warning
Das Ergebnis der Normalenprüfung ist abhängig von dem Ergebnis der Tesselierung und damit nicht 100% zuverlässig.
## Prüfung
| ID | C_GE_P_NON_PLANAR |
|---- | ---- |
| Anfoderungs ID | R_GE_P_NON_PLANAR |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL |
| Beschreibung | Tesseliert um die Dreiecksnormalen zu berechnen. Erstellt eine Regressionsebene aus allen Polygonpunkten um den Abstand der Punkte zur Ebene zu berechnen |
| Fehlercode | GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE, GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION |
# R_GE_P_ORIENTATION_RINGS_SAME
## Anforderung
| ID | R_GE_P_ORIENTATION_RINGS_SAME |
|---- | ---- |
| Beschreibung | Äußere und innere Ringe dürfen nicht die selbe Orientierung haben. |
| Fehlercode | GE_P_ORIENTATION_RINGS_SAME |
Beispiel :
![OrientationSame](img/OrientationSame.png)
## Prüfung
| ID | C_GE_P_ORIENTATION_RINGS_SAME |
|---- | ---- |
| Anforderungs ID | R_GE_P_ORIENTATION_RINGS_SAME |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, [R_GE_P_NON_PLANAR](R_GE_P_NON_PLANAR.md) |
| Beschreibung | |
| Fehlercode | GE_P_ORIENTATION_RINGS_SAME |
# R_GE_R_COLLAPSED_TO_LINE
## Anforderung
| ID | R_GE_R_COLLAPSED_TO_LINE |
|---- | ---- |
| Beschreibung | Ein Spezialfall von Selbstverschneidung (R_GE_R_SELF_INTERSECTION): Der Ring ist eine Linie. Wenn der Ring zu ein Punkt darstellt, dann sollte GE_R_TOO_FEW_POINTS / GE_R_CONSECUTIVE_POINTS_SAME verwendet werden. |
| Fehlercode | GE_R_SELF_INTERSECTION, GE_R_COLLAPSED_TO_LINE, GE_R_TOO_FEW_POINTS, GE_R_CONSECUTIVE_POINTS_SAME |
## Prüfung
| ID | GE_R_COLLAPSED_TO_LINE|
|---- | ---- |
| Anforderungs ID | R_GE_R_COLLAPSED_TO_LINE |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, [R_GE_R_TOO_FEW_POINTS](R_GE_R_TOO_FEW_POINTS.md), [R_GE_R_CONSECUTIVE_POINTS_SAME](R_GE_R_CONSECUTIVE_POINTS_SAME.md), [R_GE_R_NOT_CLOSED](R_GE_R_NOT_CLOSED.md) |
| Beschreibung | Ring als ein Punkt kann nicht passieren, wegen den Vorbedingungen. Ist eigentlich eine Selbstverschneidung |
| Fehlercode | GE_R_COLLAPSED_TO_LINE |
# R_GE_R_CONSECUTIVE_POINTS_SAME
## Anforderung
| ID | R_GE_R_CONSECUTIVE_POINTS_SAME |
|------------------------------ | ------ |
| Beschreibung | Punkte innerhalb eines Rings sollen sich nicht wiederholen (ausgenommen der erste und der letzte im Fall von GML, siehe [R_GE_R_NOT_CLOSED](R_GE_R_NOT_CLOSED.md). Dieser Fehler ist oft der Fall wenn zwei Punkte an der selben Stelle sind. |
| Parameter minVertexDistance | Punkte können als gleich angesehen werden, trotz (kleiner) Abstände, [siehe Vertex Anforderungen](geometric.md)
| Fehlercode | GE_R_CONSECUTIVE_POINTS_SAME |
Zum Beispiel dieser Ring ist fehlerhaft:
```xml
<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>1.0 1.0 0.0</gml:pos>
<gml:pos>0.0 1.0 0.0</gml:pos>
<gml:pos>0.0 0.0 0.0</gml:pos>
</gml:LinearRing>
```
Dieser Ring ist auch Fehlerhaft mit dem Parameter minVertexDistance = 0.1
```xml
<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>0.05 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>1.0 1.0 0.0</gml:pos>
<gml:pos>0.0 1.0 0.0</gml:pos>
<gml:pos>0.0 0.0 0.0</gml:pos>
</gml:LinearRing>
```
Das nächste Beispiel zeigt einen fehlerhaften Ring mit einem Punkt, der zwei mal vorkommt aber die Wiederholung nicht aufeinanderfolgend ist. Dies resultiert in einer Selbstverschneidung, dies ist mit dieser Anforderung nicht abgedeckt.
```xml
<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>1.0 1.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>0.0 1.0 0.0</gml:pos>
<gml:pos>0.0 0.0 0.0</gml:pos>
</gml:LinearRing>
```
## Prüfungen
| ID | C_GE_R_CONSECUTIVE_POINTS_SAME|
|---- | ---- |
| Anforderungs ID | R_GE_R_CONSECUTIVE_POINTS_SAME |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, [R_GE_R_NOT_CLOSED](R_GE_R_NOT_CLOSED.md), [R_GE_R_TOO_FEW_POINTS](R_GE_R_TOO_FEW_POINTS.md) |
| Beschreibung | Prüft ob sich ein Punkt wiederholt |
| Fehlercode | GE_R_CONSECUTIVE_POINTS_SAME|
| ID | C_GE_R_DUPLICATE_POINT|
|---- | ---- |
| Anforderungs ID | R_GE_R_CONSECUTIVE_POINTS_SAME, GE-gml:LR-0004 (teilweise) |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, [R_GE_R_NOT_CLOSED](R_GE_R_NOT_CLOSED.md), [R_GE_R_TOO_FEW_POINTS](R_GE_R_TOO_FEW_POINTS.md) |
| Beschreibung | Erkennt aufeinanderfolgende als auch andere wiederholende Punkte. |
| Fehlercode | GE_R_CONSECUTIVE_POINTS_SAME, GE_R_SELF_INTERSECTION |
\ No newline at end of file
# R_GE_R_NOT_CLOSED
## Anforderung
| ID | R_GE_R_NOT_CLOSED |
|---- | ---- |
| Beschreibung | Der erste und letzte Punkt müssen in GML der gleiche sein. |
| Parameter minVertexDistance | Punkte können als gleich angesehen werden, trotz (kleiner) Abstände, [siehe Vertex Anforderungen](geometric.md) |
| Fehlercode | GE_R_NOT_CLOSED |
Zum Beispiel dieser Ring ist fehlerhaft:
```xml
<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>1.0 1.0 0.0</gml:pos>
<gml:pos>0.0 1.0 0.0</gml:pos>
</gml:LinearRing>
```
OK mit Parameter minVertexDistance = 0.1:
```xml
<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>1.0 1.0 0.0</gml:pos>
<gml:pos>0.0 1.0 0.0</gml:pos>
<gml:pos>0.0 0.0 0.05</gml:pos>
</gml:LinearRing>
```
## Prüfung
| ID | C_GE_R_NOT_CLOSED |
| ---- | ---- |
| Anforderungs ID | R_GE_R_NOT_CLOSED |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION |
| Beschreibung | Der erste und letzte Punkt sollen der gleiche sein. |
| Fehlercode | GE_R_NOT_CLOSED |
# R_GE_R_SELF_INTERSECTION
## Anforderung
| ID | R_GE_R_SELF_INTERSECTION |
|---- | ---- |
| Beschreibung | Ein Ring soll einfach sein, also sich nicht selbstverschneiden. Die Selbstverschneidung kann an einem konkreten Punkt sein, oder auch nicht. |
| Parameter minVertexDistance | Punkte können als gleich angesehen werden, trotz (kleiner) Abstände, [siehe Vertex Anforderungen](geometric.md). Dieser Parameter wird auch dazu verwendet um zu bestimmen wann ein Punkt eine Kante berührt. |
| Fehlercode | GE_R_SELF_INTERSECTION |
Beispiele für Selbstverschneidungen:
Schleife:
![BowtieSelfInt](img/BowtieSelfInt.png)
Punkt berührt Kante mit Parameter minVertexDistance:
![TouchingEdge](img/TouchingEdge.png)
Doppelte Punkte:
![Duplicate points](img/DuplicatePoints.png)
Doppelte Kante (Gleich wie doppelte Punkte):
![LineSelfInt](img/LineSelfInt.png)
## Prüfung
| ID | C_GE_R_SELF_INTERSECTION|
|---- | ---- |
| Anforderungs ID | R_GE_R_SELF_INTERSECTION |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, [R_GE_R_TOO_FEW_POINTS](R_GE_R_TOO_FEW_POINTS.md), [R_GE_R_CONSECUTIVE_POINTS_SAME](R_GE_R_CONSECUTIVE_POINTS_SAME.md), [R_GE_R_NOT_CLOSED](R_GE_R_NOT_CLOSED.md) |
| Beschreibung | Erkennt doppelte Punkte und Selbstverschneidende Kanten. |
| Fehlercodes | GE_R_SELF_INTERSECTION |
| ID | C_GE_R_DUPLICATE_POINT|
|---- | ---- |
| Anforderungs ID | R_GE_R_CONSECUTIVE_POINTS_SAME, R_GE_R_SELF_INTERSECTION (teilweise) |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, [R_GE_R_TOO_FEW_POINTS](R_GE_R_TOO_FEW_POINTS.md), [R_GE_R_NOT_CLOSED](R_GE_R_NOT_CLOSED.md) |
| Beschreibung | Erkennt wiederholende und nicht wiederholende doppelte Punkte. Letzteres ist eine Selbstverschneidung. |
| Fehlercodes | GE_R_CONSECUTIVE_POINTS_SAME, GE_R_SELF_INTERSECTION |
# R_GE_R_TOO_FEW_POINTS
## Anforderung
| ID | R_GE_R_TOO_FEW_POINTS |
|---- | ---- |
| Beschreibung | Ein Ring muss mindestens 3 Punkte haben. Für GML Ringe diese Anfoderung ignoriert die Tatsache, dass der erste und der letzte Punkt gleich sind (siehe [R_GE_R_NOT_CLOSED](R_GE_R_NOT_CLOSED.md)). <br /> Ein GML Ring ist nach dieser Anfoderung valide, wenn er mindestens 3 unterschiedliche Punkte enthält aber er ist dann nicht geschlossen (Die Anfoderung [R_GE_R_NOT_CLOSED](R_GE_R_NOT_CLOSED.md) ist nicht erfüllt). |
| Parameter minVertexDistance | Punkte können als gleich angesehen werden, trotz (kleiner) Abstände, [siehe Vertex Anforderungen](geometric.md) |
| Fehlercode | GE_R_TOO_FEW_POINTS |
Zum Beispiel, dieser Ring ist fehlerhaft:
```xml
<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>0.0 0.0 0.0</gml:pos>
</gml:LinearRing>
```
Valide Ringe:
``` {.xml .annotate}
<gml:LinearRing> <!-- (1)! -->
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>0.0 1.0 0.0</gml:pos>
</gml:LinearRing>
```
1. Dieser Ring ist nicht geschlossen und wird daher vorher ausgeschlossen, hätte aber genug unterschiedliche Punkte, um dieser Anfoderung zu genügen.
```xml
<gml:LinearRing>
<gml:pos>0.0 0.0 0.0</gml:pos>
<gml:pos>1.0 0.0 0.0</gml:pos>
<gml:pos>0.0 1.0 0.0</gml:pos>
<gml:pos>0.0 0.0 0.0</gml:pos>
</gml:LinearRing>
```
## Prüfung
| ID | C_GE_R_TOO_FEW_POINTS|
|---- | ---- |
| Anfoderungs ID | R_GE_R_TOO_FEW_POINTS |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, [R_GE_R_NOT_CLOSED](R_GE_R_NOT_CLOSED.md) |
| Beschreibung | Ring muss mindestens 3 unterschiedliche Punkte beinhalten |
| Fehlercode | GE_R_TOO_FEW_POINTS|
# R_GE_SO
## Anforderung
| ID | R_GE_SO |
|---- | ---- |
| Beschreibung | Ein Solid ist eine Sammlung von Polygonen mit Einschränkungen. Die Geometrie muss 'wasserdicht' sein. Siehe Definition von Solids in Appendix A aus dem CityGML QIE. Ein Solid ist gültig, wenn die Anforderungen R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, R_GE_S_ALL erfüllt sind. |
| Fehlercode | -- |
## Prüfung
keine weitere Prüfung notwendig
# R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION
## Anforderung
| ID | R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION |
|---- | ---- |
| Beschreibung | Alle Polygone haben die falsche Orientierung (definiert in R_GE_S_POLYGON_WRONG_ORIENTATION), so dass alle Polygone nach innen zeigen. |
| Fehlercode | GE_S_ALL_POLYGONS_WRONG_ORIENTATION |
## Prüfung
| ID | C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION |
|---- | ---- |
| Anforderungs ID | R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION |
| Vorbedingung| R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, [R_GE_S_TOO_FEW_POLYGONS](R_GE_S_TOO_FEW_POLYGONS.md), [R_GE_S_NOT_CLOSED](R_GE_S_NOT_CLOSED.md), [R_GE_S_NON_MANIFOLD_VERTEX](R_GE_S_NON_MANIFOLD_VERTEX.md), [R_GE_S_NON_MANIFOLD_EDGE](R_GE_S_NON_MANIFOLD_EDGE.md), [R_GE_S_MULTIPLE_CONNECTED_COMPONENTS](R_GE_S_MULTIPLE_CONNECTED_COMPONENTS.md), [R_GE_S_SELF_INTERSECTION](R_GE_S_SELF_INTERSECTION.md), [R_GE_S_POLYGON_WRONG_ORIENTATION](R_GE_S_POLYGON_WRONG_ORIENTATION.md) |
| Beschreibung | |
| Fehlercode | GE_S_ALL_POLYGONS_WRONG_ORIENTATION |
# R_GE_S_MULTIPLE_CONNECTED_COMPONENTS
## Anforderung
| ID | R_GE_S_MULTIPLE_CONNECTED_COMPONENTS |
|---- | ---- |
| Beschreibung | 1+ Polygone ist nicht mit der selben Hülle verbuden. |
| Fehlercode | GE_S_MULTIPLE_CONNECTED_COMPONENTS |
![GE_gml_so_0005](img/GE_gml_so_0005.png)
## Prüfung
| ID | C_GE_S_MULTIPLE_CONNECTED_COMPONENTS|
|---- | ---- |
| Anforderungs ID | R_GE_S_MULTIPLE_CONNECTED_COMPONENTS |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, [R_GE_S_TOO_FEW_POLYGONS](R_GE_S_TOO_FEW_POLYGONS.md) |
| Beschreibung | Erstelle einen doppelten Graphen (Polygone werden Knoten, Polygone, die eine Kante teilen werden im Graph verbunden). Wenn der Graph nicht verbunden ist, gibt es mehrere verbundene Komponenten. |
| Fehlercode | GE_S_MULTIPLE_CONNECTED_COMPONENTS |
# R_GE_S_NON_MANIFOLD_EDGE
## Anforderung
| ID | R_GE_S_NON_MANIFOLD_EDGE |
|---- | ---- |
| Beschreibung | Jede kannte sollte genau 2 Polygone begrenzen. |
| Fehlercode | GE_S_NON_MANIFOLD_EDGE |
| Kommentar | Diese Anforderung ist ähnlich zu GE_S_NOT_CLOSED: Wenn eine Kante mehr als 2 Polygon begrenzt, dann ist es ein GS_S_NON_MANIFOLD_EDGE Fehler. Wenn eine Kante nur ein Polygon begrenzt, ist es ein GE_S_NOT_CLOSED Fehler (ein Loch im Solid) |
![image](img/image.png)
## Prüfung
| ID | C_GE_S_NON_MANIFOLD_EDGE|
|---- | ---- |
| Anforderungs ID | R_GE_S_NON_MANIFOLD_EDGE |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL [R_GE_S_TOO_FEW_POLYGONS](R_GE_S_TOO_FEW_POLYGONS.md) |
| Beschreibung | |
| Fehlercode | GE_S_NON_MANIFOLD_EDGE |
# R_GE_S_NON_MANIFOLD_VERTEX
## Anforderung
| ID | R_GE_S_NON_MANIFOLD_VERTEX |
|---- | ---- |
| Beschreibung | Jedes Polygon das an einem Punkt eines Solids anliegt muss über Kanten mit den anderen anliegenden Polygonen verbunden sein. Alle Punkte und anliegende Polygone müssen ein 'Regenschirm' erzeugen.|
| Fehlercode | GE_S_NON_MANIFOLD_VERTEX |
## Prüfung
| ID | C_GE_S_NON_MANIFOLD_VERTEX |
|---- | ---- |
| Anforderungs ID | R_GE_S_NON_MANIFOLD_VERTEX |
| Vorbedingungen| R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, [R_GE_S_TOO_FEW_POLYGONS](R_GE_S_TOO_FEW_POLYGONS.md) |
| Beschreibung | |
| Fehlercode | GE_S_NON_MANIFOLD_VERTEX |
# R_GE_S_NOT_CLOSED
## Anforderung
| ID | R_GE_S_NOT_CLOSED |
|---- | ---- |
| Beschreibung | Die Hülle darf keine Löcher haben, sie muss Wasserdicht sein. |
| Fehlercode | GE_S_NOT_CLOSED |
![Closed](img/Closed.png)
## Prüfung
| ID | C_GE_S_NOT_CLOSED |
|---- | ---- |
| Anforderungs ID | R_GE_S_NOT_CLOSED |
| Vorbedingung | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, [R_GE_S_TOO_FEW_POLYGONS](R_GE_S_TOO_FEW_POLYGONS.md) |
| Beschreibung | |
| Fehlercode | GE_S_NOT_CLOSED |
Die Prüfung sucht alle Kanten und ordnet sie den jeweiligen Gegenkanten zu. Falls eine Kante keine Gegenkante hat so wird hier ein Loch in der Hülle erkannt und ein Fehler herausgegeben.
# R_GE_S_POLYGON_WRONG_ORIENTATION
## Anforderung
| ID | R_GE_S_POLYGON_WRONG_ORIENTATION |
|---- | ---- |
| Beschreibung | Ein Polygon muss so orientiert sein, dass die Normale des äußeren Ring nach außen zeigt. The points are ordered counter-clockwise. |
| Fehlercode | GE_S_POLYGON_WRONG_ORIENTATION |
![PolygonWrongOrientation](img/Testgebaeude-SO-0007.png)
## Prüfung
| ID | C_GE_S_POLYGON_WRONG_ORIENTATION|
|---- | ---- |
| Anforderungs ID | R_GE_S_POLYGON_WRONG_ORIENTATION |
| Vorbedingungen | R_SC_SCHEMA_VALIDATION, R_GE_R_ALL, R_GE_P_ALL, [R_GE_S_TOO_FEW_POLYGONS](R_GE_S_TOO_FEW_POLYGONS.md), [R_GE_S_NOT_CLOSED](R_GE_S_NOT_CLOSED.md), [R_GE_S_NON_MANIFOLD_EDGE](R_GE_S_NON_MANIFOLD_EDGE.md) |
| Beschreibung | |
| Fehlercode | GE_S_POLYGON_WRONG_ORIENTATION |
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment