// if (geom.isEmpty())
// return true;
GeometryGraph graph = new GeometryGraph(0, geom);
LineIntersector li = new RobustLineIntersector();
SegmentIntersector si = graph.computeSelfNodes(li, true);
// if no self-intersection, must be simple
// Primitives can be simple even if their boundary intersect
// Complexes are not simple if their boundary intersect
// TODO Bedeutung der attribute checken und entsprechend anpassen!
if (!si.hasIntersection())
return true;
if (si.hasProperIntersection())
return false;
if (this.hasNonEndpointIntersection(graph))
return false;
if (this.hasClosedEndpointIntersection(graph))
return false;