Zum Inhalt

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. 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

Punkt berührt Kante mit Parameter minVertexDistance:
TouchingEdge

Doppelte Punkte:
Duplicate points

Doppelte Kante (Gleich wie doppelte Punkte):
LineSelfInt

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_CONSECUTIVE_POINTS_SAME, R_GE_R_NOT_CLOSED
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_NOT_CLOSED
Beschreibung Erkennt wiederholende und nicht wiederholende doppelte Punkte. Letzteres ist eine Selbstverschneidung.
Fehlercodes GE_R_CONSECUTIVE_POINTS_SAME, GE_R_SELF_INTERSECTION

Testfälle#

Testfall ID CityGML Modell Erwartetes Ergebnis
GE-gml:LR-0004-T0001 SimpleSolid_SrefBS.gml OK
GE-gml:LR-0004-T0002 SimpleSolid_SrefBS-GE-gml-LR-0002-T0002.gml Doppelte Punkte (Beispiel, nicht representativ für Fehler in Modell):
Duplicate points
GE_R_SELF_INTERSECTION in Ring: _Simple_BD.1_PG.6_LR.1
GE-gml:LR-0004-T0003 SimpleSolid_SrefBS-GE-gml-LR-0002-T0003.gml Doppelte Punkte (resultiert in einer doppelten Kante)
GE_R_SELF_INTERSECTION in Ring: _Simple_BD.1_PG.6_LR.1
GE-gml:LR-0004-T0004 SimpleSolid_SrefBS-GE-gml-LR-0004-T0004.gml Schleife (Beispiel, nicht representativ für Fehler in Modell):
BowtieSelfInt
GE_R_SELF_INTERSECTION in Ring: _Simple_BD.1_PG.6_LR.1
GE-gml:LR-0004-T0005 SimpleSolid_SrefBS-GE-gml-LR-0004-T0005.gml Berührender Punkt mit Parameter minVertexDistance = 0.1:
TouchingEdge
GE_R_SELF_INTERSECTION in Ring: _Simple_BD.1_PG.2_LR.1
GE-gml:LR-0004-T0006 SimpleSolid_SrefBS-GE-gml-LR-0004-T0005.gml OK für diese Anforderung mit Parameter minVertexDistance = 0.01, GE_S_NOT_CLOSED in späteren Prüfungen