[Wsplgen-commits] r152 - in trunk: . src

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Fri May 7 16:11:13 CEST 2010


Author: mrchip
Date: 2010-05-07 16:11:12 +0200 (Fri, 07 May 2010)
New Revision: 152

Modified:
   trunk/NEWS
   trunk/src/file.cpp
   trunk/src/wsplgen.h
Log:
Fehler beim Ausrichten der Profile behoben

Modified: trunk/NEWS
===================================================================
--- trunk/NEWS	2009-11-13 08:13:50 UTC (rev 151)
+++ trunk/NEWS	2010-05-07 14:11:12 UTC (rev 152)
@@ -10,6 +10,11 @@
 // Read the file COPYING coming with WSPLGEN for details.
 //
 
+Version 1.3.5
+
+       - Wenn eine Stützstelle eines Profil genau auf der Gewässerachse lag,
+         konnte das Profil nicht korrekt ausgerichtet werden.
+       
 Version 1.3.4
 
        - Einige überflüssige Ausgaben werden nun nur noch bei (DebugLevel=9) ausgegeben

Modified: trunk/src/file.cpp
===================================================================
--- trunk/src/file.cpp	2009-11-13 08:13:50 UTC (rev 151)
+++ trunk/src/file.cpp	2010-05-07 14:11:12 UTC (rev 152)
@@ -1702,8 +1702,6 @@
 		{
 			Count++;
 
-			write_fortschritt(DebugLevel, "%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
-
 			VorProfil = NachProfil;
 			NachProfil = *i;
 
@@ -1765,7 +1763,12 @@
 				ExChangeProfil->PointList = TempPointList;
 
 				delete ExChangeProfil;
+
+				write_fortschritt(DebugLevel ,"Profil bei km %.4f wurde umgedreht\n", NachProfil->Station / 10000.0);
 			}
+
+			write_fortschritt(DebugLevel, "%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
+
 			i++;
 		}
 		write_fortschritt (9, "%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
@@ -1779,8 +1782,6 @@
 		{
 			Count++;
 
-			write_fortschritt(DebugLevel, "%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
-
 			TProfil* Profil = *i;
 
 			bool Found = false;
@@ -1850,10 +1851,15 @@
 							// Hier ist ein echter Schnittpunkt gefunden
 							// Jetzt prüfen wo welcher Punkt liegt
 
+							 if ((X == P1x && Y == P1y) || (X == S1x && Y == S1y))
+							 {
+								 // Der Schnittpunkt ist ein Endpunkt und wird gleich nochmal gefunden
+								 // dann funktioniert CrossProduct auch
+								 continue;
+							 }
+
 							 if (CrossProduct(X, Y, P1x, P1y, S1x, S1y) < 0.0)
 							 {
-								write_fortschritt(DebugLevel ,"Profil '%.4f' wurde umgedreht\n", Profil->Station / 10000.0);
-
 								SwitchCount++;
 
 								TProfil* ExChangeProfil = new TProfil(Profil->Station);
@@ -1870,6 +1876,8 @@
 								ExChangeProfil->PointList = TempPointList;
 
 								delete ExChangeProfil;
+
+								write_fortschritt(DebugLevel ,"Profil bei km %.4f wurde umgedreht\n", Profil->Station / 10000.0);
 							}
 							break; // Schnittpunkt gefunden
 						}
@@ -1878,6 +1886,9 @@
 				} // Ende der Iteration über die Punkte eins Profils
 				if (Found) break;
 			} // Ende der Iteration über die Achsen
+
+			write_fortschritt(DebugLevel, "%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);
+
 			i++;
 		}
 		write_fortschritt (9, "%d von %d Profilspuren ausgerichtet, %d gedreht\n", Count, ProfilList->size(), SwitchCount);

Modified: trunk/src/wsplgen.h
===================================================================
--- trunk/src/wsplgen.h	2009-11-13 08:13:50 UTC (rev 151)
+++ trunk/src/wsplgen.h	2010-05-07 14:11:12 UTC (rev 152)
@@ -10,7 +10,7 @@
 // Read the file COPYING coming with WSPLGEN for details.
 //
 
-const char Version[] = "1.3.4";
+const char Version[] = "1.3.5";
 
 // 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