From 62fb27cb6a67a01b82d4d2a56aaf1e1291074418 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Sat, 12 Nov 2011 11:18:54 +0100 Subject: [PATCH] Simulationsumgebung aktualisiert --- Aufgabenblock_2/libsimu.so | Bin Aufgabenblock_3/SimuClient.h | 15 +++++---------- Aufgabenblock_3/libsimu.so | Bin SimuClient/libsimu.so | Bin 0 -> 66234 bytes 4 files changed, 5 insertions(+), 10 deletions(-) mode change 100755 => 100644 Aufgabenblock_2/libsimu.so mode change 100755 => 100644 Aufgabenblock_3/libsimu.so create mode 100644 SimuClient/libsimu.so diff --git a/Aufgabenblock_2/libsimu.so b/Aufgabenblock_2/libsimu.so old mode 100755 new mode 100644 diff --git a/Aufgabenblock_3/SimuClient.h b/Aufgabenblock_3/SimuClient.h index f20ec4e..f7c7252 100644 --- a/Aufgabenblock_3/SimuClient.h +++ b/Aufgabenblock_3/SimuClient.h @@ -1,9 +1,9 @@ /* - * SimuClient f�r MacOS/Linux (Praktikum Informatik 2, WS 2009/10 RWTH Aachen) + * SimuClient für MacOS/Linux (Praktikum Informatik 2, WS 2009/10 RWTH Aachen) * Version 0.5 * von Robert Uhl, 2009 - 2010 - * Vielen Dank an den Lehrstuhl EECS, RWTH Aachen, f�r den Zugang zum Quellcode - * des SimuClient f�r Windows. + * Vielen Dank an den Lehrstuhl EECS, RWTH Aachen, für den Zugang zum Quellcode + * des SimuClient für Windows. * Datei: SimuClient.h * Inhalt: SimuClient sendet Daten an den (erweiterten) Java-Grafik-Server */ @@ -14,11 +14,6 @@ #include using namespace std; -typedef struct { - int x; - int y; -} Koordinaten; - // Funktionen der Library bool bInitialisiereGrafik(int sizeX, int sizeY, bool bStarteServer = true, const string& sServer = "localhost", const unsigned short iPort = 7654); bool bZeichneKreuzung(int posX, int posY); @@ -26,10 +21,10 @@ bool bZeichneStrasse(const string& way_to_name, const string& way_back_name, int bool bZeichnePKW(const string& carname, const string& streetname, double rel_position, double speed, double tank); bool bZeichneFahrrad(const string& bikename, const string& streetname, double relposition, double speed); void vSetzeZeit(const double dTime); // sendet die Simulationszeit an den erweiterten Grafikserver -void Sleep(const int mSec); // ersetzt die Sleep()-Funktion von Windows, die mSek �bernimmt +void Sleep(const int mSec); // ersetzt die Sleep()-Funktion von Windows, die mSek übernimmt void vBeendeGrafik(void); -// Zus�tzliche Schnittstellen wegen eventueller Konvertierungsprobleme bei string/char* +// Zusätzliche Schnittstellen wegen eventueller Konvertierungsprobleme bei string/char* bool bZeichneStrasse(const char* way_to_name, const char* way_back_name, int length, int numPoints, int* points_xy); bool bZeichneStrasse(const string& way_to_name, const char* way_back_name, int length, int numPoints, int* points_xy); bool bZeichneStrasse(const char* way_to_name, const string& way_back_name, int length, int numPoints, int* points_xy); diff --git a/Aufgabenblock_3/libsimu.so b/Aufgabenblock_3/libsimu.so old mode 100755 new mode 100644 diff --git a/SimuClient/libsimu.so b/SimuClient/libsimu.so new file mode 100644 index 0000000000000000000000000000000000000000..8f24c856989f8b6450d3e9d7cf4f9dd6b497dbd8 GIT binary patch literal 66234 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 literal 0 HcmV?d00001