# 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.
- Wenn der Parameter *distance* ist: Nur die Distanzprüfung wird ausgeführt.
- Wenn der Parameter *angle* ist: Nur die Normalenabweichungsprüfung wird ausgeführt.
- Wenn der Parameter *both* ist: Beide Prüfungen werden ausgeführt.
|
| 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 |