[Wsplgen-commits] r69 - trunk/src
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Thu Oct 19 21:26:53 CEST 2006
Author: mrchip
Date: 2006-10-19 21:26:53 +0200 (Thu, 19 Oct 2006)
New Revision: 69
Modified:
trunk/src/file.cpp
trunk/src/test_xy.cpp
trunk/src/tri.cpp
trunk/src/wsplgen.cpp
trunk/src/wsplgen.h
trunk/src/xy.cpp
Log:
Der erste Release Candidate. Der Parameter ? wurde noch eingef?\195?\188gt.
Wird als das Programm mit WSPLGEN.EXE ? aufgerufen, so gibt es nur die Versionsnummer zur?\195?\188ck und beendet sich sofort wieder.
Modified: trunk/src/file.cpp
===================================================================
--- trunk/src/file.cpp 2006-10-16 21:00:35 UTC (rev 68)
+++ trunk/src/file.cpp 2006-10-19 19:26:53 UTC (rev 69)
@@ -1256,14 +1256,12 @@
ExChangeProfil->AddPoint(X, Y);
}
- ProfilList->erase(i);
- delete NachProfil;
- ProfilList->insert(ExChangeProfil);
- i = ProfilList->begin();
- VorProfil = 0;
- NachProfil = 0;
- Count = 0;
- continue;
+
+ TPointList* TempPointList = NachProfil->PointList;
+ NachProfil->PointList = ExChangeProfil->PointList;
+ ExChangeProfil->PointList = TempPointList;
+
+ delete ExChangeProfil;
}
i++;
}
@@ -1271,6 +1269,76 @@
write_fortschritt("<-Ausrichten der Profilspuren beendet\n");
+
+ write_fortschritt("->Überprüfung der Profilspuren gestartet\n");
+
+ VorProfil = 0;
+ NachProfil = 0;
+ Count = 0;
+ i = ProfilList->begin();
+ while (i != ProfilList->end())
+ {
+ Count++;
+
+ if (DebugLevel >= 9 || (DebugLevel >= 1 && Count % 10 == 0) || (Count > 0 && Count % 100 == 0))
+ {
+ write_fortschritt("%d von %d Profilspuren überprüft\n", Count, ProfilList->size());
+ }
+
+ VorProfil = NachProfil;
+ NachProfil = *i;
+
+ if (VorProfil == 0)
+ {
+ i++;
+ continue;
+ }
+
+
+ TPoint* VP1 = 0;
+ TPoint* VP2 = 0;
+ TPointList::iterator j = VorProfil->PointList->begin();
+ while (j != VorProfil->PointList->end())
+ {
+ VP1 = VP2;
+ VP2 = *j;
+
+ if (VP1 == 0)
+ {
+ j++;
+ continue;
+ }
+
+ TPoint* NP1 = 0;
+ TPoint* NP2 = 0;
+ TPointList::iterator k = NachProfil->PointList->begin();
+ while (k != NachProfil->PointList->end())
+ {
+ NP1 = NP2;
+ NP2 = *k;
+
+ if (NP1 == 0)
+ {
+ k++;
+ continue;
+ }
+
+ double X = 0.0;
+ double Y = 0.0;
+ if (Calc2Schnitt(VP1->X, VP1->Y, VP2->X, VP2->Y, NP1->X, NP1->Y, NP2->X, NP2->Y, &X, &Y))
+ {
+ write_warning(1111, "Die Profile %d unf %d schneiden sich bei (%.2f, %.2f)\n", VorProfil->Station / 1000, NachProfil->Station / 1000, X, Y);
+ }
+ k++;
+ }
+ j++;
+ }
+ i++;
+ }
+ write_fortschritt("%d von %d Profilspuren überprüft\n", Count, ProfilList->size());
+
+ write_fortschritt("<-Überprüfung der Profilspuren beendet\n");
+
return (true);
}
Modified: trunk/src/test_xy.cpp
===================================================================
--- trunk/src/test_xy.cpp 2006-10-16 21:00:35 UTC (rev 68)
+++ trunk/src/test_xy.cpp 2006-10-19 19:26:53 UTC (rev 69)
@@ -388,7 +388,7 @@
if (NewPolygon1->size() != 13) printf("Failed\n");
else if (Xy1->X != 4147) printf("Failed\n");
else if (Xy1->Y != 5503) printf("Failed\n");
- else if (NewPolygon2->size() != 11) printf("Failed\n");
+ else if (NewPolygon2->size() != 10) printf("Failed\n");
else if (Xy2->X != 5044) printf("Failed\n");
else if (Xy2->Y != 5540) printf("Failed\n");
else printf("Pass\n");
@@ -427,7 +427,7 @@
TXY* Xy = *NewPolygon->begin();
if (NewPolygon->size() != 20) printf("Failed\n");
- else if (Xy->X != 32484) printf("Failed\n");
+ else if (Xy->X != 32485) printf("Failed\n");
else if (Xy->Y != 61982) printf("Failed\n");
else printf("Pass\n");
Modified: trunk/src/tri.cpp
===================================================================
--- trunk/src/tri.cpp 2006-10-16 21:00:35 UTC (rev 68)
+++ trunk/src/tri.cpp 2006-10-19 19:26:53 UTC (rev 69)
@@ -340,8 +340,16 @@
NodeList->SortByXY();
NodeList->ClearEdgeIndex();
+ // Erst mal genug Speicher besorgen
+ ElementList->reserve((size_t)(NodeList->size() * 2.2));
+ write_fortschritt("Kapazität der Elementliste wurde auf %d erhöht\n", ElementList->capacity());
+
TEdgeList *EdgeList = new TEdgeList;
+ // Erst mal genug Speicher besorgen
+ EdgeList->EdgeVector.reserve((size_t)(NodeList->size() * 2.2 * 2.2));
+ write_fortschritt("Kapazität der Kantenliste wurde auf %d erhöht\n", EdgeList->EdgeVector.capacity());
+
TEdge* NewEdge = new TEdge(NewNode1, NewNode2);
EdgeList->Add(NewEdge);
Modified: trunk/src/wsplgen.cpp
===================================================================
--- trunk/src/wsplgen.cpp 2006-10-16 21:00:35 UTC (rev 68)
+++ trunk/src/wsplgen.cpp 2006-10-19 19:26:53 UTC (rev 69)
@@ -57,6 +57,11 @@
fhlog = fopen ("wsplgen_log.txt", "w");
fhsta = fopen ("wsplgen_sta.txt", "w");
}
+ else if (argc >= 1 || argv[1][0] == '?')
+ {
+ printf ("%s\n", Version);
+ return (0);
+ }
else
{
fhlog = stdout;
Modified: trunk/src/wsplgen.h
===================================================================
--- trunk/src/wsplgen.h 2006-10-16 21:00:35 UTC (rev 68)
+++ trunk/src/wsplgen.h 2006-10-19 19:26:53 UTC (rev 69)
@@ -10,8 +10,12 @@
// Read the file COPYING coming with WSPLGEN for details.
//
-const char Version[] = "0.9.18 r2";
+const char Version[] = "1.0.0 rc1";
+// Das Schneiden von Profilen wird jetzt noch überprüft
+
+// const char Version[] = "0.9.18 r2";
+
// Ein Problem mit 'falsch' orientierten Dreieken aus TIN Dateien wurde behoben.
// Der Fehler existierte erst ab Version 0-9-18-r2
Modified: trunk/src/xy.cpp
===================================================================
--- trunk/src/xy.cpp 2006-10-16 21:00:35 UTC (rev 68)
+++ trunk/src/xy.cpp 2006-10-19 19:26:53 UTC (rev 69)
@@ -395,7 +395,7 @@
Add(Xy->X, Xy->Y);
- // Jetzt das CutProfil verlängern, dammit es wirklich zwei Schnittpunkte gibt
+ // Jetzt das CutProfil verlängern, damit es wirklich zwei Schnittpunkte gibt
long X = 0;
long Y = 0;
@@ -1178,7 +1178,7 @@
//---------------------------------------------------------------------
void TNodeList::ReScale(void)
{
- write_fortschritt("->Zurückverschiebung des Koordinatensystems gestartet\n");
+ write_fortschritt("->Zurückverschiebung des Koordinatensystems gestartet\n");
for (iterator i = begin(); i != end(); i++)
{
@@ -1196,7 +1196,7 @@
DiffX = 0;
DiffY = 0;
- write_fortschritt("<-Zurückverschiebung des Koordinatensystems beendet\n");
+ write_fortschritt("<-Zurückverschiebung des Koordinatensystems beendet\n");
}
//---------------------------------------------------------------------
@@ -2089,6 +2089,7 @@
Point = 0;
}
delete PointList;
+ PointList = 0;
}
MinX = 0;
More information about the Wsplgen-commits
mailing list