Database Preprocessing for IRT
Detailed Description
This is an example of how to use the WinProp API to preprocess a database for IRT. The full example is distributed with the installation.#include <stdio.h> #include <string> #include <iostream> #include "IRT_preprocess.h" #ifndef API_DATA_FOLDER #define API_DATA_FOLDER "../../api/winprop/data/" #endif // !API_DATA_FOLDER int main(int argc, char** argv) { int Error = 0; WinProp_PrePro PreproPara; WinProp_Callback Callback; /* ---------------------------- Initialisations -------------------------- */ WinProp_Structure_Init_PrePro(&PreproPara); Callback.Percentage = CallbackProgress; Callback.Message = CallbackMessage; Callback.Error = CallbackError; /* ----------------- Definition of parameters for preprocessing ---------- */ PreproPara.NrHeights = 1; PreproPara.Heights = (double*)malloc(sizeof(double) * PreproPara.NrHeights); PreproPara.Heights[0] = 1.5; PreproPara.Resolution = 2.0; PreproPara.AdaptiveResolution = 1; PreproPara.AdaptiveResolutionFactor = 2; PreproPara.MultipleInteractions = 0; PreproPara.ExcludeDiffractions = 1; PreproPara.OnlyPixelsInsideBuilding = 1; PreproPara.TileLength = 10.0; PreproPara.SegmentLength = 10.0; char* my_indoor_vector_database = API_DATA_FOLDER "/indoor/IndoorVectordatabase.ida"; // specify full path with extension char* my_preprocessed_output_database = API_DATA_FOLDER "/indoor/IRT_Preprocessed_database"; // no extension here Error = WinProp_PreProcessIndoor( my_indoor_vector_database, my_preprocessed_output_database, &PreproPara, &Callback ); return 0; } int _STD_CALL CallbackMessage(const char * Text) { if (Text == nullptr) return 0; std::cout << "\n" << Text; return(0); } int _STD_CALL CallbackError(const char * Text, int Error) { if (Text == nullptr) return 0; std::cout << "\n"; #ifdef __LINUX std::cout << "\033[31m" << "Error (" << Error << "): "; // highlight error in red color #else HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hConsole, FOREGROUND_RED); std::cout << "Error (" << Error << "): "; #endif // __LINUX std::cout << Text; #ifdef __LINUX std::cout << "\033[0m"; // highlight error in red color #else SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN); #endif // __LINUX return 0; } int _STD_CALL CallbackProgress(int value, const char* text) { char Line[200]; sprintf(Line, "\n%d%% %s", value, text); std::cout << Line; return(0); }