[Wsplgen-commits] r111 - trunk/src

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Tue Aug 19 12:24:14 CEST 2008


Author: mrchip
Date: 2008-08-19 12:24:14 +0200 (Tue, 19 Aug 2008)
New Revision: 111

Modified:
   trunk/src/file.cpp
   trunk/src/wsplgen.h
Log:
Ein Fehler beim Laden der Linien wurde korrigiert

Modified: trunk/src/file.cpp
===================================================================
--- trunk/src/file.cpp	2008-07-29 08:29:39 UTC (rev 110)
+++ trunk/src/file.cpp	2008-08-19 10:24:14 UTC (rev 111)
@@ -1785,21 +1785,49 @@
 			continue;
 		}
 
-		// Der Wasserstand muss so hoch sein, damit später auch alle Knoten der Bruckkante erzeugt werden können
-		TProfil* Linie = new TProfil(Count+1, NoWsp);
 
-		if (Typ == "DAMM")			SperrenList->insert(Linie);
-		else if (Typ == "GRABEN")	GrabenList->insert(Linie);
-		else if (Typ == "ROHR")		Rohre1List->insert(Linie);
-		else if (Typ == "GRADIENT")	Rohre2List->insert(Linie);
-		else						dump_error(__FILE__, __LINE__, "Unbekannter Typ '%s' in der Datei '%s'\n", Typ.c_str(), DBFFileName.c_str());
+		TProfil* Linie = 0;
 
+		if (Typ == "DAMM")
+		{
+			Linie = new TProfil(SperrenList->size()+1, NoWsp);
+			SperrenList->insert(Linie);
+		}
+		else if (Typ == "GRABEN")
+		{
+			Linie = new TProfil(GrabenList->size()+1, NoWsp);
+			GrabenList->insert(Linie);
+		}
+		else if (Typ == "ROHR")
+		{
+			Linie = new TProfil(Rohre1List->size()+1, NoWsp);
+			Rohre1List->insert(Linie);
+		}
+		else if (Typ == "GRADIENT")
+		{
+			Linie = new TProfil(Rohre2List->size()+1, NoWsp);
+			Rohre2List->insert(Linie);
+		}
+		else
+		{
+			dump_error(__FILE__, __LINE__, "Unbekannter Typ '%s' in der Datei '%s'\n", Typ.c_str(), DBFFileName.c_str());
+		}
+
+
 		for (int j=0; j < AnzVert; j++)
 		{
 			double X = psCShape->padfX[j];
 			double Y = psCShape->padfY[j];
-			double Z = psCShape->padfZ[j];
-			if (ShapeType != SHPT_ARCZ && ShapeType != SHPT_POLYGONZ)
+			double Z = 0.0;
+
+			long* L1 = (long *)&(psCShape->padfZ[j]);
+			long* L2 = L1 +1;
+
+			// Ein Test auf NaN (also einen unbestimmten Knoten)
+			if (*L1 == 0x00000000L && *L2 == 0x7FF80000L)	Z = NoZ;
+			else											Z = psCShape->padfZ[j];
+
+			if (ShapeType == SHPT_ARC || ShapeType == SHPT_POLYGON || Z == NoZ)
 			{
 				if (Typ == "DAMM")			Z = DammZ;
 				else if (Typ == "GRABEN")	Z = GrabenZ;

Modified: trunk/src/wsplgen.h
===================================================================
--- trunk/src/wsplgen.h	2008-07-29 08:29:39 UTC (rev 110)
+++ trunk/src/wsplgen.h	2008-08-19 10:24:14 UTC (rev 111)
@@ -10,7 +10,7 @@
 // Read the file COPYING coming with WSPLGEN for details.
 //
 
-const char Version[] = "1.2.3 rc 2";
+const char Version[] = "1.2.4";
 
 // In der Datei wsplgen.h wird jetzt keine Historie mehr gespeichert.
 // Diese ist nun in der Datei NEWS zu finden



More information about the Wsplgen-commits mailing list