diff --git a/src/SaxParser.cpp b/src/SaxParser.cpp index 79e55bdc0728c3bcaf2abb304bd1d96f1d336b9c..660581d9210d6edd4b49d3d16f8d0b52f2df2c48 100644 --- a/src/SaxParser.cpp +++ b/src/SaxParser.cpp @@ -780,8 +780,23 @@ bool SaxParser::parseGeometryJPS(QString fileName, GeometryFactory& geoFac) { Point p1 = tr->GetPoint1(); Point p2 = tr->GetPoint2(); - double z1= tr->GetSubRoom1()->GetElevation(p1); - double z2= tr->GetSubRoom1()->GetElevation(p2); + double z1 = 0; + double z2 = 0; + if(! tr->GetSubRoom1()) + { + std::cout << "Warning: transition " << tr->GetID() << ", " << tr->GetCaption() << " has no subroom1\n"; + std::cout << "\t Assume z1=0\n"; + } + else + z1 = tr->GetSubRoom1()->GetElevation(p2); + if(! tr->GetSubRoom2()) + { + std::cout << "Warning: transition " << tr->GetID() << ", " << tr->GetCaption() << " has no subroom2. \n"; + std::cout << "\t Assume z2=0\n"; + } + else + z2 = tr->GetSubRoom2()->GetElevation(p1); + geometry->addDoor(p1._x*FAKTOR, p1._y*FAKTOR, z1*FAKTOR, p2._x*FAKTOR, p2._y*FAKTOR,z2*FAKTOR); const Point& p =tr->GetCentre();