commit 8d2be0f8a061cc7c271574e979571823189394dc Author: Toni Date: Tue Mar 1 15:04:46 2016 +0100 added code from fusion2016 diff --git a/README.md b/README.md new file mode 100644 index 0000000..25002ae --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Fusion2016 + diff --git a/code-build/CMakeCache.txt b/code-build/CMakeCache.txt new file mode 100644 index 0000000..edf18a3 --- /dev/null +++ b/code-build/CMakeCache.txt @@ -0,0 +1,318 @@ +# This is the CMakeCache file. +# For build in directory: /home/toni/Documents/programme/localization/Fusion2016/code-build +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler. +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler. +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING=' ' + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING=' ' + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Fusion2016 + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING=' ' + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If true, cmake will use relative paths in makefiles and projects. +CMAKE_USE_RELATIVE_PATHS:BOOL=OFF + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Fusion2016_BINARY_DIR:STATIC=/home/toni/Documents/programme/localization/Fusion2016/code-build + +//Value Computed by CMake +Fusion2016_SOURCE_DIR:STATIC=/home/toni/Documents/programme/localization/Fusion2016/code + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/toni/Documents/programme/localization/Fusion2016/code-build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=0 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_HOSTED__;1;__GNUC__;4;__GNUC_MINOR__;9;__GNUC_PATCHLEVEL__;2;__VERSION__;"4.9.2 20150212 (Red Hat 4.9.2-6)";__GNUC_RH_RELEASE__;6;__ATOMIC_RELAXED; ;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__FINITE_MATH_ONLY__; ;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1002;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;4294967295U;__WINT_MIN__;0U;__PTRDIFF_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__INTMAX_MAX__;9223372036854775807L;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;18446744073709551615UL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;2147483647;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;127;__INT16_MAX__;32767;__INT32_MAX__;2147483647;__INT64_MAX__;9223372036854775807L;__UINT8_MAX__;255;__UINT16_MAX__;65535;__UINT32_MAX__;4294967295U;__UINT64_MAX__;18446744073709551615UL;__INT_LEAST8_MAX__;127;__INT8_C(c);c;__INT_LEAST16_MAX__;32767;__INT16_C(c);c;__INT_LEAST32_MAX__;2147483647;__INT32_C(c);c;__INT_LEAST64_MAX__;9223372036854775807L;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;255;__UINT8_C(c);c;__UINT_LEAST16_MAX__;65535;__UINT16_C(c);c;__UINT_LEAST32_MAX__;4294967295U;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;18446744073709551615UL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;127;__INT_FAST16_MAX__;9223372036854775807L;__INT_FAST32_MAX__;9223372036854775807L;__INT_FAST64_MAX__;9223372036854775807L;__UINT_FAST8_MAX__;255;__UINT_FAST16_MAX__;18446744073709551615UL;__UINT_FAST32_MAX__;18446744073709551615UL;__UINT_FAST64_MAX__;18446744073709551615UL;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__; ;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201103L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;199711L;__STDC_HOSTED__;1;__GNUC__;4;__GNUC_MINOR__;9;__GNUC_PATCHLEVEL__;2;__VERSION__;"4.9.2 20150212 (Red Hat 4.9.2-6)";__GNUC_RH_RELEASE__;6;__ATOMIC_RELAXED; ;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__FINITE_MATH_ONLY__; ;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;4;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_binary_literals;201304;__EXCEPTIONS;1;__GXX_ABI_VERSION;1002;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;4294967295U;__WINT_MIN__;0U;__PTRDIFF_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__INTMAX_MAX__;9223372036854775807L;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;18446744073709551615UL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;2147483647;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;127;__INT16_MAX__;32767;__INT32_MAX__;2147483647;__INT64_MAX__;9223372036854775807L;__UINT8_MAX__;255;__UINT16_MAX__;65535;__UINT32_MAX__;4294967295U;__UINT64_MAX__;18446744073709551615UL;__INT_LEAST8_MAX__;127;__INT8_C(c);c;__INT_LEAST16_MAX__;32767;__INT16_C(c);c;__INT_LEAST32_MAX__;2147483647;__INT32_C(c);c;__INT_LEAST64_MAX__;9223372036854775807L;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;255;__UINT8_C(c);c;__UINT_LEAST16_MAX__;65535;__UINT16_C(c);c;__UINT_LEAST32_MAX__;4294967295U;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;18446744073709551615UL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;127;__INT_FAST16_MAX__;9223372036854775807L;__INT_FAST32_MAX__;9223372036854775807L;__INT_FAST64_MAX__;9223372036854775807L;__UINT_FAST8_MAX__;255;__UINT_FAST16_MAX__;18446744073709551615UL;__UINT_FAST32_MAX__;18446744073709551615UL;__UINT_FAST64_MAX__;18446744073709551615UL;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__; ;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570815e+308L);__DBL_MIN__;double(2.22507385850720138309e-308L);__DBL_EPSILON__;double(2.22044604925031308085e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201103L;__STDC_NO_THREADS__;1 +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2;/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/x86_64-redhat-linux;/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../include/c++/4.9.2/backward;/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include;/usr/local/include;/usr/include +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_HOSTED__;1;__GNUC__;4;__GNUC_MINOR__;9;__GNUC_PATCHLEVEL__;2;__VERSION__;"4.9.2 20150212 (Red Hat 4.9.2-6)";__GNUC_RH_RELEASE__;6;__ATOMIC_RELAXED; ;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__FINITE_MATH_ONLY__; ;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1002;__SCHAR_MAX__;127;__SHRT_MAX__;32767;__INT_MAX__;2147483647;__LONG_MAX__;9223372036854775807L;__LONG_LONG_MAX__;9223372036854775807LL;__WCHAR_MAX__;2147483647;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;4294967295U;__WINT_MIN__;0U;__PTRDIFF_MAX__;9223372036854775807L;__SIZE_MAX__;18446744073709551615UL;__INTMAX_MAX__;9223372036854775807L;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;18446744073709551615UL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;2147483647;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;127;__INT16_MAX__;32767;__INT32_MAX__;2147483647;__INT64_MAX__;9223372036854775807L;__UINT8_MAX__;255;__UINT16_MAX__;65535;__UINT32_MAX__;4294967295U;__UINT64_MAX__;18446744073709551615UL;__INT_LEAST8_MAX__;127;__INT8_C(c);c;__INT_LEAST16_MAX__;32767;__INT16_C(c);c;__INT_LEAST32_MAX__;2147483647;__INT32_C(c);c;__INT_LEAST64_MAX__;9223372036854775807L;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;255;__UINT8_C(c);c;__UINT_LEAST16_MAX__;65535;__UINT16_C(c);c;__UINT_LEAST32_MAX__;4294967295U;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;18446744073709551615UL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;127;__INT_FAST16_MAX__;9223372036854775807L;__INT_FAST32_MAX__;9223372036854775807L;__INT_FAST64_MAX__;9223372036854775807L;__UINT_FAST8_MAX__;255;__UINT_FAST16_MAX__;18446744073709551615UL;__UINT_FAST32_MAX__;18446744073709551615UL;__UINT_FAST64_MAX__;18446744073709551615UL;__INTPTR_MAX__;9223372036854775807L;__UINTPTR_MAX__;18446744073709551615UL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__; ;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201103L;__STDC_NO_THREADS__;1 +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-redhat-linux/4.9.2/include;/usr/local/include;/usr/include +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Start directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/toni/Documents/programme/localization/Fusion2016/code +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_LOCAL_GENERATORS:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_USE_RELATIVE_PATHS +CMAKE_USE_RELATIVE_PATHS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/code-build/CMakeFiles/3.0.2/CMakeCCompiler.cmake b/code-build/CMakeFiles/3.0.2/CMakeCCompiler.cmake new file mode 100644 index 0000000..2838f14 --- /dev/null +++ b/code-build/CMakeFiles/3.0.2/CMakeCCompiler.cmake @@ -0,0 +1,58 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "4.9.2") +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-redhat-linux/4.9.2;/usr/lib64;/lib64;/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") + + + diff --git a/code-build/CMakeFiles/3.0.2/CMakeCXXCompiler.cmake b/code-build/CMakeFiles/3.0.2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..62932b5 --- /dev/null +++ b/code-build/CMakeFiles/3.0.2/CMakeCXXCompiler.cmake @@ -0,0 +1,59 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "4.9.2") +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-redhat-linux/4.9.2;/usr/lib64;/lib64;/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") + + + diff --git a/code-build/CMakeFiles/3.0.2/CMakeDetermineCompilerABI_C.bin b/code-build/CMakeFiles/3.0.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000..e4e445e Binary files /dev/null and b/code-build/CMakeFiles/3.0.2/CMakeDetermineCompilerABI_C.bin differ diff --git a/code-build/CMakeFiles/3.0.2/CMakeDetermineCompilerABI_CXX.bin b/code-build/CMakeFiles/3.0.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000..f7c7f4e Binary files /dev/null and b/code-build/CMakeFiles/3.0.2/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/code-build/CMakeFiles/3.0.2/CMakeSystem.cmake b/code-build/CMakeFiles/3.0.2/CMakeSystem.cmake new file mode 100644 index 0000000..966d6cb --- /dev/null +++ b/code-build/CMakeFiles/3.0.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.1.5-100.fc21.x86_64") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.1.5-100.fc21.x86_64") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.1.5-100.fc21.x86_64") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.1.5-100.fc21.x86_64") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/code-build/CMakeFiles/3.0.2/CompilerIdC/CMakeCCompilerId.c b/code-build/CMakeFiles/3.0.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..bd1f7d1 --- /dev/null +++ b/code-build/CMakeFiles/3.0.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,442 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) +# if defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) +# else +# define COMPILER_ID "Clang" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100) + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_C = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) +# if defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# else +# if __IBMC__ >= 800 +# define COMPILER_ID "XL" +# else +# define COMPILER_ID "VisualAge" +# endif + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +/* Analog VisualDSP++ >= 4.5.6 */ +#elif defined(__VISUALDSPVERSION__) +# define COMPILER_ID "ADSP" + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) + +/* Analog VisualDSP++ < 4.5.6 */ +#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" + +/* IAR Systems compiler for embedded systems. + http://www.iar.com */ +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +/* sdcc, the small devices C compiler for embedded systems, + http://sdcc.sourceforge.net */ +#elif defined(SDCC) +# define COMPILER_ID "SDCC" + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + +/* This compiler is either not known or is too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" + +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto"; +#endif + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#else /* unknown platform */ +# define PLATFORM_ID "" + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM) +# define ARCHITECTURE_ID "ARM" + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID "" +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif + (void)argv; + return require; +} +#endif diff --git a/code-build/CMakeFiles/3.0.2/CompilerIdC/a.out b/code-build/CMakeFiles/3.0.2/CompilerIdC/a.out new file mode 100755 index 0000000..416a37c Binary files /dev/null and b/code-build/CMakeFiles/3.0.2/CompilerIdC/a.out differ diff --git a/code-build/CMakeFiles/3.0.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/code-build/CMakeFiles/3.0.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..a315c6a --- /dev/null +++ b/code-build/CMakeFiles/3.0.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,430 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) +# if defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) +# else +# define COMPILER_ID "Clang" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH HEX(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__WATCOMC__ % 100) + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) +# if defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# else +# if __IBMCPP__ >= 800 +# define COMPILER_ID "XL" +# else +# define COMPILER_ID "VisualAge" +# endif + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +/* Analog VisualDSP++ >= 4.5.6 */ +#elif defined(__VISUALDSPVERSION__) +# define COMPILER_ID "ADSP" + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) + +/* Analog VisualDSP++ < 4.5.6 */ +#elif defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" + +/* IAR Systems compiler for embedded systems. + http://www.iar.com */ +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + +/* This compiler is either not known or is too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" + +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto"; +#endif + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#else /* unknown platform */ +# define PLATFORM_ID "" + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM) +# define ARCHITECTURE_ID "ARM" + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID "" +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif + (void)argv; + return require; +} diff --git a/code-build/CMakeFiles/3.0.2/CompilerIdCXX/a.out b/code-build/CMakeFiles/3.0.2/CompilerIdCXX/a.out new file mode 100755 index 0000000..cb71b42 Binary files /dev/null and b/code-build/CMakeFiles/3.0.2/CompilerIdCXX/a.out differ diff --git a/code-build/CMakeFiles/CMakeDirectoryInformation.cmake b/code-build/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..b8e5a8b --- /dev/null +++ b/code-build/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.0 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/toni/Documents/programme/localization/Fusion2016/code") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/toni/Documents/programme/localization/Fusion2016/code-build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/code-build/CMakeFiles/CMakeOutput.log b/code-build/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..9423458 --- /dev/null +++ b/code-build/CMakeFiles/CMakeOutput.log @@ -0,0 +1,265 @@ +The system is: Linux - 4.1.5-100.fc21.x86_64 - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/3.0.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/3.0.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/gmake" "cmTryCompileExec160666428/fast" +/usr/bin/gmake -f CMakeFiles/cmTryCompileExec160666428.dir/build.make CMakeFiles/cmTryCompileExec160666428.dir/build +gmake[1]: Entering directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec160666428.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTryCompileExec160666428.dir/testCCompiler.c.o -c /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTryCompileExec160666428 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec160666428.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTryCompileExec160666428.dir/testCCompiler.c.o -o cmTryCompileExec160666428 -rdynamic +gmake[1]: Leaving directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/gmake" "cmTryCompileExec988975450/fast" +/usr/bin/gmake -f CMakeFiles/cmTryCompileExec988975450.dir/build.make CMakeFiles/cmTryCompileExec988975450.dir/build +gmake[1]: Entering directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building C object CMakeFiles/cmTryCompileExec988975450.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTryCompileExec988975450.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c +Linking C executable cmTryCompileExec988975450 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec988975450.dir/link.txt --verbose=1 +/usr/bin/cc -v CMakeFiles/cmTryCompileExec988975450.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec988975450 -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper +Target: x86_64-redhat-linux +Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux +Thread model: posix +gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC) +COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/:/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/:/usr/lib/gcc/x86_64-redhat-linux/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.9.2/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec988975450' '-rdynamic' '-mtune=generic' '-march=x86-64' + /usr/libexec/gcc/x86_64-redhat-linux/4.9.2/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/4.9.2/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper -plugin-opt=-fresolution=/tmp/cczyOD8k.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec988975450 /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../.. CMakeFiles/cmTryCompileExec988975450.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crtn.o +gmake[1]: Leaving directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/gmake" "cmTryCompileExec988975450/fast"] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec988975450.dir/build.make CMakeFiles/cmTryCompileExec988975450.dir/build] + ignore line: [gmake[1]: Entering directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp'] + ignore line: [/usr/bin/cmake -E cmake_progress_report /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp/CMakeFiles 1] + ignore line: [Building C object CMakeFiles/cmTryCompileExec988975450.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTryCompileExec988975450.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTryCompileExec988975450] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec988975450.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v CMakeFiles/cmTryCompileExec988975450.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec988975450 -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper] + ignore line: [Target: x86_64-redhat-linux] + ignore line: [Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux] + ignore line: [Thread model: posix] + ignore line: [gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/:/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/:/usr/lib/gcc/x86_64-redhat-linux/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.9.2/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec988975450' '-rdynamic' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/libexec/gcc/x86_64-redhat-linux/4.9.2/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/4.9.2/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper -plugin-opt=-fresolution=/tmp/cczyOD8k.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec988975450 /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../.. CMakeFiles/cmTryCompileExec988975450.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crtn.o] + arg [/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cczyOD8k.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--build-id] ==> ignore + arg [--no-add-needed] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-o] ==> ignore + arg [cmTryCompileExec988975450] ==> ignore + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtbegin.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.9.2] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2] + arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64] + arg [-L/lib/../lib64] ==> dir [/lib/../lib64] + arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64] + arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../..] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../..] + arg [CMakeFiles/cmTryCompileExec988975450.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crtn.o] ==> ignore + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2] ==> [/usr/lib/gcc/x86_64-redhat-linux/4.9.2] + collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64] ==> [/usr/lib64] + collapse library dir [/lib/../lib64] ==> [/lib64] + collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64] + collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../..] ==> [/usr/lib] + implicit libs: [c] + implicit dirs: [/usr/lib/gcc/x86_64-redhat-linux/4.9.2;/usr/lib64;/lib64;/usr/lib] + implicit fwks: [] + + +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/gmake" "cmTryCompileExec1039321922/fast" +/usr/bin/gmake -f CMakeFiles/cmTryCompileExec1039321922.dir/build.make CMakeFiles/cmTryCompileExec1039321922.dir/build +gmake[1]: Entering directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building CXX object CMakeFiles/cmTryCompileExec1039321922.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTryCompileExec1039321922.dir/testCXXCompiler.cxx.o -c /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTryCompileExec1039321922 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1039321922.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTryCompileExec1039321922.dir/testCXXCompiler.cxx.o -o cmTryCompileExec1039321922 -rdynamic +gmake[1]: Leaving directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/gmake" "cmTryCompileExec4200010279/fast" +/usr/bin/gmake -f CMakeFiles/cmTryCompileExec4200010279.dir/build.make CMakeFiles/cmTryCompileExec4200010279.dir/build +gmake[1]: Entering directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp' +/usr/bin/cmake -E cmake_progress_report /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp/CMakeFiles 1 +Building CXX object CMakeFiles/cmTryCompileExec4200010279.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTryCompileExec4200010279.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTryCompileExec4200010279 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4200010279.dir/link.txt --verbose=1 +/usr/bin/c++ -v CMakeFiles/cmTryCompileExec4200010279.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec4200010279 -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper +Target: x86_64-redhat-linux +Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux +Thread model: posix +gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC) +COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/:/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/:/usr/lib/gcc/x86_64-redhat-linux/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.9.2/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec4200010279' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/libexec/gcc/x86_64-redhat-linux/4.9.2/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/4.9.2/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper -plugin-opt=-fresolution=/tmp/ccYNIMJo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec4200010279 /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../.. CMakeFiles/cmTryCompileExec4200010279.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crtn.o +gmake[1]: Leaving directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/gmake" "cmTryCompileExec4200010279/fast"] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTryCompileExec4200010279.dir/build.make CMakeFiles/cmTryCompileExec4200010279.dir/build] + ignore line: [gmake[1]: Entering directory '/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp'] + ignore line: [/usr/bin/cmake -E cmake_progress_report /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/CMakeTmp/CMakeFiles 1] + ignore line: [Building CXX object CMakeFiles/cmTryCompileExec4200010279.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTryCompileExec4200010279.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTryCompileExec4200010279] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4200010279.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTryCompileExec4200010279.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec4200010279 -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper] + ignore line: [Target: x86_64-redhat-linux] + ignore line: [Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux] + ignore line: [Thread model: posix] + ignore line: [gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/:/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/:/usr/lib/gcc/x86_64-redhat-linux/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/4.9.2/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec4200010279' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/libexec/gcc/x86_64-redhat-linux/4.9.2/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/4.9.2/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper -plugin-opt=-fresolution=/tmp/ccYNIMJo.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTryCompileExec4200010279 /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../.. CMakeFiles/cmTryCompileExec4200010279.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtend.o /usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crtn.o] + arg [/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccYNIMJo.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--no-add-needed] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-o] ==> ignore + arg [cmTryCompileExec4200010279] ==> ignore + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtbegin.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.9.2] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2] + arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64] + arg [-L/lib/../lib64] ==> dir [/lib/../lib64] + arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64] + arg [-L/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../..] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../..] + arg [CMakeFiles/cmTryCompileExec4200010279.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64/crtn.o] ==> ignore + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2] ==> [/usr/lib/gcc/x86_64-redhat-linux/4.9.2] + collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../../../lib64] ==> [/usr/lib64] + collapse library dir [/lib/../lib64] ==> [/lib64] + collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64] + collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/4.9.2/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;c] + implicit dirs: [/usr/lib/gcc/x86_64-redhat-linux/4.9.2;/usr/lib64;/lib64;/usr/lib] + implicit fwks: [] + + diff --git a/code-build/CMakeFiles/Fusion2016.dir/CXX.includecache b/code-build/CMakeFiles/Fusion2016.dir/CXX.includecache new file mode 100644 index 0000000..0a1fe7d --- /dev/null +++ b/code-build/CMakeFiles/Fusion2016.dir/CXX.includecache @@ -0,0 +1,1398 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h +Exception.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Exception.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Defines.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Exception.h +exception +- +string +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Floor.h +vector +- +../geo/Line2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Line2.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/FloorplanFactorySVG.h +Floor.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Floor.h +Stairs.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stairs.h +string +- +../Exception.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Exception.h +KLib/gfx/svg/SVGLoader.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/PlatformStair.h +Stair.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stair.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stair.h +../geo/BBox2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/BBox2.h +../geo/Point2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point2.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stairs.h +vector +- +Stair.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stair.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Angle.h +cmath +- +../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h +Point2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point2.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/BBox2.h +Point2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point2.h +Line2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Line2.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/BBox3.h +Point3.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point3.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +cmath +- +random +- +Angle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Angle.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Length.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Line2.h +Point2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point2.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point2.h +cmath +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point3.h +../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h +cmath +- +Point2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point2.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Units.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +vector +- +iostream +- +unordered_map +- +../Exception.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Exception.h +GridPoint.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridPoint.h +GridNode.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNode.h +../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h +../geo/BBox3.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/BBox3.h +../misc/Debug.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Debug.h +GridNeighborIterator.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNeighborIterator.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNeighborIterator.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNode.h +GridNodeBBox.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNodeBBox.h +GridPoint.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridPoint.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNodeBBox.h +GridPoint.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridPoint.h +../geo/BBox2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/BBox2.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridPoint.h +cmath +- +../geo/Point3.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point3.h +../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/factory/GridFactory.h +string +- +unordered_set +- +../../floorplan/Floor.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Floor.h +../../floorplan/Stairs.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stairs.h +../../floorplan/PlatformStair.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/PlatformStair.h +../../geo/Units.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Units.h +../GridNodeBBox.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNodeBBox.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +../../misc/Debug.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Debug.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/factory/GridImportance.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +GridFactory.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/factory/GridFactory.h +../../misc/KNN.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNN.h +../../misc/KNNArray.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNNArray.h +../../math/MiniMat2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MiniMat2.h +../../misc/Debug.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Debug.h +../../nav/dijkstra/Dijkstra.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h +../../nav/dijkstra/DijkstraPath.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraPath.h +../../math/Distributions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Distributions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h +GridWalkState.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h +../../geo/Heading.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +GridWalkState.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkLightAtTheEndOfTheTunnel.h +../../geo/Heading.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +../../math/DrawList.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/DrawList.h +../../math/Distributions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Distributions.h +../../nav/dijkstra/Dijkstra.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h +GridWalk.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h +GridWalkState.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +GridWalkHelper.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkPathControl.h +../../geo/Heading.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +../../math/Distributions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Distributions.h +../../math/DrawList.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/DrawList.h +../../nav/dijkstra/Dijkstra.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h +GridWalkState.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +GridWalkHelper.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h +GridWalk.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkPushForward.h +../../geo/Heading.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +../../math/DrawList.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/DrawList.h +../../nav/dijkstra/Dijkstra.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h +GridWalkState.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +GridWalkHelper.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h +GridWalk.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkRandomHeadingUpdate.h +../../geo/Heading.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +../../nav/dijkstra/Dijkstra.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h +GridWalk.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h +GridWalkState.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +GridWalkHelper.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkRandomHeadingUpdateAdv.h +../../geo/Heading.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +../../math/DrawList.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/DrawList.h +../../math/Distributions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Distributions.h +../../nav/dijkstra/Dijkstra.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h +GridWalk.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h +GridWalkState.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +GridWalkHelper.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkShortestPathControl.h +../../geo/Heading.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +../../math/Distributions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Distributions.h +../../math/DrawList.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/DrawList.h +../../nav/dijkstra/Dijkstra.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h +../../nav/dijkstra/DijkstraPath.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraPath.h +../../misc/KNN.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNN.h +../../misc/KNNArray.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNNArray.h +GridWalkState.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +GridWalkHelper.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h +GridWalk.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkSimpleControl.h +../../geo/Heading.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +../Grid.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +../../math/Distributions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Distributions.h +../../math/DrawList.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/DrawList.h +GridWalkState.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +GridWalkHelper.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h +GridWalk.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +../../geo/Heading.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +../../geo/Point3.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point3.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/lib/nanoflann/nanoflann.hpp +vector +- +cassert +- +algorithm +- +stdexcept +- +cstdio +- +cmath +- +limits +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Distributions.h +distribution/Normal.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Normal.h +distribution/Exponential.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Exponential.h +distribution/Logistic.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Logistic.h +distribution/Uniform.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Uniform.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/DrawList.h +vector +- +random +- +../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Interpolator.h +../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h +../Exception.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Exception.h +vector +- +algorithm +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MiniMat2.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MovingAVG.h +vector +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MovingMedian.h +vector +- +algorithm +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Exponential.h +cmath +- +random +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Logistic.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Normal.h +cmath +- +random +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Uniform.h +cmath +- +random +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Debug.h +string +- +iostream +- +iomanip +- +Time.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Time.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNN.h +../lib/nanoflann/nanoflann.hpp +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/lib/nanoflann/nanoflann.hpp +Debug.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Debug.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNNArray.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Time.h +chrono +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h +vector +- +algorithm +- +unordered_set +- +list +- +set +- +DijkstraStructs.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraStructs.h +../../misc/Debug.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Debug.h +../../misc/Time.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Time.h +../../Defines.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Defines.h +../../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraPath.h +DijkstraStructs.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraStructs.h +vector +- +../../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraStructs.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/Assertions.h +Exception.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/Exception.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/fs/File.h +string +- +algorithm +- +cstring +- +vector +- +iostream +- +sys/stat.h +- +stdio.h +- +dirent.h +- +direct.h +- +dirent.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/fs/dirent.h +direct.h +- +dirent.h +- +unistd.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/geo/Line.h +Point.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/geo/Point.h +math.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/geo/Point.h +iosfwd +- +math.h +- +iostream +- +cmath +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/Color.h +algorithm +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGComposite.h +vector +- +SVGElement.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElement.h +SVGLayer.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGLayer.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElement.h +SVGElementType.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElementType.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElementType.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGFile.h +SVGComposite.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGComposite.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGLayer.h +SVGComposite.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGComposite.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGLoader.h +../../fs/File.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/fs/File.h +SVGComposite.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGComposite.h +string +- +SVGFile.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGFile.h +SVGLoader.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGLoader.h +SVGLayer.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGLayer.h +SVGPath.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGPath.h +SVGText.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGText.h +../../string/String.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/string/String.h +../../inc/tinyxml/tinyxml2.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/inc/tinyxml/tinyxml2.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGPath.h +SVGElement.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElement.h +../../geo/Line.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/geo/Line.h +../Color.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/Color.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGText.h +SVGElement.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElement.h +../../geo/Line.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/geo/Line.h +../Color.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/Color.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/inc/tinyxml/tinyxml2.h +ctype.h +- +limits.h +- +stdio.h +- +stdlib.h +- +string.h +- +stdarg.h +- +cctype +- +climits +- +cstdio +- +cstdlib +- +cstring +- +cstdarg +- +android/log.h +- +assert.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/distribution/Normal.h +algorithm +- +random +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/distribution/Uniform.h +algorithm +- +random +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleAssertions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilter.h +vector +- +memory +- +Particle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h +resampling/ParticleFilterResampling.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResampling.h +estimation/ParticleFilterEstimation.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimation.h +ParticleFilterTransition.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterTransition.h +ParticleFilterEvaluation.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterEvaluation.h +ParticleFilterInitializer.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterInitializer.h +../../../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/Assertions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterEvaluation.h +vector +- +Particle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterInitializer.h +vector +- +Particle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterTransition.h +vector +- +Particle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimation.h +../Particle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimationOrderedWeightedAverage.h +vector +- +../Particle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h +../ParticleAssertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleAssertions.h +ParticleFilterEstimation.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimation.h +../../../../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/Assertions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimationRegionalWeightedAverage.h +ParticleFilterEstimation.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimation.h +../Particle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h +../ParticleAssertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleAssertions.h +algorithm +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimationWeightedAverage.h +vector +- +../Particle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h +../ParticleAssertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleAssertions.h +ParticleFilterEstimation.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimation.h +../../../../Assertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/Assertions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResampling.h +../Particle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h +vector +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResamplingPercent.h +algorithm +- +ParticleFilterResampling.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResampling.h +../ParticleAssertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleAssertions.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResamplingSimple.h +algorithm +- +ParticleFilterResampling.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResampling.h +../ParticleAssertions.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleAssertions.h +../../../../os/Time.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/os/Time.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/optimization/NumOptVector.h +cassert +- +cstring +- +iostream +- +array +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/statistics/Statistics.h +set +- +cstdint +- +sstream +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/Gnuplot.h +../../os/Process.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/os/Process.h +../../fs/File.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/fs/File.h +GnuplotSize.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSize.h +GnuplotDrawable.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotDrawable.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotDrawable.h +sstream +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlot.h +vector +- +string +- +GnuplotDrawable.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotDrawable.h +GnuplotPlotElement.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElement.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElement.h +sstream +- +GnuplotStructs.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotStructs.h +attributes/GnuplotAttrTitle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrTitle.h +attributes/GnuplotAttrColor.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrColor.h +attributes/GnuplotAttrCustom.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrCustom.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementColorPoints.h +GnuplotPlotElement.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElement.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementLines.h +vector +- +GnuplotPlotElementRaw.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementRaw.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementRaw.h +GnuplotPlotElement.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElement.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSize.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplot.h +vector +- +string +- +GnuplotDrawable.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotDrawable.h +GnuplotSplotElement.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElement.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElement.h +sstream +- +GnuplotStructs.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotStructs.h +attributes/GnuplotAttrTitle.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrTitle.h +attributes/GnuplotAttrCustom.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrCustom.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementColorPoints.h +GnuplotSplotElement.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElement.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementLines.h +vector +- +GnuplotSplotElementRaw.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementRaw.h +attributes/GnuplotAttrColor.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrColor.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementPoints.h +GnuplotSplotElementRaw.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementRaw.h +attributes/GnuplotAttrColor.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrColor.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementRaw.h +GnuplotSplotElement.h +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElement.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotStructs.h +cmath +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrColor.h + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrCustom.h +string +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrTitle.h +string +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/os/Process.h +exception +- +iosfwd +- +cstdio +- +iostream +- +fcntl.h +- +sstream +- +signal.h +- +unistd.h +- +sys/types.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/os/Time.h +cstdint +- +sys/time.h +- +windows.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/string/String.h +string.h +- +string +- +sstream +- +algorithm +- +vector +- + +/home/toni/Documents/programme/localization/Fusion2016/code/DijkstraMapper.h +MyGridNode.h +/home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h + +/home/toni/Documents/programme/localization/Fusion2016/code/Helper.h +Indoor/grid/Grid.h +- +Indoor/grid/factory/GridFactory.h +- +Indoor/grid/factory/GridImportance.h +- +Indoor/floorplan/FloorplanFactorySVG.h +- +Settings.h +/home/toni/Documents/programme/localization/Fusion2016/code/Settings.h +MyGridNode.h +/home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h +OldGroundTruth.h +/home/toni/Documents/programme/localization/Fusion2016/code/OldGroundTruth.h + +/home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h +Indoor/grid/GridNode.h +- +Indoor/grid/GridPoint.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/OldGroundTruth.h +KLib/geo/Point.h +- +unordered_map +- +KLib/gfx/svg/SVGLoader.h +- +Indoor/geo/Point2.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/Settings.h +string +- + +/home/toni/Documents/programme/localization/Fusion2016/code/Vis.h +KLib/misc/gnuplot/Gnuplot.h +- +KLib/misc/gnuplot/GnuplotSplot.h +- +KLib/misc/gnuplot/GnuplotSplotElementLines.h +- +KLib/misc/gnuplot/GnuplotSplotElementPoints.h +- +KLib/misc/gnuplot/GnuplotSplotElementColorPoints.h +- +Indoor/geo/Length.h +- +Indoor/floorplan/Floor.h +- +Indoor/geo/Angle.h +- +Indoor/grid/walk/GridWalkState.h +- +eval/GroundTruthWay.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/GroundTruthWay.h + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/DebugShortestPath.h +Indoor/grid/walk/GridWalkShortestPathControl.h +- +KLib/misc/gnuplot/Gnuplot.h +- +KLib/misc/gnuplot/GnuplotSplot.h +- +KLib/misc/gnuplot/GnuplotSplotElementLines.h +- +KLib/misc/gnuplot/GnuplotSplotElementPoints.h +- +../Helper.h +/home/toni/Documents/programme/localization/Fusion2016/code/Helper.h +../Vis.h +/home/toni/Documents/programme/localization/Fusion2016/code/Vis.h + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/Eval.h +EvalBase.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/EvalBase.h +../DijkstraMapper.h +/home/toni/Documents/programme/localization/Fusion2016/code/DijkstraMapper.h +Indoor/grid/walk/GridWalkRandomHeadingUpdate.h +- +Indoor/grid/walk/GridWalkRandomHeadingUpdateAdv.h +- +Indoor/grid/walk/GridWalkPushForward.h +- +Indoor/grid/walk/GridWalkLightAtTheEndOfTheTunnel.h +- +KLib/math/filter/particles/resampling/ParticleFilterResamplingSimple.h +- +KLib/math/filter/particles/estimation/ParticleFilterEstimationWeightedAverage.h +- +KLib/math/filter/particles/estimation/ParticleFilterEstimationRegionalWeightedAverage.h +- +KLib/math/filter/particles/estimation/ParticleFilterEstimationOrderedWeightedAverage.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/Eval1.h +EvalBase.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/EvalBase.h +../DijkstraMapper.h +/home/toni/Documents/programme/localization/Fusion2016/code/DijkstraMapper.h +Indoor/grid/walk/GridWalkRandomHeadingUpdate.h +- +Indoor/grid/walk/GridWalkRandomHeadingUpdateAdv.h +- +Indoor/grid/walk/GridWalkPushForward.h +- +Indoor/grid/walk/GridWalkLightAtTheEndOfTheTunnel.h +- +Indoor/grid/walk/GridWalkSimpleControl.h +- +Indoor/grid/walk/GridWalkPathControl.h +- +Indoor/grid/walk/GridWalkShortestPathControl.h +- +DebugShortestPath.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/DebugShortestPath.h +KLib/math/filter/particles/resampling/ParticleFilterResamplingSimple.h +- +KLib/math/filter/particles/resampling/ParticleFilterResamplingPercent.h +- +KLib/math/filter/particles/estimation/ParticleFilterEstimationWeightedAverage.h +- +KLib/math/filter/particles/estimation/ParticleFilterEstimationRegionalWeightedAverage.h +- +KLib/math/filter/particles/estimation/ParticleFilterEstimationOrderedWeightedAverage.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/EvalBase.h +../Settings.h +/home/toni/Documents/programme/localization/Fusion2016/code/Settings.h +../Helper.h +/home/toni/Documents/programme/localization/Fusion2016/code/Helper.h +../Vis.h +/home/toni/Documents/programme/localization/Fusion2016/code/Vis.h +KLib/math/filter/particles/ParticleFilter.h +- +KLib/math/statistics/Statistics.h +- +GroundTruthWay.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/GroundTruthWay.h +../particles/MyState.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +../particles/MyObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyObservation.h +../particles/MyEvaluation.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyEvaluation.h +../particles/MyTransition.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyTransition.h +../particles/MyInitializer.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyInitializer.h +../reader/SensorReader.h +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReader.h +../reader/SensorReaderStep.h +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReaderStep.h +../reader/SensorReaderTurn.h +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReaderTurn.h +../lukas/TurnObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnObservation.h +../lukas/StepObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepObservation.h +../toni/BarometerSensorReader.h +/home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerSensorReader.h +../frank/WiFiSensorReader.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiSensorReader.h +../frank/BeaconSensorReader.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconSensorReader.h +../frank/OrientationSensorReader.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/OrientationSensorReader.h + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/GroundTruthWay.h +Indoor/math/Interpolator.h +- +Indoor/geo/Point3.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot.h +KLib/misc/gnuplot/Gnuplot.h +- +KLib/misc/gnuplot/GnuplotSplot.h +- +KLib/misc/gnuplot/GnuplotSplotElementLines.h +- +KLib/misc/gnuplot/GnuplotSplotElementPoints.h +- +KLib/misc/gnuplot/GnuplotSplotElementColorPoints.h +- +Indoor/floorplan/Floor.h +- +Indoor/geo/Length.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot2D.h +KLib/misc/gnuplot/Gnuplot.h +- +KLib/misc/gnuplot/GnuplotPlot.h +- +KLib/misc/gnuplot/GnuplotPlotElementLines.h +- +KLib/misc/gnuplot/GnuplotPlotElementColorPoints.h +- +Indoor/floorplan/Floor.h +- +Indoor/geo/Length.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisDijkstra.h + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisGrid.h +Indoor/grid/Grid.h +- +Indoor/grid/factory/GridFactory.h +- +Indoor/grid/factory/GridImportance.h +- +Indoor/floorplan/FloorplanFactorySVG.h +- +Indoor/grid/walk/GridWalkLightAtTheEndOfTheTunnel.h +- +Indoor/nav/dijkstra/Dijkstra.h +- +Indoor/nav/dijkstra/DijkstraPath.h +- +PaperPlot.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot.h +PaperPlot2D.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot2D.h +../MyGridNode.h +/home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h +../Settings.h +/home/toni/Documents/programme/localization/Fusion2016/code/Settings.h +../Helper.h +/home/toni/Documents/programme/localization/Fusion2016/code/Helper.h + +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisImportance.h +Indoor/grid/Grid.h +- +Indoor/grid/factory/GridFactory.h +- +Indoor/grid/factory/GridImportance.h +- +Indoor/floorplan/FloorplanFactorySVG.h +- +Indoor/grid/walk/GridWalkLightAtTheEndOfTheTunnel.h +- +Indoor/nav/dijkstra/Dijkstra.h +- +Indoor/nav/dijkstra/DijkstraPath.h +- +PaperPlot.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot.h +PaperPlot2D.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot2D.h +../MyGridNode.h +/home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h +../Settings.h +/home/toni/Documents/programme/localization/Fusion2016/code/Settings.h +../DijkstraMapper.h +/home/toni/Documents/programme/localization/Fusion2016/code/DijkstraMapper.h + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconEvaluation.h +KLib/math/distribution/Normal.h +- +BeaconObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconObservation.h +Settings.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/Settings.h +../particles/MyState.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +../particles/MyObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyObservation.h +PositionedBeacon.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/PositionedBeacon.h + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconObservation.h +MACAddress.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/MACAddress.h +vector +- + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconSensorReader.h +../reader/SensorReader.h +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReader.h +BeaconObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconObservation.h +Settings.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/Settings.h +cassert +- + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/MACAddress.h +cstdint +- +string +- + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/OrientationObservation.h + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/OrientationSensorReader.h +../reader/SensorReader.h +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReader.h +OrientationObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/OrientationObservation.h +cassert +- + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/PositionedBeacon.h +WiFiAP.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiAP.h +Indoor/geo/Point3.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/PositionedWiFiAP.h +WiFiAP.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiAP.h +Indoor/geo/Point3.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiAP.h +MACAddress.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/MACAddress.h +ostream +- + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiEvaluation.h +../particles/MyState.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +WiFiObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiObservation.h +PositionedWiFiAP.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/PositionedWiFiAP.h +Settings.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/Settings.h +../particles/MyObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyObservation.h +KLib/math/distribution/Normal.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiObservation.h +MACAddress.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/MACAddress.h +vector +- + +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiSensorReader.h +../reader/SensorReader.h +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReader.h +WiFiObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiObservation.h +cassert +- + +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepEvaluation.h +../particles/MyState.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +StepObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepObservation.h +math.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepObservation.h + +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnEvaluation.h +../particles/MyState.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +TurnObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnObservation.h +math.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnObservation.h +vector +- + +/home/toni/Documents/programme/localization/Fusion2016/code/main.cpp +Indoor/grid/walk/GridWalkLightAtTheEndOfTheTunnel.h +- +Indoor/grid/walk/GridWalkRandomHeadingUpdate.h +- +Indoor/grid/walk/GridWalkRandomHeadingUpdateAdv.h +- +Indoor/grid/walk/GridWalkPushForward.h +- +Vis.h +/home/toni/Documents/programme/localization/Fusion2016/code/Vis.h +Helper.h +/home/toni/Documents/programme/localization/Fusion2016/code/Helper.h +MyGridNode.h +/home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h +Helper.h +/home/toni/Documents/programme/localization/Fusion2016/code/Helper.h +DijkstraMapper.h +/home/toni/Documents/programme/localization/Fusion2016/code/DijkstraMapper.h +eval/Eval.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/Eval.h +eval/Eval1.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/Eval1.h +eval/EvalBase.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/EvalBase.h +eval/PaperVisImportance.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisImportance.h +eval/PaperVisDijkstra.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisDijkstra.h +eval/PaperVisGrid.h +/home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisGrid.h + +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyControl.h + +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyEvaluation.h +KLib/math/filter/particles/ParticleFilterEvaluation.h +- +MyObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyObservation.h +MyState.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +../frank/WiFiEvaluation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiEvaluation.h +../frank/BeaconEvaluation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconEvaluation.h +../toni/BarometerEvaluation.h +/home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerEvaluation.h +../lukas/StepEvaluation.h +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepEvaluation.h +../lukas/TurnEvaluation.h +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnEvaluation.h + +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyInitializer.h +KLib/math/filter/particles/ParticleFilterInitializer.h +- +MyState.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +Indoor/grid/Grid.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyObservation.h +../frank/WiFiObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiObservation.h +../frank/BeaconObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconObservation.h +../frank/OrientationObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/frank/OrientationObservation.h +../toni/BarometerObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerObservation.h +../lukas/StepObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepObservation.h +../lukas/TurnObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnObservation.h + +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +KLib/math/distribution/Normal.h +- +KLib/math/optimization/NumOptVector.h +- +Indoor/grid/walk/GridWalkState.h +- +../MyGridNode.h +/home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h + +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyTransition.h +KLib/math/filter/particles/ParticleFilterTransition.h +- +KLib/math/distribution/Normal.h +- +KLib/math/distribution/Uniform.h +- +Indoor/grid/Grid.h +- +Indoor/grid/walk/GridWalk.h +- +MyState.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +MyControl.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyControl.h +../toni/barometric.h +/home/toni/Documents/programme/localization/Fusion2016/code/toni/barometric.h +../MyGridNode.h +/home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h + +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReader.h +fstream +- + +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReaderStep.h +fstream +- + +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReaderTurn.h +fstream +- + +/home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerEvaluation.h +../particles/MyState.h +/home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +BarometerObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerObservation.h + +/home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerObservation.h +cstdint +- + +/home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerSensorReader.h +BarometerObservation.h +/home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerObservation.h +../reader/SensorReader.h +/home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReader.h +sstream +- +Indoor/math/MovingAVG.h +- +Indoor/math/MovingMedian.h +- + +/home/toni/Documents/programme/localization/Fusion2016/code/toni/barometric.h + diff --git a/code-build/CMakeFiles/Fusion2016.dir/DependInfo.cmake b/code-build/CMakeFiles/Fusion2016.dir/DependInfo.cmake new file mode 100644 index 0000000..582ba61 --- /dev/null +++ b/code-build/CMakeFiles/Fusion2016.dir/DependInfo.cmake @@ -0,0 +1,28 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp" "/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o" + "/home/toni/Documents/programme/localization/Fusion2016/code/main.cpp" "/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/Fusion2016.dir/main.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +set(CMAKE_TARGET_DEFINITIONS + "WITH_ASSERTIONS" + "WITH_TESTS" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# The include file search paths: +set(CMAKE_C_TARGET_INCLUDE_PATH + "/home/toni/Documents/programme/localization/Fusion2016/code/../.." + ) +set(CMAKE_CXX_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH}) +set(CMAKE_Fortran_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH}) +set(CMAKE_ASM_TARGET_INCLUDE_PATH ${CMAKE_C_TARGET_INCLUDE_PATH}) diff --git a/code-build/CMakeFiles/Fusion2016.dir/build.make b/code-build/CMakeFiles/Fusion2016.dir/build.make new file mode 100644 index 0000000..8fa9c3b --- /dev/null +++ b/code-build/CMakeFiles/Fusion2016.dir/build.make @@ -0,0 +1,128 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.0 + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/toni/Documents/programme/localization/Fusion2016/code + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/toni/Documents/programme/localization/Fusion2016/code-build + +# Include any dependencies generated for this target. +include CMakeFiles/Fusion2016.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/Fusion2016.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/Fusion2016.dir/flags.make + +CMakeFiles/Fusion2016.dir/main.cpp.o: CMakeFiles/Fusion2016.dir/flags.make +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/main.cpp + $(CMAKE_COMMAND) -E cmake_progress_report /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles $(CMAKE_PROGRESS_1) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/Fusion2016.dir/main.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/Fusion2016.dir/main.cpp.o -c /home/toni/Documents/programme/localization/Fusion2016/code/main.cpp + +CMakeFiles/Fusion2016.dir/main.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/Fusion2016.dir/main.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/toni/Documents/programme/localization/Fusion2016/code/main.cpp > CMakeFiles/Fusion2016.dir/main.cpp.i + +CMakeFiles/Fusion2016.dir/main.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/Fusion2016.dir/main.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/toni/Documents/programme/localization/Fusion2016/code/main.cpp -o CMakeFiles/Fusion2016.dir/main.cpp.s + +CMakeFiles/Fusion2016.dir/main.cpp.o.requires: +.PHONY : CMakeFiles/Fusion2016.dir/main.cpp.o.requires + +CMakeFiles/Fusion2016.dir/main.cpp.o.provides: CMakeFiles/Fusion2016.dir/main.cpp.o.requires + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/main.cpp.o.provides.build +.PHONY : CMakeFiles/Fusion2016.dir/main.cpp.o.provides + +CMakeFiles/Fusion2016.dir/main.cpp.o.provides.build: CMakeFiles/Fusion2016.dir/main.cpp.o + +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o: CMakeFiles/Fusion2016.dir/flags.make +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o: /home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp + $(CMAKE_COMMAND) -E cmake_progress_report /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles $(CMAKE_PROGRESS_2) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o -c /home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp + +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp > CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.i + +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp -o CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.s + +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o.requires: +.PHONY : CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o.requires + +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o.provides: CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o.requires + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o.provides.build +.PHONY : CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o.provides + +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o.provides.build: CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o + +# Object files for target Fusion2016 +Fusion2016_OBJECTS = \ +"CMakeFiles/Fusion2016.dir/main.cpp.o" \ +"CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o" + +# External object files for target Fusion2016 +Fusion2016_EXTERNAL_OBJECTS = + +Fusion2016: CMakeFiles/Fusion2016.dir/main.cpp.o +Fusion2016: CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o +Fusion2016: CMakeFiles/Fusion2016.dir/build.make +Fusion2016: CMakeFiles/Fusion2016.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking CXX executable Fusion2016" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/Fusion2016.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/Fusion2016.dir/build: Fusion2016 +.PHONY : CMakeFiles/Fusion2016.dir/build + +CMakeFiles/Fusion2016.dir/requires: CMakeFiles/Fusion2016.dir/main.cpp.o.requires +CMakeFiles/Fusion2016.dir/requires: CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o.requires +.PHONY : CMakeFiles/Fusion2016.dir/requires + +CMakeFiles/Fusion2016.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/Fusion2016.dir/cmake_clean.cmake +.PHONY : CMakeFiles/Fusion2016.dir/clean + +CMakeFiles/Fusion2016.dir/depend: + cd /home/toni/Documents/programme/localization/Fusion2016/code-build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/toni/Documents/programme/localization/Fusion2016/code /home/toni/Documents/programme/localization/Fusion2016/code /home/toni/Documents/programme/localization/Fusion2016/code-build /home/toni/Documents/programme/localization/Fusion2016/code-build /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/Fusion2016.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/Fusion2016.dir/depend + diff --git a/code-build/CMakeFiles/Fusion2016.dir/cmake_clean.cmake b/code-build/CMakeFiles/Fusion2016.dir/cmake_clean.cmake new file mode 100644 index 0000000..37e2250 --- /dev/null +++ b/code-build/CMakeFiles/Fusion2016.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "CMakeFiles/Fusion2016.dir/main.cpp.o" + "CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o" + "Fusion2016.pdb" + "Fusion2016" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/Fusion2016.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/code-build/CMakeFiles/Fusion2016.dir/depend.internal b/code-build/CMakeFiles/Fusion2016.dir/depend.internal new file mode 100644 index 0000000..afb92d6 --- /dev/null +++ b/code-build/CMakeFiles/Fusion2016.dir/depend.internal @@ -0,0 +1,157 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.0 + +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o + /home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp + /home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.h +CMakeFiles/Fusion2016.dir/main.cpp.o + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Defines.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Exception.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Floor.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/FloorplanFactorySVG.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/PlatformStair.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stair.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stairs.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Angle.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/BBox2.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/BBox3.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Length.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Line2.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point2.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point3.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Units.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNeighborIterator.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNode.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNodeBBox.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridPoint.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/factory/GridFactory.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/factory/GridImportance.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkLightAtTheEndOfTheTunnel.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkPathControl.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkPushForward.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkRandomHeadingUpdate.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkRandomHeadingUpdateAdv.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkShortestPathControl.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkSimpleControl.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/lib/nanoflann/nanoflann.hpp + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Distributions.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/DrawList.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Interpolator.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MiniMat2.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MovingAVG.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MovingMedian.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Exponential.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Logistic.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Normal.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Uniform.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Debug.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNN.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNNArray.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Time.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraPath.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraStructs.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/Assertions.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/fs/File.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/geo/Line.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/geo/Point.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/Color.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGComposite.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElement.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElementType.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGFile.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGLayer.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGLoader.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGPath.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGText.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/inc/tinyxml/tinyxml2.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/distribution/Normal.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/distribution/Uniform.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleAssertions.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilter.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterEvaluation.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterInitializer.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterTransition.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimation.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimationOrderedWeightedAverage.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimationRegionalWeightedAverage.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimationWeightedAverage.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResampling.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResamplingPercent.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResamplingSimple.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/optimization/NumOptVector.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/statistics/Statistics.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/Gnuplot.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotDrawable.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlot.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElement.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementColorPoints.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementLines.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementRaw.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSize.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplot.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElement.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementColorPoints.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementLines.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementPoints.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementRaw.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotStructs.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrColor.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrCustom.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrTitle.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/os/Process.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/os/Time.h + /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/string/String.h + /home/toni/Documents/programme/localization/Fusion2016/code/DijkstraMapper.h + /home/toni/Documents/programme/localization/Fusion2016/code/Helper.h + /home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h + /home/toni/Documents/programme/localization/Fusion2016/code/OldGroundTruth.h + /home/toni/Documents/programme/localization/Fusion2016/code/Settings.h + /home/toni/Documents/programme/localization/Fusion2016/code/Vis.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/DebugShortestPath.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/Eval.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/Eval1.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/EvalBase.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/GroundTruthWay.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot2D.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisDijkstra.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisGrid.h + /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisImportance.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconEvaluation.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconObservation.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconSensorReader.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/MACAddress.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/OrientationObservation.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/OrientationSensorReader.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/PositionedBeacon.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/PositionedWiFiAP.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiAP.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiEvaluation.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiObservation.h + /home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiSensorReader.h + /home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepEvaluation.h + /home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepObservation.h + /home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnEvaluation.h + /home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnObservation.h + /home/toni/Documents/programme/localization/Fusion2016/code/main.cpp + /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyControl.h + /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyEvaluation.h + /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyInitializer.h + /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyObservation.h + /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h + /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyTransition.h + /home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReader.h + /home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReaderStep.h + /home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReaderTurn.h + /home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerEvaluation.h + /home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerObservation.h + /home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerSensorReader.h + /home/toni/Documents/programme/localization/Fusion2016/code/toni/barometric.h diff --git a/code-build/CMakeFiles/Fusion2016.dir/depend.make b/code-build/CMakeFiles/Fusion2016.dir/depend.make new file mode 100644 index 0000000..68cefd5 --- /dev/null +++ b/code-build/CMakeFiles/Fusion2016.dir/depend.make @@ -0,0 +1,157 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.0 + +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o: /home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp +CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o: /home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.h + +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Assertions.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Defines.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/Exception.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Floor.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/FloorplanFactorySVG.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/PlatformStair.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stair.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/floorplan/Stairs.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Angle.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/BBox2.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/BBox3.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Heading.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Length.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Line2.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point2.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Point3.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/geo/Units.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/Grid.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNeighborIterator.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNode.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridNodeBBox.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/GridPoint.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/factory/GridFactory.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/factory/GridImportance.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalk.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkHelper.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkLightAtTheEndOfTheTunnel.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkPathControl.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkPushForward.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkRandomHeadingUpdate.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkRandomHeadingUpdateAdv.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkShortestPathControl.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkSimpleControl.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/grid/walk/GridWalkState.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/lib/nanoflann/nanoflann.hpp +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Distributions.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/DrawList.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/Interpolator.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MiniMat2.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MovingAVG.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/MovingMedian.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Exponential.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Logistic.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Normal.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/math/distribution/Uniform.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Debug.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNN.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/KNNArray.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/misc/Time.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/Dijkstra.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraPath.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../Indoor/nav/dijkstra/DijkstraStructs.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/Assertions.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/fs/File.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/geo/Line.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/geo/Point.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/Color.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGComposite.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElement.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGElementType.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGFile.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGLayer.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGLoader.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGPath.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/gfx/svg/SVGText.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/inc/tinyxml/tinyxml2.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/distribution/Normal.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/distribution/Uniform.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/Particle.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleAssertions.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilter.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterEvaluation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterInitializer.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/ParticleFilterTransition.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimationOrderedWeightedAverage.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimationRegionalWeightedAverage.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/estimation/ParticleFilterEstimationWeightedAverage.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResampling.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResamplingPercent.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/filter/particles/resampling/ParticleFilterResamplingSimple.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/optimization/NumOptVector.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/math/statistics/Statistics.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/Gnuplot.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotDrawable.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlot.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElement.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementColorPoints.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementLines.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotPlotElementRaw.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSize.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplot.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElement.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementColorPoints.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementLines.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementPoints.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotSplotElementRaw.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/GnuplotStructs.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrColor.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrCustom.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/misc/gnuplot/attributes/GnuplotAttrTitle.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/os/Process.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/os/Time.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/../../KLib/string/String.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/DijkstraMapper.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/Helper.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/MyGridNode.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/OldGroundTruth.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/Settings.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/Vis.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/DebugShortestPath.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/Eval.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/Eval1.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/EvalBase.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/GroundTruthWay.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperPlot2D.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisDijkstra.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisGrid.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/eval/PaperVisImportance.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconEvaluation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconObservation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/BeaconSensorReader.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/MACAddress.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/OrientationObservation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/OrientationSensorReader.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/PositionedBeacon.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/PositionedWiFiAP.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiAP.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiEvaluation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiObservation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/frank/WiFiSensorReader.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepEvaluation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/lukas/StepObservation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnEvaluation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/lukas/TurnObservation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/main.cpp +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyControl.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyEvaluation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyInitializer.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyObservation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyState.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/particles/MyTransition.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReader.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReaderStep.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/reader/SensorReaderTurn.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerEvaluation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerObservation.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/toni/BarometerSensorReader.h +CMakeFiles/Fusion2016.dir/main.cpp.o: /home/toni/Documents/programme/localization/Fusion2016/code/toni/barometric.h + diff --git a/code-build/CMakeFiles/Fusion2016.dir/flags.make b/code-build/CMakeFiles/Fusion2016.dir/flags.make new file mode 100644 index 0000000..539ea45 --- /dev/null +++ b/code-build/CMakeFiles/Fusion2016.dir/flags.make @@ -0,0 +1,8 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.0 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -I/home/toni/Documents/programme/localization/Fusion2016/code/../.. -std=gnu++11 -Wall -Werror=return-type -Wextra -Wpedantic -fstack-protector-all -g -O0 + +CXX_DEFINES = -DWITH_ASSERTIONS -DWITH_TESTS + diff --git a/code-build/CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o b/code-build/CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o new file mode 100644 index 0000000..bd4c9f2 Binary files /dev/null and b/code-build/CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o differ diff --git a/code-build/CMakeFiles/Fusion2016.dir/link.txt b/code-build/CMakeFiles/Fusion2016.dir/link.txt new file mode 100644 index 0000000..dddf175 --- /dev/null +++ b/code-build/CMakeFiles/Fusion2016.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g CMakeFiles/Fusion2016.dir/main.cpp.o CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o -o Fusion2016 -rdynamic -lgtest -lpthread diff --git a/code-build/CMakeFiles/Fusion2016.dir/main.cpp.o b/code-build/CMakeFiles/Fusion2016.dir/main.cpp.o new file mode 100644 index 0000000..9883c28 Binary files /dev/null and b/code-build/CMakeFiles/Fusion2016.dir/main.cpp.o differ diff --git a/code-build/CMakeFiles/Fusion2016.dir/progress.make b/code-build/CMakeFiles/Fusion2016.dir/progress.make new file mode 100644 index 0000000..abadeb0 --- /dev/null +++ b/code-build/CMakeFiles/Fusion2016.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/code-build/CMakeFiles/Makefile.cmake b/code-build/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..b16bbeb --- /dev/null +++ b/code-build/CMakeFiles/Makefile.cmake @@ -0,0 +1,45 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.0 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "CMakeFiles/3.0.2/CMakeCCompiler.cmake" + "CMakeFiles/3.0.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.0.2/CMakeSystem.cmake" + "/home/toni/Documents/programme/localization/Fusion2016/code/CMakeLists.txt" + "/usr/share/cmake/Modules/CMakeCInformation.cmake" + "/usr/share/cmake/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/usr/share/cmake/Modules/CMakeFindCodeBlocks.cmake" + "/usr/share/cmake/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake/Modules/Compiler/GNU-C.cmake" + "/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake/Modules/Compiler/GNU.cmake" + "/usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake" + "/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake/Modules/Platform/Linux.cmake" + "/usr/share/cmake/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/Fusion2016.dir/DependInfo.cmake" + ) diff --git a/code-build/CMakeFiles/Makefile2 b/code-build/CMakeFiles/Makefile2 new file mode 100644 index 0000000..0e8003c --- /dev/null +++ b/code-build/CMakeFiles/Makefile2 @@ -0,0 +1,99 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.0 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# The main recursive all target +all: +.PHONY : all + +# The main recursive preinstall target +preinstall: +.PHONY : preinstall + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/toni/Documents/programme/localization/Fusion2016/code + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/toni/Documents/programme/localization/Fusion2016/code-build + +#============================================================================= +# Target rules for target CMakeFiles/Fusion2016.dir + +# All Build rule for target. +CMakeFiles/Fusion2016.dir/all: + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/depend + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/build + $(CMAKE_COMMAND) -E cmake_progress_report /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles 1 2 + @echo "Built target Fusion2016" +.PHONY : CMakeFiles/Fusion2016.dir/all + +# Include target in all. +all: CMakeFiles/Fusion2016.dir/all +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/Fusion2016.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/Fusion2016.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles 0 +.PHONY : CMakeFiles/Fusion2016.dir/rule + +# Convenience name for target. +Fusion2016: CMakeFiles/Fusion2016.dir/rule +.PHONY : Fusion2016 + +# clean rule for target. +CMakeFiles/Fusion2016.dir/clean: + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/clean +.PHONY : CMakeFiles/Fusion2016.dir/clean + +# clean rule for target. +clean: CMakeFiles/Fusion2016.dir/clean +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/code-build/CMakeFiles/TargetDirectories.txt b/code-build/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..e30e1a7 --- /dev/null +++ b/code-build/CMakeFiles/TargetDirectories.txt @@ -0,0 +1 @@ +/home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/Fusion2016.dir diff --git a/code-build/CMakeFiles/cmake.check_cache b/code-build/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/code-build/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/code-build/CMakeFiles/progress.marks b/code-build/CMakeFiles/progress.marks new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/code-build/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/code-build/Fusion2016 b/code-build/Fusion2016 new file mode 100755 index 0000000..e92ce70 Binary files /dev/null and b/code-build/Fusion2016 differ diff --git a/code-build/Fusion2016.cbp b/code-build/Fusion2016.cbp new file mode 100644 index 0000000..9008e10 --- /dev/null +++ b/code-build/Fusion2016.cbp @@ -0,0 +1,205 @@ + + + + + + diff --git a/code-build/Makefile b/code-build/Makefile new file mode 100644 index 0000000..778f715 --- /dev/null +++ b/code-build/Makefile @@ -0,0 +1,194 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.0 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: +.PHONY : .NOTPARALLEL + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/toni/Documents/programme/localization/Fusion2016/code + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/toni/Documents/programme/localization/Fusion2016/code-build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/toni/Documents/programme/localization/Fusion2016/code-build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named Fusion2016 + +# Build rule for target. +Fusion2016: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 Fusion2016 +.PHONY : Fusion2016 + +# fast build rule for target. +Fusion2016/fast: + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/build +.PHONY : Fusion2016/fast + +home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.o: home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o +.PHONY : home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.o + +# target to build an object file +home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o: + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o +.PHONY : home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.o + +home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.i: home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.i +.PHONY : home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.i + +# target to preprocess a source file +home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.i: + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.i +.PHONY : home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.i + +home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.s: home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.s +.PHONY : home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.s + +# target to generate assembly for a file +home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.s: + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.s +.PHONY : home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.cpp.s + +main.o: main.cpp.o +.PHONY : main.o + +# target to build an object file +main.cpp.o: + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/main.cpp.o +.PHONY : main.cpp.o + +main.i: main.cpp.i +.PHONY : main.i + +# target to preprocess a source file +main.cpp.i: + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/main.cpp.i +.PHONY : main.cpp.i + +main.s: main.cpp.s +.PHONY : main.s + +# target to generate assembly for a file +main.cpp.s: + $(MAKE) -f CMakeFiles/Fusion2016.dir/build.make CMakeFiles/Fusion2016.dir/main.cpp.s +.PHONY : main.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... Fusion2016" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.o" + @echo "... home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.i" + @echo "... home/toni/Documents/programme/localization/KLib/inc/tinyxml/tinyxml2.s" + @echo "... main.o" + @echo "... main.i" + @echo "... main.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/code-build/cmake_install.cmake b/code-build/cmake_install.cmake new file mode 100644 index 0000000..be5f213 --- /dev/null +++ b/code-build/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /home/toni/Documents/programme/localization/Fusion2016/code + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +file(WRITE "/home/toni/Documents/programme/localization/Fusion2016/code-build/${CMAKE_INSTALL_MANIFEST}" "") +foreach(file ${CMAKE_INSTALL_MANIFEST_FILES}) + file(APPEND "/home/toni/Documents/programme/localization/Fusion2016/code-build/${CMAKE_INSTALL_MANIFEST}" "${file}\n") +endforeach() diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt new file mode 100755 index 0000000..9914982 --- /dev/null +++ b/code/CMakeLists.txt @@ -0,0 +1,90 @@ +# Usage: +# Create build folder, like RC-build next to RobotControl and WifiScan folder +# CD into build folder and execute 'cmake -DCMAKE_BUILD_TYPE=Debug ../RobotControl' +# make + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +# select build type +SET( CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" ) + +PROJECT(Fusion2016) + +IF(NOT CMAKE_BUILD_TYPE) + MESSAGE(STATUS "No build type selected. Default to Debug") + SET(CMAKE_BUILD_TYPE "Debug") +ENDIF() + + + +INCLUDE_DIRECTORIES( + ../../ +) + + +FILE(GLOB HEADERS + ./*.h + ./*/*.h + ./*/*/*.h + ./*/*/*/*.h + ./*/*/*/*/*.h + ./*/*/*/*/*/*.h +) + +FILE(GLOB SOURCES + ./*.cpp + ./*/*.cpp + ./*/*/*.cpp + ./*/*/*/*.cpp + ../../KLib/inc/tinyxml/*.cpp +) + + +if(${CMAKE_GENERATOR} MATCHES "Visual Studio") + + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /D_X86_ /D_USE_MATH_DEFINES") + SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi /Oi /GL /Ot /Ox /D_X86_ /D_USE_MATH_DEFINES") + SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG") + SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG /INCREMENTAL:NO") + + set(CMAKE_CONFIGURATION_TYPES Release Debug) + +else() + +# system specific compiler flags +ADD_DEFINITIONS( + + -std=gnu++11 + + -Wall + -Werror=return-type + -Wextra + -Wpedantic + + -fstack-protector-all + + -g + -O0 + -DWITH_TESTS + -DWITH_ASSERTIONS + +) + +endif() + +# build a binary file +ADD_EXECUTABLE( + ${PROJECT_NAME} + ${HEADERS} + ${SOURCES} +) + +# needed external libraries +TARGET_LINK_LIBRARIES( + ${PROJECT_NAME} + gtest + pthread +) + +SET(CMAKE_C_COMPILER ${CMAKE_CXX_COMPILER}) + diff --git a/code/CMakeLists.txt.user b/code/CMakeLists.txt.user new file mode 100644 index 0000000..954ae82 --- /dev/null +++ b/code/CMakeLists.txt.user @@ -0,0 +1,190 @@ + + + + + + EnvironmentId + {019cc681-80c8-4d51-8bae-40a1fa38def1} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + true + false + 0 + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + {30c8d991-8fa7-4988-88f5-4b7190981f4a} + 0 + 0 + 0 + + false + /home/toni/Documents/programme/localization/Fusion2016/code-build + + + + + false + + true + Make + + CMakeProjectManager.MakeStep + + 1 + Build + + ProjectExplorer.BuildSteps.Build + + + + clean + + true + + true + Make + + CMakeProjectManager.MakeStep + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + all + + CMakeProjectManager.CMakeBuildConfiguration + + 1 + + + 0 + Deploy + + ProjectExplorer.BuildSteps.Deploy + + 1 + Deploy locally + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + + false + false + false + false + true + 0.01 + 10 + true + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + Fusion2016 + + false + + 2 + + Fusion2016 + + CMakeProjectManager.CMakeRunConfiguration.Fusion2016 + 3768 + false + true + false + false + true + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 18 + + + Version + 18 + + diff --git a/code/DijkstraMapper.h b/code/DijkstraMapper.h new file mode 100644 index 0000000..6679cd9 --- /dev/null +++ b/code/DijkstraMapper.h @@ -0,0 +1,51 @@ +#ifndef DIJKSTRAMAPPER_H +#define DIJKSTRAMAPPER_H + +#include "MyGridNode.h" + +/** + * allows BETTER dijkstra calculation on top of our data-structure + */ +class DijkstraMapper { + + Grid& grid; + +public: + + DijkstraMapper(Grid& grid) : grid(grid) {;} + + int getNumNeighbors(const MyGridNode& node) const {return node.getNumNeighbors();} + + const MyGridNode* getNeighbor(const MyGridNode& node, const int idx) const {return &grid.getNeighbor(node, idx);} + + float getWeightBetween(const MyGridNode& n1, const MyGridNode& n2) const { + float d = ((Point3)n1 - (Point3)n2).length(2) ; + //if (d > 20) {d*= 1.30;} + d /= std::pow(n2.imp, 3); + return d; + } + +}; + +/** + * allows NORMAL dijkstra calculation on top of our data-structure + */ +class DijkstraMapperNormal { + + Grid& grid; + +public: + + DijkstraMapperNormal(Grid& grid) : grid(grid) {;} + + int getNumNeighbors(const MyGridNode& node) const {return node.getNumNeighbors();} + + const MyGridNode* getNeighbor(const MyGridNode& node, const int idx) const {return &grid.getNeighbor(node, idx);} + + float getWeightBetween(const MyGridNode& n1, const MyGridNode& n2) const { + return ((Point3)n1 - (Point3)n2).length(); + } + +}; + +#endif // DIJKSTRAMAPPER_H diff --git a/code/Helper.h b/code/Helper.h new file mode 100644 index 0000000..dcbffd1 --- /dev/null +++ b/code/Helper.h @@ -0,0 +1,167 @@ +#ifndef HELPER_H +#define HELPER_H + +#include +#include +#include + +#include + +#include "Settings.h" +#include "MyGridNode.h" +#include "OldGroundTruth.h" + +class Helper { + +private: + + + +public: + + /** convert height (in cm) to floor-numbers */ + static int getFloorNr(float z_cm) { +// if (z_cm < 360) {return 0;} +// if (z_cm < 360+340) {return 1;} +// if (z_cm < 360+340+340) {return 2;} +// return 3; + if (z_cm < 380) {return 0;} + if (z_cm < 380+340) {return 1;} + if (z_cm < 380+340+340) {return 2;} + return 3; + } + + /** convert height (in cm) to floor-numbers */ + static int getFloorNrFloat(const float z_cm) { + return z_cm / 350.0f; + } + + static int getHeight(const int floorNr) { + switch(floorNr) { + case 0: return 0; + case 1: return 380; + case 2: return 380+340; + case 3: return 380+340+340; + default: throw "error"; + } + } + + /** align the given value onto the grid */ + static int align(const int val) { + return val / MiscSettings::gridSize_cm * MiscSettings::gridSize_cm; + } + + /** all floors within the building */ + struct FHWSFloors { + + Floor f0, f1, f2, f3; + + Stairs s01, s12, s23; + + const LengthF h0 = LengthF::cm(align(getHeight(0))); + const LengthF h1 = LengthF::cm(align(getHeight(1))); + const LengthF h2 = LengthF::cm(align(getHeight(2))); + const LengthF h3 = LengthF::cm(align(getHeight(3))); + + // all ground-truth points + std::unordered_map gtwp; + + FHWSFloors() {;} + + }; + + /** load the entire floorplan */ + static FHWSFloors getFloors() { + + FloorplanFactorySVG fpFac(MiscSettings::floorplan, 2.822222); + FHWSFloors f; + + f.f0 = fpFac.getFloor("floor_0"); + f.f1 = fpFac.getFloor("floor_1"); + f.f2 = fpFac.getFloor("floor_2"); + f.f3 = fpFac.getFloor("floor_3"); + + f.s01 = fpFac.getStairs("staircase_0_1"); + f.s12 = fpFac.getStairs("staircase_1_2"); + f.s23 = fpFac.getStairs("staircase_2_3"); + + OldGroundTruth gtwp0(MiscSettings::floorplan, "ground_truth_0", 2.822222); + OldGroundTruth gtwp05(MiscSettings::floorplan, "ground_truth_0_5", 2.822222); + OldGroundTruth gtwp1(MiscSettings::floorplan, "ground_truth_1", 2.822222); + OldGroundTruth gtwp15(MiscSettings::floorplan, "ground_truth_1_5", 2.822222); + OldGroundTruth gtwp2(MiscSettings::floorplan, "ground_truth_2", 2.822222); + OldGroundTruth gtwp25(MiscSettings::floorplan, "ground_truth_2_5", 2.822222); + OldGroundTruth gtwp3(MiscSettings::floorplan, "ground_truth_3", 2.822222); + + for (auto it : gtwp0.getWaypoints()) { if (f.gtwp.find(it.first) != f.gtwp.end()) {throw 1;} f.gtwp[it.first] = Point3(it.second.x, it.second.y, getHeight(0));} + for (auto it : gtwp1.getWaypoints()) { if (f.gtwp.find(it.first) != f.gtwp.end()) {throw 1;} f.gtwp[it.first] = Point3(it.second.x, it.second.y, getHeight(1));} + for (auto it : gtwp2.getWaypoints()) { if (f.gtwp.find(it.first) != f.gtwp.end()) {throw 1;} f.gtwp[it.first] = Point3(it.second.x, it.second.y, getHeight(2));} + for (auto it : gtwp3.getWaypoints()) { if (f.gtwp.find(it.first) != f.gtwp.end()) {throw 1;} f.gtwp[it.first] = Point3(it.second.x, it.second.y, getHeight(3));} + + for (auto it : gtwp05.getWaypoints()) { if (f.gtwp.find(it.first) != f.gtwp.end()) {throw 1;} f.gtwp[it.first] = Point3(it.second.x, it.second.y, (getHeight(0)+getHeight(1))/2);} + for (auto it : gtwp15.getWaypoints()) { if (f.gtwp.find(it.first) != f.gtwp.end()) {throw 1;} f.gtwp[it.first] = Point3(it.second.x, it.second.y, (getHeight(1)+getHeight(2))/2);} + for (auto it : gtwp25.getWaypoints()) { if (f.gtwp.find(it.first) != f.gtwp.end()) {throw 1;} f.gtwp[it.first] = Point3(it.second.x, it.second.y, (getHeight(2)+getHeight(3))/2);} + + return f; + + } + + template static void buildTheGrid(Grid& grid, FHWSFloors floors) { + + GridFactory gridFac(grid); + + gridFac.addFloor(floors.f0, floors.h0.cm()); + gridFac.addFloor(floors.f1, floors.h1.cm()); + gridFac.addFloor(floors.f2, floors.h2.cm()); + gridFac.addFloor(floors.f3, floors.h3.cm()); + + gridFac.addStairs(floors.s01, floors.h0.cm(), floors.h1.cm()); + gridFac.addStairs(floors.s12, floors.h1.cm(), floors.h2.cm()); + gridFac.addStairs(floors.s23, floors.h2.cm(), floors.h3.cm()); + + PlatformStair psUpperLeft; + psUpperLeft.platform = BBox2(Point2(1560, 4778), Point2(1730, 5128)); + psUpperLeft.s1 = Stair(Line2( 1278,4790+160, 1278,4790+160+140 ), Point2(+280,0)); + psUpperLeft.s2 = Stair(Line2( 1278,4790+000, 1278,4790+140 ), Point2(+280,0)); + gridFac.buildPlatformStair(psUpperLeft, floors.h0.cm(), floors.h1.cm()); + gridFac.buildPlatformStair(psUpperLeft, floors.h1.cm(), floors.h2.cm()); + gridFac.buildPlatformStair(psUpperLeft, floors.h2.cm(), floors.h3.cm()); +// vis.gp << "set xrange [1100:1800]\n"; +// vis.gp << "set yrange [4500:5200]\n"; + + PlatformStair psUpperRight; + psUpperRight.platform = BBox2(Point2(6290, 4778), Point2(6500, 5098)); + psUpperRight.s1 = Stair(Line2( 6758,4790+160, 6758,4790+160+140 ), Point2(-280,0)); + psUpperRight.s2 = Stair(Line2( 6758,4790+000, 6758,4790+140 ), Point2(-280,0)); + gridFac.buildPlatformStair(psUpperRight, floors.h0.cm(), floors.h1.cm()); + gridFac.buildPlatformStair(psUpperRight, floors.h1.cm(), floors.h2.cm()); + gridFac.buildPlatformStair(psUpperRight, floors.h2.cm(), floors.h3.cm()); + // vis.gp << "set xrange [6100:6900]\n"; + // vis.gp << "set yrange [4500:5200]\n"; + + PlatformStair psLowerLeft; + psLowerLeft.platform = BBox2(Point2(1510, 658), Point2(1820, 900)); + psLowerLeft.s1 = Stair(Line2( 1510+000,1148, 1510+140,1148 ), Point2(0,-280)); + psLowerLeft.s2 = Stair(Line2( 1510+170,1148, 1510+300,1148 ), Point2(0,-280)); + gridFac.buildPlatformStair(psLowerLeft, floors.h0.cm(), floors.h1.cm()); + gridFac.buildPlatformStair(psLowerLeft, floors.h1.cm(), floors.h2.cm()); + gridFac.buildPlatformStair(psLowerLeft, floors.h2.cm(), floors.h3.cm()); + // vis.gp << "set xrange [1300:2100]\n"; + // vis.gp << "set yrange [400:1400]\n"; + + // remove all isolated nodes not attached to 300,300,floor0 + gridFac.removeIsolated( (MyGridNode&)grid.getNodeFor(GridPoint(300,300,floors.h0.cm())) ); + + // stamp importance information onto the grid-nodes + GridImportance gridImp; + gridImp.addImportance(grid, floors.h0.cm()); + gridImp.addImportance(grid, floors.h1.cm()); + gridImp.addImportance(grid, floors.h2.cm()); + gridImp.addImportance(grid, floors.h3.cm()); + + + } + +}; + +#endif // HELPER_H diff --git a/code/MyGridNode.h b/code/MyGridNode.h new file mode 100644 index 0000000..db61cc2 --- /dev/null +++ b/code/MyGridNode.h @@ -0,0 +1,29 @@ +#ifndef MYGRIDNODE_H +#define MYGRIDNODE_H + +#include +#include + +/** + * the nodes we add to our grid + */ +struct MyGridNode : public GridNode, public GridPoint { + + /** distance to the desired target */ + float distToTarget = 1.0; + + /** node importance based on surroundings */ + float imp = 1.0; + + /** used for eval */ + int cnt = 0; + +public: + + /** needed ctor */ + MyGridNode(const float x_cm, const float y_cm, const float z_cm) : GridPoint(x_cm, y_cm, z_cm) {;} + +}; + + +#endif // MYGRIDNODE_H diff --git a/code/OldGroundTruth.h b/code/OldGroundTruth.h new file mode 100644 index 0000000..c3a4f91 --- /dev/null +++ b/code/OldGroundTruth.h @@ -0,0 +1,138 @@ +#ifndef OLDGROUNDTRUTH_H +#define OLDGROUNDTRUTH_H + +#include +#include +#include +#include + +/** + * TODO: REMOVE + */ +class OldGroundTruth { + + /** + * helper class for SVG floorplans. + * + * converts between the SVG's scale and real-world scale + */ + class SVGScaler { + + private: + + /** the scaling factor to apply to the svg data */ + double scalingFactor; + + public: + + /** ctor */ + SVGScaler(const double scalingFactor) : scalingFactor(scalingFactor) { + ; + } + + /** scale (x, y) into (_x, _y) */ + void scale(const double x, const double y, float& _x, float& _y) const { + _x = x * scalingFactor; + _y = y * scalingFactor; + } + + /** scale the given point into a new output point */ + Point2 scale(const K::Point p) const { + Point2 ret; + scale (p.x, p.y, ret.x, ret.y); + return ret; + } + + /** scale the given line into a new output line */ + Line2 scale(const K::Line l) const { + Line2 ret; + scale (l.p1.x, l.p1.y, ret.p1.x, ret.p1.y); + scale (l.p2.x, l.p2.y, ret.p2.x, ret.p2.y); + return ret; + } + + }; + +private: + + /** helper to scale the SVG into real-world-scale */ + SVGScaler scaler; + + /** all ground-truth waypoints within the floorplan */ + std::unordered_map points; + +public: + + OldGroundTruth() :scaler(0) {;} + + /** + * ctor + * @param file the svg's filename + * @param layerName the name of the layer (within the SVG) to load + * @param scalingFactor the scaling to apply to convert between SVG and real-world scale + */ + OldGroundTruth(const std::string& file, const std::string& layerName, const double scalingFactor) : scaler(scalingFactor) { + + K::SVGFile svg; + K::SVGLoader::load(K::File(file), &svg); + K::SVGComposite* sc = svg.getLayers(); + + K::SVGLayer* layer = sc->getContainedLayerNamed(layerName); + if (!layer) {throw "svg has no layer named '" + layerName + "'";} + load(layer); + + } + + /** get all waypoints */ + const std::unordered_map& getWaypoints() const { + return points; + } + + +private: + + + + /** recursive loading/parsing of nested SVG elements */ + void load(K::SVGElement* el) { + + switch (el->getType()) { + + case SVGElementType::COMPOSITE: { + for (K::SVGElement* sub : ((K::SVGComposite*)el)->getChilds()) { + load(sub); + } + break; + } + + case SVGElementType::LAYER: { + K::SVGLayer* layer = (K::SVGLayer*) el; + for (K::SVGElement* sub : layer->getChilds()) { + load(sub); + } + break; + } + + case SVGElementType::TEXT: { + const K::SVGText* text = (K::SVGText*) el; + if (text->getText().empty()) {break;} + const int id = std::stoi(text->getText()); + points[id] = scaler.scale(K::Point(text->getPosition().x, text->getPosition().y)); + break; + } + + case SVGElementType::PATH: { + break; + } + + default: + throw "should not happen!"; + + } + + } + + +}; + +#endif // OLDGROUNDTRUTH_H diff --git a/code/README.txt b/code/README.txt new file mode 100644 index 0000000..1c13966 --- /dev/null +++ b/code/README.txt @@ -0,0 +1,7 @@ +indoor Framework (https://git.frank-ebner.de/kazu/Indoor.git) must be relative to the "Fusion2016" folder: +/path/xyz/Fusion2016/code +/path/xyz/Indoor + +KLib (https://github.com/k-a-z-u/KLib.git) must be relative to the "Fusion2016" folder: +/path/xyz/Fusion2016/code +/path/xyz/KLib diff --git a/code/Settings.h b/code/Settings.h new file mode 100644 index 0000000..3c074b5 --- /dev/null +++ b/code/Settings.h @@ -0,0 +1,27 @@ +#ifndef OTHER_SETTINGS_H +#define OTHER_SETTINGS_H + +#define USE_STATIC_CIRCULAR_BUFFERING false +#define USE_BAROMETER_SMOOTHING_RC_LOWPASS false +#define USE_BAROMETER_SMOOTHING_HEAD_TAIL false +#define USE_BAROMETRIC_FORMULAR false + +#include + +namespace MiscSettings { + + const std::string floorplan = "/mnt/data/workspaces/Fusion2016/code/plan_new.svg"; + const std::string floorplanPlot = "/mnt/data/workspaces/Fusion2016/code/plan_plots.svg"; + + const int gridSize_cm = 20; + + const int timeSteps = 500; + + const int numParticles = 7500; + +} + + +#endif // OTHER_SETTINGS_H + + diff --git a/code/Vis.h b/code/Vis.h new file mode 100644 index 0000000..3c63d08 --- /dev/null +++ b/code/Vis.h @@ -0,0 +1,181 @@ +#ifndef VIS_H +#define VIS_H + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "eval/GroundTruthWay.h" + + +class Vis { + +public: + + K::Gnuplot gp; + K::GnuplotSplot splot; + K::GnuplotSplotElementLines floors; + K::GnuplotSplotElementColorPoints gridNodes; + K::GnuplotSplotElementLines gridEdges; + K::GnuplotSplotElementPoints particles; + K::GnuplotSplotElementLines particleDir; + + K::GnuplotSplotElementLines estPath; + K::GnuplotSplotElementLines groundTruth; + +public: + + Vis() { + + gp << "set hidden3d front\n"; + //gp << "set view equal xy\n"; + gp << "set ticslevel 0\n"; + gp << "set cbrange[0.8:2.0]\n"; + + gp << "unset xtics\n"; + gp << "unset ytics\n"; + gp << "unset ztics\n"; + gp << "unset border\n"; + + groundTruth.setLineWidth(2); + groundTruth.setColorHex("#666666"); + + particles.setColorHex("#0000ff"); + particles.setPointSize(0.3); + particleDir.setColorHex("#444444"); + + estPath.setLineWidth(2); + + // attach all layers + splot.add(&floors); + splot.add(&gridNodes); + splot.add(&gridEdges); + splot.add(&particleDir); + splot.add(&particles); + splot.add(&groundTruth); + splot.add(&estPath); + + } + + /** add all obstacles of the given floor to the provided height */ + Vis& addFloor(const Floor& f, const LengthF height) { + + // add each wall + for (const Line2& l : f.getObstacles()) { + const K::GnuplotPoint3 p1(l.p1.x, l.p1.y, height.cm()); + const K::GnuplotPoint3 p2(l.p2.x, l.p2.y, height.cm()); + floors.addSegment(p1, p2); + } + + return *this; + + } + + /** add the grid to the plot */ + template Vis& addGrid(Grid& grid) { + + std::set used; + + float max = 0; + for (const T& n1 : grid) { + if (n1.distToTarget > max) {max = n1.distToTarget;} + } + gp << "set cbrange[0.0:1.0]\n"; + //gp << "set cbrange[0.8:1.3]\n"; + + for (const T& n1 : grid) { + const K::GnuplotPoint3 p1(n1.x_cm, n1.y_cm, n1.z_cm); + //const float color = n1.imp; + //const float color = n1.distToTarget/max; + const float color = 0; + gridNodes.add(p1, color); + for (const T& n2 : grid.neighbors(n1)) { + const uint64_t idx = n1.getIdx() * n2.getIdx(); + if (used.find(idx) == used.end()) { + const K::GnuplotPoint3 p2(n2.x_cm, n2.y_cm, n2.z_cm); + gridEdges.addSegment(p1, p2); + used.insert(idx); + } + } + } + return *this; + } + + void addGroundTruth(GroundTruthWay& gtw) { + groundTruth.clear(); + for (auto it : gtw.getWay()) { + K::GnuplotPoint3 gp(it.value.x, it.value.y, it.value.z); + groundTruth.add(gp); + } + } + + void addEstPath(std::vector& est) { + estPath.clear();; + for (const Point3& p : est) { + K::GnuplotPoint3 gp(p.x, p.y, p.z); + estPath.add(gp); + } + } + + void setTimestamp(uint64_t ts) { + static uint64_t firstTs = ts; + gp << "set label 1 \"" << ((ts-firstTs)/1000.0f) << "\" at screen 0.02,0.98\n"; + } + + void removeGrid() { + gridNodes.clear();; + } + + void clearStates() { + particles.clear(); + particleDir.clear(); + } + + void addObject(const int idx, const Point3& p) { + gp << "set object " << idx << " polygon "; + gp << "from " << p.x << "," << p.y << "," << p.z; + gp << " to " << p.x << "," << p.y << "," << p.z + 200; + gp << " to " << p.x << "," << p.y << "," << p.z; // close + gp << " lw 2 "; + gp << "\n"; + } + + void setEstAndShould(const Point3& est, const Point3& should) { + addObject(2,est); + addObject(3,should); + } + + template void addState(const GridWalkState& n) { + Point2 dir = Angle::getPointer(n.heading.getRAD()); + K::GnuplotPoint3 p1(n.node->x_cm, n.node->y_cm, n.node->z_cm); + K::GnuplotPoint3 p2 = p1 + K::GnuplotPoint3(dir.x, dir.y, 0) * 85; + particles.add(p1); + particleDir.addSegment(p1, p2); + } + + + template Vis& showStates(std::vector>& states) { + particles.clear();; + for (const GridWalkState& n : states) { + particles.add(K::GnuplotPoint3(n.node->x_cm, n.node->y_cm, n.node->z_cm)); + } + return *this; + } + + /** show (plot) the current setup */ + void show() { + gp.draw(splot); + gp.flush(); + } + + +}; + +#endif // VIS_H diff --git a/code/eval/DebugShortestPath.h b/code/eval/DebugShortestPath.h new file mode 100644 index 0000000..121ca58 --- /dev/null +++ b/code/eval/DebugShortestPath.h @@ -0,0 +1,62 @@ +#ifndef DEBUGSHORTESTPATH_H +#define DEBUGSHORTESTPATH_H + +#include + +#include +#include +#include +#include + +#include "../Helper.h" +#include "../Vis.h" + +template class DebugShortestPath : public GridWalkShortestPathControl { + +private: + + Vis vis; + + +public: + + /** ctor */ + template DebugShortestPath(Grid& grid, const Access& acc, const T& target, Helper::FHWSFloors& floors) : GridWalkShortestPathControl(grid, acc, target) { + + vis.particles.setColorHex("#0000ff"); + vis.particles.setPointSize(1.5); + + vis.addFloor(floors.f0, floors.h0); + vis.addFloor(floors.f1, floors.h1); + vis.addFloor(floors.f2, floors.h2); + vis.addFloor(floors.f3, floors.h3); + + } + + GridWalkState getDestination(Grid& grid, const GridWalkState& start, float distance_m, float headChange_rad) { + + GridWalkState s = GridWalkShortestPathControl::getDestination(grid, start, distance_m, headChange_rad); + + if (this->recalc == 0){ + vis.estPath.clear(); + vis.particles.clear(); + vis.particles.add(K::GnuplotPoint3(this->centerOfMass.x, this->centerOfMass.y, this->centerOfMass.z)); + for (int i = 0; i < (int)this->path->size()-1; ++i) { + const DijkstraNode& dn1 = (*this->path)[i+0]; + const DijkstraNode& dn2 = (*this->path)[i+1]; + K::GnuplotPoint3 p1 (dn1.element->x_cm, dn1.element->y_cm, dn1.element->z_cm); + K::GnuplotPoint3 p2 (dn2.element->x_cm, dn2.element->y_cm, dn2.element->z_cm); + vis.estPath.addSegment(p1, p2); + } + vis.show(); + + } + + + return s; + + } + +}; + +#endif // DEBUGSHORTESTPATH_H diff --git a/code/eval/Eval.h b/code/eval/Eval.h new file mode 100644 index 0000000..7704586 --- /dev/null +++ b/code/eval/Eval.h @@ -0,0 +1,73 @@ +#ifndef EVAL_H +#define EVAL_H + +#include "EvalBase.h" +#include "../DijkstraMapper.h" +#include +#include +#include +#include +#include +#include +#include +#include + +class Eval : public EvalBase { + +public: + + + +// Eval() { + + +// pf = new K::ParticleFilter( MiscSettings::numParticles, std::unique_ptr(new MyInitializer(grid, 1120, 150, 3*350, 90)) ); + +// MyGridNode& start = (MyGridNode&)grid.getNodeFor(GridPoint(500,300,floors.h0.cm())); +// MyGridNode& end = (MyGridNode&)grid.getNodeFor(GridPoint(7000,5000,floors.h3.cm())); + +// //GridWalkRandomHeadingUpdate* walk = new GridWalkRandomHeadingUpdate(); +// GridWalkRandomHeadingUpdateAdv* walk = new GridWalkRandomHeadingUpdateAdv(); +// //GridWalkPushForward* walk = new GridWalkPushForward(); +// //GridWalkLightAtTheEndOfTheTunnel* walk = new GridWalkLightAtTheEndOfTheTunnel(grid, DijkstraMapper(grid), end); + +// pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + +// sr = new SensorReader("./measurements/13/Galaxy/Path2/1433588396094.csv"); +// srt = new SensorReaderTurn("./measurements/13/Galaxy/Path2/Turns.txt"); +// srs = new SensorReaderStep("./measurements/13/Galaxy/Path2/Steps2.txt"); + +// gtw = getGroundTruthWay(*sr, floors.gtwp, way2); + +// } + +// //wifi also uniform dist 0/1 fuer bereiche die OK sind? +// //steps hochzaehlen weil mehr als einer in einer transition?? +// //increase regional average region + +// void setEval1() { + + +// runName = "TODO"; + +// // the particle filter's evaluation method +// std::unique_ptr eval = std::unique_ptr( new MyEvaluation() ); +// eval.get()->setUsage(true, false, false, true, true); +// pf->setEvaluation( std::move(eval) ); + +// // resampling step? +// pf->setNEffThreshold(1.0); +// pf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); + +// // state estimation step +// //pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); +// //pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationRegionalWeightedAverage())); +// pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationOrderedWeightedAverage(0.33f))); + +// } + + + +}; + +#endif // EVAL_H diff --git a/code/eval/Eval1.h b/code/eval/Eval1.h new file mode 100644 index 0000000..fe45713 --- /dev/null +++ b/code/eval/Eval1.h @@ -0,0 +1,264 @@ +#ifndef EVAL1_H +#define EVAL1_H + +#include "EvalBase.h" +#include "../DijkstraMapper.h" +#include +#include +#include +#include + +#include +#include +#include +#include "DebugShortestPath.h" + +#include +#include + +#include +#include +#include + +class Eval1 : public EvalBase { + +public: + + Eval1() { + + + pf = new K::ParticleFilter( MiscSettings::numParticles, std::unique_ptr(new MyInitializer(grid, 1120, 150, 3*350, 90)) ); + + + + std::unique_ptr eval = std::unique_ptr( new MyEvaluation() ); + eval.get()->setUsage(true, true, true, true, true); + pf->setEvaluation( std::move(eval) ); + + // resampling step? + pf->setNEffThreshold(1.0); + pf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingSimple()) ); + //pf->setResampling( std::unique_ptr>(new K::ParticleFilterResamplingPercent(0.10)) ); + + // state estimation step + pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationWeightedAverage())); + //pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationRegionalWeightedAverage())); + //pf->setEstimation( std::unique_ptr>(new K::ParticleFilterEstimationOrderedWeightedAverage(0.50f))); + + + // std::vector wp = path2;// std::reverse(wp.begin(), wp.end()); + +// MyGridNode& start = (MyGridNode&)grid.getNodeFor( conv(floors.gtwp[wp.front()]) ); +// MyGridNode& end = (MyGridNode&)grid.getNodeFor( conv(floors.gtwp[wp.back()]) ); + +// //GridWalkRandomHeadingUpdate* walk = new GridWalkRandomHeadingUpdate(); +// //GridWalkRandomHeadingUpdateAdv* walk = new GridWalkRandomHeadingUpdateAdv(); +// //GridWalkPushForward* walk = new GridWalkPushForward(); +// //GridWalkLightAtTheEndOfTheTunnel* walk = new GridWalkLightAtTheEndOfTheTunnel(grid, DijkstraMapper(grid), end); +// //GridWalkSimpleControl* walk = new GridWalkSimpleControl(); +// GridWalkPathControl* walk = new GridWalkPathControl(grid, DijkstraMapper(grid), end); + +// pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + +// // path1 +//// sr = new SensorReader("./measurements/path1/1/1454345312844.csv"); // forward +//// srt = new SensorReaderTurn("./measurements/path1/1/Turns.txt"); +//// srs = new SensorReaderStep("./measurements/path1/1/Steps2.txt"); +//// sr = new SensorReader("./measurements/path1/2/1454345421125.csv"); // backward +//// srt = new SensorReaderTurn("./measurements/path1/2/Turns.txt"); +//// srs = new SensorReaderStep("./measurements/path1/2/Steps2.txt"); + +// // path2 +// sr = new SensorReader("./measurements/path2/1/1454345775306.csv"); // forward +// srt = new SensorReaderTurn("./measurements/path2/1/Turns.txt"); +// srs = new SensorReaderStep("./measurements/path2/1/Steps2.txt"); +// //sr = new SensorReader("./measurements/path2/2/1454346071347.csv"); // backward +// //srt = new SensorReaderTurn("./measurements/path2/2/Turns.txt"); +// //srs = new SensorReaderStep("./measurements/path2/2/Steps2.txt"); + +// // path3 +//// sr = new SensorReader("./measurements/path3/1/1454345546308.csv"); // forward +//// srt = new SensorReaderTurn("./measurements/path3/1/Turns.txt"); +//// srs = new SensorReaderStep("./measurements/path3/1/Steps2.txt"); +//// sr = new SensorReader("./measurements/path3/2/1454345622819.csv"); // backward +//// srt = new SensorReaderTurn("./measurements/path3/2/Turns.txt"); +//// srs = new SensorReaderStep("./measurements/path3/2/Steps2.txt"); + +// // path4 +//// sr = new SensorReader("./measurements/path4/1454595382218.csv"); // forward +//// srt = new SensorReaderTurn("./measurements/path4/Turns.txt"); +//// srs = new SensorReaderStep("./measurements/path4/Steps2.txt"); + + + +// gtw = getGroundTruthWay(*sr, floors.gtwp, wp); + + } + + void setEvalFails() { + + } + + /** + * starting with bad barometer readings. takes some time to move upwards + * will be fixed by using the path + */ + void path2_forward_simple() { + + // forward + runName = "path2_forward_simple"; + + BarometerEvaluation::barometerSigma = 0.16; + sr = new SensorReader("./measurements/path2/1/1454345775306.csv"); + srt = new SensorReaderTurn("./measurements/path2/1/Turns.txt"); + srs = new SensorReaderStep("./measurements/path2/1/Steps2.txt"); + gtw = getGroundTruthWay(*sr, floors.gtwp, path2); + + GridWalkSimpleControl* walk = new GridWalkSimpleControl(); + pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + + } + + void path2_forward_path() { + + // forward + runName = "path2_forward_path"; + + BarometerEvaluation::barometerSigma = 0.16; + sr = new SensorReader("./measurements/path2/1/1454345775306.csv"); + srt = new SensorReaderTurn("./measurements/path2/1/Turns.txt"); + srs = new SensorReaderStep("./measurements/path2/1/Steps2.txt"); + gtw = getGroundTruthWay(*sr, floors.gtwp, path2); + + MyGridNode& end = (MyGridNode&)grid.getNodeFor( conv(floors.gtwp[path2.back()]) ); + GridWalkPathControl* walk = new GridWalkPathControl(grid, DijkstraMapper(grid), end); + pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + + } + + + +// TODO: plot grid-nodes for stairs for the paper (also look at z-transitions. some have NO x/y change even though they should have!) + + + void path3_forward_simple() { + + // forward + runName = "path3_forward_simple"; + + BarometerEvaluation::barometerSigma = 0.16; + sr = new SensorReader("./measurements/path3/1/1454345546308.csv"); // forward + srt = new SensorReaderTurn("./measurements/path3/1/Turns.txt"); + srs = new SensorReaderStep("./measurements/path3/1/Steps2.txt"); + gtw = getGroundTruthWay(*sr, floors.gtwp, path3); + + GridWalkSimpleControl* walk = new GridWalkSimpleControl(); + pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + + } + + void path3_forward_path() { + +// looks like the left stairs here are NOT working as expected?! +// plot them +// look at the probability-draw, maybe there is an issue there + + // forward + runName = "path3_forward_path"; + + BarometerEvaluation::barometerSigma = 0.16; + sr = new SensorReader("./measurements/path3/1/1454345546308.csv"); // forward + srt = new SensorReaderTurn("./measurements/path3/1/Turns.txt"); + srs = new SensorReaderStep("./measurements/path3/1/Steps2.txt"); + gtw = getGroundTruthWay(*sr, floors.gtwp, path3); + + MyGridNode& end = (MyGridNode&)grid.getNodeFor( conv(floors.gtwp[path3.back()]) ); + GridWalkPathControl* walk = new GridWalkPathControl(grid, DijkstraMapper(grid), end); + pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + + } + + void path4_nexus_simple() { + + runName = "path4_nexus_simple"; + + BarometerEvaluation::barometerSigma = 0.16; + sr = new SensorReader("./measurements/path4/nexus/1454695040555.csv"); // forward + srt = new SensorReaderTurn("./measurements/path4/nexus/Turns.txt"); + srs = new SensorReaderStep("./measurements/path4/nexus/Steps2.txt"); + gtw = getGroundTruthWay(*sr, floors.gtwp, path4dbl); + + // remove importance + for (auto& n : grid) {n.imp = 1;} + + GridWalkSimpleControl* walk = new GridWalkSimpleControl(); + pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + + } + + void path4_nexus_imp() { + + runName = "path4_nexus_importance"; + + BarometerEvaluation::barometerSigma = 0.05; + sr = new SensorReader("./measurements/path4/nexus/1454695040555.csv"); // forward + srt = new SensorReaderTurn("./measurements/path4/nexus/Turns.txt"); + srs = new SensorReaderStep("./measurements/path4/nexus/Steps2.txt"); + gtw = getGroundTruthWay(*sr, floors.gtwp, path4dbl); + + GridWalkSimpleControl* walk = new GridWalkSimpleControl(); + pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + + } + + void path4_nexus_path() { + + runName = "path4_nexus_path"; + + BarometerEvaluation::barometerSigma = 0.05; + sr = new SensorReader("./measurements/path4/nexus/1454695040555.csv"); // forward + srt = new SensorReaderTurn("./measurements/path4/nexus/Turns.txt"); + srs = new SensorReaderStep("./measurements/path4/nexus/Steps2.txt"); + gtw = getGroundTruthWay(*sr, floors.gtwp, path4dbl); + + MyGridNode& end = (MyGridNode&)grid.getNodeFor( conv(floors.gtwp[path4dbl.back()]) ); + GridWalkPathControl* walk = new GridWalkPathControl(grid, DijkstraMapper(grid), end); + pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + + } + + void path4_nexus_path_b() { + + runName = "path4_nexus_path"; + + BarometerEvaluation::barometerSigma = 0.05; + sr = new SensorReader("./measurements/path4/nexus/1454695040555.csv"); // forward + srt = new SensorReaderTurn("./measurements/path4/nexus/Turns.txt"); + srs = new SensorReaderStep("./measurements/path4/nexus/Steps2.txt"); + gtw = getGroundTruthWay(*sr, floors.gtwp, path4dbl); + + MyGridNode& end = (MyGridNode&)grid.getNodeFor( conv(floors.gtwp[path4dbl.back()]) ); + DebugShortestPath* walk = new DebugShortestPath(grid, DijkstraMapper(grid), end, this->floors); + pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + + } + + void bergwerk_path1_nexus_simple() { + + runName = "bergwerk_path1_nexus_simple"; + + BarometerEvaluation::barometerSigma = 0.10; + sr = new SensorReader("./measurements/bergwerk/path1/nexus/vor/1454775984079.csv"); // forward + srt = new SensorReaderTurn("./measurements/bergwerk/path1/nexus/vor/Turns.txt"); + srs = new SensorReaderStep("./measurements/bergwerk/path1/nexus/vor/Steps2.txt"); + gtw = getGroundTruthWay(*sr, floors.gtwp, path1dbl); + + GridWalkSimpleControl* walk = new GridWalkSimpleControl(); + pf->setTransition( std::unique_ptr( new MyTransition(grid, *walk)) ); + + } + + +}; + +#endif // EVAL1_H diff --git a/code/eval/EvalBase.h b/code/eval/EvalBase.h new file mode 100644 index 0000000..9d96b52 --- /dev/null +++ b/code/eval/EvalBase.h @@ -0,0 +1,308 @@ +#ifndef EVALBASE_H +#define EVALBASE_H + +#include "../Settings.h" +#include "../Helper.h" +#include "../Vis.h" + +#include +#include + +#include "GroundTruthWay.h" + +#include "../particles/MyState.h" +#include "../particles/MyObservation.h" +#include "../particles/MyEvaluation.h" +#include "../particles/MyTransition.h" +#include "../particles/MyInitializer.h" + +#include "../reader/SensorReader.h" +#include "../reader/SensorReaderStep.h" +#include "../reader/SensorReaderTurn.h" + +#include "../lukas/TurnObservation.h" +#include "../lukas/StepObservation.h" + +#include "../toni/BarometerSensorReader.h" + +#include "../frank/WiFiSensorReader.h" +#include "../frank/BeaconSensorReader.h" +#include "../frank/OrientationSensorReader.h" + +class EvalBase { + +protected: + + Grid grid; + Helper::FHWSFloors floors; + Vis vis; + + K::ParticleFilter* pf; + + SensorReader* sr; + SensorReaderTurn* srt; + SensorReaderStep* srs; + + + + std::string runName; + + GroundTruthWay gtw; + + // OLD + //std::vector way0 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 1, 0}; + //std::vector way1 = {29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 13, 14, 15, 16, 17, 18, 19, 2, 1, 0}; + //std::vector way2 = {29, 28, 27, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 19, 18, 17, 16, 15, 14, 13, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}; + + // NEW + std::vector path1 = {29, 28,27,26,255,25,24,23,22,21,20}; + std::vector path1dbl = {29, 29, 28,27,26,255,25,24,23,22,21,20}; + std::vector path2 = {19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 23, 7, 6}; + std::vector path2dbl = {19, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 23, 7, 6}; + std::vector path3 = {5, 27, 26, 255, 25, 4, 3, 2, 215, 1, 0, 30, 31}; + std::vector path3dbl = {5, 5, 27, 26, 255, 25, 4, 3, 2, 215, 1, 0, 30, 31}; + std::vector path4 = {29, 28, 27, 32, 33, 34, 35, 36, 10, 9, 8, 22, 37, 38, 39, 40, 41, 42, 43, 44}; + std::vector path4dbl = {29, 29, 28, 27, 32, 33, 34, 35, 36, 10, 9, 8, 22, 37, 38, 39, 40, 41, 42, 43, 44}; // duplicate 1st waypoint! + +public: + + EvalBase() : grid(MiscSettings::gridSize_cm), floors(Helper::getFloors()) { + + // build the grid + Helper::buildTheGrid(grid, floors); + + // setup the visualisation + vis.addFloor(floors.f0, floors.h0); + vis.addFloor(floors.f1, floors.h1); + vis.addFloor(floors.f2, floors.h2); + vis.addFloor(floors.f3, floors.h3); + + vis.floors.setColorHex("#666666"); + vis.groundTruth.setCustomAttr("dashtype 3"); + vis.groundTruth.setColorHex("#009900"); + vis.gp << "unset cbrange\n"; + + + } + + static GridPoint conv(const Point3& p) { + return GridPoint(p.x, p.y, p.z); + } + + GroundTruthWay getGroundTruthWay(SensorReader& sr, const std::unordered_map& waypoints, std::vector ids) { + + // construct the ground-truth-path by using all contained waypoint ids + std::vector path; + for (int id : ids) { + auto it = waypoints.find(id); + if(it == waypoints.end()) {throw "not found";} + path.push_back(it->second); + } + + // new created the timed path + GroundTruthWay gtw; + int i = 0; + while (sr.hasNext()) { + const SensorEntry se = sr.getNext(); + if (se.data.empty()) {continue;} // why necessary?? + if (se.idx == 99) { + gtw.add(se.ts, path[i]); + ++i; + } + } + + // ensure the sensor-data contained usable timestamps for the ground-truth mapping + assert(i>0); + + sr.rewind(); + return gtw; + + } + + void run() { + + // sensor numbers + const int s_wifi = 8; const int s_beacons = 9; const int s_barometer = 5; const int s_orientation = 6; + //const int s_linearAcceleration = 2; + + std::list turn_observations; + std::list step_observations; + + //Create an BarometerSensorReader + BarometerSensorReader baroSensorReader; + + + //Read all turn Observations + while(srt->hasNext()) { + + SensorEntryTurn set = srt->getNext(); + TurnObservation to; + + to.ts = set.ts; + to.delta_heading = set.delta_heading; + to.delta_motion = set.delta_motion; + + turn_observations.push_back(to); + } + + + //Step Observations + while(srs->hasNext()) { + + SensorEntryStep ses = srs->getNext(); + StepObservation so; + + so.ts = ses.ts; + + step_observations.push_back(so); + } + + + + // the to-be-evaluated observation + MyObservation obs; + obs.step = new StepObservation(); obs.step->steps = 0; + obs.turn = new TurnObservation(); obs.turn->delta_heading = 0; obs.turn->delta_motion = 0; + + // control data + MyControl ctrl; + + + std::vector pathEst; + + uint64_t lastTransitionTS = 0; + int64_t start_time = -1; + + K::Statistics stats; + int cnt = 0; + + + // process each single sensor reading + while(sr->hasNext()) { + + // get the next sensor reading from the CSV + const SensorEntry se = sr->getNext(); + + //start_time needed for time calculation of steps and turns + obs.latestSensorDataTS = se.ts; + if (start_time == -1) {start_time = se.ts;} + int64_t current_time = se.ts - start_time; + + switch(se.idx) { + + case s_wifi: { + obs.wifi = WiFiSensorReader::readWifi(se); + break; + } + + case s_beacons: { + BeaconObservationEntry boe = BeaconSensorReader::getBeacon(se); + if (!boe.mac.empty()) { + obs.beacons.entries.push_back(boe); + } // add the observed beacon + obs.beacons.removeOld(obs.latestSensorDataTS); + break; + } + + case s_barometer: { + obs.barometer = baroSensorReader.readBarometer(se); + break; + } + +// case s_linearAcceleration:{ +// baroSensorReader.readVerticalAcceleration(se); +// break; +// } + + case s_orientation: { + obs.orientation = OrientationSensorReader::read(se); + break; + } + + } + + // process all occurred turns + while (!step_observations.empty() && current_time > step_observations.front().ts) { + const StepObservation _so = step_observations.front(); step_observations.pop_front(); (void) _so; + obs.step->steps++; + ctrl.walked_m = obs.step->steps * 0.71; + } + + // process all occurred steps + while (!turn_observations.empty() && current_time > turn_observations.front().ts) { + const TurnObservation _to = turn_observations.front(); turn_observations.pop_front(); + obs.turn->delta_heading += _to.delta_heading; + obs.turn->delta_motion += _to.delta_motion; + ctrl.headingChange_rad = Angle::degToRad(obs.turn->delta_heading); + + } + + + // time for a transition? + if (se.ts - lastTransitionTS > MiscSettings::timeSteps) { + + lastTransitionTS = se.ts; + + // timed updates + ((MyTransition*)pf->getTransition())->setCurrentTime(lastTransitionTS); + + + // update the particle filter (transition + eval), estimate a new current position and add it to the estimated path + const MyState est = pf->update(&ctrl, obs); + const Point3 curEst = est.pCur; + + // error calculation. compare ground-truth to estimation + const int offset = 750; + const Point3 curGT = gtw.getPosAtTime(se.ts - offset); + const Point3 diff = curEst - curGT; + + // skip the first 10 scans due to uniform distribution start + if (++cnt > 10) { + pathEst.push_back(curEst); + const float err = diff.length(); + stats.add(err); + std::cout << stats.asString() << std::endl; + } + + // plot + vis.clearStates(); + for (int i = 0; i < (int) pf->getParticles().size(); i+=15) { + const K::Particle& p = pf->getParticles()[i]; + vis.addState(p.state.walkState); + } + vis.setTimestamp(se.ts); + vis.addGroundTruth(gtw); + vis.addEstPath(pathEst); + vis.setEstAndShould(curEst, curGT); + + if (obs.barometer != nullptr) { + vis.gp << "set label 112 'baro: " << obs.barometer->hpa << "' at screen 0.1,0.2\n"; + } + vis.gp << "set label 111 '" < +#include + +/** + * interpolated ground-trouth based on timed check-points + */ +class GroundTruthWay : public Interpolator { + +public: + + Point3 getPosAtTime(const uint64_t ts) const { + return get(ts); + } + + /** get the ground truth way */ + const std::vector& getWay() const {return entries;} + +}; + + +#endif // GROUNDTRUTHWAY_H diff --git a/code/eval/PaperPlot.h b/code/eval/PaperPlot.h new file mode 100644 index 0000000..73e3740 --- /dev/null +++ b/code/eval/PaperPlot.h @@ -0,0 +1,134 @@ +#ifndef PAPERPLOT_H +#define PAPERPLOT_H + +#include + +#include +#include +#include +#include + + +#include +#include + +class PaperPlot { + +public: + + K::Gnuplot gp; + K::GnuplotSplot plot; + + K::GnuplotSplotElementLines floors; + K::GnuplotSplotElementColorPoints nodes; + K::GnuplotSplotElementLines edges; + +public: + + PaperPlot() { + + floors.setLineWidth(2); + + plot.add(&edges); + plot.add(&nodes); + plot.add(&floors); + + nodes.setPointSize(0.7); + edges.setColorHex("#555555"); + + gp << "set ticslevel 0\n"; + + + //gp << "set zrange [0:0]\n"; + + } + + void show() { + gp.draw(plot); + gp.flush();; + } + + /** add all obstacles of the given floor to the provided height */ + void addFloor(const Floor& f, const LengthF height) { + + // add each wall + for (const Line2& l : f.getObstacles()) { + const K::GnuplotPoint3 p1(l.p1.x, l.p1.y, height.cm()); + const K::GnuplotPoint3 p2(l.p2.x, l.p2.y, height.cm()); + floors.addSegment(p1, p2); + } + + } + + /** add the grid to the plot */ + template void addGrid(Grid& grid) { + +// std::set used; + + // get the min/max value + float max = -999999; + float min = +999999; + for (const T& n1 : grid) { + const float val = n1.imp; + //const float val = n1.distToTarget; + if (val > max) {max = val;} + if (val < min) {min = val;} + } + gp << "set cbrange["< void debugGrid(Grid& grid, const BBox3& bbox, const bool addNodes, const bool addEdges) { + + std::set used; + + for (T& n1 : grid) { + if (bbox.contains(n1)) { + const K::GnuplotPoint3 p1(n1.x_cm, n1.y_cm, n1.z_cm); + if (addNodes) { + nodes.add(p1, 0); + } + if (addEdges) { + for (const T& n2 : grid.neighbors(n1)) { + if (n1.z_cm == n2.z_cm) {continue;} // speedup + if (used.find(n2.getIdx()) == used.end()) { + const K::GnuplotPoint3 p2(n2.x_cm, n2.y_cm, n2.z_cm); + edges.addSegment(p1, p2); + } + } + used.insert(n1.getIdx()); +// for (const T& n2 : grid.neighbors(n1)) { +// const uint64_t idx = n1.getIdx() * n2.getIdx(); +// if (used.find(idx) == used.end()) { +// const K::GnuplotPoint3 p2(n2.x_cm, n2.y_cm, n2.z_cm); +// edges.addSegment(p1, p2); +// used.insert(idx); +// } +// } + } + } + } + + } + + +}; + +#endif // PAPERPLOT_H diff --git a/code/eval/PaperPlot2D.h b/code/eval/PaperPlot2D.h new file mode 100644 index 0000000..21e1efd --- /dev/null +++ b/code/eval/PaperPlot2D.h @@ -0,0 +1,141 @@ +#ifndef PAPERPLOT2D_H +#define PAPERPLOT2D_H + +#include + +#include +#include +#include + +#include +#include + +class PaperPlot2D { + +public: + + struct Size { + float w; + float h; + Size(const float w, const float h) : w(w), h(h) {;} + }; + +public: + + K::Gnuplot gp; + K::GnuplotPlot plot; + + K::GnuplotPlotElementLines floors; + K::GnuplotPlotElementColorPoints nodes; + + std::string file; + +public: + + PaperPlot2D(const std::string& file, Size s) : file(file) { + toFile(file, s); + setup(); + } + + PaperPlot2D() { + setup(); + } + +private: + + void setup() { + + floors.setLineWidth(1.5); + + nodes.setPointType(7); + + plot.add(&nodes); + plot.add(&floors); + + gp << "unset border\n"; + gp << "unset colorbox\n"; + + gp << "set tics scale 0,0\n"; // HACK! "unset tics\n" segfaults current gnuplot version... + gp << "set format x ' '\n"; + gp << "set format y ' '\n"; + + gp << "set size ratio -1\n"; + + } + + + void toFile(const std::string& file, const Size s) { + gp << "set output '" << file << "'\n"; + gp << "set terminal eps size " << s.w << "," << s.h << "\n"; + } + +public: + + void setRanges(const float x1, const float x2, const float y1, const float y2) { + gp << "set xrange [" << x1 << ":" << x2 << "]\n"; + gp << "set yrange [" << y1 << ":" << y2 << "]\n"; + } + + void show() { + gp.draw(plot); + if (file.length() != 0) { + std::string dataFile = file + ".dat"; + std::ofstream os(dataFile.c_str()); + os << gp.getBuffer(); + os.close(); + } + gp.flush(); + } + + /** add all obstacles of the given floor to the provided height */ + void addFloor(const Floor& f) { + + // add each wall + for (const Line2& l : f.getObstacles()) { + const K::GnuplotPoint2 p1(l.p1.x, l.p1.y); + const K::GnuplotPoint2 p2(l.p2.x, l.p2.y); + floors.addSegment(p1, p2); + } + + } + + +// void removeGrid() { +// gp << "unset object\n"; +// } + + /** add the grid to the plot */ + template void addGrid(Grid& grid, const Colorizer col) { + + // get the min/max value + float max = -999999; + float min = +999999; + for (const T& n1 : grid) { + const float val = col.get(n1); + //const float val = n1.distToTarget; + if (val > max) {max = val;} + if (val < min) {min = val;} + } + gp << "set cbrange["< +#include +#include + +#include + +#include + + + +#include +#include + +#include "PaperPlot.h" +#include "PaperPlot2D.h" + +#include "../MyGridNode.h" +#include "../Settings.h" + +#include "../Helper.h" + +class PaperVisGrid { + +public: + + + static void showStairs() { + + // the grid + Grid grid(20); + + // floors + Helper::FHWSFloors floors = Helper::getFloors(); + Helper::buildTheGrid(grid, floors); + +// // load the floorplan +// FloorplanFactorySVG fpFac(MiscSettings::floorplan, 2.822222); +// Floor f0 = fpFac.getFloor("floor_0"); +// Floor f0 = fpFac.getFloor("floor_1"); +// const LengthF h0 = LengthF::cm(0); +// const LengthF h1 = LengthF::cm(400); +// const LengthF h2 = LengthF::cm(400+340); +// const LengthF h3 = LengthF::cm(400+340+340); + + // add the floorplan to the grid + +// GridFactory gridFac(grid); + +// gridFac.addFloor(f0, h0.cm()); +// gridFac.addFloor(f1, h1.cm()); +// gridFac.addFloor(f2, h2.cm()); +// gridFac.addFloor(f3, h3.cm()); + + // remove all isolated nodes not attached to 300,300,floor0 +// gridFac.removeIsolated( (MyGridNode&)grid.getNodeFor( GridPoint(300,300,h0.cm()) ) ); + + PaperPlot plot; + + + + // stairwell low left + {BBox3 bbox; + bbox.add(Point3(1300, 650,000)); + bbox.add(Point3(2000,1300,1400)); + plot.debugGrid(grid, bbox, true, true);} + + // stairwell upper left + {BBox3 bbox; + bbox.add(Point3(1200,4758,000)); + bbox.add(Point3(1800,5158,1400)); + plot.debugGrid(grid, bbox, true, true);} + + // stairwell upper right + {BBox3 bbox; + bbox.add(Point3(6240,4718,000)); + bbox.add(Point3(6830,5158,1400)); + plot.debugGrid(grid, bbox, true, true);} + + // stair left + {BBox3 bbox; + bbox.add(Point3(1200,3200,000)); + bbox.add(Point3(1440,4078,1400)); + plot.debugGrid(grid, bbox, true, true);} + + // stair center + {BBox3 bbox; + bbox.add(Point3(4200,4118,100)); + bbox.add(Point3(6120,4438,1400)); + plot.debugGrid(grid, bbox, true, true);} + + //stair lower right + {BBox3 bbox; + bbox.add(Point3(7360,3358,000)); + bbox.add(Point3(7880,4300,500)); + plot.debugGrid(grid, bbox, true, true);} + + + plot.show(); + + sleep(1000); + + } + + + +}; + +#endif // PAPERVISGRID_H diff --git a/code/eval/PaperVisImportance.h b/code/eval/PaperVisImportance.h new file mode 100644 index 0000000..478d80e --- /dev/null +++ b/code/eval/PaperVisImportance.h @@ -0,0 +1,190 @@ +#ifndef PAPERVISIMPORTANCE_H +#define PAPERVISIMPORTANCE_H + +#include +#include +#include + +#include + +#include + + + +#include +#include + +#include "PaperPlot.h" +#include "PaperPlot2D.h" + +#include "../MyGridNode.h" +#include "../Settings.h" +#include "../DijkstraMapper.h" + +PaperPlot2D::Size s1 = PaperPlot2D::Size(2,4); + +class PaperVisImportance { + +public: + + + + static float clamp(const float in, const float min, const float max) { + if (in < min) {return min;} + if (in > max) {return max;} + return in; + } + + // use node-importance as grid-color + struct ColorizerImp { + float get(const MyGridNode& n) const {return n.imp;} + bool skip(const MyGridNode& n) const {(void) n; return false;} + }; + + // use node-distance as grid-color + struct ColorizerDist { + float get(const MyGridNode& n) const {return n.distToTarget;} + bool skip(const MyGridNode& n) const {(void) n; return false;} + }; + + // use num-visited as grid-color + struct ColorizeHeat { + int maxCnt; int cutoff; + ColorizeHeat(const int maxCnt, const int cutoff) : maxCnt(maxCnt), cutoff(cutoff) {;} + float get(const MyGridNode& n) const {return (n.cnt > maxCnt) ? (maxCnt) : (n.cnt);} + bool skip(const MyGridNode& n) const {return n.cnt < cutoff;} // skip to reduce plot size + }; + + + static void createImportance() { + + // load the floorplan + FloorplanFactorySVG fpFac(MiscSettings::floorplanPlot, 2.822222); + Floor f0 = fpFac.getFloor("test1"); + const LengthF h0 = LengthF::cm(0); + + // add the floorplan to the grid + Grid grid(20); + GridFactory gridFac(grid); + + gridFac.addFloor(f0, h0.cm()); + + // remove all isolated nodes not attached to 300,300,floor0 + gridFac.removeIsolated( (MyGridNode&)grid.getNodeFor( GridPoint(400,400,h0.cm()) ) ); + + // stamp importance information onto the grid-nodes + GridImportance gridImp; + gridImp.addImportance(grid, h0.cm()); + + + { + PaperPlot2D plot("floorplan_importance.eps", s1); + plot.setRanges(0,2100, 0,5100); + plot.addFloor(f0); + plot.addGrid(grid, ColorizerImp()); + plot.show(); + } + + + } + + + + + static void createPath() { + + // load the floorplan + FloorplanFactorySVG fpFac(MiscSettings::floorplanPlot, 2.822222); + Floor f0 = fpFac.getFloor("test1"); + const LengthF h0 = LengthF::cm(0); + + // add the floorplan to the grid + Grid grid(20); + GridFactory gridFac(grid); + + gridFac.addFloor(f0, h0.cm()); + + // remove all isolated nodes not attached to 300,300,floor0 + gridFac.removeIsolated( (MyGridNode&)grid.getNodeFor( GridPoint(300,300,h0.cm()) ) ); + + + + // start and end + const MyGridNode& gnStart = grid.getNodeFor(GridPoint(1500, 300, 0)); + const MyGridNode& gnEnd = grid.getNodeFor(GridPoint(900, 4600, 0)); + + // build all shortest path to reach th target + Dijkstra dijkstra; + DijkstraMapper accImp(grid); + DijkstraMapperNormal accNormal(grid); + + // path without importance + dijkstra.build(gnStart, gnStart, accNormal); + DijkstraPath pathNormal(dijkstra.getNode(gnEnd), dijkstra.getNode(gnStart)); + + // stamp importance information onto the grid-nodes + GridImportance gridImp; + gridImp.addImportance(grid, h0.cm()); + + // path WITH importance + dijkstra.build(gnStart, gnStart, accImp); + DijkstraPath pathImp(dijkstra.getNode(gnEnd), dijkstra.getNode(gnStart)); + + // build plot + K::GnuplotPlotElementLines gpPath1; gpPath1.setLineWidth(2); gpPath1.setColorHex("#444444"); + K::GnuplotPlotElementLines gpPath2; gpPath2.setLineWidth(2); gpPath2.setColorHex("#000000"); + + for (DijkstraNode* dn : pathNormal) { + gpPath1.add(K::GnuplotPoint2(dn->element->x_cm, dn->element->y_cm)); + } + for (DijkstraNode* dn : pathImp) { + gpPath2.add(K::GnuplotPoint2(dn->element->x_cm, dn->element->y_cm)); + } + + // plot the 2 paths + { + PaperPlot2D plot("floorplan_paths.eps", s1); + plot.setRanges(0,2100, 0,5100); + plot.addFloor(f0); + plot.plot.add(&gpPath1); gpPath1.setCustomAttr("dashtype 3"); + plot.plot.add(&gpPath2); + plot.show(); + } + + // stamp distance information onto the grid + // attach a corresponding weight-information to each user-grid-node + for (MyGridNode& node : grid) { + const DijkstraNode* dn = dijkstra.getNode(node); + node.distToTarget = dn->cumWeight; + } + + // walk + GridWalkLightAtTheEndOfTheTunnel walk (grid, accImp, gnStart); + + for (int i = 0; i < 30000; ++i) { + + if (i % 250 == 0) {std::cout << i << std::endl;} + const MyGridNode& nStart = gnEnd; + GridWalkState sStart(&nStart, Heading::rnd()); + //GridWalkState sEnd = walk.getDestination(grid, sStart, 135, 0); + + } + + // plot the heat-map + { + PaperPlot2D plot("floorplan_dijkstra_heatmap.eps", s1); + plot.setRanges(0,2100, 0,5100); + plot.gp << "set palette gray negative\n"; + plot.addFloor(f0); + plot.addGrid(grid, ColorizeHeat(7000, 50)); + plot.show(); + } + + + } + + + +}; + +#endif // PAPERVISIMPORTANCE_H diff --git a/code/frank/BeaconEvaluation.h b/code/frank/BeaconEvaluation.h new file mode 100755 index 0000000..0ed80cb --- /dev/null +++ b/code/frank/BeaconEvaluation.h @@ -0,0 +1,110 @@ +#ifndef BEACONEVALUATION_H +#define BEACONEVALUATION_H + +#include +#include "BeaconObservation.h" +#include "Settings.h" +#include "../particles/MyState.h" +#include "../particles/MyObservation.h" +#include "PositionedBeacon.h" + +class BeaconEvaluation { + +private: + + Settings settings; + //BeaconObservation obs; + +public: + + double getProbability(const MyState& state, const MyObservation& observation) const { + + //if (obs.entries.empty()) {return 1.0;} + double prob = 1.0; + +// const double tx = -74; + const double waf = 8.0; + +// // get the ap the client had the strongest measurement for +// const PositionedWifiAP* relAP = settings.getAP(strongest.mac); assert(relAP); +// const double distToStrongest_m = state.getDistance2D(relAP->xCM, relAP->yCM) / 100.0; +// const double strongestFloorDist = std::abs(relAP->zNr - state.z_nr); +// const double mdlStrongestRSSI = distanceToRssi(tx, distToStrongest_m, relAP->pl) - (strongestFloorDist * waf); + + // process each detected beacon + for (const BeaconObservationEntry& entry : observation.beacons.entries) { + + // get the AP data from the settings + const PositionedBeacon* beacon = settings.getBeacon(entry.mac); + if (!beacon) {continue;} + + // distance (in meter) between particle and AP + //const double distToBeacon_m = state.getDistance2D(beacon->xCM, beacon->yCM) / 100.0; + const double distToBeacon_m = state.pCur.getDistance(*beacon) / 100.0; + + // floor difference? + //const double floorDist = std::abs(beacon->zNr - state.getFloorNr()); + const float floorDist = std::ceil(std::abs(Helper::getFloorNrFloat(beacon->z) - Helper::getFloorNrFloat(state.pCur.z))); + + // estimate the rssi depending on above distance + const double mdlRSSI = distanceToRssi(beacon->tx, distToBeacon_m, beacon->pl) - (floorDist * waf); + + // the measured rssi + const double realRSSI = entry.rssi; + +// // the measured relative rssi +// const double realRelRSSI = strongest.rssi - realRSSI; +// const double mdlRelRSSI = mdlStrongestRSSI - mdlRSSI; + + // probability? (sigma grows with measurement's age) + const double sigma = 8 + ((observation.latestSensorDataTS - entry.ts) / 1000.0) * 3.0; + const double p = K::NormalDistribution::getProbability(mdlRSSI, sigma, realRSSI); + //const double p = K::NormalDistribution::getProbability(mdlRelRSSI, sigma, realRelRSSI); + + //prob *= p; + prob += std::log(p); + + } + + const double lambda = 0.15; + const double res = lambda * exp(- lambda * (-prob)); + return res; + //return prob; + + } + +// WiFiObservation filter(const WiFiObservation* obs) const { + +// WiFiObservation out; +// out.ts = obs->ts; +// for (const WiFiObservationEntry& entry : obs->entries) { +// // alter the mac +// WiFiObservationEntry ne = entry; +// ne.mac[ne.mac.length()-1] = '0'; +// if (settings.getAP(ne.mac)) {out.entries.push_back(ne);} +// } +// return out; + +// } + +// /** get the strongest AP within all measurements */ +// WiFiObservationEntry getStrongest(const WiFiObservation* obs) const { +// WiFiObservationEntry max = obs->entries.front(); +// for (const WiFiObservationEntry& entry : obs->entries) { +// if (entry.rssi > max.rssi) {max = entry;} +// } +// return max; +// } + + static double rssiToDistance(double txPower, double rssi, double pathLoss) { + return pow(10, (txPower - rssi) / (10 * pathLoss)); + } + + static double distanceToRssi(double txPower, double distance, double pathLoss) { + if (distance <= 1) {return txPower;} + return (txPower - (10 * pathLoss * log10(distance))); + } + +}; + +#endif // BEACONEVALUATION_H diff --git a/code/frank/BeaconObservation.h b/code/frank/BeaconObservation.h new file mode 100755 index 0000000..c80f307 --- /dev/null +++ b/code/frank/BeaconObservation.h @@ -0,0 +1,41 @@ +#ifndef BEACONOBSERVATION_H +#define BEACONOBSERVATION_H + +#include "MACAddress.h" +#include + + +/** one observed AP and its signal strength */ +struct BeaconObservationEntry { + + /** the timestamp this beacon was discovered at */ + uint64_t ts; + + /** the beacon's mac address */ + std::string mac; + + /** the beacon's rssi */ + int rssi; + + BeaconObservationEntry() : ts(0), mac(), rssi(0) {;} + BeaconObservationEntry(const uint64_t ts, const std::string& mac, const int rssi) : ts(ts), mac(mac), rssi(rssi) {;} + +}; + +/** all APs observed during one scan */ +struct BeaconObservation { + + std::vector entries; + + void removeOld(uint64_t latestTS) { + auto lambda = [latestTS] (const BeaconObservationEntry& e) { + uint64_t age = latestTS - e.ts; + return age > 1000*3; + }; + entries.erase(std::remove_if(entries.begin(), entries.end(), lambda), entries.end()); + } + +}; + + +#endif // BEACONOBSERVATION_H diff --git a/code/frank/BeaconSensorReader.h b/code/frank/BeaconSensorReader.h new file mode 100755 index 0000000..cfd2d9a --- /dev/null +++ b/code/frank/BeaconSensorReader.h @@ -0,0 +1,60 @@ +#ifndef BEACONSENSORREADER_H +#define BEACONSENSORREADER_H + +#include "../reader/SensorReader.h" +#include "BeaconObservation.h" +#include "Settings.h" +#include + +class BeaconSensorReader { + +public: + +// /** get wifi observation data from one CSV entry */ +// static BeaconObservation* readBeacons(const SensorEntry& se) { + +// std::string tmp = se.data; +// BeaconObservation* obs = new BeaconObservation(); +// obs->ts = se.ts; + +// std::string mac = tmp.substr(0, 17); +// tmp = tmp.substr(17); +// assert(tmp[0] == ';'); tmp = tmp.substr(1); + +// std::string rssi = tmp; + +// BeaconObservationEntry e(mac, std::stoi(rssi)); +// obs->entries.push_back(e); + +// /** skip unknown beacons */ +// if (settings.getBeacon(mac) == nullptr) {return nullptr;} + +// return obs; + +// } + + /** get wifi observation data from one CSV entry */ + static BeaconObservationEntry getBeacon(const SensorEntry& se) { + + BeaconObservationEntry boe; + std::string tmp = se.data; + + std::string mac = tmp.substr(0, 17); + tmp = tmp.substr(17); + assert(tmp[0] == ';'); tmp = tmp.substr(1); + + std::string rssi = tmp; + + BeaconObservationEntry e(se.ts, mac, std::stoi(rssi)); + + /** skip unknown beacons */ + if (settings.getBeacon(mac) == nullptr) {return BeaconObservationEntry();} + + return e; + + } + +}; + + +#endif // BEACONSENSORREADER_H diff --git a/code/frank/MACAddress.h b/code/frank/MACAddress.h new file mode 100755 index 0000000..760dfd2 --- /dev/null +++ b/code/frank/MACAddress.h @@ -0,0 +1,131 @@ +#ifndef MACADDRESS_H +#define MACADDRESS_H + +#include +#include + +/** + * describe a MAC-Address as 64-bit integer + * or 8-bit access to all fields + */ +union MACAddressValue { + + struct { + uint8_t h5; + uint8_t h4; + uint8_t h3; + uint8_t h2; + uint8_t h1; + uint8_t h0; + }; + + uint64_t mac; + + /** initialize everything with zeros */ + MACAddressValue() : mac(0) {;} + +}; + +class MACAddress { + +private: + + /** the address as integer value */ + MACAddressValue value; + +public: + + /** empty ctor */ + MACAddress() { + ; + } + + /** copy ctor */ + MACAddress(const MACAddress& o) : value(o.value) { + ; + } + + /** ctor form string (e.g. "xx:xx:xx:xx:xx:xx") */ + MACAddress(const std::string& str) { + + // sanity check + if (str.size() != 17) {throw "invalid hex string length. must be 17";} + + value.mac = 0; // all zeros + value.h5 = hexWordToInt(str[ 0], str[ 1]); + value.h4 = hexWordToInt(str[ 3], str[ 4]); + value.h3 = hexWordToInt(str[ 6], str[ 7]); + value.h2 = hexWordToInt(str[ 9], str[10]); + value.h1 = hexWordToInt(str[12], str[13]); + value.h0 = hexWordToInt(str[15], str[16]); + + } + + /** convert to hex-string ("xx:xx:xx:xx:xx:xx") */ + std::string asString() { + + std::string str = ":::::::::::::::::"; + + intToHexStr(value.h5, &str[ 0]); + intToHexStr(value.h4, &str[ 3]); + intToHexStr(value.h3, &str[ 6]); + intToHexStr(value.h2, &str[ 9]); + intToHexStr(value.h1, &str[12]); + intToHexStr(value.h0, &str[15]); + + return str; + + } + + /** get the mac address as a long-int value */ + uint64_t asLong() const { + return value.mac; + } + + /** equal? */ + bool operator == (const MACAddress& o) const { + return o.asLong() == asLong(); + } + +private: + + /** convert the given hex char [0-F] to an integer [0-15] */ + static uint8_t hexCharToInt(char hex) { + + // to upper case + if (hex >= 'a') {hex -= 'a' - 'A';} + + // convert + return (hex - '0' < 10) ? (hex - '0') : (hex - 'A' + 10); + + } + + /** convert the given hex-word to an integer */ + static uint8_t hexWordToInt(char hi, char lo) { + return hexCharToInt(hi) << 4 | hexCharToInt(lo); + } + + /** conver the given integer [0-15] to a hex char [0-F] */ + static char intToHexChar(const uint8_t val) { + return (val < 10) ? ('0' + val) : ('A' - 10 + val); + } + + /** insert two hex chars into the provided string buffer */ + static void intToHexStr(const uint8_t val, char* dst) { + dst[0] = intToHexChar((val >> 4) & 0xF); + dst[1] = intToHexChar((val >> 0) & 0xF); + } + +}; + + +/** hash-method for MAC-Addresses */ +namespace std { + template <> struct hash { + std::size_t operator() (const MACAddress& mac) const { + return std::hash()(mac.asLong()); + } + }; +} + +#endif // MACADDRESS_H diff --git a/code/frank/OrientationObservation.h b/code/frank/OrientationObservation.h new file mode 100644 index 0000000..eb6dae6 --- /dev/null +++ b/code/frank/OrientationObservation.h @@ -0,0 +1,11 @@ +#ifndef ORIENTATIONOBSERVATION_H +#define ORIENTATIONOBSERVATION_H + +/** android device orientation */ +struct OrientationObservation { + + float values[3]; + +}; + +#endif // ORIENTATIONOBSERVATION_H diff --git a/code/frank/OrientationSensorReader.h b/code/frank/OrientationSensorReader.h new file mode 100644 index 0000000..d4f3fed --- /dev/null +++ b/code/frank/OrientationSensorReader.h @@ -0,0 +1,42 @@ +#ifndef ORIENTATIONSENSORREADER_H +#define ORIENTATIONSENSORREADER_H + + +#include "../reader/SensorReader.h" +#include "OrientationObservation.h" + +#include + +class OrientationSensorReader { + +public: + + /** get wifi observation data from one CSV entry */ + static OrientationObservation read(const SensorEntry& se) { + + std::string tmp = se.data; + OrientationObservation obs; + + size_t pos1 = tmp.find(';'); + size_t pos2 = tmp.find(';', pos1+1); + size_t pos3 = tmp.find(';', pos2+1); + + assert(pos1 != std::string::npos); + assert(pos2 != std::string::npos); + assert(pos3 != std::string::npos); + + const std::string s1 = tmp.substr(0, pos1); + const std::string s2 = tmp.substr(pos1+1, pos2-pos1-1); + const std::string s3 = tmp.substr(pos2+1, pos3-pos2-1); + + obs.values[0] = std::stof(s1); + obs.values[1] = std::stof(s2); + obs.values[2] = std::stof(s3); + + return obs; + + } + +}; + +#endif // ORIENTATIONSENSORREADER_H diff --git a/code/frank/Position3D.h b/code/frank/Position3D.h new file mode 100755 index 0000000..1248774 --- /dev/null +++ b/code/frank/Position3D.h @@ -0,0 +1,36 @@ +#ifndef POSITION3D_H +#define POSITION3D_H + +#include + +/** + * represents a 3D position (x,y,z) + */ +struct Position3D { + + /** x-position (in centimeter) */ + double xCM; + + /** y-position (in centimeter) */ + double yCM; + + /** floor number */ + int zNr; + + /** ctor */ + Position3D() : xCM(0), yCM(0), zNr(0) {;} + + /** ctor. x,y in centimeter, z = floor-number */ + Position3D(const double xCM, const double yCM, const int zNr) : xCM(xCM), yCM(yCM), zNr(zNr) {;} + + /** get the distance to the given position (in centimeter) */ + double getDistanceCM(const Position3D& p) const { + const double dx = xCM - p.xCM; + const double dy = yCM - p.yCM; + const double dz = (zNr - p.zNr) * 300; // 300 = average floor height (centimeter) + return std::sqrt(dx*dx + dy*dy + dz*dz); + } + +}; + +#endif // POSITION3D_H diff --git a/code/frank/PositionedBeacon.h b/code/frank/PositionedBeacon.h new file mode 100755 index 0000000..58f76e4 --- /dev/null +++ b/code/frank/PositionedBeacon.h @@ -0,0 +1,30 @@ +#ifndef POSITIONEDBEACON_H +#define POSITIONEDBEACON_H + +#include "WiFiAP.h" +//#include "Position3D.h" +#include + +class PositionedBeacon : public Point3 { + +public: + + MACAddress mac; + float tx; + float pl; + +// /** ctor */ +// PositionedBeacon(const MACAddress& mac, const double tx, const double pl, const double xM, const double yM, const int zNr) : +// mac(mac), tx(tx), pl(pl), Position3D(xM, yM, zNr) { +// ; +// } + + /** ctor */ + PositionedBeacon(const MACAddress& mac, const float tx, const float pl, const float x_cm, const float y_cm, const float z_cm) : + Point3(x_cm, y_cm, z_cm), mac(mac), tx(tx), pl(pl) { + ; + } + +}; + +#endif // POSITIONEDBEACON_H diff --git a/code/frank/PositionedWiFiAP.h b/code/frank/PositionedWiFiAP.h new file mode 100755 index 0000000..3dc93be --- /dev/null +++ b/code/frank/PositionedWiFiAP.h @@ -0,0 +1,26 @@ +#ifndef POSITIONEDWIFIAP_H +#define POSITIONEDWIFIAP_H + +#include "WiFiAP.h" +//#include "Position3D.h" +#include + +class PositionedWifiAP : public WiFiAP, public Point3 { + +public: + +// /** ctor */ +// PositionedWifiAP(const MACAddress& mac, const std::string& ssid, const double tx, const double pl, const double xM, const double yM, const int zNr) : +// WiFiAP(mac, ssid, tx, pl), Position3D(xM, yM, zNr) { +// ; +// } + + /** ctor */ + PositionedWifiAP(const MACAddress& mac, const std::string& ssid, const float tx, const float pl, const float x_cm, const float y_cm, const float z_cm) : + WiFiAP(mac, ssid, tx, pl), Point3(x_cm, y_cm, z_cm) { + ; + } + +}; + +#endif // POSITIONEDWIFIAP_H diff --git a/code/frank/Settings.h b/code/frank/Settings.h new file mode 100755 index 0000000..a042996 --- /dev/null +++ b/code/frank/Settings.h @@ -0,0 +1,178 @@ +#ifndef SETTINGS_H +#define SETTINGS_H + +#include "PositionedWiFiAP.h" +#include "PositionedBeacon.h" +#include "MACAddress.h" + +#include + +#include "../Helper.h" + +class Settings { + +private: + + std::unordered_map aps; + std::unordered_map beacons; + +public: + + Settings() { + + const double pl = 2.7; // 2.7 + const double tx = -46; + const float ibPLE = 1.5; + + addAP(("00:04:96:6b:64:99"), "i.3.20", 290, 1300, Helper::getHeight(3), tx, pl); + addAP(("00:04:96:6b:70:c9"), "i.3.25", 290, 3930, Helper::getHeight(3), tx, pl); + addAP(("00:04:96:6b:82:79"), "i.3.16", 1860, 3400, Helper::getHeight(3), tx, pl); + addAP(("00:04:96:77:ed:f9"), "i.3.39", 4700, 4850, Helper::getHeight(3), tx, pl); + addAP(("00:04:96:77:ed:69"), "i.3.3", 6460, 3400, Helper::getHeight(3), tx, pl); + + // 2nd floor (vague AP position) + addAP(("00:04:96:6c:3a:a9"), "I.2.1", 6750, 3350, Helper::getHeight(2), tx, pl); + addAP(("00:04:96:6b:bf:f9"), "I.2.9", 3000, 3350, Helper::getHeight(2), tx, pl); + addAP(("00:04:96:77:ec:a9"), "I.2.15", 290, 750, Helper::getHeight(2), tx, pl); + addAP(("00:04:96:6b:0c:c9"), "I.2.19", 300, 4000, Helper::getHeight(2), tx, pl); + addAP(("00:04:96:6b:db:69"), "I.2.34", 4320, 4780, Helper::getHeight(2), tx, pl); + + // 1st floor (vague AP position) + addAP(("00:04:96:6c:cf:19"), "I.1.2", 6150, 3420, Helper::getHeight(1), tx, pl); + addAP(("00:04:96:7d:07:79"), "I.1.9", 1800, 3300, Helper::getHeight(1), tx, pl); + addAP(("00:04:96:69:48:c9"), "I.1.17", 1500, 300, Helper::getHeight(1), tx, pl); + addAP(("00:04:96:77:eb:99"), "I.1.21", 500, 1700, Helper::getHeight(1), tx, pl); + addAP(("00:04:96:6b:45:59"), "I.1.30", 800, 4800, Helper::getHeight(1), tx, pl); + addAP(("00:04:96:77:ed:89"), "I.1.43", 4600, 4800, Helper::getHeight(1), tx, pl); + + // 0th floor (exact AP position) + addAP(("00:04:96:6C:6E:F9"), "I.0.27", 530, 4970, Helper::getHeight(0), tx, pl); + addAP(("00:04:96:6C:A5:39"), "I.0.17", 1030, 270, Helper::getHeight(0), tx, pl); + addAP(("00:04:96:6C:A4:A9"), "I.0.9", 1660, 2780, Helper::getHeight(0), tx, pl); + addAP(("00:04:96:77:EE:69"), "I.0.7", 3560, 3380, Helper::getHeight(0), tx, pl); + addAP(("00:04:96:6B:46:09"), "I.0.xx", 6860, 3690, Helper::getHeight(0), tx, pl); + addAP(("00:04:96:6C:5E:39"), "I.0.36", 4480, 4800, Helper::getHeight(0), tx, pl); // vague!! + + addBeacon("48:EF:8D:77:66:DF", -81, ibPLE, 6984, 4526, Helper::getHeight(2)); + addBeacon("6F:5F:39:0C:51:E4", -81, ibPLE, 7829, 3916, 200); + addBeacon("49:23:D8:7F:E8:D2", -81, ibPLE, 6946, 4536, Helper::getHeight(1)); + + // OLD + +// const double pl = 2.7; // 2.7 +// const double tx = -46; + +// addAP(("00:04:96:6b:64:99"), "i.3.20", 290, 1300, Helper::getHeight(3), tx, pl-1); +// addAP(("00:04:96:6b:70:c9"), "i.3.25", 290, 3930, Helper::getHeight(3), tx, pl); +// addAP(("00:04:96:6b:82:79"), "i.3.16", 1860, 3400, Helper::getHeight(3), tx, pl-1); +// addAP(("00:04:96:77:ed:f9"), "i.3.39", 4700, 4850, Helper::getHeight(3), tx, pl); +// addAP(("00:04:96:77:ed:69"), "i.3.3", 6460, 3400, Helper::getHeight(3), tx, pl); + +// // 2nd floor (vague AP position) +// addAP(("00:04:96:6c:3a:a9"), "I.2.1", 6750, 3350, Helper::getHeight(2), tx, pl); +// addAP(("00:04:96:6b:bf:f9"), "I.2.9", 3000, 3350, Helper::getHeight(2), tx, pl); +// addAP(("00:04:96:77:ec:a9"), "I.2.15", 290, 750, Helper::getHeight(2), tx, pl); +// addAP(("00:04:96:6b:0c:c9"), "I.2.19", 300, 4000, Helper::getHeight(2), tx, pl); +// addAP(("00:04:96:6b:db:69"), "I.2.34", 4320, 4780, Helper::getHeight(2), tx, pl); + +// // 1st floor (vague AP position) +// addAP(("00:04:96:6c:cf:19"), "I.1.2", 6150, 3420, Helper::getHeight(1), tx, pl); +// addAP(("00:04:96:7d:07:79"), "I.1.9", 1800, 3300, Helper::getHeight(1), tx, pl); +// addAP(("00:04:96:69:48:c9"), "I.1.17", 1500, 300, Helper::getHeight(1), tx, pl); +// addAP(("00:04:96:77:eb:99"), "I.1.21", 500, 1700, Helper::getHeight(1), tx, pl); +// addAP(("00:04:96:6b:45:59"), "I.1.30", 800, 4800, Helper::getHeight(1), tx, pl); +// addAP(("00:04:96:77:ed:89"), "I.1.43", 4600, 4800, Helper::getHeight(1), tx, pl); + +// // 0th floor (exact AP position) +// addAP(("00:04:96:6C:6E:F9"), "I.0.27", 530, 4970, Helper::getHeight(0), tx, pl); +// addAP(("00:04:96:6C:A5:39"), "I.0.17", 1030, 270, Helper::getHeight(0), tx, pl); +// addAP(("00:04:96:6C:A4:A9"), "I.0.9", 1660, 2780, Helper::getHeight(0), tx, pl); +// addAP(("00:04:96:77:EE:69"), "I.0.7", 3560, 3380, Helper::getHeight(0), tx, pl); +// addAP(("00:04:96:6B:46:09"), "I.0.xx", 6860, 3690, Helper::getHeight(0), tx, pl); +// addAP(("00:04:96:6C:5E:39"), "I.0.36", 4480, 4800, Helper::getHeight(0), tx, pl); // vague!! + + +// const int ibOff = +2; +// const float ibPLE = 1.9; +// addBeacon("78:A5:04:1F:87:64", -71+ibOff, ibPLE, 1088, 4858, Helper::getHeight(3)); // id:16 +// addBeacon("78:A5:04:1F:8A:59", -65+4, 2.0, 1088, 4858, Helper::getHeight(2)); // id:18 +// addBeacon("1C:BA:8C:21:71:70", -71+ibOff, ibPLE, 1088, 4858, Helper::getHeight(1)); // id:11 +// addBeacon("78:A5:04:1F:88:9F", -71+ibOff, ibPLE, 1088, 4858, Helper::getHeight(0)); // id:20 + +// addBeacon("F9:CC:C0:A2:02:17", -77+ibOff, ibPLE, 7068, 4518, Helper::getHeight(2)); // idis switchboard +// addBeacon("E5:6F:57:34:94:40", -77+ibOff, ibPLE, 7468, 5108, Helper::getHeight(2)); // idis outside +// addBeacon("C6:FC:6E:25:F5:29", -77+ibOff, ibPLE, 6115, 4527, Helper::getHeight(2)); // idis toni + +// addBeacon("78:A5:04:1E:B1:50", -88+ibOff-4, ibPLE, 6108, 4528, Helper::getHeight(1)); // i.1.47 +// addBeacon("78:A5:04:1F:91:41", -88+ibOff-4, ibPLE, 6508, 4038, Helper::getHeight(1)); // fachschaft +// addBeacon("78:A5:04:1F:8E:35", -88+ibOff-4, ibPLE, 6313, 4038, Helper::getHeight(1)); // neben fachschaft + +//// addBeacon("00:07:80:78:F7:B3", -82, ibPLE, 1038, 4018, 3); +//// addBeacon("78:A5:04:1F:93:02", -88, ibPLE, 1538, 4038, 3); +// addBeacon("78:A5:04:1F:91:08", -88, ibPLE, 1448, 4538, 3); +// addBeacon("78:A5:04:1F:93:02", -88, ibPLE, 2028, 4528, 3); + + } + + /** get the AP behind the given MAC (if any) */ + const PositionedWifiAP* getAP(const MACAddress& mac) const { + auto it = aps.find(mac); + if (it == aps.end()) {return nullptr;} + return (it->second); + } + + /** get the Beacon behind the given MAC (if any) */ + const PositionedBeacon* getBeacon(const MACAddress& mac) const { + auto it = beacons.find(mac); + if (it == beacons.end()) {return nullptr;} + return (it->second); + } + +private: + + /** add a new known AP */ + void addAP(const std::string& mac, const std::string& room, const double x_cm, const double y_cm, const int floor, const double tx, const double pl) { + std::string mac2 = mac; + //mac2[mac2.length()-1] = '9'; + PositionedWifiAP* pap = new PositionedWifiAP(MACAddress(mac2), room, tx, pl, x_cm, y_cm, floor); + aps[mac2] = pap; + } + + /** add a new known Beacon */ + void addBeacon(const std::string& mac, const double tx, const double pl, const double x_cm, const double y_cm, const int floor) { + PositionedBeacon* pap = new PositionedBeacon(MACAddress(mac), tx, pl, x_cm, y_cm, floor); + beacons[mac] = pap; + } + +// // access points +// PositionedWifiAP aps[] = { + +//// // 3rd floor (excat AP position) +//// PositionedWifiAP(MACAddress("00:04:96:6b:64:90"), "i.3.20", 290, 1300, 3), +//// PositionedWifiAP(MACAddress("00:04:96:6b:70:c0"), "i.3.25", 290, 3930, 3), +//// PositionedWifiAP(MACAddress("00:04:96:6b:82:70"), "i.3.16", 1860, 3400, 3), +//// PositionedWifiAP(MACAddress("00:04:96:77:ed:f0"), "i.3.39", 4700, 4850, 3), +//// PositionedWifiAP(MACAddress("00:04:96:77:ed:60"), "i.3.3", 6460, 3400, 3), + +//// // 2nd floor (vague AP position) +//// PositionedWifiAP(MACAddress("00:04:96:6c:3a:a9"), "I.2.1", 6300, 3600, 2), +//// PositionedWifiAP(MACAddress("00:04:96:6b:bf:89"), "I.2.8", 3300, 3500, 2), +//// PositionedWifiAP(MACAddress("00:04:96:77:ec:a9"), "I.2.15", 300, 1300, 2), +//// PositionedWifiAP(MACAddress("00:04:96:6b:0c:c9"), "I.2.19", 300, 4000, 2), +//// PositionedWifiAP(MACAddress("00:04:96:6b:db:69"), "I.2.34", 4400, 4800, 2), + +//// // 1st floor (vague AP position) +//// PositionedWifiAP(MACAddress("00:04:96:6c:cf:19"), "I.1.2", 5700, 3500, 1), +//// PositionedWifiAP(MACAddress("00:04:96:7d:07:79"), "I.1.9", 1800, 3300, 1), +//// PositionedWifiAP(MACAddress("00:04:96:69:48:89"), "I.1.17", 1500, 300, 1), +//// PositionedWifiAP(MACAddress("00:04:96:77:eb:99"), "I.1.21", 500, 1700, 1), +//// PositionedWifiAP(MACAddress("00:04:96:6b:45:59"), "I.1.30", 800, 4800, 1), +//// PositionedWifiAP(MACAddress("00:04:96:77:ed:89"), "I.1.43", 4600, 4800, 1), + +// }; + +}; + +extern Settings settings; + +#endif // SETTINGS_H diff --git a/code/frank/WiFiAP.h b/code/frank/WiFiAP.h new file mode 100755 index 0000000..42cb6b5 --- /dev/null +++ b/code/frank/WiFiAP.h @@ -0,0 +1,45 @@ +#ifndef WIFIAP_H +#define WIFIAP_H + +#include "MACAddress.h" +#include + + +/** + * represents a WiFi-AccessPoint + * an AP is represented by its MAC-Address and + * may provide a readably SSID + */ +class WiFiAP { + +public: + + /** the AP's MAC-Address */ + const MACAddress mac; + + /** the AP's readable SSID */ + const std::string ssid; + + /** AP tx-power */ + const float tx; + + /** path loss for this ap. for testing */ + const float pl; + + + +public: + + /** ctor */ + WiFiAP(const MACAddress& mac, const std::string& ssid, const double tx, const double pl) : mac(mac), ssid(ssid), tx(tx), pl(pl) { + ; + } + + /** ctor */ + WiFiAP(const std::string& mac, const std::string& ssid, const double tx, const double pl) : mac(mac), ssid(ssid), tx(tx), pl(pl) { + ; + } + +}; + +#endif // WIFIAP_H diff --git a/code/frank/WiFiEvaluation.h b/code/frank/WiFiEvaluation.h new file mode 100755 index 0000000..2568c25 --- /dev/null +++ b/code/frank/WiFiEvaluation.h @@ -0,0 +1,128 @@ +#ifndef WIFIEVALUATION_H +#define WIFIEVALUATION_H + +#include "../particles/MyState.h" +#include "WiFiObservation.h" +#include "PositionedWiFiAP.h" +#include "Settings.h" +#include "../particles/MyObservation.h" + +#include + + + +class WiFiEvaluation { + +private: + + Settings settings; + WiFiObservation obs; + WiFiObservationEntry strongest; + +public: + + void nextObservation(const WiFiObservation& _obs) { + + if (_obs.entries.empty()) {return;} + + obs = filter(_obs); + strongest = getStrongest(&obs); + + } + + double getProbability(const MyState& state, const MyObservation& observation) const { + + if (obs.entries.empty()) {return 1.0;} + double prob = 0;//1.0; + + //const double tx = -48; // tablet + //const double pl = 3.15; + const float waf = 8;//10.0; // was 7 before?! has something todo with the floor heights / levels + + // get the ap the client had the strongest measurement for + //const PositionedWifiAP* relAP = settings.getAP(strongest.mac); assert(relAP); + //const double distToStrongest_m = state.getDistance2D(relAP->xCM, relAP->yCM) / 100.0; + //const double strongestFloorDist = std::abs(relAP->zNr - state.z_nr); + //const double mdlStrongestRSSI = distanceToRssi(relAP->tx, distToStrongest_m, relAP->pl) - (strongestFloorDist * waf); + + // process each detected AP + for (const WiFiObservationEntry& entry : obs.entries) { + + // get the AP data from the settings + const PositionedWifiAP* ap = settings.getAP(entry.mac); assert(ap); + + // distance (in meter) between particle and AP + const float distToAP_m = state.pCur.getDistance(*ap) / 100.0; + + // floor difference? + const float floorDiff = std::abs(Helper::getFloorNrFloat(ap->z) - Helper::getFloorNrFloat(state.pCur.z)); + //const float floorDiff = std::round(std::abs(Helper::getFloorNr(ap->z) - Helper::getFloorNr(state.pCur.z))); + + //const float floorDiff = std::abs(ap->z - state.pCur.z) / 340; + + // estimate the rssi depending on above distance + const double mdlRSSI = distanceToRssi(ap->tx, distToAP_m, ap->pl) - (floorDiff * waf); + + // the measured rssi + const double realRSSI = entry.rssi; + + // the measured relative rssi + //const double realRelRSSI = strongest.rssi - realRSSI; + //const double mdlRelRSSI = mdlStrongestRSSI - mdlRSSI; + + // probability? (sigma grows with measurement's age) + const double sigma = (8) + ((observation.latestSensorDataTS - entry.ts) / 1000.0) * 3.5; + const double p = K::NormalDistribution::getProbability(mdlRSSI, sigma, realRSSI); // absolute + //const double p = K::NormalDistribution::getProbability(mdlRelRSSI, sigma, realRelRSSI); // relative + + //prob *= p; + prob += std::log(p); + + } + + //const double lambda = 0.05;//0.15; //0.12; + //return lambda * exp(- lambda * (-prob)); + return std::pow(std::exp(prob), 0.1); +// if (prob < -30) {return 0.01;} +// if (prob < -15) {return 0.50;} +// else {return 1.00;} + + + //return prob; + + } + + WiFiObservation filter(const WiFiObservation& obs) const { + + WiFiObservation out; + for (const WiFiObservationEntry& entry : obs.entries) { + // alter the mac + WiFiObservationEntry ne = entry; + //ne.mac[ne.mac.length()-1] = '0'; // enabled = VAP grouping. also adjust settings to use ending "0" + if (settings.getAP(ne.mac)) {out.entries.push_back(ne);} + } + return out; + + } + + /** get the strongest AP within all measurements */ + WiFiObservationEntry getStrongest(const WiFiObservation* obs) const { + WiFiObservationEntry max = obs->entries.front(); + for (const WiFiObservationEntry& entry : obs->entries) { + if (entry.rssi > max.rssi) {max = entry;} + } + return max; + } + + static double rssiToDistance(double txPower, double rssi, double pathLoss) { + return pow(10, (txPower - rssi) / (10 * pathLoss)); + } + + static double distanceToRssi(double txPower, double distance, double pathLoss) { + if (distance <= 1) {return txPower;} + return (txPower - (10 * pathLoss * log10(distance))); + } + +}; + +#endif // WIFIEVALUATION_H diff --git a/code/frank/WiFiHelper.h b/code/frank/WiFiHelper.h new file mode 100755 index 0000000..42e7ffe --- /dev/null +++ b/code/frank/WiFiHelper.h @@ -0,0 +1,4 @@ +#ifndef WIFIHELPER_H +#define WIFIHELPER_H + +#endif // WIFIHELPER_H diff --git a/code/frank/WiFiObservation.h b/code/frank/WiFiObservation.h new file mode 100755 index 0000000..81493fd --- /dev/null +++ b/code/frank/WiFiObservation.h @@ -0,0 +1,23 @@ +#ifndef WIFIOBSERVATION_H +#define WIFIOBSERVATION_H + +#include "MACAddress.h" +#include + +/** one observed AP and its signal strength */ +struct WiFiObservationEntry { + uint64_t ts; + std::string mac; + int freq; + int rssi; + WiFiObservationEntry() {;} + WiFiObservationEntry(const uint64_t ts, const std::string& mac, const int freq, const int rssi) : ts(ts), mac(mac), freq(freq), rssi(rssi) {;} +}; + +/** all APs observed during one scan */ +struct WiFiObservation { + + std::vector entries; +}; + +#endif // WIFIOBSERVATION_H diff --git a/code/frank/WiFiSensorReader.h b/code/frank/WiFiSensorReader.h new file mode 100755 index 0000000..585b6b3 --- /dev/null +++ b/code/frank/WiFiSensorReader.h @@ -0,0 +1,46 @@ +#ifndef WIFISENSORREADER_H +#define WIFISENSORREADER_H + +#include "../reader/SensorReader.h" +#include "WiFiObservation.h" + +#include + +class WiFiSensorReader { + +public: + + /** get wifi observation data from one CSV entry */ + static WiFiObservation readWifi(const SensorEntry& se) { + + std::string tmp = se.data; + WiFiObservation obs; + + // process all APs + while(!tmp.empty()) { + + std::string mac = tmp.substr(0, 17); + tmp = tmp.substr(17); + assert(tmp[0] == ';'); tmp = tmp.substr(1); + + std::string freq = tmp.substr(0, 4); + tmp = tmp.substr(4); + assert(tmp[0] == ';'); tmp = tmp.substr(1); + + int pos = tmp.find(';'); + std::string rssi = tmp.substr(0, pos); + tmp = tmp.substr(pos); + assert(tmp[0] == ';'); tmp = tmp.substr(1); + + WiFiObservationEntry e(se.ts, mac, std::stoi(freq), std::stoi(rssi)); + obs.entries.push_back(e); + + } + + return obs; + + } + +}; + +#endif // WIFISENSORREADER_H diff --git a/code/lukas/ReadMe.txt b/code/lukas/ReadMe.txt new file mode 100755 index 0000000..ecf47a3 --- /dev/null +++ b/code/lukas/ReadMe.txt @@ -0,0 +1,14 @@ +Python Skripte: +StepDetector.py TurnDetector.py + +Benötigt wird Python2.7, scipy und numpy, sowie zum plotten matplotlib + +Benötigte Parameter: +1. Input-Datei +2. Output-Datei + +Beispiel: +python StepDetector.py ./FH_Sensor.csv Steps.txt +python TurnDetector.py ./FH_Sensor.csv Turns.txt + +Weitere optimale Parameter mit -h aufrufbar diff --git a/code/lukas/StepDetector.py b/code/lukas/StepDetector.py new file mode 100755 index 0000000..a7a8aa9 --- /dev/null +++ b/code/lukas/StepDetector.py @@ -0,0 +1,278 @@ +import numpy as np +import matplotlib.pyplot as plt +from scipy.signal import argrelmax +import sys +import math +import argparse + + +def rotate_data_fhws(data, data_t, rotation, rotation_t): + #Invert rotationmatrix + np.linalg.inv(rotation) + + #Align rotation time according to data time + tmp = [] + for t in data_t: + # Find indices of roation matrix that are earlier + #than the current time of the sensor value + ind = np.where(rotation_t <= t)[0] + + #Use the last index + if len(ind) != 0: + tmp.append(ind[-1]) + else: + tmp.append(0) + + #Only use the values of the rotation matrix that are aligned with the sensor data + rotation = rotation[tmp] + + # Multiply data with rotationmatrix + rot_data = [] + for i, row in enumerate(data): + row = np.append(row, 1) + rot_data.append(np.dot(rotation[i], row)) + + return np.array(rot_data) + + + + +def rotate_data_lukas(data, rotation): + #Invert rotationmatrix + np.linalg.inv(rotation) + + rot_data = [] + for i, row in enumerate(data): + row = np.append(row, 1) + rot_data.append(np.dot(rotation[i], row)) + + return np.array(rot_data) + +def magnitude(x, y, z): + ret = [math.sqrt(i) for i in (x**2 + y**2 + z**2)] + mean = np.mean(ret) + ret -= mean + return ret + +def count_steps(time, signal, lt, ht, dead): + """ + Find steps in the accelerometer signal. + After a step was found, a "dead" period exists, where no step can be found again. + This is to avoid too many steps + + Parameters + ---------- + time: array_like + Timestaps of accelerometer signal + Must have same length as signal + signal: array_like + Accelerometer signal of all three axis. + Must have same length as time + lt: float + Low threshold, which must be exceeded by the accelerometer signal to be counted as step + ht: float + High treshold, which must not be exceeded by the accelerometer signal to be counted as step + dead: float + After a step was detected, during the dead time no other step will be found. + Given in milliseconds + """ + + time_signal = zip(time, signal) + dead_time = 0 + + steps = [] + for i in time_signal: + if lt < i[1] < ht and i[0] > dead_time: + steps.append(i[0]) + dead_time = i[0] + dead + + return np.array(steps) + + + + +def write_steps_to_file(fname, steps): + f = open(fname, 'w') + + print steps + for s in steps: + f.write(str(s) + "\n") + + f.close() + +def plot_steps(time, signal, steps): + plt.title("Step detection") + plt.xlabel("ms") + plt.ylabel("Accelerometer magnitude") + plt.plot(time, signal, label="Accelerometer") + + s = [] + for i,t in enumerate(time): + if t in steps: + s.append((t, signal[i])) + + s = np.array(s) + plt.plot(s[:,0], s[:,1], 'ro', label = "Steps") + + + + plt.legend(numpoints=1) + plt.show() + + + +def read_data(fname): + time = np.loadtxt(fname, + delimiter=";", + usecols=[0], + unpack=True) + + f = open(fname, 'r') + + accls = [] + accls_t = [] + rotations = [] + rotations_t = [] + start = time[0] + + for line in f: + line = line.split(";") + t = int(line[0]) - start + + #Lin Accel + if line[1] == "2": + accls_t.append(t) + accls.append((line[2], line[3], line[4])) + + #Rotation + elif line[1] == "7": + rotations_t.append(t) + rotations.append((line[2], line[3], line[4], line[5], + line[6], line[7], line[8], line[9], + line[10], line[11], line[12],line[13], + line[14], line[15], line[16], line[17])) + + + accls = np.array(accls, dtype=float) + accls_t = np.array(accls_t, dtype=int) + + rotations = np.array(rotations, dtype=float) + rotations = [row.reshape((4,4)) for row in rotations] + rotations = np.array(rotations) + rotations_t = np.array(rotations_t, dtype=int) + + return accls, accls_t, rotations, rotations_t + + +def main(): + + parser = argparse.ArgumentParser() + parser.add_argument("fname_sensor", + help = "Accelerometer file") + parser.add_argument("fname_output", + help = "Output file, where timestamps of steps will be saved") + parser.add_argument("--dead", + help = "Time span (in ms) after a detected step in which no additional step will be detected (default=600)", + type=int) + parser.add_argument("--lt", + help = "Low threshold, which must be exceeded by the accelerometer signal to be counted as step (default=1.5)", + type=float) + parser.add_argument("--ht", + help = "High treshold, which must not be exceeded by the accelerometer signal to be counted as step(default=6.5)", + type=float) + parser.add_argument("--plot", + help = "Plot step detection", + action="store_true") + parser.add_argument("--file_format", + help = "Sensor data file format [fhws|lukas] (default: fhws)", + type = str) + + args = parser.parse_args() + + file_format = "fhws" + + if args.file_format: + file_format = args.file_format + + #My own data format + if file_format == "lukas": + + delimiter = ',' + time_cols = [40] + accel_cols = [6,7,8] + + time = np.loadtxt(args.fname_sensor, + delimiter=delimiter, + usecols=time_cols, + skiprows=2, + unpack=True) + + accelX, accelY, accelZ = np.loadtxt(args.fname_sensor, + delimiter=delimiter, + usecols=accel_cols, + skiprows=2, + unpack=True) + + rotation = np.loadtxt(args.fname_sensor, + delimiter = delimiter, + usecols=range(18,34), + skiprows=1, + unpack=True) + + rotations = rotation.T + rotations = [row.reshape((4,4)) for row in rotations] + accl = np.array([accelX, accelY, accelZ]).T + world_accl = rotate_data_lukas(accl, rotations) + + #FHWS file format + else: + accls, time, rotation, rotation_t = read_data(args.fname_sensor) + world_accl = rotate_data_fhws(accls, time, rotation, rotation_t) + + accelX = world_accl[:,0] + accelY = world_accl[:,1] + accelZ = world_accl[:,2] + + accel_mag = magnitude(accelX, accelY, accelZ) + + lt = 1.5 + ht = 6.5 + dead = 600 + + if args.dead: + dead = args.dead + if args.lt: + lt = args.lt + if args.ht: + ht = args.ht + + steps = count_steps(time, accel_mag, lt, ht, dead) + print("#Steps detected: ", len(steps)) + write_steps_to_file(args.fname_output, steps) + + if args.plot: + plot_steps(time, accel_mag, steps) + + +if __name__ == "__main__": + main() + + + + + + + + + + + + + + + + + + + + diff --git a/code/lukas/StepEvaluation.h b/code/lukas/StepEvaluation.h new file mode 100755 index 0000000..c39c269 --- /dev/null +++ b/code/lukas/StepEvaluation.h @@ -0,0 +1,55 @@ + +#ifndef STEPEVALUATION_H +#define STEPEVALUATION_H + + + +#include "../particles/MyState.h" +#include "StepObservation.h" +#include + +static constexpr double mu_walk = 90; +static constexpr double sigma_walk = 30; +static constexpr double mu_stop = 0; +static constexpr double sigma_stop = 5; + +class StepEvaluation { + +public: + + double getProbability(const MyState& state, const StepObservation* obs) const { + + (void) state; + (void) obs; + + return 1; + + // see: particle-filter-control-data +// const float mdlWalked_m = state.walkState.distanceWalked_m; + +// ((MyState&)state).walkState.distanceWalked_m = 0; + +// const float stepSize_m = 0.71; +// const float sensSigma_m = 0.05 + (0.05 * obs->steps); +// const float sensWalked_m = obs->steps * stepSize_m; + +// if (obs->steps > 1) { +// int i = 0; +// int j = i+1; ++j; +// } + +// const double prob = K::NormalDistribution::getProbability(sensWalked_m, sensSigma_m, mdlWalked_m); + +// if (prob != prob) { +// throw 1; +// } + +// return prob; + + } + +}; + + + +#endif // STEPEVALUATION_H diff --git a/code/lukas/StepObservation.h b/code/lukas/StepObservation.h new file mode 100755 index 0000000..30750d1 --- /dev/null +++ b/code/lukas/StepObservation.h @@ -0,0 +1,17 @@ +#ifndef STEPOBSERVATION_H +#define STEPOBSERVATION_H + +struct StepObservation { + + float ts; + + int steps = 0; + + StepObservation() {;} + + StepObservation(const float ts) : ts(ts), steps(0) {;} + +}; + + +#endif // STEPOBSERVATION_H diff --git a/code/lukas/StepReader.h b/code/lukas/StepReader.h new file mode 100755 index 0000000..893a299 --- /dev/null +++ b/code/lukas/StepReader.h @@ -0,0 +1,25 @@ +#ifndef STEPREADER_H +#define STEPREADER_H + +#endif // STEPREADER_H + +#include "../SensorReaderStep.h" + +class StepReader { +public: + static StepObservation* readStep(const SensorEntryStep& se) { + + std::string tmp = se.data; + StepObservation* obs = new TurnObservation(); + + while(!tmp.empty()) { + std::string angle = tmp; + + StepObservation t(std::stof(angle)); + } + + return obs; + } + + +}; diff --git a/code/lukas/TurnDetector.py b/code/lukas/TurnDetector.py new file mode 100755 index 0000000..6e31953 --- /dev/null +++ b/code/lukas/TurnDetector.py @@ -0,0 +1,445 @@ +import numpy as np +import sys +import scipy.integrate +import math +import argparse +from sklearn.decomposition import PCA +import scipy.signal as signal + + +def project(v1, v2): + """ + Project vector v1 on v2 + Return projected vector + """ + + p = [np.dot(a, g) / np.dot(g,g) for a,g in zip(v1, v2)] + p = np.array(p) + + p = [p*g for p,g in zip(p, v2)] + p = np.array(p) + + return p + + +def motion_axis(time, lin_accel, gravity, interval = 500): + """ + Returns the motion axis, which is the axis with the biggest variance + lin_accel -- Linear acceleration + gravity -- Gravity + + Lin_accel and gravity should have equal length + """ + + p = project(lin_accel, gravity) + + #add time to vector p + p = np.array([time, p[:,0], p[:,1], p[:,2]]).T + + start = 0 + end = start + interval + end_time = p[:,0][-1] #last timestep + + pca = PCA(n_components=1) + + result = [] + while start < end_time: + indices = np.where((p[:,0] >= start) & (p[:,0] < end)) + Z = p[indices, 1:3][0] + Z[:,0] = signal.medfilt(Z[:,0],31) + Z[:,1] = signal.medfilt(Z[:,1],31) + + pca.fit(Z) + + x1 = pca.components_[0][0] + y1 = pca.components_[0][1] + + result.append((end, x1, y1)) + + start += interval + end += interval + + return np.array(result) + + + +def angle_between(v1, v2): + + l_a = np.linalg.norm(v1) + l_b = np.linalg.norm(v2) + cos_ab = np.dot(v1, v2 / (l_a * l_b)) + angle = np.arccos(cos_ab) * 180/math.pi + + return min([180 - angle, angle]) + + + +def rotate_data_fhws(data, data_t, rotation, rotation_t): + #Invert rotationmatrix + np.linalg.inv(rotation) + + #Align rotation time according to data time + tmp = [] + for t in data_t: + # Find indices of roation matrix that are earlier + #than the current time of the sensor value + ind = np.where(rotation_t <= t)[0] + + #Use the last index + if len(ind) != 0: + tmp.append(ind[-1]) + else: + tmp.append(0) + + #Only use the values of the rotation matrix that are aligned with the sensor data + rotation = rotation[tmp] + + # Multiply data with rotation matrix + rot_data = [] + for i, row in enumerate(data): + row = np.append(row, 1) + rot_data.append(np.dot(rotation[i], row)) + + return np.array(rot_data) + + + + +def rotate_data_lukas(data, rotation): + #Invert rotationmatrix + np.linalg.inv(rotation) + + rot_data = [] + for i, row in enumerate(data): + row = np.append(row, 1) + rot_data.append(np.dot(rotation[i], row)) + + return np.array(rot_data) + + + + +def read_data(fname): + """ + Read the data out of the file provided by FHWS sensor reader app + """ + + + time = np.loadtxt(fname, + delimiter=";", + usecols=[0], + unpack=True) + + + f = open(fname, 'r') + + lin_accel = [] + gyros = [] + rotations = [] + gravity = [] + start = time[0] + time = [] + + gyro_tmp = [0, 0, 0] + lin_accel_tmp = [0, 0, 0] + gravity_tmp = [0, 0, 9.81] + rotations_tmp = 16*[-1] + + s = 0 + for line in f: + line = line.split(";") + t = int(line[0]) - start + + + #Gyro-Data + if line[1] == "3": + gyro_tmp[0] = line[2] + gyro_tmp[1] = line[3] + gyro_tmp[2] = line[4] + + + #Linear Acceleration-Data + elif line[1] == "2": + lin_accel_tmp[0] = line[2] + lin_accel_tmp[1] = line[3] + lin_accel_tmp[2] = line[4] + + + #Gravity data + elif line[1] == "1": + gravity_tmp[0] = line[2] + gravity_tmp[1] = line[3] + gravity_tmp[2] = line[4] + + + #Rotation-Data + elif line[1] == "7": + for i in range(0,16): + rotations_tmp[i] = line[i+2] + + + if s != t: + gyros.append(gyro_tmp[:]) + lin_accel.append(lin_accel_tmp[:]) + gravity.append(gravity_tmp[:]) + rotations.append(rotations_tmp[:]) + time.append(t) + s = t + + + gyros = np.array(gyros, dtype=float) + lin_accel = np.array(lin_accel, dtype=float) + gravity = np.array(gravity, dtype=float) + rotations = np.array(rotations, dtype=float) + time = np.array(time, dtype = int) + + #HACK + #In the first timestamps the rotation matrix is all zero, because + #no measurements are available yet. + #Avoid this by replacing these lines with the first measured + #rotation matrix + ind = np.where(rotations[:,0] == -1)[0] + if len(ind) != 0: + index = ind[-1] + 1 + rotations[ind] = rotations[index] + + #Reshape matrix + rotations = [row.reshape((4,4)) for row in rotations] + rotations = np.array(rotations) + + + return time, gyros, lin_accel, gravity, rotations + + + +def detect_turns(time, signal, interval): + + n_intervals = int(time[-1] / interval) + 1 + result = [] + + for i in range(n_intervals): + start = i * interval + end = start + interval + + tmp = integrate(start, end, zip(time, signal)) * 180.0/math.pi + result.append((end, tmp)) + + return np.array(result) + + + +def integrate(time_from, time_to, signal): + """Integrate signal from time_from to time_to. Signal should be two dimensional. + First dimension is the timestamp, second dimension is the signal value. + dt is the interval between two recordings + """ + sum = 0 + last_time = 0 + + #go through signal + for value in signal: + #check if time is in the given timespan + if time_from <= value[0] < time_to: + #multiply value with dt and add it to the sum = integral +# sum += value[1] * dt + sum += value[1] * ((value[0] - last_time)/1000.) + last_time = value[0] + + #sum is the integral over rad/s + return sum + + + +def write_to_file(fname, turns, motion): + f = open(fname, 'w') + + for index, t in enumerate(turns): + f.write(str(t[0]) + "," + str(t[1]) + "," + str(motion[index][1]) + "\n") + + f.close() + + + +def deg_to_rad(deg): + return deg * math.pi / 180.0 + + +def rad_to_deg(rad): + return rad * 180.0 / math.pi + + + +def main(): + + parser = argparse.ArgumentParser() + + parser.add_argument("fname_sensor", + help = "Gyroscope file") + + parser.add_argument("fname_output", + help = "Output file, where timestamps and angle of heading will be saved") + + parser.add_argument("--time", + help = "Time interval, over which gyroscope will be integrated (default=500ms)", + type=int) + + parser.add_argument("--rad", + help = "Output angles in rad (default in degree)", + action = "store_true") + + parser.add_argument("--file_format", + help = "Sensor data file format [fhws|lukas] (default: fhws)", + type = str) + + parser.add_argument("--cosy", + help = "Coordinate system of the gyroscope data [world|device] (default: device). If given in device, the data will automatically be rotated in world coordinates.", + type = str) + + + args = parser.parse_args() + + + #Choose between file format of sensor data and coordinate system + file_format = "fhws" + cosy = "device" + + if args.file_format: + file_format = args.file_format + + if args.cosy: + cosy = args.cosy + + + #My own data format + if file_format == "lukas": + delimiter = "," + time_cols = [40] + + time = np.loadtxt(args.fname_sensor, + delimiter=delimiter, + usecols=time_cols, + skiprows = 1, + unpack=True) + + if cosy == "device": + gyros_cols = [9, 10, 11] + lin_accel_cols = [6, 7, 8] + else: + gyros_cols = [34, 35,36] + lin_accel_cols = [37, 38, 39] + + grav_cols = [3, 4, 5] + + + gyroX, gyroY, gyroZ = np.loadtxt(args.fname_sensor, + delimiter=delimiter, + usecols=gyros_cols, + skiprows = 1, + unpack=True) + + rotation = np.loadtxt(args.fname_sensor, + delimiter = delimiter, + usecols=range(18,34), + skiprows=1, + unpack=True) + + lin_accel_X, lin_accel_Y, lin_accel_Z = np.loadtxt(args.fname_sensor, + delimiter=delimiter, + usecols=lin_accel_cols, + skiprows=1, + unpack=True) + + gravity_X, gravity_Y, gravity_Z = np.loadtxt(args.fname_sensor, + delimiter=delimiter, + usecols=grav_cols, + skiprows=1, + unpack=True) + + rotation = rotation.T + rotation = [row.reshape((4,4)) for row in rotation] +# rotation = np.array(rotation).T + print rotation + + gyro = np.array([gyroX, gyroY, gyroZ]).T + lin_accel = np.array([lin_accel_X, lin_accel_Y, lin_accel_Z]).T + gravity = np.array([gravity_X, gravity_Y, gravity_Z]).T + + if cosy == "device": + world_gyro = rotate_data_lukas(gyro, rotation) + world_lin_accel = rotate_data_lukas(lin_accel, rotation) + else: + world_gyro = gyro + world_lin_accel = lin_accel + + + #FHWS file format + else: + time, gyro, lin_accel, gravity, rotation = read_data(args.fname_sensor) + + if cosy == "device": + world_gyro = rotate_data_lukas(gyro, rotation) + world_lin_accel = rotate_data_lukas(lin_accel, rotation) + else: + print "Option 'fhws' in combination with 'world' not available" + return + + + gyroX = world_gyro[:,0] + gyroY = world_gyro[:,1] + gyroZ = world_gyro[:,2] + + lin_accel_X = world_lin_accel[:,0] + lin_accel_Y = world_lin_accel[:,1] + lin_accel_Z = world_lin_accel[:,2] + + + #Parameters + #--------- + + time_interval = 500 + + if args.time: + time_interval = args.time + + + turns = detect_turns(time, gyroZ, time_interval) + motion = motion_axis(time, lin_accel, gravity, 500) + + angles = [] + for index, axis in enumerate(motion): + if index == 0: + angle = 0 + else: + x_1 = motion[index-1][1] + y_1 = motion[index-1][2] + x_2 = axis[1] + y_2 = axis[2] + + a = np.array([x_1, y_1]) + b = np.array([x_2, y_2]) + + angle = angle_between(a,b) + angles.append((axis[0], angle)) + + + np.set_printoptions(suppress=True) + turns = np.array(turns) + angles = np.array(angles) + + + if args.rad: + turns[:,1] = deg_to_rad(turns[:,1]) + + print "Sum of all angles: ", np.sum(turns[:,1]) + write_to_file(args.fname_output, turns, angles) + + + +if __name__ == "__main__": + main() + + + + + + diff --git a/code/lukas/TurnEvaluation.h b/code/lukas/TurnEvaluation.h new file mode 100755 index 0000000..4b26bfe --- /dev/null +++ b/code/lukas/TurnEvaluation.h @@ -0,0 +1,49 @@ +#ifndef TURNEVALUATION_H +#define TURNEVALUATION_H + + +#include "../particles/MyState.h" +#include "TurnObservation.h" +//#include +#include + +//static constexpr double sigma_heading = 5; + +class TurnEvaluation { + + //All calculations use degree not rad!!! + +public: + + double getProbability(const MyState& state, const TurnObservation* obs, bool simple = false) const { + + (void) state; + (void) obs; + (void) simple; + + return 1; + + // see: particle-filter-control-data +// // get the current heading-change +// const float delta = Angle::radToDeg(state.walkState.headingChange_rad); + +// // and reset it as it was evaluated +// ((MyState&) state).walkState.headingChange_rad = 0; + +// // proability? +// const float sigma = 15.0; +// const double prob = K::NormalDistribution::getProbability(obs->delta_heading, sigma, delta); + +// if (prob != prob) { +// throw 1; +// } + +// return prob; + + } + +}; + + + +#endif // TURNEVALUATION_H diff --git a/code/lukas/TurnObservation.h b/code/lukas/TurnObservation.h new file mode 100755 index 0000000..21c34c9 --- /dev/null +++ b/code/lukas/TurnObservation.h @@ -0,0 +1,21 @@ +#ifndef TURNOBSERVATION_H +#define TURNOBSERVATION_H + +#include + + + +struct TurnObservation { + float ts; + float delta_heading; //measured change of heading direction (given by Gyroskop) + float delta_motion; //measured change of motion direction (given by PCA) + + TurnObservation() {;} + TurnObservation(const float delta_heading, const float motion_angle) : delta_heading(delta_heading), delta_motion(motion_angle) {;} + +}; + + + + +#endif // TURNOBSERVATION_H diff --git a/code/lukas/TurnReader.h b/code/lukas/TurnReader.h new file mode 100755 index 0000000..d130eba --- /dev/null +++ b/code/lukas/TurnReader.h @@ -0,0 +1,36 @@ +#ifndef TURNREADER_H +#define TURNREADER_H + +#include "../reader/SensorReaderTurn.h" +#include "TurnObservation.h" + +class TurnReader { +public: + static TurnObservation* readTurn(const SensorEntryTurn& se) { + + std::string tmp = se.data; + TurnObservation* obs = new TurnObservation(); + + while(!tmp.empty()) { + + int pos = tmp.find(','); + std::string heading = tmp.substr(0, pos); + tmp = tmp.substr(pos); + assert(tmp[0] == ';'); tmp = tmp.substr(1); + + std::string motion = tmp; + + TurnObservation t(std::stof(heading), std::stof(motion)); + + + + } + + return obs; + } + + +}; + + +#endif // TURNREADER_H diff --git a/code/lukas/detection.sh b/code/lukas/detection.sh new file mode 100755 index 0000000..ff77b9e --- /dev/null +++ b/code/lukas/detection.sh @@ -0,0 +1,21 @@ +#!/bin/bash +FILES=$(find ../measurements/18/{Galaxy,Nexus}/ -name "*.csv") + +for f in $FILES +do + echo $f + filename=$(basename $f) + directory=$(dirname $f) + + #echo $filename + #echo $directory + + step=$directory/Steps2.txt + turn=$directory/Turns.txt + + echo $step + echo $turn + + python StepDetector.py $f $step --lt -1.2 --ht 1.2 + python TurnDetector.py $f $turn +done diff --git a/code/main.cpp b/code/main.cpp new file mode 100644 index 0000000..4485943 --- /dev/null +++ b/code/main.cpp @@ -0,0 +1,113 @@ + +#include +#include +#include +#include + +#include "Vis.h" +#include "Helper.h" +#include "MyGridNode.h" +#include "Helper.h" +#include "DijkstraMapper.h" + +#include "eval/Eval.h" +#include "eval/Eval1.h" +#include "eval/EvalBase.h" + +#include "eval/PaperVisImportance.h" +#include "eval/PaperVisDijkstra.h" +#include "eval/PaperVisGrid.h" + + +float BarometerEvaluation::barometerSigma = NAN; + +Settings settings; + +void testModelWalk() { + + Grid grid(MiscSettings::gridSize_cm); + + Helper::FHWSFloors floors = Helper::getFloors(); + Helper::buildTheGrid(grid, floors); + + MyGridNode& start = (MyGridNode&)grid.getNodeFor(GridPoint(500,300,floors.h0.cm())); + //MyGridNode& end = (MyGridNode&)grid.getNodeFor(GridPoint(7000,5000,floors.h3.cm())); + + Vis vis; + vis.addFloor(floors.f0, floors.h0); + vis.addFloor(floors.f1, floors.h1); + vis.addFloor(floors.f2, floors.h2); + vis.addFloor(floors.f3, floors.h3); + + + vis.gp << "set xrange [1100:1800]\n"; + vis.gp << "set yrange [4500:5200]\n"; + +// vis.gp << "set xrange [1000:4000]\n"; +// vis.gp << "set yrange [1000:4000]\n"; +// vis.gp << "set zrange [0:600]\n"; + + // switch between different grid-walkers + GridWalkRandomHeadingUpdate walk; + //GridWalkRandomHeadingUpdateAdv walk; + //GridWalkPushForward walk; + //GridWalkLightAtTheEndOfTheTunnel walk(grid, DijkstraMapper(grid), end); + + + std::vector> states; + for (int i = 0; i < 1000; ++i) { states.push_back(GridWalkState(&start, Heading::rnd())); } + +// track the number-of-visits for each node to draw something like a particle-heat-map? + + // show the importance factors + vis.addGrid(grid); + vis.show(); + sleep(100); + vis.removeGrid(); + + Distribution::Normal wDist(0.3, 0.3); + Distribution::Normal wHead(0.3, 0.3); + + while(true) { + for (GridWalkState& state : states) { + state = walk.getDestination(grid, state, std::abs(wDist.draw()), wHead.draw()); + } + usleep(1000*80); + vis.showStates(states); + vis.show(); + } + + sleep(1000); + +} + + + +int main(void) { + +// testModelWalk(); + + Eval1 eval; + //eval.path2_forward_simple(); + //eval.path2_forward_path(); + //eval.path3_forward_simple(); + //eval.path3_forward_path(); + + //eval.path4_nexus_simple(); + //eval.path4_nexus_imp(); + //eval.path4_nexus_path(); + //eval.path4_nexus_path_b(); + + eval.bergwerk_path1_nexus_simple(); + + eval.run(); + +// PaperVisGrid::showStairs(); +// PaperVisImportance::createImportance(); +// PaperVisImportance::createPath(); + + return 0; + +} + + diff --git a/code/particles/MyControl.h b/code/particles/MyControl.h new file mode 100755 index 0000000..cfe5598 --- /dev/null +++ b/code/particles/MyControl.h @@ -0,0 +1,12 @@ +#ifndef MYCONTROL_H +#define MYCONTROL_H + +struct MyControl { + + float walked_m = 0; + + float headingChange_rad = 0; + +}; + +#endif // MYCONTROL_H diff --git a/code/particles/MyEvaluation.h b/code/particles/MyEvaluation.h new file mode 100755 index 0000000..9131b2d --- /dev/null +++ b/code/particles/MyEvaluation.h @@ -0,0 +1,89 @@ +#ifndef MYEVALUATION_H +#define MYEVALUATION_H + +#include +#include "MyObservation.h" +#include "MyState.h" + +#include "../frank/WiFiEvaluation.h" +#include "../frank/BeaconEvaluation.h" +#include "../toni/BarometerEvaluation.h" +#include "../lukas/StepEvaluation.h" +#include "../lukas/TurnEvaluation.h" + +class MyEvaluation : public K::ParticleFilterEvaluation { + +private: + + WiFiEvaluation wifiEval; + BeaconEvaluation beaconEval; + BarometerEvaluation barometerEval; + StepEvaluation stepEval; + TurnEvaluation turnEval; + + bool useWifi = true; + bool useStep = true; + bool useTurn = true; + bool useBaro = true; + bool useIB = true; + +public: + + void setUsage(bool useWifi, bool useStep, bool useTurn, bool useBaro, bool useIB) { + this->useWifi = useWifi; + this->useStep = useStep; + this->useTurn = useTurn; + this->useBaro = useBaro; + this->useIB = useIB; + } + + virtual double evaluation(std::vector>& particles, const MyObservation& observation) override { + + //if (observation.wifi) { + wifiEval.nextObservation(observation.wifi); + //} + + // evalulate each particle + double sum = 0; + for (K::Particle& p : particles) { + + double weight = 1.0; + + if (useWifi) { + weight *= wifiEval.getProbability(p.state, observation); + } + + if (useBaro && observation.barometer) { + weight *= barometerEval.getProbability(p.state, observation.barometer); + } + + if (useIB) { + weight *= beaconEval.getProbability(p.state, observation); + } + + if (useStep) { + weight *= stepEval.getProbability(p.state, observation.step); + } + + if (useTurn) { + weight *= turnEval.getProbability(p.state, observation.turn, true); + } + + // set and accumulate + p.weight = weight; + sum += p.weight; + + } + + // reset + observation.step->steps = 0; + observation.turn->delta_heading = 0; + observation.turn->delta_motion = 0; + + return sum; + + } + +}; + +#endif // MYEVALUATION_H diff --git a/code/particles/MyInitializer.h b/code/particles/MyInitializer.h new file mode 100755 index 0000000..765e971 --- /dev/null +++ b/code/particles/MyInitializer.h @@ -0,0 +1,62 @@ +#ifndef MYINITIALIZER3_H +#define MYINITIALIZER3_H + +#include +#include "MyState.h" + +#include + +class MyInitializer : public K::ParticleFilterInitializer { + +private: + + Grid& grid; + + int x_cm; + int y_cm; + int z_cm; + + int heading; + + + +public: + + /** q0 = random */ + MyInitializer(Grid& grid) : grid(grid), heading(0) { + + } + + /** q0 = given */ + MyInitializer(Grid& grid, int x_cm, int y_cm, int z_cm, int heading) : + grid(grid), x_cm(x_cm), y_cm(y_cm), z_cm(z_cm), heading(heading) { + + } + + virtual void initialize(std::vector>& particles) override { + + std::minstd_rand gen; + std::uniform_int_distribution<> dist(0, grid.getNumNodes()); + + for (K::Particle& p : particles) { + + MyGridNode& n = grid[dist(gen)]; + + //p.state.pCur = Point3(x_cm, y_cm, z_cm); + //GridPoint gp(p.state.pCur.x, p.state.pCur.y, p.state.pCur.z); + //p.state.walkState.node = &grid.getNodeFor(gp); + + p.state.pCur = (Point3) n; + p.state.walkState.node = &n; + + p.state.pOld = p.state.pCur; + p.state.walkState.heading = Heading::rnd(); + p.state.hPa = 0; + + } + + } + +}; + +#endif // MYINITIALIZER_H diff --git a/code/particles/MyObservation.h b/code/particles/MyObservation.h new file mode 100755 index 0000000..e9cca28 --- /dev/null +++ b/code/particles/MyObservation.h @@ -0,0 +1,53 @@ +#ifndef MYOBSERVATION_H +#define MYOBSERVATION_H + +#include "../frank/WiFiObservation.h" +#include "../frank/BeaconObservation.h" +#include "../frank/OrientationObservation.h" + +#include "../toni/BarometerObservation.h" +#include "../lukas/StepObservation.h" +#include "../lukas/TurnObservation.h" + +/** + * all available sensor readings + */ +struct MyObservation { + + /** wifi observation */ + WiFiObservation wifi; + + OrientationObservation orientation; + + /** barometer observation data (if any) */ + BarometerObservation* barometer = nullptr; + + /** beacon observation data */ + BeaconObservation beacons; + + /** step observation data (if any) */ + StepObservation* step = nullptr; + + /** turn observation data (if any) */ + TurnObservation* turn = nullptr; + + /** timestamp of the youngest sensor data that resides within this observation. used to detect the age of all other observations! */ + uint64_t latestSensorDataTS = 0; + + /** ctor */ + MyObservation() { +// reset(); + } + +// /** set all observations to null */ +// void reset() { +// //delete wifi; wifi = nullptr; +// delete barometer; barometer = nullptr; +// delete beacons; beacons = nullptr; +// //delete step; step = nullptr; +// //delete turn; turn = nullptr; +// } + +}; + +#endif // MYOBSERVATION_H diff --git a/code/particles/MyState.h b/code/particles/MyState.h new file mode 100755 index 0000000..f7d238a --- /dev/null +++ b/code/particles/MyState.h @@ -0,0 +1,140 @@ +#ifndef MYSTATE_H +#define MYSTATE_H + +#include +#include + +#include + +#include "../MyGridNode.h" + +/** + * one possible state for the pedestrian + * 3D position (x, y, floor-nr) + */ +struct MyState { + + // current position + Point3 pCur; + + // previous position + Point3 pOld; + + // the grid-walk state + GridWalkState walkState; + + //int distanceWalkedCM; + + +// double heading_old; + +// //double transHeading; +// float numZChanges; + +// // cumulative distance (in cm) this particle has taken. to-be-reset by the step detector whenever needed! +// double distanceWalkedCM; + + double hPa; //relative Pressure given by a history with size defined in BarometerSensorReader.h + +// double vertical_acc; //vertical acceleration + +// /** the pedestrian's current heading */ +// double heading; + + /** empty ctor */ + MyState() : pCur(0,0,0), pOld(0,0,0), walkState(nullptr, Heading(0)) { + ; + } + +// /** get the 2D distance between this state and the given x,y (in centimter) */ +// double getDistance2D(const double x_cm, const double y_cm) const { +// const double dx = (x_cm - this->x_cm); +// const double dy = (y_cm - this->y_cm); +// return std::sqrt( (dx*dx) + (dy*dy) ); +// } + +// /** get the 3D distance between this state and the given x,y,floor (in centimter) */ +// double getDistance3D(const double x_cm, const double y_cm, const double floor_height_cm) const { +// const double dx = (x_cm - this->x_cm); +// const double dy = (y_cm - this->y_cm); +// const double dz = (z_nr - this->z_nr) * floor_height_cm; +// return std::sqrt( (dx*dx) + (dy*dy) + (dz*dz) ); +// } + + /** -------- METHODS FOR THE PARTICLE FILTER -------- */ + + MyState& operator += (const MyState& o) { + pCur += o.pCur; + hPa += o.hPa; + //distanceWalked += o.distanceWalked; + return *this; + } + + MyState& operator /= (const double d) { + pCur /= d; + hPa /= d; + //distanceWalked /= d; + return *this; + } + + MyState operator * (const double d) const { + MyState s = MyState(*this); + s.pCur *= d; + s.hPa *= d; + //distanceWalked *= d; + return s; + } + + + // use the default one +// MyState& operator = (const MyState& o) { +// x_cm = o.x_cm; +// y_cm = o.y_cm; +// z_nr = o.z_nr; +// x_cm_old = o.x_cm_old; +// y_cm_old = o.y_cm_old; +// z_nr_old = o.z_nr_old; +// hPa = o.hPa; +// heading_old = o.heading_old; +// heading = o.heading; +// distanceWalkedCM = o.distanceWalkedCM; +// return *this; +// } + + bool belongsToRegion(const MyState& o) const { + return o.pCur.getDistance(pCur) < 700; + } + +// /** rejection for the regional estimator. reject after 150cm distance */ +// bool belongsToRegion(const MyState& o) const { + +//// // do NOT group particles in distinct floors! +//// if (z_nr != o.z_nr) {return false;} + +//// // get the 2D distance +//// double d = (x_cm - o.x_cm)*(x_cm - o.x_cm) + +//// (y_cm - o.y_cm)*(y_cm - o.y_cm); +//// d = std::sqrt(d); + +//// // 2D distance below grouping threshold? +//// return d < 350.0; + +// const double dx = (x_cm - o.x_cm); +// const double dy = (y_cm - o.y_cm); +// const double dz = (z_nr - o.z_nr) * 3000; + +// // get the 2D distance +// double d = dx*dx + dy*dy + dz*dz; +// d = std::sqrt(d); +// return d < 350.0; + +// } + + + +// MyState(K::NumOptVector<3>& params) : x_cm(params[0]), y_cm(params[1]), z_cm(params[2]) {;} + + +}; + +#endif // MYSTATE_H diff --git a/code/particles/MyTransition.h b/code/particles/MyTransition.h new file mode 100755 index 0000000..b2cec56 --- /dev/null +++ b/code/particles/MyTransition.h @@ -0,0 +1,125 @@ +#ifndef MYTRANSITION_H +#define MYTRANSITION_H + +#include +#include +#include + + +#include +#include + +#include "MyState.h" +#include "MyControl.h" +//#include "Helper.h" + +#include "../toni/barometric.h" + +#include "../MyGridNode.h" + +inline double sgn(double x){ + return ((x>0)?1 : ((x<0)?-1 : 1)); +} + +class MyTransition : public K::ParticleFilterTransition { + +private: + + Grid& grid; + GridWalk& walker; + + + /** a simple normal distribution */ + K::UniformDistribution distWalkStop; + K::NormalDistribution distWalkPerSec; + K::NormalDistribution distStop; + + + /** normal distribution for barometer */ + K::NormalDistribution distBaro; + + +public: + + /** + * ctor + * @param choice the choice to use for randomly drawing nodes + * @param fp the underlying floorplan + */ + MyTransition(Grid& grid, GridWalk& walker) : + grid(grid), walker(walker), + distWalkStop(0.0, 1.0), distWalkPerSec(1.0, 0.3), distStop(0.0, 0.1), distBaro(0.3, 0.05) { + + distWalkStop.setSeed(1234); + distWalkPerSec.setSeed(1234); + distStop.setSeed(1234); + + distBaro.setSeed(5678); + + } + +public: + + uint64_t ts = 0; + uint64_t deltaMS = 0; + + /** set the current time in millisconds */ + void setCurrentTime(const uint64_t ts) { + if (this->ts == 0) { + this->ts = ts; + deltaMS = 0; + } else { + deltaMS = ts - this->ts; + this->ts = ts; + } + } + + virtual void transition(std::vector>& particles, const MyControl* control) override { + + for (K::Particle& p : particles) { + + // TODO: depending on the time since the last update + // random distance to move +// const double distance = (distWalkStop.draw() > 0.2) ? (distWalk.draw()) : (distStop.draw()); +// double dist_m = distance * deltaMS / 1000.0; + +// if (dist_m < 0) {dist_m = -dist_m; p.state.heading = rand() % 360;} + + // update the old heading and the other old values + //p.state.walkState.heading = p.state.heading; + p.state.pOld = p.state.pCur; + + +// // 10% stand still, 90% walk +// double dist_m; +// if (distWalkStop.draw() > 0.9) { +// dist_m = std::abs(distStop.draw() * deltaMS / 1000.0); +// } else { +// dist_m = std::abs(distWalkPerSec.draw() * deltaMS / 1000.0); +// } + + // get new destination + //const Node3* dst = choice->getTarget(src, p.state, dist_m); + p.state.walkState = walker.getDestination(grid, p.state.walkState, control->walked_m, control->headingChange_rad ); + + // randomly move the particle within its target grid (box) + // (z remains unchanged!) + //const int grid_size_cm = grid.getGridSize_cm(); + + // new position (x,y) is randomly distributed within the target node + Point3 noise = Point3(0,0,0); // TODO + p.state.pCur = (Point3) *p.state.walkState.node + noise; + + + // update the baromter + p.state.hPa += (p.state.pOld.z - p.state.pCur.z) / 100.0f * 0.105f; + + + } + + } + + +}; + +#endif // MYTRANSITION_H diff --git a/code/particles/MyTransitionSimple.h b/code/particles/MyTransitionSimple.h new file mode 100755 index 0000000..35fcb26 --- /dev/null +++ b/code/particles/MyTransitionSimple.h @@ -0,0 +1,83 @@ +#ifndef MYTRANSITIONSIMPLE_H +#define MYTRANSITIONSIMPLE_H + +#include +#include +#include "MyState.h" +#include "MyControl.h" + +class MyTransitionSimple : public K::ParticleFilterTransition { + +private: + + /** a simple normal distribution */ + K::NormalDistribution distX; + K::NormalDistribution distY; + K::NormalDistribution distZ; + K::NormalDistribution distBaro; + +public: + + /** ctor */ + MyTransitionSimple() : distX(0, 1.0), distY(0, 1.0), distZ(0, 1.0), distBaro(0.3, 0.05) { + distX.setSeed(1234); + distY.setSeed(1235); + distZ.setSeed(1236); + distBaro.setSeed(5678); + } + +public: + + uint64_t ts = 0; + uint64_t deltaMS = 0; + + /** set the current time in millisconds */ + void setCurrentTime(const uint64_t ts) { + if (this->ts == 0) { + this->ts = ts; + deltaMS = 0; + } else { + deltaMS = ts - this->ts; + this->ts = ts; + } + } + + virtual void transition(std::vector>& particles, const MyControl* control) override { + + for (K::Particle& p : particles) { + + p.state.heading_old = p.state.heading; + p.state.x_cm_old = p.state.x_cm; + p.state.y_cm_old = p.state.y_cm; + p.state.z_nr_old = p.state.z_nr; + + p.state.x_cm += (distX.draw() * deltaMS / 1000.0) * 250.0; + p.state.y_cm += (distY.draw() * deltaMS / 1000.0) * 250.0; + p.state.z_nr += (distZ.draw() * deltaMS / 1000.0) * 0.25; + p.state.heading = Helper::angleBetween(p.state.x_cm_old, p.state.y_cm_old, p.state.x_cm, p.state.y_cm); + +// if (p.state.z_nr < 0.5) {p.state.z_nr = 0.5;} +// if (p.state.z_nr > 3.5) {p.state.z_nr = 3.5;} +// if (p.state.x_cm < 0) {p.state.x_cm = 0;} +// if (p.state.y_cm < 0) {p.state.y_cm = 0;} + + + + //update barometer + p.state.hPa += (p.state.z_nr_old - p.state.z_nr) * distBaro.draw(); + + // update walked distance (2D) + const double dx = p.state.x_cm_old - p.state.x_cm; + const double dy = p.state.y_cm_old - p.state.y_cm; + p.state.distanceWalkedCM = std::sqrt((dx*dx) + (dy*dy)); + + + } + + } + + +}; + + +#endif // MYTRANSITIONSIMPLE_H diff --git a/code/plan.svg b/code/plan.svg new file mode 100755 index 0000000..e946f61 --- /dev/null +++ b/code/plan.svg @@ -0,0 +1,4715 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + i.3.46 + i.3.1 + i.3.20 + i.3.25 + + + + i.3.16 + + i.3.39 + + i.3.3 + + + + + + + + + + + 0 + 1 + 2 + 3 + 12 + 25 + 24 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a little shorter.. is a hack + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/plan_new.svg b/code/plan_new.svg new file mode 100644 index 0000000..e93f383 --- /dev/null +++ b/code/plan_new.svg @@ -0,0 +1,4957 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + 26 + 27 + + 28 + 29 + 5 + 32 + 33 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/plan_plots.svg b/code/plan_plots.svg new file mode 100644 index 0000000..4c5e234 --- /dev/null +++ b/code/plan_plots.svg @@ -0,0 +1,355 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/reader/SensorReader.h b/code/reader/SensorReader.h new file mode 100755 index 0000000..c2c0b28 --- /dev/null +++ b/code/reader/SensorReader.h @@ -0,0 +1,66 @@ +#ifndef SENSORREADER_H +#define SENSORREADER_H + +#include + +/** entry for one sensor */ +struct SensorEntry { + + /** timestamp of occurrence */ + uint64_t ts; + + /** sensor's number */ + int idx; + + /** sensor data */ + std::string data; + +}; + +/** read sensor data from CSV */ +class SensorReader { + +private: + + std::string file; + std::ifstream fp; + +public: + + SensorReader(const std::string& file) : file(file) { + rewind(); + } + + bool hasNext() { + return !fp.bad() && !fp.eof(); + } + + /** read the next sensor entry */ + SensorEntry getNext() { + + char delim; + SensorEntry entry; + + fp >> entry.ts; + fp >> delim; + fp >> entry.idx; + fp >> delim; + fp >> entry.data; + + return entry; + + + } + + /** start again */ + void rewind() { + fp.close(); + fp.open(file); + assert(fp.is_open()); + } + + +}; + + +#endif // SENSORREADER_H diff --git a/code/reader/SensorReaderStep.h b/code/reader/SensorReaderStep.h new file mode 100755 index 0000000..6151652 --- /dev/null +++ b/code/reader/SensorReaderStep.h @@ -0,0 +1,49 @@ +#ifndef SENSORREADERSTEP_H +#define SENSORREADERSTEP_H + +#include + +/** entry for one sensor */ +struct SensorEntryStep { + + /** sensor data */ + float ts; //timestamp of the step + + + +}; + +/** read sensor data from CSV */ +class SensorReaderStep { + +private: + + std::ifstream fp; + +public: + + SensorReaderStep(const std::string& file) { + fp.open(file); + assert(fp.is_open()); + } + + bool hasNext() { + return !fp.bad() && !fp.eof(); + } + + /** read the next sensor entry */ + SensorEntryStep getNext() { + + SensorEntryStep entry; + + fp >> entry.ts; + + return entry; + + + } + + +}; + +#endif // SENSORREADERSTEP_H diff --git a/code/reader/SensorReaderTurn.h b/code/reader/SensorReaderTurn.h new file mode 100755 index 0000000..3efaa77 --- /dev/null +++ b/code/reader/SensorReaderTurn.h @@ -0,0 +1,56 @@ +#ifndef SENSORREADERTURN_H +#define SENSORREADERTURN_H + +#include + +/** entry for one sensor */ +struct SensorEntryTurn { + + /** timestamp of occurrence */ + float ts; + + /** sensor data */ + float delta_heading; + float delta_motion; + +}; + +/** read sensor data from CSV */ +class SensorReaderTurn { + +private: + + std::ifstream fp; + +public: + + SensorReaderTurn(const std::string& file) { + fp.open(file); + assert(fp.is_open()); + } + + bool hasNext() { + return !fp.bad() && !fp.eof(); + } + + /** read the next sensor entry */ + SensorEntryTurn getNext() { + + char delim; + SensorEntryTurn entry; + + fp >> entry.ts; + fp >> delim; + fp >> entry.delta_heading; + fp >> delim; + fp >> entry.delta_motion; + + return entry; + + + } + + +}; + +#endif // SENSORREADERTURN_H diff --git a/code/toni/BarometerEvaluation.h b/code/toni/BarometerEvaluation.h new file mode 100755 index 0000000..d830909 --- /dev/null +++ b/code/toni/BarometerEvaluation.h @@ -0,0 +1,65 @@ +#pragma once + +#include "../particles/MyState.h" +#include "BarometerObservation.h" +//#include "barometric.h" +//#include + +static constexpr double g_BarometerObservation = 0.0; + +class BarometerEvaluation { + +public: + + static float barometerSigma;//= 0.12+0.04; + +public: + + double getProbability(const MyState& state, const BarometerObservation* obs) const { + + +// //rho_z + //double barometerSigma = 0.06;//0.12+0.04;//0.09; + +// //The height of the single floor levels. +// const static double floor_height[3] = {4.1, 3.4, 3.4}; + +// if(USE_BAROMETRIC_FORMULAR){ +// //height the particle has climbed. +// double h_1 = 0.0; +// for(int i = std::min(state.z_nr_old, state.z_nr); i < std::max(state.z_nr_old, state.z_nr); i++){ +// h_1 += floor_height[i]; +// } + +// if(h_1 != 0.0){ +// // use the barometric formular to calculate the relative pressure +// // the calculation is done assuming sea level height at every floor. +// double mslp = BarometricFormular::s_getSeaLevelPressure(); +// double pressure = BarometricFormular::s_getAtmosphericPressure(h_1, 297.0); +// barometerSigma = std::abs(mslp - pressure); +// } + +// } +// else { +// // constant value for sigma if we assume all floors are same in height +// barometerSigma = 0.30 / 1.0; //hPa +// } + +// // evaluate the current particle with a normal distribution + const double barometerProbability = K::NormalDistribution::getProbability(state.hPa, barometerSigma, obs->hpa); + +// //Just for the visualization. i'm a lazy bastard + //g_BarometerObservation = obs->hpa; + + assert(barometerProbability == barometerProbability); + assert(state.hPa == state.hPa); + assert(obs->hpa == obs->hpa); + +// //std::cout << barometerProbability << std::endl; + + //return pow(2.0, barometerProbability); + return barometerProbability; + + } + +}; diff --git a/code/toni/BarometerObservation.h b/code/toni/BarometerObservation.h new file mode 100755 index 0000000..2109ba5 --- /dev/null +++ b/code/toni/BarometerObservation.h @@ -0,0 +1,17 @@ +#pragma once + +#include + + +struct BarometerObservation { + + double hpa; + + BarometerObservation() { ; } + BarometerObservation(const float hpa) : hpa(hpa) { + + ;} + +}; + + diff --git a/code/toni/BarometerSensorReader.h b/code/toni/BarometerSensorReader.h new file mode 100755 index 0000000..f1dd065 --- /dev/null +++ b/code/toni/BarometerSensorReader.h @@ -0,0 +1,70 @@ +#pragma once + +//#include "circular.h" +#include "BarometerObservation.h" +#include "../reader/SensorReader.h" +#include + +#include +#include + +//circular_buffer measurementHistory(1000); + + +class BarometerSensorReader{ + +private: + + // NOTE: median or avg? + MovingMedian avg; + MovingMedian avgStart; + + // avg: lower size, median: bigger still fine + static constexpr int avgSize = 10; + static constexpr int startAvgSize = 10; + + // skip the first 1-2 seconds and let the sensor settle itself + uint64_t skipTS = 0; + +public: + + BarometerSensorReader(): avg(avgSize), avgStart(startAvgSize) { + ; + } + + BarometerObservation* readBarometer(const SensorEntry& se) { + + // skip the first few 1.5 seconds + if (skipTS == 0) {skipTS = se.ts;} + if (se.ts - skipTS < 3000) {return nullptr;} + + std::string tmp = se.data; + BarometerObservation* obs = new BarometerObservation(); + const float cur = std::stof(tmp); + + // get the next hPa reading and average it + avg.add(cur); + + // average the first few readings as reference + if (avgStart.getNumUsed() < startAvgSize) { + avgStart.add(cur); + } + + // current average relative to the start-average + obs->hpa = avg.get() - avgStart.get(); + + // done + return obs; + + } + +// //TODO +// void readVerticalAcceleration(const SensorEntry& se){ + +// //Problem: Koordinatensystem LinearAcceleraton ist relativ zum Telefon und nicht zum +// //Weltkoordinatensystem. Brauchen die Beschleunigung nach Oben in Weltkoordinaten. + +// } + + +}; diff --git a/code/toni/TFRingBuffer.h b/code/toni/TFRingBuffer.h new file mode 100755 index 0000000..d215f41 --- /dev/null +++ b/code/toni/TFRingBuffer.h @@ -0,0 +1,52 @@ +#ifndef TFObjectPool_TFRingBuffer_h +#define TFObjectPool_TFRingBuffer_h + +#include +#include + +template class TFRingBuffer { + T *m_buffer; + std::atomic m_head; + std::atomic m_tail; + const size_t m_size; + + size_t next(size_t current) { + return (current + 1) % m_size; + } + +public: + + TFRingBuffer(const size_t size) : m_size(size), m_head(0), m_tail(0) { + m_buffer = new T[size]; + } + + virtual ~TFRingBuffer() { + delete[] m_buffer; + } + + bool push(const T &object) { + size_t head = m_head.load(std::memory_order_relaxed); + size_t nextHead = next(head); + if (nextHead == m_tail.load(std::memory_order_acquire)) { + return false; + } + m_buffer[head] = object; + m_head.store(nextHead, std::memory_order_release); + + return true; + } + + bool pop(T &object) { + size_t tail = m_tail.load(std::memory_order_relaxed); + if (tail == m_head.load(std::memory_order_acquire)) { + return false; + } + + object = m_buffer[tail]; + m_tail.store(next(tail), std::memory_order_release); + return true; + } +}; + + +#endif \ No newline at end of file diff --git a/code/toni/barometric.h b/code/toni/barometric.h new file mode 100755 index 0000000..63a4e52 --- /dev/null +++ b/code/toni/barometric.h @@ -0,0 +1,111 @@ +#define BAROMETRIC + +#ifndef BAROMETRIC +#define BAROMETRIC + +const static double mslp = 980.25; // mean sea level spressure +const static double int_lapse_rate = 0.0065; // a +const static double int_exponent = 5.255; // international barometric formular exponent calculated from (M * g) / (R * a) + +//The height of the single floor levels. +const static double floor_height[5] = {0.0, 4.1, 3.4, 3.4, 3.4}; + + +class BarometricFormular +{ + private: + const double temperature; // T in Kelvin + + const double universal_gas_constant; // R + const double molar_mass; // M + const double gravitational_acceleration; // g + const double lapse_rate; // a + double _exponent; + + public: + + /** ctor */ + BarometricFormular(const double R, const double M, const double g, const double a, const double T): + universal_gas_constant(R), molar_mass(M), gravitational_acceleration(g), lapse_rate(a), temperature(T){ + _exponent = (M * g) / (R * a); + } + + /** ctor only with Temperature*/ + BarometricFormular(const double T) : + universal_gas_constant(8.314), molar_mass(0.02896), gravitational_acceleration(9.80665), lapse_rate(0.0065), temperature(T){ + _exponent = (molar_mass * gravitational_acceleration) / (universal_gas_constant * lapse_rate); + } + + /** Atmospheric Pressure Calculation */ + double getAtmosphericPressure(double p_0, double h_1) const{ + return p_0 * std::pow((1.0 - ((lapse_rate * h_1)/temperature)), _exponent); + } + + /** Atmospheric Pressure Calculation above sea level*/ + double getAtmosphericPressure(double h_1) const{ + return mslp * std::pow((1.0 - ((lapse_rate * h_1)/temperature)), _exponent); + } + + //TODO:: Height from pressure for the general formular + + //Static Functions + + /** International Barometric Formular*/ + static double s_getAtmosphericPressure(double p_0, double h_1, double kelvin){ + return p_0 * std::pow((1.0 - ((int_lapse_rate * h_1)/kelvin)), int_exponent); + } + + /** International Barometric Formular above Sea Level*/ + static double s_getAtmosphericPressure(double h_1, double kelvin){ + return mslp * std::pow((1.0 - ((int_lapse_rate * h_1)/kelvin)), int_exponent); + } + + /** International Barometric Formular above Sea Level at 15 degree*/ + static double s_getAtmosphericPressure(double height_above_sea_level){ + return mslp * std::pow((1.0 - ((int_lapse_rate * height_above_sea_level)/288.15)), int_exponent); + } + + /** Get the height above sea level using a pressure measurment above sea level*/ + static double getHeightAboveSeaLevel(double p, double kelvin){ + // http://www.wolframalpha.com/input/?i=solve+for+h+++p+%3D+980.25*%281+-+0.0065+*+h%2FT%29^5.255 + return 41.4811 * ((3.70882 * kelvin) - (std::pow(p, 0.1902949571836346) * kelvin)); + } + + + /** This is a helper Class only for gnupplot visualization for ipin2015*/ + static double getHeightForVisualizationOnly(double p, double z_0, double kelvin){ + + // the height of the reference (first) pressure measurement + double h_0 = 0.0; + for(int i = 0; i <= z_0; i++){ + h_0 += floor_height[i]; + } + + // pressure value of h_0 above sea level + // we define that the bottom of floor 0 is sea level ;). + double p_0 = s_getAtmosphericPressure(h_0, kelvin); + + // pressure value of the current particle above floor 0 (sea level) + double p_height = p_0 + p; + + // height of the particle above floor 0 (sea level) + return getHeightAboveSeaLevel(p_height, kelvin); + + } + + static double s_getSeaLevelPressure(){ + return mslp; + } + + static double getPressureOfFloorForVizualization(double z, double kelvin){ + + int i = z + 0.5; + double h_z = floor_height[i+1]; + double p_z = s_getAtmosphericPressure(h_z, kelvin); + return std::abs(mslp - p_z); + } + +}; + +#endif // BAROMETRIC + diff --git a/code/toni/circular.h b/code/toni/circular.h new file mode 100755 index 0000000..f0bc8db --- /dev/null +++ b/code/toni/circular.h @@ -0,0 +1,492 @@ +/****************************************************************************** +* $Id: $ +* $Name: $ +* +* Author: Pete Goodliffe +* +* ---------------------------------------------------------------------------- +* Copyright 2002 Pete Goodliffe All rights reserved. +* +* ---------------------------------------------------------------------------- +* Purpose: STL-style circular buffer +* +* ---------------------------------------------------------------------------- +* History: See source control system log. +* +*****************************************************************************/ + +#ifndef CIRCULAR_BUFFER_H +#define CIRCULAR_BUFFER_H + +#include +#include +#include + +/****************************************************************************** +* Iterators +*****************************************************************************/ + +/** +* Iterator type for the circular_buffer class. +* +* This one template class provides all variants of forward/reverse +* const/non const iterators through plentiful template magic. +* +* You don't need to instantiate it directly, use the good public functions +* availble in circular_buffer. +*/ +template //+ const for const iter +class circular_buffer_iterator +{ +public: + + typedef circular_buffer_iterator self_type; + + typedef T cbuf_type; + typedef std::random_access_iterator_tag iterator_category; + typedef typename cbuf_type::value_type value_type; + typedef typename cbuf_type::size_type size_type; + typedef typename cbuf_type::pointer pointer; + typedef typename cbuf_type::const_pointer const_pointer; + typedef typename cbuf_type::reference reference; + typedef typename cbuf_type::const_reference const_reference; + typedef typename cbuf_type::difference_type difference_type; + + circular_buffer_iterator(cbuf_type *b, size_type p) + : buf_(b), pos_(p) {} + + // Converting a non-const iterator to a const iterator + circular_buffer_iterator + (const circular_buffer_iterator + &other) + : buf_(other.buf_), pos_(other.pos_) {} + friend class circular_buffer_iterator; + + // Use compiler generated copy ctor, copy assignment operator and dtor + + elem_type &operator*() { return (*buf_)[pos_]; } + elem_type *operator->() { return &(operator*()); } + + self_type &operator++() + { + pos_ += 1; + return *this; + } + self_type operator++(int) + { + self_type tmp(*this); + ++(*this); + return tmp; + } + + self_type &operator--() + { + pos_ -= 1; + return *this; + } + self_type operator--(int) + { + self_type tmp(*this); + --(*this); + return tmp; + } + + self_type operator+(difference_type n) const + { + self_type tmp(*this); + tmp.pos_ += n; + return tmp; + } + self_type &operator+=(difference_type n) + { + pos_ += n; + return *this; + } + + self_type operator-(difference_type n) const + { + self_type tmp(*this); + tmp.pos_ -= n; + return tmp; + } + self_type &operator-=(difference_type n) + { + pos_ -= n; + return *this; + } + + difference_type operator-(const self_type &c) const + { + return pos_ - c.pos_; + } + + bool operator==(const self_type &other) const + { + return pos_ == other.pos_ && buf_ == other.buf_; + } + bool operator!=(const self_type &other) const + { + return pos_ != other.pos_ && buf_ == other.buf_; + } + bool operator>(const self_type &other) const + { + return pos_ > other.pos_; + } + bool operator>=(const self_type &other) const + { + return pos_ >= other.pos_; + } + bool operator<(const self_type &other) const + { + return pos_ < other.pos_; + } + bool operator<=(const self_type &other) const + { + return pos_ <= other.pos_; + } + +private: + + cbuf_type *buf_; + size_type pos_; +}; + +template +circular_buffer_iterator_t operator+ +(const typename circular_buffer_iterator_t::difference_type &a, +const circular_buffer_iterator_t &b) +{ + return circular_buffer_iterator_t(a) + b; +} + +template +circular_buffer_iterator_t operator- +(const typename circular_buffer_iterator_t::difference_type &a, +const circular_buffer_iterator_t &b) +{ + return circular_buffer_iterator_t(a) - b; +} + + +/****************************************************************************** +* circular_buffer +*****************************************************************************/ + +/** +* This class provides a circular buffer in the STL style. +* +* You can add data to the end using the @ref push_back function, read data +* using @ref front() and remove data using @ref pop_front(). +* +* The class also provides random access through the @ref operator[]() +* function and its random access iterator. Subscripting the array with +* an invalid (out of range) index number leads to undefined results, both +* for reading and writing. +* +* This class template accepts three template parameters: +*
  • T The type of object contained +*
  • always_accept_data_when_full Determines the behaviour of +* @ref push_back when the buffer is full. +* Set to true new data is always added, the +* old "end" data is thrown away. +* Set to false, the new data is not added. +* No error is returned neither is an +* exception raised. +*
  • Alloc Allocator type to use (in line with other +* STL containers). +* +* @short STL style circule buffer +* @author Pete Goodliffe +* @version 1.00 +*/ +template > +class circular_buffer +{ +public: + + enum + { + version_major = 1, + version_minor = 0 + }; + + // Typedefs + typedef circular_buffer + self_type; + + typedef Alloc allocator_type; + + typedef typename Alloc::value_type value_type; + typedef typename Alloc::pointer pointer; + typedef typename Alloc::const_pointer const_pointer; + typedef typename Alloc::reference reference; + typedef typename Alloc::const_reference const_reference; + + typedef typename Alloc::size_type size_type; + typedef typename Alloc::difference_type difference_type; + + typedef circular_buffer_iterator + + iterator; + typedef circular_buffer_iterator + + const_iterator; + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; + + // Lifetime + enum { default_capacity = 100 }; + explicit circular_buffer(size_type capacity = default_capacity) + : array_(alloc_.allocate(capacity)), array_size_(capacity), + head_(1), tail_(0), contents_size_(0) + { + } + circular_buffer(const circular_buffer &other) + : array_(alloc_.allocate(other.array_size_)), + array_size_(other.array_size_), + head_(other.head_), tail_(other.tail_), + contents_size_(other.contents_size_) + { + try + { + assign_into(other.begin(), other.end()); + } + catch (...) + { + destroy_all_elements(); + alloc_.deallocate(array_, array_size_); + throw; + } + } + template + circular_buffer(InputIterator from, InputIterator to) + : array_(alloc_.allocate(1)), array_size_(1), + head_(1), tail_(0), contents_size_(0) + { + circular_buffer tmp; + tmp.assign_into_reserving(from, to); + swap(tmp); + } + ~circular_buffer() + { + destroy_all_elements(); + alloc_.deallocate(array_, array_size_); + } + circular_buffer &operator=(const self_type &other) + { + circular_buffer tmp(other); + swap(tmp); + return *this; + } + void swap(circular_buffer &other) + { + std::swap(array_, other.array_); + std::swap(array_size_, other.array_size_); + std::swap(head_, other.head_); + std::swap(tail_, other.tail_); + std::swap(contents_size_, other.contents_size_); + } + allocator_type get_allocator() const { return alloc_; } + + // Iterators + iterator begin() { return iterator(this, 0); } + iterator end() { return iterator(this, size()); } + + const_iterator begin() const { return const_iterator(this, 0); } + const_iterator end() const { return const_iterator(this, size()); } + + reverse_iterator rbegin() { return reverse_iterator(end()); } + reverse_iterator rend() { return reverse_iterator(begin()); } + + const_reverse_iterator rbegin() const + { + return const_reverse_iterator(end()); + } + const_reverse_iterator rend() const + { + return const_reverse_iterator(begin()); + } + + // Size + size_type size() const { return contents_size_; } + size_type capacity() const { return array_size_; } + bool empty() const { return !contents_size_; } + size_type max_size() const + { + return alloc_.max_size(); + } + void reserve(size_type new_size) + { + if (capacity() < new_size) + { + circular_buffer tmp(new_size); + tmp.assign_into(begin(), end()); + swap(tmp); + } + } + + // Accessing + reference front() { return array_[head_]; } + reference back() { return array_[tail_]; } + const_reference front() const { return array_[head_]; } + const_reference back() const { return array_[tail_]; } + + void push_back(const value_type &item) + { + size_type next = next_tail(); + if (contents_size_ == array_size_) + { + if (always_accept_data_when_full) + { + array_[next] = item; + increment_head(); + } + } + else + { + alloc_.construct(array_ + next, item); + } + increment_tail(); + } + void pop_front() + { + size_type destroy_pos = head_; + increment_head(); + alloc_.destroy(array_ + destroy_pos); + } + void clear() + { + for (size_type n = 0; n < contents_size_; ++n) + { + alloc_.destroy(array_ + index_to_subscript(n)); + } + head_ = 1; + tail_ = contents_size_ = 0; + } + + reference operator[](size_type n) { return at_unchecked(n); } + const_reference operator[](size_type n) const { return at_unchecked(n); } + + reference at(size_type n) { return at_checked(n); } + const_reference at(size_type n) const { return at_checked(n); } + +private: + + reference at_unchecked(size_type index) const + { + return array_[index_to_subscript(index)]; + } + + reference at_checked(size_type index) const + { + if (size >= contents_size_) + { + throw std::out_of_range(); + } + return at_unchecked(index); + } + + // Rounds an unbounded to an index into array_ + size_type normalise(size_type n) const { return n % array_size_; } + + // Converts external index to an array subscript + size_type index_to_subscript(size_type index) const + { + return normalise(index + head_); + } + + void increment_tail() + { + ++contents_size_; + tail_ = next_tail(); + } + + size_type next_tail() + { + return (tail_ + 1 == array_size_) ? 0 : tail_ + 1; + } + + void increment_head() + { + // precondition: !empty() + ++head_; + --contents_size_; + if (head_ == array_size_) head_ = 0; + } + + template + void assign_into(f_iter from, f_iter to) + { + if (contents_size_) clear(); + while (from != to) + { + push_back(*from); + ++from; + } + } + + template + void assign_into_reserving(f_iter from, f_iter to) + { + if (contents_size_) clear(); + while (from != to) + { + if (contents_size_ == array_size_) + { + reserve(static_cast(array_size_ * 1.5)); + } + push_back(*from); + ++from; + } + } + + void destroy_all_elements() + { + for (size_type n = 0; n < contents_size_; ++n) + { + alloc_.destroy(array_ + index_to_subscript(n)); + } + } + + allocator_type alloc_; + value_type *array_; + size_type array_size_; + size_type head_; + size_type tail_; + size_type contents_size_; +}; + +template + bool operator==(const circular_buffer &a, + const circular_buffer &b) +{ + return a.size() == b.size() && std::equal(a.begin(), a.end(), b.begin()); +} + +template + bool operator!=(const circular_buffer &a, + const circular_buffer &b) +{ + return a.size() != b.size() || !std::equal(a.begin(), a.end(), b.begin()); +} + +template + bool operator<(const circular_buffer &a, + const circular_buffer &b) +{ + return std::lexicographical_compare(a.begin(), a.end(), b.begin(), b.end()); +} + +#endif