19 Commits

Author SHA1 Message Date
Endert0m 945a85cacf Update README.md 2026-06-07 16:34:36 +02:00
Endertom a118eedb18 Aggiornamento README 2026-06-07 16:33:05 +02:00
Endertom 2d417cec32 Fissata posizione selezione piano 2026-06-07 16:30:35 +02:00
Endertom c1627b1759 Aggiunta cambio piano su gui 2026-06-07 13:39:04 +02:00
Endertom 3266cc38db Aggiustato crash causa non inizializzazione variabile 2026-06-07 11:34:50 +02:00
Endertom f8dde34b83 Aggiunta pulsante play 2026-06-06 13:04:54 +02:00
Endertom ba5e071c6f Controllo posizione con gui completa 2026-06-06 11:27:21 +02:00
Endertom 52b2a95032 Cambio posizione aggoirnamento dati (da concludere) 2026-06-06 10:57:51 +02:00
Endertom 474b4e6c8c Merge branch 'main' of https://github.com/Endert0m/FCG_VisualizzatoreCamminata 2026-06-04 20:02:44 +02:00
Endertom 8397164b6b Aggiunta Imgui e sliders per intervallo visualizzazione 2026-06-04 20:00:46 +02:00
Endertom a95e98ed8a Modifica gitignore per non caricare build files 2026-06-03 11:56:18 +02:00
Endertom 21f43f8bce Aggiustato deriva offset 2026-06-02 16:44:46 +02:00
Endertom 28abf04232 Miglioramento precisione rotazioni 2026-05-31 12:47:46 +02:00
Endertom 57412060b5 Migliore precisione per debug 2026-05-31 12:34:59 +02:00
Endertom 8be8a2db00 Aggiustato debug per rotazione 2026-05-31 12:12:47 +02:00
Endertom 2840a35d08 Correzione file README 2026-05-31 12:01:43 +02:00
Endertom 5da309b43f Caricamento v4 2026-05-31 11:58:56 +02:00
Endertom 5169bc4096 Caricamento v0.3 2026-05-31 11:06:50 +02:00
Endertom e50e2987c9 Caricamento v0.2 2026-05-31 10:42:30 +02:00
54 changed files with 5246 additions and 17594 deletions
+4
View File
@@ -10,6 +10,10 @@ compile_commands.json
CTestTestfile.cmake CTestTestfile.cmake
_deps _deps
CMakeUserPresets.json CMakeUserPresets.json
.cmake
obj
CPackConfig.cmake
CPackSourceConfig.cmake
# CLion # CLion
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
+41 -4
View File
@@ -12,12 +12,49 @@ FetchContent_Declare(SFML
SYSTEM) SYSTEM)
FetchContent_MakeAvailable(SFML) FetchContent_MakeAvailable(SFML)
FetchContent_Declare(
glm
GIT_REPOSITORY https://github.com/g-truc/glm.git
GIT_TAG 0af55ccecd98d4e5a8d1fad7de25ba429d60e863 #refs/tags/1.0.1
)
FetchContent_MakeAvailable(glm)
# Aggiunta ImGUI
FetchContent_Declare(ImGui
GIT_REPOSITORY https://github.com/ocornut/imgui
GIT_TAG v1.91.9b
GIT_SHALLOW ON
EXCLUDE_FROM_ALL
SYSTEM)
FetchContent_MakeAvailable(ImGui)
FetchContent_GetProperties(ImGui SOURCE_DIR IMGUI_DIR)
set(IMGUI_SFML_FIND_SFML OFF)
FetchContent_Declare(ImGui-SFML
GIT_REPOSITORY https://github.com/SFML/imgui-sfml
GIT_TAG v3.0
GIT_SHALLOW ON
EXCLUDE_FROM_ALL
SYSTEM)
FetchContent_MakeAvailable(ImGui-SFML)
add_library(common INTERFACE)
target_compile_features(common INTERFACE cxx_std_17)
target_compile_options(common INTERFACE
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>: -Wall>
$<$<CXX_COMPILER_ID:MSVC>: /W4>
)
# Fine aggiunta
set(METHODS_PATH "./src/*/methods/*.cpp") set(METHODS_PATH "./src/*/methods/*.cpp")
#V1 set(VERSION "V5")
set(VERSION "V1")
file(GLOB_RECURSE METHODS_SRC "${METHODS_PATH}") file(GLOB_RECURSE METHODS_SRC "${METHODS_PATH}")
add_executable(main${VERSION} ./src/testMain.cpp ${METHODS_SRC} ) add_executable(main${VERSION} ./src/testMain.cpp ${METHODS_SRC} )
target_compile_features(main${VERSION} PRIVATE cxx_std_17) target_link_libraries(main${VERSION} PRIVATE SFML::Graphics ImGui-SFML::ImGui-SFML common glm)
target_link_libraries(main${VERSION} PRIVATE SFML::Graphics)
+24 -4
View File
@@ -1,7 +1,7 @@
# FCG_VisualizzatoreCamminata # FCG_VisualizzatoreCamminata
Nella versione versione v0.1 è presente la base del progetto. ## Nella versione versione v0.1 è presente la base del progetto.
- La gerarchia dei file e delle classi - La gerarchia dei file e delle classi
@@ -17,10 +17,30 @@ Per questione di debug tutti i pezzi rappresentati si possono trascinare e ruota
Per spostare l'intera scena si tiene premuto il tasto centrale del mouse. Per spostare l'intera scena si tiene premuto il tasto centrale del mouse.
Per compliare: ## Nella versione v0.2:
- Applicato refactoring di diverse classi
- Aggiustato calcolo dei pivot implementando le rotazioni con algebra affine e glm
- Aggiuta classe caviglia (per differenziarla dalla coscia)
## Nella versione v0.3:
- Applicato refactoring delle classi pieces
- Aggiunta pezzo torso
- Nel testMain vengono agganciate caviglia e coscia al nuovo torso
## Nella versione v0.4
- Aggiunta vista frontale (con spazio si può camnbiare vista)
- Modifica calcolo pivot per gestire spazio 3D
- Aggiustati assi di riferimento (ora sono coerenti su tutte le classi)
## Nella versione v0.5
- Aggiunta ImGUI
- Aggiunta selettore sulla posizione dei dati
- Refactoring classe sensore e state per gestire posizione dati da gui
# Per compliare:
cmake --build cmake --build
Per lanciare: # Per lanciare:
./build/bin/mainV1 ./build/bin/mainV5
@@ -1107,7 +1107,7 @@
} }
], ],
"type" : "INTERNAL", "type" : "INTERNAL",
"value" : "8" "value" : "11"
}, },
{ {
"name" : "CMAKE_OBJCOPY", "name" : "CMAKE_OBJCOPY",
@@ -1653,6 +1653,42 @@
"type" : "BOOL", "type" : "BOOL",
"value" : "ON" "value" : "ON"
}, },
{
"name" : "FETCHCONTENT_SOURCE_DIR_GLM",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "When not empty, overrides where to find pre-populated content for glm"
}
],
"type" : "PATH",
"value" : ""
},
{
"name" : "FETCHCONTENT_SOURCE_DIR_IMGUI",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "When not empty, overrides where to find pre-populated content for ImGui"
}
],
"type" : "PATH",
"value" : ""
},
{
"name" : "FETCHCONTENT_SOURCE_DIR_IMGUI-SFML",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "When not empty, overrides where to find pre-populated content for ImGui-SFML"
}
],
"type" : "PATH",
"value" : ""
},
{ {
"name" : "FETCHCONTENT_SOURCE_DIR_SFML", "name" : "FETCHCONTENT_SOURCE_DIR_SFML",
"properties" : "properties" :
@@ -1677,6 +1713,42 @@
"type" : "BOOL", "type" : "BOOL",
"value" : "OFF" "value" : "OFF"
}, },
{
"name" : "FETCHCONTENT_UPDATES_DISCONNECTED_GLM",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enables UPDATE_DISCONNECTED behavior just for population of glm"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "FETCHCONTENT_UPDATES_DISCONNECTED_IMGUI",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enables UPDATE_DISCONNECTED behavior just for population of ImGui"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "FETCHCONTENT_UPDATES_DISCONNECTED_IMGUI-SFML",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enables UPDATE_DISCONNECTED behavior just for population of ImGui-SFML"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{ {
"name" : "FETCHCONTENT_UPDATES_DISCONNECTED_SFML", "name" : "FETCHCONTENT_UPDATES_DISCONNECTED_SFML",
"properties" : "properties" :
@@ -1723,7 +1795,7 @@
} }
], ],
"type" : "INTERNAL", "type" : "INTERNAL",
"value" : "[/usr/lib/x86_64-linux-gnu/libOpenGL.so][/usr/lib/x86_64-linux-gnu/libGLX.so][/usr/include][found components: OpenGL ][v()]" "value" : "[/usr/lib/x86_64-linux-gnu/libOpenGL.so][/usr/lib/x86_64-linux-gnu/libGLX.so][/usr/include][ ][v()]"
}, },
{ {
"name" : "FIND_PACKAGE_MESSAGE_DETAILS_Threads", "name" : "FIND_PACKAGE_MESSAGE_DETAILS_Threads",
@@ -1869,6 +1941,318 @@
"type" : "FILEPATH", "type" : "FILEPATH",
"value" : "/usr/bin/git" "value" : "/usr/bin/git"
}, },
{
"name" : "GLM_BUILD_INSTALL",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Generate the install target"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_BUILD_LIBRARY",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Build dynamic/static library"
}
],
"type" : "BOOL",
"value" : "ON"
},
{
"name" : "GLM_BUILD_TESTS",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Build the test programs"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_DISABLE_AUTO_DETECTION",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Disable platform, compiler, arch and C++ language detection"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_CXX_11",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable C++ 11"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_CXX_14",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable C++ 14"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_CXX_17",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable C++ 17"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_CXX_20",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable C++ 20"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_CXX_98",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable C++ 98"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_FAST_MATH",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable fast math optimizations"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_LANG_EXTENSIONS",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable language extensions"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_SIMD_AVX",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable AVX optimizations"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_SIMD_AVX2",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable AVX2 optimizations"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_SIMD_SSE2",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable SSE2 optimizations"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_SIMD_SSE3",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable SSE3 optimizations"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_SIMD_SSE4_1",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable SSE 4.1 optimizations"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_SIMD_SSE4_2",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable SSE 4.2 optimizations"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_ENABLE_SIMD_SSSE3",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable SSSE3 optimizations"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "GLM_FORCE_PURE",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Force 'pure' instructions"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "IMGUI_INCLUDE_DIR",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Path to a file."
}
],
"type" : "PATH",
"value" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/imgui-src"
},
{
"name" : "IMGUI_SFML_CONFIG_DIR",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Path to a directory containing user ImGui config"
}
],
"type" : "PATH",
"value" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/imgui-sfml-src"
},
{
"name" : "IMGUI_SFML_CONFIG_INSTALL_DIR",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Path where user's config header will be installed"
}
],
"type" : "PATH",
"value" : ""
},
{
"name" : "IMGUI_SFML_CONFIG_NAME",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Name of a custom user ImGui config header"
}
],
"type" : "STRING",
"value" : "imconfig-SFML.h"
},
{
"name" : "IMGUI_SFML_DISABLE_OBSOLETE_FUNCTIONS",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Disable obsolete ImGui functions"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "IMGUI_SFML_ENABLE_WARNINGS",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Enable compiler warnings"
}
],
"type" : "BOOL",
"value" : "OFF"
},
{
"name" : "IMGUI_SFML_USE_DEFAULT_CONFIG",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Use default imconfig-SFML.h"
}
],
"type" : "BOOL",
"value" : "ON"
},
{ {
"name" : "OGG_INCLUDE_DIR", "name" : "OGG_INCLUDE_DIR",
"properties" : "properties" :
@@ -4636,6 +5020,78 @@
], ],
"type" : "INTERNAL", "type" : "INTERNAL",
"value" : "/usr/local" "value" : "/usr/local"
},
{
"name" : "glm_BINARY_DIR",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Value Computed by CMake"
}
],
"type" : "STATIC",
"value" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/glm-build"
},
{
"name" : "glm_IS_TOP_LEVEL",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Value Computed by CMake"
}
],
"type" : "STATIC",
"value" : "OFF"
},
{
"name" : "glm_SOURCE_DIR",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Value Computed by CMake"
}
],
"type" : "STATIC",
"value" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/glm-src"
},
{
"name" : "imgui_sfml_BINARY_DIR",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Value Computed by CMake"
}
],
"type" : "STATIC",
"value" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/imgui-sfml-build"
},
{
"name" : "imgui_sfml_IS_TOP_LEVEL",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Value Computed by CMake"
}
],
"type" : "STATIC",
"value" : "OFF"
},
{
"name" : "imgui_sfml_SOURCE_DIR",
"properties" :
[
{
"name" : "HELPSTRING",
"value" : "Value Computed by CMake"
}
],
"type" : "STATIC",
"value" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/imgui-sfml-src"
} }
], ],
"kind" : "cache", "kind" : "cache",
@@ -1,551 +0,0 @@
{
"inputs" :
[
{
"path" : "CMakeLists.txt"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/4.2.3/CMakeSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeSystemSpecificInitialize.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linux-Initialize.cmake"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/4.2.3/CMakeCXXCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeSystemSpecificInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeGenericSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeInitializeConfigs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linux.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/UnixPaths.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeCXXInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Compiler/GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linux-GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Internal/CMakeCXXLinkerInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Internal/CMakeCommonLinkerInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linker/Linux-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU-CXX.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linker/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FetchContent.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/ExternalProject/shared_internal_commands.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindGit.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageMessage.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FetchContent/CMakeLists.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/CMakeLists.txt"
},
{
"isGenerated" : true,
"path" : "build/CMakeFiles/4.2.3/CMakeCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeCInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Compiler/GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linux-GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Internal/CMakeCLinkerInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Internal/CMakeCommonLinkerInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linker/Linux-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Platform/Linker/Linux-GNU.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/cmake/Config.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/GNUInstallDirs.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/tools/pkg-config/sfml-all.pc.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/tools/pkg-config/sfml-system.pc.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/tools/pkg-config/sfml-window.pc.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/tools/pkg-config/sfml-graphics.pc.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/tools/pkg-config/sfml-audio.pc.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/tools/pkg-config/sfml-network.pc.in"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakePackageConfigHelpers.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/WriteBasicConfigVersionFile.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/BasicConfigVersion-SameMajorVersion.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/cmake/SFMLConfig.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/CMakeLists.txt"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/cmake/Macros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakeParseArguments.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/cmake/CompilerWarnings.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckCXXSourceCompiles.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/System/CMakeLists.txt"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindThreads.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckLibraryExists.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckIncludeFile.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckCSourceCompiles.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Internal/CheckSourceCompiles.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageMessage.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakePackageConfigHelpers.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/WriteBasicConfigVersionFile.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/System/Dependencies.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/Window/CMakeLists.txt"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakePackageConfigHelpers.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/WriteBasicConfigVersionFile.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/Window/Dependencies.cmake.in"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindX11.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageMessage.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckFunctionExists.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckLibraryExists.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindOpenGL.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageMessage.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/cmake/Modules/FindUDev.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageMessage.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckCXXSourceCompiles.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/Internal/CheckSourceCompiles.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/Network/CMakeLists.txt"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/Graphics/CMakeLists.txt"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakePackageConfigHelpers.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/WriteBasicConfigVersionFile.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/Graphics/Dependencies.cmake.in"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/cmake/Modules/FindFreetype.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageMessage.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/Audio/CMakeLists.txt"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/cmake/Modules/FindVorbis.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageMessage.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/cmake/Modules/FindFLAC.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageMessage.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindThreads.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckLibraryExists.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckIncludeFile.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CheckCSourceCompiles.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageHandleStandardArgs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/FindPackageMessage.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/CMakePackageConfigHelpers.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/usr/share/cmake-4.2/Modules/WriteBasicConfigVersionFile.cmake"
},
{
"isGenerated" : true,
"path" : "build/_deps/sfml-src/src/SFML/Audio/Dependencies.cmake.in"
}
],
"kind" : "cmakeFiles",
"paths" :
{
"build" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build",
"source" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata"
},
"version" :
{
"major" : 1,
"minor" : 1
}
}
@@ -32,6 +32,20 @@
"name" : "OpenGL::EGL", "name" : "OpenGL::EGL",
"projectIndex" : 1 "projectIndex" : 1
}, },
{
"directoryIndex" : 10,
"id" : "OpenGL::EGL::@0d4f94df99120bc7405e",
"jsonFile" : "target-OpenGL__EGL-Debug-1eafe621f35368334c4c.json",
"name" : "OpenGL::EGL",
"projectIndex" : 3
},
{
"directoryIndex" : 10,
"id" : "OpenGL::GL::@0d4f94df99120bc7405e",
"jsonFile" : "target-OpenGL__GL-Debug-96c8225cd79f6d1ae87e.json",
"name" : "OpenGL::GL",
"projectIndex" : 3
},
{ {
"directoryIndex" : 4, "directoryIndex" : 4,
"id" : "OpenGL::GL::@5730451e331e3690ae65", "id" : "OpenGL::GL::@5730451e331e3690ae65",
@@ -46,6 +60,20 @@
"name" : "OpenGL::GLES2", "name" : "OpenGL::GLES2",
"projectIndex" : 1 "projectIndex" : 1
}, },
{
"directoryIndex" : 10,
"id" : "OpenGL::GLES2::@0d4f94df99120bc7405e",
"jsonFile" : "target-OpenGL__GLES2-Debug-a7b9a9a6ec04d46547f0.json",
"name" : "OpenGL::GLES2",
"projectIndex" : 3
},
{
"directoryIndex" : 10,
"id" : "OpenGL::GLES3::@0d4f94df99120bc7405e",
"jsonFile" : "target-OpenGL__GLES3-Debug-7b20d6a73c8cf3713b5a.json",
"name" : "OpenGL::GLES3",
"projectIndex" : 3
},
{ {
"directoryIndex" : 4, "directoryIndex" : 4,
"id" : "OpenGL::GLES3::@5730451e331e3690ae65", "id" : "OpenGL::GLES3::@5730451e331e3690ae65",
@@ -60,6 +88,13 @@
"name" : "OpenGL::GLX", "name" : "OpenGL::GLX",
"projectIndex" : 1 "projectIndex" : 1
}, },
{
"directoryIndex" : 10,
"id" : "OpenGL::GLX::@0d4f94df99120bc7405e",
"jsonFile" : "target-OpenGL__GLX-Debug-aa5caeb0914c0bfa4a56.json",
"name" : "OpenGL::GLX",
"projectIndex" : 3
},
{ {
"directoryIndex" : 4, "directoryIndex" : 4,
"id" : "OpenGL::OpenGL::@5730451e331e3690ae65", "id" : "OpenGL::OpenGL::@5730451e331e3690ae65",
@@ -67,6 +102,13 @@
"name" : "OpenGL::OpenGL", "name" : "OpenGL::OpenGL",
"projectIndex" : 1 "projectIndex" : 1
}, },
{
"directoryIndex" : 10,
"id" : "OpenGL::OpenGL::@0d4f94df99120bc7405e",
"jsonFile" : "target-OpenGL__OpenGL-Debug-5223362217b07b6824ea.json",
"name" : "OpenGL::OpenGL",
"projectIndex" : 3
},
{ {
"directoryIndex" : 3, "directoryIndex" : 3,
"id" : "Threads::Threads::@8cb1db2982443611e568", "id" : "Threads::Threads::@8cb1db2982443611e568",
@@ -228,12 +270,26 @@
"name" : "X11::xkbcommon", "name" : "X11::xkbcommon",
"projectIndex" : 1 "projectIndex" : 1
}, },
{
"directoryIndex" : 0,
"id" : "common::@6890427a1f51a3e7e1df",
"jsonFile" : "target-common-Debug-218bd0b585628ab5e130.json",
"name" : "common",
"projectIndex" : 0
},
{ {
"directoryIndex" : 6, "directoryIndex" : 6,
"id" : "freetype::@98af38147d5fa7e70f61", "id" : "freetype::@98af38147d5fa7e70f61",
"jsonFile" : "target-freetype-Debug-abdfbd050f0222558c4d.json", "jsonFile" : "target-freetype-Debug-abdfbd050f0222558c4d.json",
"name" : "freetype", "name" : "freetype",
"projectIndex" : 1 "projectIndex" : 1
},
{
"directoryIndex" : 9,
"id" : "glm-header-only::@ce54d98d7b326a3e12a8",
"jsonFile" : "target-glm-header-only-Debug-ba11e7860c401de4a955.json",
"name" : "glm-header-only",
"projectIndex" : 2
} }
], ],
"directories" : "directories" :
@@ -241,12 +297,15 @@
{ {
"abstractTargetIndexes" : "abstractTargetIndexes" :
[ [
1 1,
38
], ],
"build" : ".", "build" : ".",
"childIndexes" : "childIndexes" :
[ [
1 1,
8,
10
], ],
"hasInstallRule" : true, "hasInstallRule" : true,
"jsonFile" : "directory-.-Debug-9ad1a58d4644cf6543fa.json", "jsonFile" : "directory-.-Debug-9ad1a58d4644cf6543fa.json",
@@ -258,7 +317,7 @@
"source" : ".", "source" : ".",
"targetIndexes" : "targetIndexes" :
[ [
0 2
] ]
}, },
{ {
@@ -268,7 +327,7 @@
2 2
], ],
"hasInstallRule" : true, "hasInstallRule" : true,
"jsonFile" : "directory-_deps.sfml-build-Debug-dfee4a8ac98e62d8aa87.json", "jsonFile" : "directory-_deps.sfml-build-Debug-f18c22a3e3ebfe4df823.json",
"minimumCMakeVersion" : "minimumCMakeVersion" :
{ {
"string" : "3.22" "string" : "3.22"
@@ -300,11 +359,11 @@
{ {
"abstractTargetIndexes" : "abstractTargetIndexes" :
[ [
9 15
], ],
"build" : "_deps/sfml-build/src/SFML/System", "build" : "_deps/sfml-build/src/SFML/System",
"hasInstallRule" : true, "hasInstallRule" : true,
"jsonFile" : "directory-_deps.sfml-build.src.SFML.System-Debug-a8a648ac157acad150c5.json", "jsonFile" : "directory-_deps.sfml-build.src.SFML.System-Debug-61abf4a8919415ad2100.json",
"minimumCMakeVersion" : "minimumCMakeVersion" :
{ {
"string" : "3.22" "string" : "3.22"
@@ -314,25 +373,19 @@
"source" : "build/_deps/sfml-src/src/SFML/System", "source" : "build/_deps/sfml-src/src/SFML/System",
"targetIndexes" : "targetIndexes" :
[ [
4 6
] ]
}, },
{ {
"abstractTargetIndexes" : "abstractTargetIndexes" :
[ [
3, 3,
4,
5,
6, 6,
7, 7,
8, 10,
11, 11,
15, 13,
16,
17, 17,
18,
19,
20,
21, 21,
22, 22,
23, 23,
@@ -343,11 +396,17 @@
28, 28,
29, 29,
30, 30,
31 31,
32,
33,
34,
35,
36,
37
], ],
"build" : "_deps/sfml-build/src/SFML/Window", "build" : "_deps/sfml-build/src/SFML/Window",
"hasInstallRule" : true, "hasInstallRule" : true,
"jsonFile" : "directory-_deps.sfml-build.src.SFML.Window-Debug-be3f1b58265dd0b182ad.json", "jsonFile" : "directory-_deps.sfml-build.src.SFML.Window-Debug-82b71fd7ecf90bbcba4a.json",
"minimumCMakeVersion" : "minimumCMakeVersion" :
{ {
"string" : "3.22" "string" : "3.22"
@@ -357,13 +416,13 @@
"source" : "build/_deps/sfml-src/src/SFML/Window", "source" : "build/_deps/sfml-src/src/SFML/Window",
"targetIndexes" : "targetIndexes" :
[ [
5 7
] ]
}, },
{ {
"build" : "_deps/sfml-build/src/SFML/Network", "build" : "_deps/sfml-build/src/SFML/Network",
"hasInstallRule" : true, "hasInstallRule" : true,
"jsonFile" : "directory-_deps.sfml-build.src.SFML.Network-Debug-2e3db7a0b897a8f2912c.json", "jsonFile" : "directory-_deps.sfml-build.src.SFML.Network-Debug-04cdcff929f46ecd6380.json",
"minimumCMakeVersion" : "minimumCMakeVersion" :
{ {
"string" : "3.22" "string" : "3.22"
@@ -373,17 +432,17 @@
"source" : "build/_deps/sfml-src/src/SFML/Network", "source" : "build/_deps/sfml-src/src/SFML/Network",
"targetIndexes" : "targetIndexes" :
[ [
3 5
] ]
}, },
{ {
"abstractTargetIndexes" : "abstractTargetIndexes" :
[ [
32 39
], ],
"build" : "_deps/sfml-build/src/SFML/Graphics", "build" : "_deps/sfml-build/src/SFML/Graphics",
"hasInstallRule" : true, "hasInstallRule" : true,
"jsonFile" : "directory-_deps.sfml-build.src.SFML.Graphics-Debug-d9a9bb084c70b51401a2.json", "jsonFile" : "directory-_deps.sfml-build.src.SFML.Graphics-Debug-1be0f2c94edc4a8309b8.json",
"minimumCMakeVersion" : "minimumCMakeVersion" :
{ {
"string" : "3.22" "string" : "3.22"
@@ -392,75 +451,131 @@
"projectIndex" : 1, "projectIndex" : 1,
"source" : "build/_deps/sfml-src/src/SFML/Graphics", "source" : "build/_deps/sfml-src/src/SFML/Graphics",
"targetIndexes" : "targetIndexes" :
[
4
]
},
{
"abstractTargetIndexes" :
[
0,
2,
16,
18,
19,
20
],
"build" : "_deps/sfml-build/src/SFML/Audio",
"hasInstallRule" : true,
"jsonFile" : "directory-_deps.sfml-build.src.SFML.Audio-Debug-1a575cacaeb2de3ac37f.json",
"minimumCMakeVersion" :
{
"string" : "3.22"
},
"parentIndex" : 2,
"projectIndex" : 1,
"source" : "build/_deps/sfml-src/src/SFML/Audio",
"targetIndexes" :
[
3
]
},
{
"build" : "_deps/glm-build",
"childIndexes" :
[
9
],
"jsonFile" : "directory-_deps.glm-build-Debug-c62d847c2156f7f8634f.json",
"minimumCMakeVersion" :
{
"string" : "3.6"
},
"parentIndex" : 0,
"projectIndex" : 2,
"source" : "build/_deps/glm-src"
},
{
"abstractTargetIndexes" :
[
40
],
"build" : "_deps/glm-build/glm",
"jsonFile" : "directory-_deps.glm-build.glm-Debug-ee2f18c9a18ae24a8c8e.json",
"minimumCMakeVersion" :
{
"string" : "3.6"
},
"parentIndex" : 8,
"projectIndex" : 2,
"source" : "build/_deps/glm-src/glm",
"targetIndexes" :
[
1
]
},
{
"abstractTargetIndexes" :
[
4,
5,
8,
9,
12,
14
],
"build" : "_deps/imgui-sfml-build",
"hasInstallRule" : true,
"jsonFile" : "directory-_deps.imgui-sfml-build-Debug-c0058f26c81670b734d6.json",
"minimumCMakeVersion" :
{
"string" : "3.22"
},
"parentIndex" : 0,
"projectIndex" : 3,
"source" : "build/_deps/imgui-sfml-src",
"targetIndexes" :
[
0
]
}
],
"name" : "Debug",
"projects" :
[
{
"abstractTargetIndexes" :
[
1,
38
],
"childIndexes" :
[
1,
2,
3
],
"directoryIndexes" :
[
0
],
"name" : "CMakeSFMLProject",
"targetIndexes" :
[ [
2 2
] ]
}, },
{
"abstractTargetIndexes" :
[
0,
2,
10,
12,
13,
14
],
"build" : "_deps/sfml-build/src/SFML/Audio",
"hasInstallRule" : true,
"jsonFile" : "directory-_deps.sfml-build.src.SFML.Audio-Debug-a33c3c7d6b217e553221.json",
"minimumCMakeVersion" :
{
"string" : "3.22"
},
"parentIndex" : 2,
"projectIndex" : 1,
"source" : "build/_deps/sfml-src/src/SFML/Audio",
"targetIndexes" :
[
1
]
}
],
"name" : "Debug",
"projects" :
[
{
"abstractTargetIndexes" :
[
1
],
"childIndexes" :
[
1
],
"directoryIndexes" :
[
0
],
"name" : "CMakeSFMLProject",
"targetIndexes" :
[
0
]
},
{ {
"abstractTargetIndexes" : "abstractTargetIndexes" :
[ [
0, 0,
2, 2,
3, 3,
4,
5,
6, 6,
7, 7,
8,
9,
10, 10,
11, 11,
12,
13, 13,
14,
15, 15,
16, 16,
17, 17,
@@ -478,7 +593,13 @@
29, 29,
30, 30,
31, 31,
32 32,
33,
34,
35,
36,
37,
39
], ],
"directoryIndexes" : "directoryIndexes" :
[ [
@@ -494,21 +615,73 @@
"parentIndex" : 0, "parentIndex" : 0,
"targetIndexes" : "targetIndexes" :
[ [
1,
2,
3, 3,
4, 4,
5 5,
6,
7
]
},
{
"abstractTargetIndexes" :
[
40
],
"directoryIndexes" :
[
8,
9
],
"name" : "glm",
"parentIndex" : 0,
"targetIndexes" :
[
1
]
},
{
"abstractTargetIndexes" :
[
4,
5,
8,
9,
12,
14
],
"directoryIndexes" :
[
10
],
"name" : "imgui_sfml",
"parentIndex" : 0,
"targetIndexes" :
[
0
] ]
} }
], ],
"targets" : "targets" :
[ [
{
"directoryIndex" : 10,
"id" : "ImGui-SFML::@0d4f94df99120bc7405e",
"jsonFile" : "target-ImGui-SFML-Debug-d20be85d0ec1cf49fb52.json",
"name" : "ImGui-SFML",
"projectIndex" : 3
},
{
"directoryIndex" : 9,
"id" : "glm::@ce54d98d7b326a3e12a8",
"jsonFile" : "target-glm-Debug-244f6aa87d17e32353a7.json",
"name" : "glm",
"projectIndex" : 2
},
{ {
"directoryIndex" : 0, "directoryIndex" : 0,
"id" : "mainV1::@6890427a1f51a3e7e1df", "id" : "mainV5::@6890427a1f51a3e7e1df",
"jsonFile" : "target-mainV1-Debug-5ee4cebbd3969ed04364.json", "jsonFile" : "target-mainV5-Debug-b0772c24f5ba06cc97ee.json",
"name" : "mainV1", "name" : "mainV5",
"projectIndex" : 0 "projectIndex" : 0
}, },
{ {
@@ -0,0 +1,19 @@
{
"backtraceGraph" :
{
"commands" : [],
"files" : [],
"nodes" : []
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"installers" : [],
"paths" :
{
"build" : "_deps/glm-build",
"source" : "build/_deps/glm-src"
}
}
@@ -0,0 +1,19 @@
{
"backtraceGraph" :
{
"commands" : [],
"files" : [],
"nodes" : []
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"installers" : [],
"paths" :
{
"build" : "_deps/glm-build/glm",
"source" : "build/_deps/glm-src/glm"
}
}
@@ -0,0 +1,93 @@
{
"backtraceGraph" :
{
"commands" :
[
"install"
],
"files" :
[
"build/_deps/imgui-sfml-src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 125,
"parent" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 133,
"parent" : 0
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"installers" :
[
{
"backtrace" : 1,
"component" : "Unspecified",
"destination" : "lib",
"paths" :
[
"_deps/imgui-sfml-build/libImGui-SFML.a"
],
"targetId" : "ImGui-SFML::@0d4f94df99120bc7405e",
"targetIndex" : 0,
"type" : "target"
},
{
"backtrace" : 1,
"component" : "Unspecified",
"destination" : "include",
"paths" :
[
"build/_deps/imgui-sfml-src/imgui-SFML.h",
"build/_deps/imgui-sfml-src/imgui-SFML_export.h",
"build/_deps/imgui-src/imconfig.h",
"build/_deps/imgui-src/imgui.h",
"build/_deps/imgui-src/imgui_internal.h",
"build/_deps/imgui-src/imstb_rectpack.h",
"build/_deps/imgui-src/imstb_textedit.h",
"build/_deps/imgui-src/imstb_truetype.h",
"build/_deps/imgui-src/misc/cpp/imgui_stdlib.h",
"build/_deps/imgui-sfml-src/imconfig-SFML.h"
],
"type" : "file"
},
{
"backtrace" : 2,
"component" : "Unspecified",
"destination" : "lib/cmake/ImGui-SFML",
"exportName" : "ImGui-SFML",
"exportTargets" :
[
{
"id" : "ImGui-SFML::@0d4f94df99120bc7405e",
"index" : 0
}
],
"paths" :
[
"_deps/imgui-sfml-build/CMakeFiles/Export/761a6a4c7704629aea6d1d08969b2ac8/ImGui-SFMLConfig.cmake"
],
"type" : "export"
}
],
"paths" :
{
"build" : "_deps/imgui-sfml-build",
"source" : "build/_deps/imgui-sfml-src"
}
}
@@ -242,7 +242,7 @@
[ [
{ {
"id" : "sfml-system::@8cb1db2982443611e568", "id" : "sfml-system::@8cb1db2982443611e568",
"index" : 4 "index" : 6
} }
], ],
"paths" : "paths" :
@@ -260,7 +260,7 @@
[ [
{ {
"id" : "sfml-window::@5730451e331e3690ae65", "id" : "sfml-window::@5730451e331e3690ae65",
"index" : 5 "index" : 7
} }
], ],
"paths" : "paths" :
@@ -278,7 +278,7 @@
[ [
{ {
"id" : "sfml-network::@d7f79968b2699e7782cb", "id" : "sfml-network::@d7f79968b2699e7782cb",
"index" : 3 "index" : 5
} }
], ],
"paths" : "paths" :
@@ -296,7 +296,7 @@
[ [
{ {
"id" : "sfml-graphics::@98af38147d5fa7e70f61", "id" : "sfml-graphics::@98af38147d5fa7e70f61",
"index" : 2 "index" : 4
} }
], ],
"paths" : "paths" :
@@ -314,7 +314,7 @@
[ [
{ {
"id" : "sfml-audio::@a153e5727587c53fce98", "id" : "sfml-audio::@a153e5727587c53fce98",
"index" : 1 "index" : 3
} }
], ],
"paths" : "paths" :
@@ -52,7 +52,7 @@
"_deps/sfml-build/lib/libsfml-audio-s-d.a" "_deps/sfml-build/lib/libsfml-audio-s-d.a"
], ],
"targetId" : "sfml-audio::@a153e5727587c53fce98", "targetId" : "sfml-audio::@a153e5727587c53fce98",
"targetIndex" : 1, "targetIndex" : 3,
"type" : "target" "type" : "target"
}, },
{ {
@@ -52,7 +52,7 @@
"_deps/sfml-build/lib/libsfml-graphics-s-d.a" "_deps/sfml-build/lib/libsfml-graphics-s-d.a"
], ],
"targetId" : "sfml-graphics::@98af38147d5fa7e70f61", "targetId" : "sfml-graphics::@98af38147d5fa7e70f61",
"targetIndex" : 2, "targetIndex" : 4,
"type" : "target" "type" : "target"
}, },
{ {
@@ -46,7 +46,7 @@
"_deps/sfml-build/lib/libsfml-network-s-d.a" "_deps/sfml-build/lib/libsfml-network-s-d.a"
], ],
"targetId" : "sfml-network::@d7f79968b2699e7782cb", "targetId" : "sfml-network::@d7f79968b2699e7782cb",
"targetIndex" : 3, "targetIndex" : 5,
"type" : "target" "type" : "target"
} }
], ],
@@ -52,7 +52,7 @@
"_deps/sfml-build/lib/libsfml-system-s-d.a" "_deps/sfml-build/lib/libsfml-system-s-d.a"
], ],
"targetId" : "sfml-system::@8cb1db2982443611e568", "targetId" : "sfml-system::@8cb1db2982443611e568",
"targetIndex" : 4, "targetIndex" : 6,
"type" : "target" "type" : "target"
}, },
{ {
@@ -52,7 +52,7 @@
"_deps/sfml-build/lib/libsfml-window-s-d.a" "_deps/sfml-build/lib/libsfml-window-s-d.a"
], ],
"targetId" : "sfml-window::@5730451e331e3690ae65", "targetId" : "sfml-window::@5730451e331e3690ae65",
"targetIndex" : 5, "targetIndex" : 7,
"type" : "target" "type" : "target"
}, },
{ {
@@ -1,132 +0,0 @@
{
"cmake" :
{
"generator" :
{
"multiConfig" : false,
"name" : "Unix Makefiles"
},
"paths" :
{
"cmake" : "/usr/bin/cmake",
"cpack" : "/usr/bin/cpack",
"ctest" : "/usr/bin/ctest",
"root" : "/usr/share/cmake-4.2"
},
"version" :
{
"isDirty" : false,
"major" : 4,
"minor" : 2,
"patch" : 3,
"string" : "4.2.3",
"suffix" : ""
}
},
"objects" :
[
{
"jsonFile" : "codemodel-v2-32cc683d1353c8d76846.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 9
}
},
{
"jsonFile" : "cache-v2-bfa9fbd295e1c2548deb.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "cmakeFiles-v1-c1c7adbe1bc85952b01c.json",
"kind" : "cmakeFiles",
"version" :
{
"major" : 1,
"minor" : 1
}
},
{
"jsonFile" : "toolchains-v1-f6f24f4dd93f5f594387.json",
"kind" : "toolchains",
"version" :
{
"major" : 1,
"minor" : 0
}
}
],
"reply" :
{
"client-vscode" :
{
"query.json" :
{
"requests" :
[
{
"kind" : "cache",
"version" : 2
},
{
"kind" : "codemodel",
"version" : 2
},
{
"kind" : "toolchains",
"version" : 1
},
{
"kind" : "cmakeFiles",
"version" : 1
}
],
"responses" :
[
{
"jsonFile" : "cache-v2-bfa9fbd295e1c2548deb.json",
"kind" : "cache",
"version" :
{
"major" : 2,
"minor" : 0
}
},
{
"jsonFile" : "codemodel-v2-32cc683d1353c8d76846.json",
"kind" : "codemodel",
"version" :
{
"major" : 2,
"minor" : 9
}
},
{
"jsonFile" : "toolchains-v1-f6f24f4dd93f5f594387.json",
"kind" : "toolchains",
"version" :
{
"major" : 1,
"minor" : 0
}
},
{
"jsonFile" : "cmakeFiles-v1-c1c7adbe1bc85952b01c.json",
"kind" : "cmakeFiles",
"version" :
{
"major" : 1,
"minor" : 1
}
}
]
}
}
}
}
@@ -0,0 +1,258 @@
{
"archive" : {},
"artifacts" :
[
{
"path" : "_deps/imgui-sfml-build/libImGui-SFML.a"
}
],
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"add_library",
"install",
"target_link_libraries",
"target_compile_definitions",
"target_include_directories"
],
"files" :
[
"build/_deps/imgui-sfml-src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 66,
"parent" : 0
},
{
"command" : 1,
"file" : 0,
"line" : 125,
"parent" : 0
},
{
"command" : 2,
"file" : 0,
"line" : 73,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
"line" : 110,
"parent" : 0
},
{
"command" : 4,
"file" : 0,
"line" : 68,
"parent" : 0
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"compileDependencies" :
[
{
"backtrace" : 3,
"id" : "sfml-graphics::@98af38147d5fa7e70f61"
},
{
"backtrace" : 3,
"id" : "OpenGL::GL::@0d4f94df99120bc7405e"
}
],
"compileGroups" :
[
{
"compileCommandFragments" :
[
{
"fragment" : "-g"
}
],
"defines" :
[
{
"backtrace" : 4,
"define" : "IMGUI_USER_CONFIG=\"imconfig-SFML.h\""
},
{
"backtrace" : 3,
"define" : "SFML_STATIC"
}
],
"includes" :
[
{
"backtrace" : 5,
"path" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/imgui-src"
},
{
"backtrace" : 5,
"path" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/imgui-sfml-src"
},
{
"backtrace" : 3,
"isSystem" : true,
"path" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/sfml-src/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
0,
1,
2,
3,
4,
5,
6
]
}
],
"dependencies" :
[
{
"backtrace" : 3,
"id" : "sfml-system::@8cb1db2982443611e568"
},
{
"backtrace" : 3,
"id" : "sfml-window::@5730451e331e3690ae65"
},
{
"backtrace" : 3,
"id" : "sfml-graphics::@98af38147d5fa7e70f61"
}
],
"id" : "ImGui-SFML::@0d4f94df99120bc7405e",
"install" :
{
"destinations" :
[
{
"backtrace" : 2,
"path" : "lib"
}
],
"prefix" :
{
"path" : "/usr/local"
}
},
"interfaceCompileDependencies" :
[
{
"backtrace" : 3,
"id" : "sfml-graphics::@98af38147d5fa7e70f61"
},
{
"backtrace" : 3,
"id" : "OpenGL::GL::@0d4f94df99120bc7405e"
}
],
"interfaceLinkLibraries" :
[
{
"backtrace" : 3,
"id" : "sfml-graphics::@98af38147d5fa7e70f61"
},
{
"backtrace" : 3,
"id" : "OpenGL::GL::@0d4f94df99120bc7405e"
}
],
"linkLibraries" :
[
{
"backtrace" : 3,
"id" : "sfml-graphics::@98af38147d5fa7e70f61"
},
{
"backtrace" : 3,
"id" : "OpenGL::GL::@0d4f94df99120bc7405e"
}
],
"name" : "ImGui-SFML",
"nameOnDisk" : "libImGui-SFML.a",
"paths" :
{
"build" : "_deps/imgui-sfml-build",
"source" : "build/_deps/imgui-sfml-src"
},
"sourceGroups" :
[
{
"name" : "Source Files",
"sourceIndexes" :
[
0,
1,
2,
3,
4,
5,
6
]
}
],
"sources" :
[
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "build/_deps/imgui-sfml-src/imgui-SFML.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "build/_deps/imgui-src/imgui.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "build/_deps/imgui-src/imgui_demo.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "build/_deps/imgui-src/imgui_draw.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "build/_deps/imgui-src/imgui_tables.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "build/_deps/imgui-src/imgui_widgets.cpp",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "build/_deps/imgui-src/misc/cpp/imgui_stdlib.cpp",
"sourceGroupIndex" : 0
}
],
"type" : "STATIC_LIBRARY"
}
@@ -0,0 +1,76 @@
{
"abstract" : true,
"backtrace" : 3,
"backtraceGraph" :
{
"commands" :
[
"add_library",
"find_package",
"set_target_properties"
],
"files" :
[
"/usr/share/cmake-4.2/Modules/FindOpenGL.cmake",
"build/_deps/imgui-sfml-src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 61,
"parent" : 0
},
{
"file" : 0,
"parent" : 1
},
{
"command" : 0,
"file" : 0,
"line" : 843,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 851,
"parent" : 2
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"id" : "OpenGL::EGL::@0d4f94df99120bc7405e",
"imported" : true,
"interfaceCompileDependencies" :
[
{
"backtrace" : 4,
"id" : "OpenGL::OpenGL::@0d4f94df99120bc7405e"
}
],
"interfaceLinkLibraries" :
[
{
"backtrace" : 4,
"id" : "OpenGL::OpenGL::@0d4f94df99120bc7405e"
}
],
"local" : true,
"name" : "OpenGL::EGL",
"paths" :
{
"build" : "_deps/imgui-sfml-build",
"source" : "build/_deps/imgui-sfml-src"
},
"sources" : [],
"type" : "UNKNOWN_LIBRARY"
}
@@ -0,0 +1,55 @@
{
"abstract" : true,
"backtrace" : 3,
"backtraceGraph" :
{
"commands" :
[
"add_library",
"find_package"
],
"files" :
[
"/usr/share/cmake-4.2/Modules/FindOpenGL.cmake",
"build/_deps/imgui-sfml-src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 61,
"parent" : 0
},
{
"file" : 0,
"parent" : 1
},
{
"command" : 0,
"file" : 0,
"line" : 815,
"parent" : 2
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"id" : "OpenGL::GL::@0d4f94df99120bc7405e",
"imported" : true,
"local" : true,
"name" : "OpenGL::GL",
"paths" :
{
"build" : "_deps/imgui-sfml-build",
"source" : "build/_deps/imgui-sfml-src"
},
"sources" : [],
"type" : "UNKNOWN_LIBRARY"
}
@@ -0,0 +1,55 @@
{
"abstract" : true,
"backtrace" : 3,
"backtraceGraph" :
{
"commands" :
[
"add_library",
"find_package"
],
"files" :
[
"/usr/share/cmake-4.2/Modules/FindOpenGL.cmake",
"build/_deps/imgui-sfml-src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 61,
"parent" : 0
},
{
"file" : 0,
"parent" : 1
},
{
"command" : 0,
"file" : 0,
"line" : 752,
"parent" : 2
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"id" : "OpenGL::GLES2::@0d4f94df99120bc7405e",
"imported" : true,
"local" : true,
"name" : "OpenGL::GLES2",
"paths" :
{
"build" : "_deps/imgui-sfml-build",
"source" : "build/_deps/imgui-sfml-src"
},
"sources" : [],
"type" : "UNKNOWN_LIBRARY"
}
@@ -0,0 +1,55 @@
{
"abstract" : true,
"backtrace" : 3,
"backtraceGraph" :
{
"commands" :
[
"add_library",
"find_package"
],
"files" :
[
"/usr/share/cmake-4.2/Modules/FindOpenGL.cmake",
"build/_deps/imgui-sfml-src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 61,
"parent" : 0
},
{
"file" : 0,
"parent" : 1
},
{
"command" : 0,
"file" : 0,
"line" : 787,
"parent" : 2
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"id" : "OpenGL::GLES3::@0d4f94df99120bc7405e",
"imported" : true,
"local" : true,
"name" : "OpenGL::GLES3",
"paths" :
{
"build" : "_deps/imgui-sfml-build",
"source" : "build/_deps/imgui-sfml-src"
},
"sources" : [],
"type" : "UNKNOWN_LIBRARY"
}
@@ -0,0 +1,76 @@
{
"abstract" : true,
"backtrace" : 3,
"backtraceGraph" :
{
"commands" :
[
"add_library",
"find_package",
"set_target_properties"
],
"files" :
[
"/usr/share/cmake-4.2/Modules/FindOpenGL.cmake",
"build/_deps/imgui-sfml-src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 61,
"parent" : 0
},
{
"file" : 0,
"parent" : 1
},
{
"command" : 0,
"file" : 0,
"line" : 728,
"parent" : 2
},
{
"command" : 2,
"file" : 0,
"line" : 736,
"parent" : 2
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"id" : "OpenGL::GLX::@0d4f94df99120bc7405e",
"imported" : true,
"interfaceCompileDependencies" :
[
{
"backtrace" : 4,
"id" : "OpenGL::OpenGL::@0d4f94df99120bc7405e"
}
],
"interfaceLinkLibraries" :
[
{
"backtrace" : 4,
"id" : "OpenGL::OpenGL::@0d4f94df99120bc7405e"
}
],
"local" : true,
"name" : "OpenGL::GLX",
"paths" :
{
"build" : "_deps/imgui-sfml-build",
"source" : "build/_deps/imgui-sfml-src"
},
"sources" : [],
"type" : "UNKNOWN_LIBRARY"
}
@@ -0,0 +1,55 @@
{
"abstract" : true,
"backtrace" : 3,
"backtraceGraph" :
{
"commands" :
[
"add_library",
"find_package"
],
"files" :
[
"/usr/share/cmake-4.2/Modules/FindOpenGL.cmake",
"build/_deps/imgui-sfml-src/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 1
},
{
"command" : 1,
"file" : 1,
"line" : 61,
"parent" : 0
},
{
"file" : 0,
"parent" : 1
},
{
"command" : 0,
"file" : 0,
"line" : 711,
"parent" : 2
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"id" : "OpenGL::OpenGL::@0d4f94df99120bc7405e",
"imported" : true,
"local" : true,
"name" : "OpenGL::OpenGL",
"paths" :
{
"build" : "_deps/imgui-sfml-build",
"source" : "build/_deps/imgui-sfml-src"
},
"sources" : [],
"type" : "UNKNOWN_LIBRARY"
}
@@ -0,0 +1,41 @@
{
"abstract" : true,
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"add_library"
],
"files" :
[
"CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 43,
"parent" : 0
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"id" : "common::@6890427a1f51a3e7e1df",
"name" : "common",
"paths" :
{
"build" : ".",
"source" : "."
},
"sources" : [],
"type" : "INTERFACE_LIBRARY"
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,41 @@
{
"abstract" : true,
"backtrace" : 1,
"backtraceGraph" :
{
"commands" :
[
"add_library"
],
"files" :
[
"build/_deps/glm-src/glm/CMakeLists.txt"
],
"nodes" :
[
{
"file" : 0
},
{
"command" : 0,
"file" : 0,
"line" : 45,
"parent" : 0
}
]
},
"codemodelVersion" :
{
"major" : 2,
"minor" : 9
},
"id" : "glm-header-only::@ce54d98d7b326a3e12a8",
"name" : "glm-header-only",
"paths" :
{
"build" : "_deps/glm-build/glm",
"source" : "build/_deps/glm-src/glm"
},
"sources" : [],
"type" : "INTERFACE_LIBRARY"
}
@@ -2,7 +2,7 @@
"artifacts" : "artifacts" :
[ [
{ {
"path" : "bin/mainV1" "path" : "bin/mainV5"
} }
], ],
"backtrace" : 1, "backtrace" : 1,
@@ -21,7 +21,8 @@
"build/_deps/sfml-src/src/SFML/Graphics/CMakeLists.txt", "build/_deps/sfml-src/src/SFML/Graphics/CMakeLists.txt",
"build/_deps/sfml-src/src/SFML/Window/CMakeLists.txt", "build/_deps/sfml-src/src/SFML/Window/CMakeLists.txt",
"/usr/share/cmake-4.2/Modules/FindX11.cmake", "/usr/share/cmake-4.2/Modules/FindX11.cmake",
"build/_deps/sfml-src/src/SFML/System/CMakeLists.txt" "build/_deps/sfml-src/src/SFML/System/CMakeLists.txt",
"build/_deps/imgui-sfml-src/CMakeLists.txt"
], ],
"nodes" : "nodes" :
[ [
@@ -31,13 +32,13 @@
{ {
"command" : 0, "command" : 0,
"file" : 0, "file" : 0,
"line" : 21, "line" : 59,
"parent" : 0 "parent" : 0
}, },
{ {
"command" : 1, "command" : 1,
"file" : 0, "file" : 0,
"line" : 23, "line" : 60,
"parent" : 0 "parent" : 0
}, },
{ {
@@ -112,6 +113,15 @@
"file" : 1, "file" : 1,
"line" : 156, "line" : 156,
"parent" : 3 "parent" : 3
},
{
"file" : 5
},
{
"command" : 1,
"file" : 5,
"line" : 73,
"parent" : 17
} }
] ]
}, },
@@ -125,6 +135,18 @@
{ {
"backtrace" : 2, "backtrace" : 2,
"id" : "sfml-graphics::@98af38147d5fa7e70f61" "id" : "sfml-graphics::@98af38147d5fa7e70f61"
},
{
"backtrace" : 2,
"id" : "ImGui-SFML::@0d4f94df99120bc7405e"
},
{
"backtrace" : 2,
"id" : "common::@6890427a1f51a3e7e1df"
},
{
"backtrace" : 2,
"id" : "glm::@ce54d98d7b326a3e12a8"
} }
], ],
"compileGroups" : "compileGroups" :
@@ -134,10 +156,18 @@
[ [
{ {
"fragment" : "-g" "fragment" : "-g"
},
{
"backtrace" : 2,
"fragment" : "-Wall"
} }
], ],
"defines" : "defines" :
[ [
{
"backtrace" : 2,
"define" : "IMGUI_USER_CONFIG=\"imconfig-SFML.h\""
},
{ {
"backtrace" : 2, "backtrace" : 2,
"define" : "SFML_STATIC" "define" : "SFML_STATIC"
@@ -145,10 +175,24 @@
], ],
"includes" : "includes" :
[ [
{
"backtrace" : 2,
"path" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/glm-src"
},
{ {
"backtrace" : 2, "backtrace" : 2,
"isSystem" : true, "isSystem" : true,
"path" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/sfml-src/include" "path" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/sfml-src/include"
},
{
"backtrace" : 2,
"isSystem" : true,
"path" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/imgui-src"
},
{
"backtrace" : 2,
"isSystem" : true,
"path" : "/home/endertom/Documenti/ProgettoFinaleRep/FCG_VisualizzatoreCamminata/build/_deps/imgui-sfml-src"
} }
], ],
"language" : "CXX", "language" : "CXX",
@@ -160,7 +204,9 @@
3, 3,
4, 4,
5, 5,
6 6,
7,
8
] ]
} }
], ],
@@ -177,9 +223,17 @@
{ {
"backtrace" : 2, "backtrace" : 2,
"id" : "sfml-graphics::@98af38147d5fa7e70f61" "id" : "sfml-graphics::@98af38147d5fa7e70f61"
},
{
"backtrace" : 2,
"id" : "glm::@ce54d98d7b326a3e12a8"
},
{
"backtrace" : 2,
"id" : "ImGui-SFML::@0d4f94df99120bc7405e"
} }
], ],
"id" : "mainV1::@6890427a1f51a3e7e1df", "id" : "mainV5::@6890427a1f51a3e7e1df",
"link" : "link" :
{ {
"commandFragments" : "commandFragments" :
@@ -193,6 +247,21 @@
"fragment" : "_deps/sfml-build/lib/libsfml-graphics-s-d.a", "fragment" : "_deps/sfml-build/lib/libsfml-graphics-s-d.a",
"role" : "libraries" "role" : "libraries"
}, },
{
"backtrace" : 2,
"fragment" : "_deps/imgui-sfml-build/libImGui-SFML.a",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "_deps/glm-build/glm/libglm.a",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "_deps/sfml-build/lib/libsfml-graphics-s-d.a",
"role" : "libraries"
},
{ {
"backtrace" : 4, "backtrace" : 4,
"fragment" : "_deps/sfml-build/lib/libsfml-window-s-d.a", "fragment" : "_deps/sfml-build/lib/libsfml-window-s-d.a",
@@ -262,6 +331,11 @@
"backtrace" : 16, "backtrace" : 16,
"fragment" : "/usr/lib/x86_64-linux-gnu/libfreetype.so", "fragment" : "/usr/lib/x86_64-linux-gnu/libfreetype.so",
"role" : "libraries" "role" : "libraries"
},
{
"backtrace" : 18,
"fragment" : "/usr/lib/x86_64-linux-gnu/libGL.so",
"role" : "libraries"
} }
], ],
"language" : "CXX" "language" : "CXX"
@@ -271,10 +345,22 @@
{ {
"backtrace" : 2, "backtrace" : 2,
"id" : "sfml-graphics::@98af38147d5fa7e70f61" "id" : "sfml-graphics::@98af38147d5fa7e70f61"
},
{
"backtrace" : 2,
"id" : "ImGui-SFML::@0d4f94df99120bc7405e"
},
{
"backtrace" : 2,
"id" : "common::@6890427a1f51a3e7e1df"
},
{
"backtrace" : 2,
"id" : "glm::@ce54d98d7b326a3e12a8"
} }
], ],
"name" : "mainV1", "name" : "mainV5",
"nameOnDisk" : "mainV1", "nameOnDisk" : "mainV5",
"paths" : "paths" :
{ {
"build" : ".", "build" : ".",
@@ -292,7 +378,9 @@
3, 3,
4, 4,
5, 5,
6 6,
7,
8
] ]
} }
], ],
@@ -322,6 +410,12 @@
"path" : "src/joints/methods/rigid_joint_class.cpp", "path" : "src/joints/methods/rigid_joint_class.cpp",
"sourceGroupIndex" : 0 "sourceGroupIndex" : 0
}, },
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pieces/methods/caviglia_class.cpp",
"sourceGroupIndex" : 0
},
{ {
"backtrace" : 1, "backtrace" : 1,
"compileGroupIndex" : 0, "compileGroupIndex" : 0,
@@ -334,6 +428,12 @@
"path" : "src/pieces/methods/sensore_class.cpp", "path" : "src/pieces/methods/sensore_class.cpp",
"sourceGroupIndex" : 0 "sourceGroupIndex" : 0
}, },
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/pieces/methods/torso.cpp",
"sourceGroupIndex" : 0
},
{ {
"backtrace" : 1, "backtrace" : 1,
"compileGroupIndex" : 0, "compileGroupIndex" : 0,
+74
View File
@@ -0,0 +1,74 @@
# This file will be configured to contain variables for CPack. These variables
# should be set in the CMake list file of the project before CPack module is
# included. The list of available CPACK_xxx variables and their associated
# documentation may be obtained using
# cpack --help-variable-list
#
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
# and some are specific to a generator
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
# usually begin with CPACK_<GENNAME>_xxxx.
set(CPACK_BINARY_7Z "OFF")
set(CPACK_BINARY_IFW "OFF")
set(CPACK_BINARY_INNOSETUP "OFF")
set(CPACK_BINARY_NSIS "ON")
set(CPACK_BINARY_NUGET "OFF")
set(CPACK_BINARY_WIX "OFF")
set(CPACK_BINARY_ZIP "OFF")
set(CPACK_BUILD_SOURCE_DIRS "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata;C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build")
set(CPACK_CMAKE_GENERATOR "MinGW Makefiles")
set(CPACK_COMPONENTS_ALL "Unspecified;devel;headers")
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericDescription.txt")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "CMakeSFMLProject built using CMake")
set(CPACK_GENERATOR "NSIS")
set(CPACK_INNOSETUP_ARCHITECTURE "x64")
set(CPACK_INSTALL_CMAKE_PROJECTS "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build;CMakeSFMLProject;ALL;/")
set(CPACK_INSTALL_PREFIX "C:/Program Files (x86)/CMakeSFMLProject")
set(CPACK_MODULE_PATH "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/_deps/sfml-src/cmake/Modules/;C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/_deps/ogg-src/cmake")
set(CPACK_NSIS_DISPLAY_NAME "CMakeSFMLProject 1.3.5")
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
set(CPACK_NSIS_PACKAGE_NAME "CMakeSFMLProject 1.3.5")
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
set(CPACK_OBJCOPY_EXECUTABLE "C:/msys64/ucrt64/bin/objcopy.exe")
set(CPACK_OBJDUMP_EXECUTABLE "C:/msys64/ucrt64/bin/objdump.exe")
set(CPACK_OUTPUT_CONFIG_FILE "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/CPackConfig.cmake")
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
set(CPACK_PACKAGE_DESCRIPTION_FILE "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericDescription.txt")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMakeSFMLProject built using CMake")
set(CPACK_PACKAGE_FILE_NAME "CMakeSFMLProject-1.3.5-win64")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMakeSFMLProject 1.3.5")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "CMakeSFMLProject 1.3.5")
set(CPACK_PACKAGE_NAME "CMakeSFMLProject")
set(CPACK_PACKAGE_RELOCATABLE "true")
set(CPACK_PACKAGE_VENDOR "Humanity")
set(CPACK_PACKAGE_VERSION "1.3.5")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "1")
set(CPACK_PACKAGE_VERSION_PATCH "1")
set(CPACK_READELF_EXECUTABLE "C:/msys64/ucrt64/bin/readelf.exe")
set(CPACK_RESOURCE_FILE_LICENSE "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericLicense.txt")
set(CPACK_RESOURCE_FILE_README "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericDescription.txt")
set(CPACK_RESOURCE_FILE_WELCOME "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericWelcome.txt")
set(CPACK_SET_DESTDIR "OFF")
set(CPACK_SOURCE_7Z "ON")
set(CPACK_SOURCE_GENERATOR "7Z;ZIP")
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/CPackSourceConfig.cmake")
set(CPACK_SOURCE_ZIP "ON")
set(CPACK_SYSTEM_NAME "win64")
set(CPACK_THREADS "1")
set(CPACK_TOPLEVEL_TAG "win64")
set(CPACK_WIX_SIZEOF_VOID_P "8")
if(NOT CPACK_PROPERTIES_FILE)
set(CPACK_PROPERTIES_FILE "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/CPackProperties.cmake")
endif()
if(EXISTS ${CPACK_PROPERTIES_FILE})
include(${CPACK_PROPERTIES_FILE})
endif()
+82
View File
@@ -0,0 +1,82 @@
# This file will be configured to contain variables for CPack. These variables
# should be set in the CMake list file of the project before CPack module is
# included. The list of available CPACK_xxx variables and their associated
# documentation may be obtained using
# cpack --help-variable-list
#
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
# and some are specific to a generator
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
# usually begin with CPACK_<GENNAME>_xxxx.
set(CPACK_BINARY_7Z "OFF")
set(CPACK_BINARY_IFW "OFF")
set(CPACK_BINARY_INNOSETUP "OFF")
set(CPACK_BINARY_NSIS "ON")
set(CPACK_BINARY_NUGET "OFF")
set(CPACK_BINARY_WIX "OFF")
set(CPACK_BINARY_ZIP "OFF")
set(CPACK_BUILD_SOURCE_DIRS "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata;C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build")
set(CPACK_CMAKE_GENERATOR "MinGW Makefiles")
set(CPACK_COMPONENTS_ALL "Unspecified;devel;headers")
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericDescription.txt")
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "CMakeSFMLProject built using CMake")
set(CPACK_GENERATOR "7Z;ZIP")
set(CPACK_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
set(CPACK_INNOSETUP_ARCHITECTURE "x64")
set(CPACK_INSTALLED_DIRECTORIES "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata;/")
set(CPACK_INSTALL_CMAKE_PROJECTS "")
set(CPACK_INSTALL_PREFIX "C:/Program Files (x86)/CMakeSFMLProject")
set(CPACK_MODULE_PATH "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/_deps/sfml-src/cmake/Modules/;C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/_deps/ogg-src/cmake")
set(CPACK_NSIS_DISPLAY_NAME "CMakeSFMLProject 1.3.5")
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
set(CPACK_NSIS_PACKAGE_NAME "CMakeSFMLProject 1.3.5")
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
set(CPACK_OBJCOPY_EXECUTABLE "C:/msys64/ucrt64/bin/objcopy.exe")
set(CPACK_OBJDUMP_EXECUTABLE "C:/msys64/ucrt64/bin/objdump.exe")
set(CPACK_OUTPUT_CONFIG_FILE "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/CPackConfig.cmake")
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
set(CPACK_PACKAGE_DESCRIPTION_FILE "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericDescription.txt")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMakeSFMLProject built using CMake")
set(CPACK_PACKAGE_FILE_NAME "CMakeSFMLProject-1.3.5-Source")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMakeSFMLProject 1.3.5")
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "CMakeSFMLProject 1.3.5")
set(CPACK_PACKAGE_NAME "CMakeSFMLProject")
set(CPACK_PACKAGE_RELOCATABLE "true")
set(CPACK_PACKAGE_VENDOR "Humanity")
set(CPACK_PACKAGE_VERSION "1.3.5")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "1")
set(CPACK_PACKAGE_VERSION_PATCH "1")
set(CPACK_READELF_EXECUTABLE "C:/msys64/ucrt64/bin/readelf.exe")
set(CPACK_RESOURCE_FILE_LICENSE "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericLicense.txt")
set(CPACK_RESOURCE_FILE_README "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericDescription.txt")
set(CPACK_RESOURCE_FILE_WELCOME "C:/Program Files/CMake/share/cmake-3.31/Templates/CPack.GenericWelcome.txt")
set(CPACK_RPM_PACKAGE_SOURCES "ON")
set(CPACK_SET_DESTDIR "OFF")
set(CPACK_SOURCE_7Z "ON")
set(CPACK_SOURCE_GENERATOR "7Z;ZIP")
set(CPACK_SOURCE_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
set(CPACK_SOURCE_INSTALLED_DIRECTORIES "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata;/")
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/CPackSourceConfig.cmake")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "CMakeSFMLProject-1.3.5-Source")
set(CPACK_SOURCE_TOPLEVEL_TAG "win64-Source")
set(CPACK_SOURCE_ZIP "ON")
set(CPACK_STRIP_FILES "")
set(CPACK_SYSTEM_NAME "win64")
set(CPACK_THREADS "1")
set(CPACK_TOPLEVEL_TAG "win64-Source")
set(CPACK_WIX_SIZEOF_VOID_P "8")
if(NOT CPACK_PROPERTIES_FILE)
set(CPACK_PROPERTIES_FILE "C:/Users/Tommy/Documents/UNIGE/ProgettoFinale/FCG_VisualizzatoreCamminata/build/CPackProperties.cmake")
endif()
if(EXISTS ${CPACK_PROPERTIES_FILE})
include(${CPACK_PROPERTIES_FILE})
endif()
+44
View File
@@ -0,0 +1,44 @@
[Window][Debug##Default]
Pos=60,60
Size=400,400
[Window][Dear ImGui Demo]
Pos=473,13
Size=936,873
[Window][Hello, world!]
Pos=11,12
Size=212,56
[Window][Dear ImGui Demo/##Basket_87771727]
IsChild=1
Size=478,260
[Window][Dear ImGui Demo/##Basket_529977C1]
IsChild=1
Size=478,260
[Window][Example: Custom rendering]
Pos=68,96
Size=740,472
[Window][Set data position]
Pos=0,589
Size=780,30
[Window][Dear ImGui Demo/ResizableChild_478B81A3]
IsChild=1
Size=499,136
[Window][Dear ImGui Demo/Red_BEEF922B]
IsChild=1
Size=200,100
[Window][Dear ImGui Style Editor]
Pos=60,60
Size=353,1005
[Window][Set visualization plane]
Pos=380,0
Size=400,30
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
-16515
View File
File diff suppressed because it is too large Load Diff
-44
View File
@@ -1,44 +0,0 @@
#include<math.h>
#include"rb_class.cpp"
#include<time.h>
/*
Questo namespace deve contenere le funzioni di gestione della fisica del motore.
Ogni moto in questo engine sarà ti tipo uniformemente accelerato per dare una semplificazione della realtà.
Le funzioni necessarie sono:
- Calcolo velocità, richiede:
(Oggetto rigidbody)
(time di partenza, time di arrivo o delta t)
(Accelerazione media)
(velocità iniziale)
- Calcolo rotazione, richiede:
(Oggetto rigidbody)
(time di partenza, time di arrivo o delta t)
(Accelerazione tangenziale)
(RAD/s iniziale)
- Calcolo accelerazione, deve modificare i valori di accelerazione su oggetti di tipo rigidbody, richiede:
(Oggetto rigidbody)
- Calcolo posizione, deve calcolare la posizione di un rigidbody in in un intervallo di tempo
- Calcolo energia potenziale
- Calcolo inerzia
- Calcolo energia meccanica
*/
using namespace rb;
namespace fis{
void calcVel(rigidbody body, const time_t Dtime);
void calcRot(rigidbody body, const time_t Dtime);
void calcAcc(rigidbody body, const std::vector<float> Dacc);
void calcTanAcc(rigidbody body, const std::vector<float> Dacc);
void calcPos(rigidbody body, const time_t Dtime);
}
+2
View File
@@ -2,6 +2,8 @@
#include "csv/headers/csv.hpp" #include "csv/headers/csv.hpp"
#include "sfml_util.cpp" #include "sfml_util.cpp"
#include "pieces/headers/coscia.hpp" #include "pieces/headers/coscia.hpp"
#include "pieces/headers/caviglia.hpp"
#include "pieces/headers/sensore.hpp" #include "pieces/headers/sensore.hpp"
#include "pieces/headers/torso.hpp"
#include "joints/headers/rigid_joint.hpp" #include "joints/headers/rigid_joint.hpp"
#include "joints/headers/pivot_joint.hpp" #include "joints/headers/pivot_joint.hpp"
+2 -1
View File
@@ -1,4 +1,5 @@
#include "../../pieces/headers/piece_interface.hpp" #include "../../pieces/headers/piece_interface.hpp"
#include <glm/glm.hpp>
#ifndef JOINT_INTERFACE_H #ifndef JOINT_INTERFACE_H
#define JOINT_INTERFACE_H #define JOINT_INTERFACE_H
@@ -20,7 +21,7 @@ class JointInterface{
public: public:
std::vector<rb::Vector3> offset; std::vector<rb::Vector3> offset;
std::vector<rb::Vector3_s> rotOffset; std::vector<rb::Vector3> rotOffset;
PieceInterface* father; PieceInterface* father;
std::vector<PieceInterface*> childs; std::vector<PieceInterface*> childs;
+8 -2
View File
@@ -4,10 +4,16 @@ class PivotJoint : public JointInterface {
protected: protected:
void rotate(unsigned int id) override; void rotate(unsigned int id) override;
void traslate(unsigned int id) override; void traslate(unsigned int id) override;
void updatePivot();
rb::Vector3_s oldRot; rb::Vector3 oldRot;
std::vector<rb::Vector3> oldCRot;
rb::Vector3 pivot; rb::Vector3 pivot;
std::vector<rb::Vector3_s> oldCRot; rb::Vector3 stPivot;
//angolo attuale pivot e offset
rb::Vector3 pivotAngle;
std::vector<rb::Vector3> offsetAngle;
//possono servire per calcolare l'offset rispetto alla posizione precedente //possono servire per calcolare l'offset rispetto alla posizione precedente
rb::Vector3 oldPos; rb::Vector3 oldPos;
+61 -52
View File
@@ -2,57 +2,76 @@
#define ZERO_INT 0.00001 #define ZERO_INT 0.00001
void PivotJoint::updatePivot(){
rb::Vector3 fRot = father->body.getRot();
pivotAngle = pivotAngle + (fRot - oldRot); // trovo angolo totale da angolo di partenza
float cosA = glm::cos(pivotAngle[0]);
float sinA = glm::sin(pivotAngle[0]);
float cosA1 = glm::cos(pivotAngle[1]);
float sinA1 = glm::sin(pivotAngle[1]);
glm::mat4 Rpx = glm::mat4{
1 , 0, 0, 0,
0, cosA, sinA, 0,
0, -sinA, cosA, 0,
0, 0, 0, 1
};
glm::mat4 Rpy = glm::mat4{
cosA1 , 0, sinA1, 0,
0, 1, 0, 0,
-sinA1, 0, cosA1, 0,
0, 0, 0, 1
};
glm::vec4 pivotN = Rpy * Rpx * glm::vec4(stPivot[0], stPivot[1], stPivot[2],1);
pivot = rb::Vector3{pivotN[0],pivotN[1],pivotN[2]};
oldRot = fRot;
}
void PivotJoint::rotate(unsigned int id){ void PivotJoint::rotate(unsigned int id){
rb::Vector3_s fRot = father->body.getRot();
rb::Vector3_s cRot = childs[id]->body.getRot(); rb::Vector3 fPos = father->body.getPos();
rb::Vector3 cRot = childs[id]->body.getRot();
//// sposto l'origine passivamente su tutti gli assi //// //// sposto l'origine passivamente su tutti gli assi ////
float r1 = sqrt(pow(pivot[0],2)+pow(pivot[2],2)); //calcolo modulo dell'offset (per ora solo sul piano xz) offsetAngle[id] = offsetAngle[id] + (cRot - oldCRot[id]);
float r2 = sqrt(pow(offset[id][0],2)+pow(offset[id][2],2));
if (r1>ZERO_INT){
float sign = pivot[2] >= 0 ? 1 : -1;
sf::Angle alpha = sf::radians(fRot[2] - oldRot[2]); // angolo aggiunto float cosB = glm::cos(offsetAngle[id][0]);
sf::Angle alpha1 = sf::radians(acos(sign * pivot[0]/r1)); // angolo rispetto alla posizione del pivot float sinB = glm::sin(offsetAngle[id][0]);
sf::Angle alpha2 = alpha + alpha1;
sf::Vector2f tmpCoordsX = sf::Vector2f(r1,alpha2); float cosB1 = glm::cos(offsetAngle[id][1]);
pivot = {sign * tmpCoordsX.x,pivot[1],sign * tmpCoordsX.y}; float sinB1 = glm::sin(offsetAngle[id][1]);
//calcolo la posizione in base alla rotazione del child glm::mat4 Rcx = glm::mat4{
sign = offset[id][2] >= 0 ? 1 : -1; 1 , 0, 0, 0,
0, cosB, sinB, 0,
0, -sinB, cosB, 0,
0, 0, 0, 1
};
sf::Angle beta = sf::radians(cRot[2] - oldCRot[id][2]); glm::mat4 Rcy = glm::mat4{
sf::Angle beta1 = sf::radians(acos(sign * offset[id][0]/r2)); cosB1 , 0, sinB1, 0,
sf::Angle beta2 = beta + beta1; 0, 1, 0, 0,
sf::Vector2f tmpCoordsC = sf::Vector2f(r2,beta2); -sinB1, 0, cosB1, 0,
offset[id] = {sign * tmpCoordsC.x,offset[id][1],sign * tmpCoordsC.y}; 0, 0, 0, 1
};
//ora devo muovere il child rispetto al nuovo offset glm::vec4 offN = Rcy * Rcx * glm::vec4(offset[id][0],offset[id][1],offset[id][2],1);
rb::Vector3 pivotPos = father->body.getPos()+father->globalPos+pivot; // offset[id] = rb::Vector3{offN[0],offN[1],offN[2]};
rb::Vector3 cPos = childs[id]->body.getPos() + childs[id]->globalPos;
rb::Vector3 tmpChild = pivotPos + offset[id]; childs[id]->body.setPos(rb::Vector3{fPos[0]+offN[0]+pivot[0],fPos[1]+offN[1]+pivot[1],fPos[2]+offN[2]+pivot[2]});
childs[id]->body.setPos(tmpChild - childs[id]->globalPos); //printf("Offset = %f %f %f \n" , offN[0], offN[1], offN[2]);
}
oldRot = fRot; //aggiorno la rotazione per il ciclo successivo
oldCRot[id] = cRot; oldCRot[id] = cRot;
// r cosA = x -> x/r = cosA
/*
Devo spostare l'offset per poter ricalcolare la posizione relativa dei child rispetto al father dopo aver eseguito la rotazione.
La rotazione va eseguita nella posizione del mondo, ovvero sulle coordinate di body
Le coordinate camera non vanno toccate, determinano solo lo spostamento rispetto alla telecamera
*/
} }
void PivotJoint::traslate(unsigned int id){ void PivotJoint::traslate(unsigned int id){
@@ -64,34 +83,24 @@ PivotJoint::PivotJoint(PieceInterface* father,std::vector<PieceInterface*> child
this->childs = childs; this->childs = childs;
this->father = father; this->father = father;
rb::Vector3 fCoords = father->globalPos + father->body.getPos(); rb::Vector3 fCoords = father->globalPos + father->body.getPos();
rb::Vector3_s fRot = father->body.getRot(); rb::Vector3 fRot = father->body.getRot();
pivot = pivotPoint; pivot = pivotPoint;
rb::Vector3 pivotCenter = father->globalPos + father->body.getPos() + pivot; stPivot = pivotPoint;
rb::Vector3 pivotCenter = father->body.getPos() + stPivot;
/*
float sign = pivot[2] >= 0 ? 1 : -1;
float r = sqrt(pow(pivot[0],2)+pow(pivot[2],2));
rotOffset.push_back( rb::Vector3_s{0,0,_Float16( acos(sign * pivot[0]/r) )} );
*/
pivotAngle = rb::Vector3{0,0,0};
oldRot = father->body.getRot(); oldRot = father->body.getRot();
//mi calcolo l'offset per ogni child rispetto al pivot //mi calcolo l'offset per ogni child rispetto al pivot
for(PieceInterface* c : childs){ for(PieceInterface* c : childs){
rb::Vector3 tmpCoords; rb::Vector3 tmpCoords;
rb::Vector3 cCoords = c->globalPos + c->body.getPos(); rb::Vector3 cCoords = c->body.getPos();
tmpCoords = cCoords - pivotCenter; tmpCoords = cCoords - pivotCenter;
/*
float r = sqrt(pow(tmpCoords[0],2)+pow(tmpCoords[2],2));
oldCRot.push_back( rb::Vector3_s{0,0,_Float16( acos(tmpCoords[0]/r) )} );
*/
oldCRot.push_back(c->body.getRot()); oldCRot.push_back(c->body.getRot());
offset.push_back(tmpCoords); offset.push_back(tmpCoords);
offsetAngle.push_back(rb::Vector3{0,0,0});
} }
@@ -103,7 +112,7 @@ PivotJoint::~PivotJoint(){
void PivotJoint::movechild(){ void PivotJoint::movechild(){
updatePivot();
for ( unsigned int i = 0; i < childs.size(); i++){ for ( unsigned int i = 0; i < childs.size(); i++){
traslate(i); traslate(i);
rotate(i); rotate(i);
+41 -38
View File
@@ -2,55 +2,58 @@
#define ZERO_INT 0.00001 #define ZERO_INT 0.00001
void RigidJoint::rotate(unsigned int id){ //using namespace glm;
rb::Vector3_s fRot = father->body.getRot();
rb::Vector3_s fRotOld = childs[id]->body.getRot() - rotOffset[id];
rb::Vector3 cPos = childs[id]->body.getPos() + childs[id]->globalPos; void RigidJoint::rotate(unsigned int id){
rb::Vector3 fRot = father->body.getRot();
rb::Vector3 fRotOld = childs[id]->body.getRot() - rotOffset[id];
rb::Vector3 fPos = father->body.getPos();
rb::Vector3 cPos = childs[id]->body.getPos();
childs[id]->body.setRot(fRot + rotOffset[id]); childs[id]->body.setRot(fRot + rotOffset[id]);
//// sposto l'origine passivamente su tutti gli assi //// //passo a coordinate 3D per calcolare rotazione sul piano YZ oltre che al piano XZ
//se si muove il child devo muovere anche il padre -> devo trovare la differenza di posizione prima di ricalcolare l'offset // calcolo alpha angolo
/*
if (cPos != oldCPos[id]);*/
float r = sqrt(pow(offset[id][0],2)+pow(offset[id][2],2)); //calcolo modulo dell'offset (per ora solo sul piano xz) float alpha = float (fRot[0] - fRotOld[0]);
float beta = float (fRot[1] - fRotOld[1]);
if (r>ZERO_INT){ float cosA = glm::cos(alpha);
float sinA = glm::sin(alpha);
float sign = offset[id][2] >= 0 ? 1 : -1; float cosB = glm::cos(beta);
float sinB = glm::sin(beta);
sf::Angle alpha = sf::radians(fRot[2] - fRotOld[2]); // angolo aggiunto glm::mat4 Rx = glm::mat4{
sf::Angle alpha1 = sf::radians(acos(sign * offset[id][0]/r)); // angolo rispetto alla posizione del child 1 , 0, 0, 0,
sf::Angle beta = alpha + alpha1; 0, cosA, sinA, 0,
0, -sinA, cosA, 0,
0, 0, 0, 1
};
sf::Vector2f tmpCoordsX = sf::Vector2f(r,beta); glm::mat4 Ry = glm::mat4{
offset[id] = {sign * tmpCoordsX.x,offset[id][1],sign * tmpCoordsX.y}; cosB , 0, sinB, 0,
0, 1, 0, 0,
-sinB, 0, cosB, 0,
0, 0, 0, 1
};
//ora devo muovere il child rispetto al nuovo offset glm::mat4 T = glm::mat4{
1, 0, 0, 0,
0, 1, 0, 0,
0 ,0, 1, 0,
fPos[0], fPos[1], fPos[2], 1
};
glm::vec4 resRot = Rx * Ry * glm::vec4(offset[id][0],offset[id][1],offset[id][2],1);
offset[id] = rb::Vector3{resRot[0], resRot[1], resRot[2]};
glm::vec4 resTransf = T * resRot;
childs[id]->body.setPos({resTransf[0],resTransf[1],resTransf[2]});
rb::Vector3 fPos = father->body.getPos() + father->globalPos;
rb::Vector3 tmpChild = fPos + offset[id];
childs[id]->body.setPos(tmpChild - childs[id]->globalPos);
}
else{
childs[id]->body.setPos(father->body.getPos()+father->globalPos-childs[id]->globalPos);
}
// r cosA = x -> x/r = cosA
/*
Devo spostare l'offset per poter ricalcolare la posizione relativa dei child rispetto al father dopo aver eseguito la rotazione.
La rotazione va eseguita nella posizione del mondo, ovvero sulle coordinate di body
Le coordinate camera non vanno toccate, determinano solo lo spostamento rispetto alla telecamera
*/
} }
void RigidJoint::traslate(unsigned int id){ void RigidJoint::traslate(unsigned int id){
@@ -62,7 +65,7 @@ RigidJoint::RigidJoint(PieceInterface* father,std::vector<PieceInterface*> child
this->childs = childs; this->childs = childs;
this->father = father; this->father = father;
rb::Vector3 fCoords = father->globalPos + father->body.getPos(); rb::Vector3 fCoords = father->globalPos + father->body.getPos();
rb::Vector3_s fRot = father->body.getRot(); rb::Vector3 fRot = father->body.getRot();
@@ -70,7 +73,7 @@ RigidJoint::RigidJoint(PieceInterface* father,std::vector<PieceInterface*> child
//mi calcolo l'offset per ogni child rispetto al padre //mi calcolo l'offset per ogni child rispetto al padre
for(PieceInterface* c : childs){ for(PieceInterface* c : childs){
rb::Vector3 tmpCoords; rb::Vector3 tmpCoords;
rb::Vector3_s tmpRot; rb::Vector3 tmpRot;
rb::Vector3 cCoords = c->globalPos + c->body.getPos(); rb::Vector3 cCoords = c->globalPos + c->body.getPos();
+21
View File
@@ -0,0 +1,21 @@
#include "piece_interface.hpp"
#ifndef CAVIGLIA_H
#define CAVIGLIA_H
class Caviglia : public PieceInterface{
private:
const sf::Vector3f caviglia_Dim = {60, 200, 60};
const sf::Color caviglia_Col = sf::Color(230,160,11,255);
public:
Caviglia(rb::Vector3 coords, _Float16 mass);
~Caviglia();
void update(sf::Clock cl) override;
sf::Shape* draw(ReferencePlane plane) override;
};
#endif
+4 -2
View File
@@ -3,11 +3,13 @@
#ifndef COSCIA_H #ifndef COSCIA_H
#define COSCIA_H #define COSCIA_H
const sf::Vector2f coscia_Dim = {80, 200};
const sf::Color coscia_Col = sf::Color::Yellow;
class Coscia : public PieceInterface{ class Coscia : public PieceInterface{
private:
const sf::Vector3f coscia_Dim = {80, 200, 80};
const sf::Color coscia_Col = sf::Color::Yellow;
public: public:
Coscia(rb::Vector3 coords, _Float16 mass); Coscia(rb::Vector3 coords, _Float16 mass);
+12 -11
View File
@@ -1,32 +1,33 @@
#include <SFML/Graphics.hpp> #include <SFML/Graphics.hpp>
#include <math.h> #include <math.h>
#include "../../rigidbody/headers/rb.hpp" #include "../../rigidbody/headers/rb.hpp"
//#include "../../joints/headers/joint_interface.hpp"
#ifndef PIECE_INTERFACE_H #ifndef PIECE_INTERFACE_H
#define PIECE_INTERFACE_H #define PIECE_INTERFACE_H
// costanti
const sf::Vector2f caviglia_Dim = {50, 200};
const sf::Color caviglia_Col = sf::Color::Red;
enum class ReferencePlane { enum class ReferencePlane {
XY, XZ,
YZ, YZ,
XZ XZN
}; };
//classi //classi
class PieceInterface{ class PieceInterface{
protected: protected:
//std::vector<JointInterface*> joints; void initialize_shapes(sf::Vector3f dim){
shapeXZ = new sf::RectangleShape({dim.x, dim.y});
shapeYZ = new sf::RectangleShape({dim.z, dim.y});
shapeXZ->setOrigin({dim.x/2,dim.y/2});
shapeYZ->setOrigin({dim.z/2,dim.y/2});
shapeXZ->setFillColor(color);
shapeYZ->setFillColor(color);
}
public: public:
sf::Shape* shape; sf::Shape* shapeXZ, *shapeYZ;
sf::Vector2f size;
rb::Vector3 globalPos; rb::Vector3 globalPos;
rb::rigidbody body; rb::rigidbody body;
sf::Color color; sf::Color color;
+9 -7
View File
@@ -3,28 +3,28 @@
#ifndef SENSORE_H #ifndef SENSORE_H
#define SENSORE_H #define SENSORE_H
const sf::Vector2f sensore_Dim = {30, 60};
const sf::Color sensore_Col = sf::Color::Red;
class Sensore : public PieceInterface{ class Sensore : public PieceInterface{
private: private:
const sf::Vector3f sensore_Dim = {30, 60, 30};
const sf::Color sensore_Col = sf::Color::Red;
std::vector<std::vector<float>> accData; std::vector<std::vector<float>> accData;
std::vector<std::vector<float>> gData; std::vector<std::vector<float>> gData;
std::vector<std::vector<float>> rotData; std::vector<std::vector<float>> rotData;
std::vector<float> timeData; std::vector<float> timeData;
rb::Vector3 stPos;
//in che punto sto controllando il segnale //in che punto sto controllando il segnale
unsigned int dataPos; unsigned int* dataPos;
unsigned int dataIntvl;
//funzioni ausiliarie //funzioni ausiliarie
void calcRotWithG(unsigned int index); void calcRotWithG(unsigned int index);
public: public:
Sensore(rb::Vector3 coords, _Float16 mass); Sensore(rb::Vector3 coords, _Float16 mass);
Sensore(rb::Vector3 coords, _Float16 mass, unsigned int st, unsigned int dataIntvl, std::vector<std::vector<float>> data); Sensore(rb::Vector3 coords, _Float16 mass, unsigned int* st, std::vector<std::vector<float>> data);
~Sensore(); ~Sensore();
void update(sf::Clock cl) override; void update(sf::Clock cl) override;
@@ -32,6 +32,8 @@ class Sensore : public PieceInterface{
//funzioni specifiche //funzioni specifiche
void initCSV(std::vector<std::vector<float>> data); void initCSV(std::vector<std::vector<float>> data);
void setIntervall(int min, int max);
void setPos(int &pos);
}; };
+21
View File
@@ -0,0 +1,21 @@
#include "piece_interface.hpp"
#ifndef TORSO_H
#define TORSO_H
class Torso : public PieceInterface{
private:
const sf::Vector3f torso_Dim = {100, 100, 250};
const sf::Color torso_Col = sf::Color::Red;
public:
Torso(rb::Vector3 coords, _Float16 mass);
~Torso();
void update(sf::Clock cl) override;
sf::Shape* draw(ReferencePlane plane) override;
};
#endif
+52
View File
@@ -0,0 +1,52 @@
#include "../headers/caviglia.hpp"
Caviglia::Caviglia(rb::Vector3 coords, _Float16 mass){
rb::Vector3 com = {caviglia_Dim.x/2,caviglia_Dim.x/2, caviglia_Dim.y/2};
body = rb::rigidbody(coords, com, mass);
color = caviglia_Col;
globalPos = {0,0,0};
initialize_shapes(caviglia_Dim);
}
Caviglia::~Caviglia(){
delete shapeXZ;
delete shapeYZ;
}
void Caviglia::update(sf::Clock cl){
//body.step(cl);
}
sf::Shape* Caviglia::draw(ReferencePlane plane){
rb::Vector3 tmpPos = body.getPos();
rb::Vector3 tmpRot = body.getRot();
switch (plane)
{
case ReferencePlane::XZ:
{
sf::Shape* shape = shapeXZ;
shape->setRotation(sf::Angle(sf::radians(tmpRot[1])));
shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]});
shape->setScale({1,cos(float(tmpRot[0]))});
return shape;}
break;
case ReferencePlane::YZ:
{
sf::Shape* shape = shapeYZ;
shape->setRotation(sf::Angle(sf::radians(tmpRot[0])));
shape->setPosition({tmpPos[1]+globalPos[1],tmpPos[2]+globalPos[2]});
shape->setScale({1,cos(float(tmpRot[1]))});
return shape;}
break;
default:
break;
}
return nullptr;
}
+29 -9
View File
@@ -1,17 +1,16 @@
#include "../headers/coscia.hpp" #include "../headers/coscia.hpp"
Coscia::Coscia(rb::Vector3 coords, _Float16 mass){ Coscia::Coscia(rb::Vector3 coords, _Float16 mass){
size = coscia_Dim; rb::Vector3 com = {coscia_Dim.x/2,coscia_Dim.z/2,coscia_Dim.y/2};
rb::Vector3 com = {size.x/2,0, size.y/2};
body = rb::rigidbody(coords, com, mass); body = rb::rigidbody(coords, com, mass);
color = coscia_Col; color = coscia_Col;
shape = new sf::RectangleShape(size);
shape->setOrigin({size.x/2,size.y/2});
globalPos = {0,0,0}; globalPos = {0,0,0};
initialize_shapes(coscia_Dim);
} }
Coscia::~Coscia(){ Coscia::~Coscia(){
delete shape; delete shapeXZ;
delete shapeYZ;
} }
void Coscia::update(sf::Clock cl){ void Coscia::update(sf::Clock cl){
@@ -19,22 +18,43 @@ void Coscia::update(sf::Clock cl){
} }
sf::Shape* Coscia::draw(ReferencePlane plane){ sf::Shape* Coscia::draw(ReferencePlane plane){
shape->setFillColor(color);
rb::Vector3 tmpPos = body.getPos(); rb::Vector3 tmpPos = body.getPos();
rb::Vector3_s tmpRot = body.getRot(); rb::Vector3 tmpRot = body.getRot();
switch (plane) switch (plane)
{ {
case ReferencePlane::XZ: case ReferencePlane::XZ:
{
sf::Shape* shape = shapeXZ;
shape->setRotation(sf::Angle(sf::radians(tmpRot[1])));
shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]}); shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]});
shape->setRotation(sf::Angle(sf::radians(tmpRot[2])));
//calcolo ridimensionamento dato da cos(x)-> questo per definire l'ancoraggio corretto del pivot
shape->setScale({1,cos(float(tmpRot[0]))});
//shape->setScale({1,(0.5* cos(float(tmpRot[0]*2)))+0.5});
return shape;}
break; break;
case ReferencePlane::YZ:
{
sf::Shape* shape = shapeYZ;
shape->setRotation(sf::Angle(sf::radians(tmpRot[0])));
shape->setPosition({tmpPos[1]+globalPos[1],tmpPos[2]+globalPos[2]});
//calcolo ridimensionamento dato da cos(x) -> questo per definire l'ancoraggio corretto del pivot
shape->setScale({1,cos(float(tmpRot[1]))});
//shape->setScale({1,(0.5* cos(float(tmpRot[1]*2)))+0.5});
return shape;}
break;
default: default:
break; break;
} }
return shape; return nullptr;
} }
+37 -30
View File
@@ -2,23 +2,22 @@
Sensore::Sensore(rb::Vector3 coords, _Float16 mass){ Sensore::Sensore(rb::Vector3 coords, _Float16 mass){
size = sensore_Dim; rb::Vector3 com = {sensore_Dim.x/2,sensore_Dim.z/2, sensore_Dim.y/2};
rb::Vector3 com = {size.x/2,0, size.y/2}; body = rb::rigidbody(coords, com, mass);
body = rb::rigidbody({0,0,0}, com, mass);
color = sensore_Col; color = sensore_Col;
shape = new sf::RectangleShape(size); globalPos = {0,0,0};
globalPos = coords; initialize_shapes(sensore_Dim);
} }
Sensore::Sensore(rb::Vector3 coords, _Float16 mass, unsigned int st, unsigned int dataIntvl, std::vector<std::vector<float>> data) : Sensore(coords, mass){ Sensore::Sensore(rb::Vector3 coords, _Float16 mass, unsigned int* st, std::vector<std::vector<float>> data) : Sensore(coords, mass){
dataPos = st; dataPos = st;
this->dataIntvl = dataIntvl;
initCSV(data); initCSV(data);
} }
Sensore::~Sensore(){ Sensore::~Sensore(){
delete shape; delete shapeXZ;
delete shapeYZ;
} }
void Sensore::initCSV(std::vector<std::vector<float>> data){ void Sensore::initCSV(std::vector<std::vector<float>> data){
@@ -33,6 +32,9 @@ void Sensore::initCSV(std::vector<std::vector<float>> data){
std::vector<float> tmpA = {row[5],row[6],row[4]}; std::vector<float> tmpA = {row[5],row[6],row[4]};
std::vector<float> tmpG = {-row[8],-row[9],-row[7]}; std::vector<float> tmpG = {-row[8],-row[9],-row[7]};
/////// DA CAMBIARE QUI ///////////
rotData.push_back(tmpR); rotData.push_back(tmpR);
accData.push_back(tmpA); accData.push_back(tmpA);
gData.push_back(tmpG); gData.push_back(tmpG);
@@ -41,44 +43,46 @@ void Sensore::initCSV(std::vector<std::vector<float>> data){
void Sensore::update(sf::Clock cl){ void Sensore::update(sf::Clock cl){
// Aggiorno la posizione nei dati
int64_t currTime = cl.getElapsedTime().asMicroseconds() *100000;
if (timeData[dataPos] < currTime && dataIntvl - dataPos > 0) { //aggiorno solo se ho cambiato posizione
dataPos++;
//calcolo la posizione e velocità //calcolo la posizione e velocità
calcRotWithG(dataPos); if (*dataPos >= gData.size()) *dataPos = gData.size()-1;
body.setAcc(rb::Vector3{accData[dataPos]});
calcRotWithG(*dataPos);
body.setAcc(rb::Vector3{accData[*dataPos]});
body.step(cl); body.step(cl);
}
} }
sf::Shape* Sensore::draw(ReferencePlane plane){ sf::Shape* Sensore::draw(ReferencePlane plane){
shape->setFillColor(color);
shape->setOrigin({sensore_Dim.x/2, sensore_Dim.y/2});
rb::Vector3_s tmpRot = body.getRot();
rb::Vector3 tmpRot = body.getRot();
rb::Vector3 tmpPos = body.getPos(); rb::Vector3 tmpPos = body.getPos();
switch (plane) switch (plane)
{ {
case ReferencePlane::XZ: case ReferencePlane::XZ:
shape->setRotation(sf::Angle(sf::radians(tmpRot[2]))); {
sf::Shape* shape = shapeXZ;
shape->setRotation(sf::Angle(sf::radians(tmpRot[1])));
shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]}); shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]});
return shape;}
break;
case ReferencePlane::YZ:
{
sf::Shape* shape = shapeYZ;
shape->setRotation(sf::Angle(sf::radians(tmpRot[0])));
shape->setPosition({tmpPos[1]+globalPos[1],tmpPos[2]+globalPos[2]});
return shape;}
break; break;
default: default:
break; break;
} }
return nullptr;
return shape;
} }
@@ -93,10 +97,13 @@ void Sensore::calcRotWithG(unsigned int index){ // calcolo rotazione con valori
float tmpSinY = -grav[1] / modG; float tmpSinY = -grav[1] / modG;
float tmpSinZ = -grav[2] / modG; float tmpSinZ = -grav[2] / modG;
float tmpAX = acos(tmpSinY); float tmpAX = acos(tmpSinX);
float tmpAY = acos(tmpSinZ); float tmpAY = acos(tmpSinY);
float tmpAZ = acos(tmpSinX); float tmpAZ = acos(tmpSinZ);
body.setRot(rb::Vector3_s{_Float16( tmpAX),_Float16( tmpAY),_Float16( tmpAZ) }); body.setRot(rb::Vector3{tmpAY, tmpAX, tmpAZ });
} }
/////////////// cinematica inversa
+50
View File
@@ -0,0 +1,50 @@
#include "../headers/torso.hpp"
Torso::Torso(rb::Vector3 coords, _Float16 mass){
rb::Vector3 com = {torso_Dim.x/2, torso_Dim.y/2, torso_Dim.z/2};
body = rb::rigidbody(coords,com, mass);
color = torso_Col;
globalPos = {0,0,0};
initialize_shapes(torso_Dim);
}
Torso::~Torso(){
delete shapeXZ;
delete shapeYZ;
}
void Torso::update(sf::Clock cl){
}
sf::Shape* Torso::draw(ReferencePlane plane){
rb::Vector3 tmpRot = body.getRot();
rb::Vector3 tmpPos = body.getPos();
switch (plane)
{
case ReferencePlane::XZ:
{
sf::Shape* shape = shapeXZ;
shape->setRotation(sf::Angle(sf::radians(tmpRot[1])));
shape->setPosition({tmpPos[0]+globalPos[0],tmpPos[2]+globalPos[2]});
return shape;}
break;
case ReferencePlane::YZ:
{
sf::Shape* shape = shapeYZ;
shape->setRotation(sf::Angle(sf::radians(tmpRot[0])));
shape->setPosition({tmpPos[1]+globalPos[1],tmpPos[2]+globalPos[2]});
return shape;}
break;
default:
break;
}
return nullptr;
}
+5 -26
View File
@@ -7,14 +7,14 @@
namespace rb{ namespace rb{
typedef std::vector<float> Vector3; typedef std::vector<float> Vector3;
typedef std::vector<_Float16> Vector3_s; //typedef std::vector<_Float16> Vector3;
class rigidbody class rigidbody
{ {
private: private:
Vector3 vel = {0,0,0}; Vector3 vel = {0,0,0};
Vector3 acc = {0,0,0}; Vector3 acc = {0,0,0};
Vector3_s rot = {0,0,0}; Vector3 rot = {0,0,0};
Vector3 tanAcc = {0,0,0}; Vector3 tanAcc = {0,0,0};
_Float16 mass = 1; _Float16 mass = 1;
@@ -40,9 +40,9 @@
Vector3 getPos(); Vector3 getPos();
Vector3_s getRot(); Vector3 getRot();
void setPos(const Vector3 Npos); void setPos(const Vector3 Npos);
void setRot(const Vector3_s Nrot); void setRot(const Vector3 Nrot);
void setVel(const Vector3 Nacc); void setVel(const Vector3 Nacc);
void setAcc(const Vector3 Nvel); void setAcc(const Vector3 Nvel);
void step(const sf::Clock time); void step(const sf::Clock time);
@@ -77,29 +77,8 @@
}; };
} }
inline rb::Vector3_s operator+(const rb::Vector3_s& v1, const rb::Vector3_s& v2) {
if (v1.size() != 3 || v2.size() != 3) {
throw std::invalid_argument("I vettori devono avere esattamente 3 elementi.");
}
return rb::Vector3_s{
v1[0] + v2[0],
v1[1] + v2[1],
v1[2] + v2[2]
};
}
inline rb::Vector3_s operator-(const rb::Vector3_s& v1, const rb::Vector3_s& v2) {
if (v1.size() != 3 || v2.size() != 3) {
throw std::invalid_argument("I vettori devono avere esattamente 3 elementi.");
}
return rb::Vector3_s{
v1[0] - v2[0],
v1[1] - v2[1],
v1[2] - v2[2]
};
}
/* /*
inline bool operator!=(const rb::Vector3_s& v1, const rb::Vector3_s& v2) { inline bool operator!=(const rb::Vector3& v1, const rb::Vector3& v2) {
if (v1.size() != 3 || v2.size() != 3) { if (v1.size() != 3 || v2.size() != 3) {
throw std::invalid_argument("I vettori devono avere esattamente 3 elementi."); throw std::invalid_argument("I vettori devono avere esattamente 3 elementi.");
} }
+3 -3
View File
@@ -21,8 +21,8 @@ rigidbody::~rigidbody()
Vector3 rigidbody::getPos(){ Vector3 rigidbody::getPos(){
return Vector3 {coords}; return Vector3 {coords};
} }
Vector3_s rigidbody::getRot(){ Vector3 rigidbody::getRot(){
return Vector3_s {rot}; return Vector3 {rot};
} }
void rigidbody::setPos(Vector3 Npos){ void rigidbody::setPos(Vector3 Npos){
@@ -47,7 +47,7 @@ void rigidbody::setAcc(const Vector3 Nacc){
} }
void rigidbody::setRot(const Vector3_s Nrot){ void rigidbody::setRot(const Vector3 Nrot){
if (Nrot.size() != 3) throw "Vel vector must be 3 in lenght!"; if (Nrot.size() != 3) throw "Vel vector must be 3 in lenght!";
int i = 0; int i = 0;
+142 -31
View File
@@ -2,6 +2,8 @@
#include <math.h> #include <math.h>
#include "pieces/headers/piece_interface.hpp" #include "pieces/headers/piece_interface.hpp"
#include "joints/headers/joint_interface.hpp" #include "joints/headers/joint_interface.hpp"
#include <imgui.h>
#include <imgui-SFML.h>
template <typename T1, typename T2> template <typename T1, typename T2>
double dist(sf::Vector2<T1> p1, sf::Vector2<T2> p2) double dist(sf::Vector2<T1> p1, sf::Vector2<T2> p2)
@@ -22,6 +24,7 @@ struct State
sf::Vector2f cameraOffset = {0.,0.}; sf::Vector2f cameraOffset = {0.,0.};
sf::Clock clock; sf::Clock clock;
ReferencePlane selectedPlane = ReferencePlane::XZ;
int selected = -1; int selected = -1;
@@ -30,12 +33,26 @@ struct State
bool drag = false; bool drag = false;
sf::Vector2i mouse_pos; sf::Vector2i mouse_pos;
State(unsigned w, unsigned h, std::string title) /// per settare l'ntervallo di visualizzazione
unsigned int* pos ;
unsigned int* intervalMajLimit ;
unsigned int* intervalMinLimit ;
unsigned int maxEntries = 1000;
bool play = true;
State(unsigned w, unsigned h, std::string title, unsigned int* maj, unsigned int* min, unsigned int* pos)
{ {
window = sf::RenderWindow(sf::VideoMode({w, h}), title); window = sf::RenderWindow(sf::VideoMode({w, h}), title);
if (ImGui::SFML::Init(window)); // L'if è solo per togliere il warning, va aggiustato gestendo le eccezioni
clock.restart(); clock.restart();
intervalMajLimit = maj;
intervalMinLimit = min;
this->pos = pos;
} }
void update(); void update();
void setIntervall(int n){
maxEntries = n;
}
}; };
/// ///
@@ -46,13 +63,15 @@ struct State
void State::update(){ void State::update(){
if (play){
for(PieceInterface* p : pieces){ for(PieceInterface* p : pieces){
p->update(clock); p->update(clock);
} }
}
for(JointInterface* j : joints){ for(JointInterface* j : joints){
j->movechild(); j->movechild();
} }
} }
/// ///
@@ -60,47 +79,69 @@ void State::update(){
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// Callback functions /// Callback functions
void handle(const sf::Event::Closed &, State &gs) void handle_close(State &gs)
{ {
gs.window.close(); gs.window.close();
} }
void handle(const sf::Event::TextEntered &textEnter, State &gs) void handle_text(const sf::Event::TextEntered &textEnter, State &gs)
{ {
} }
void handle(const sf::Event::KeyPressed &keyPressed, State &gs) void handle_keyPressed(const sf::Event::KeyPressed &keyPressed, State &gs)
{ {
if (keyPressed.scancode == sf::Keyboard::Scancode::Space){
if (gs.selectedPlane == ReferencePlane::XZ)
gs.selectedPlane = ReferencePlane::YZ;
else
gs.selectedPlane = ReferencePlane::XZ;
}
} }
void handle(const sf::Event::MouseMoved &mouseMoved, State &gs) void handle_mouseMove(const sf::Event::MouseMoved &mouseMoved, State &gs)
{ {
sf::Vector2i offset = mouseMoved.position - gs.mouse_pos; sf::Vector2i offset = mouseMoved.position - gs.mouse_pos;
gs.mouse_pos = mouseMoved.position; gs.mouse_pos = mouseMoved.position;
float px = 1;
float py = 0;
switch (gs.selectedPlane)
{
case ReferencePlane::XZ:
px = 1;
py = 0;
break;
case ReferencePlane::YZ:
px = 0;
py = 1;
break;
default:
break;
}
if (gs.drag){ if (gs.drag){
for(PieceInterface* p : gs.pieces){ for(PieceInterface* p : gs.pieces){
p->globalPos = {p->globalPos[0] + offset.x, p->globalPos[1],p->globalPos[2] + offset.y}; p->globalPos = {p->globalPos[0] + (offset.x * px), p->globalPos[1]+ (offset.x * py),p->globalPos[2] + offset.y};
/// Devo spostare sul piano di visualizzazione
/// Quindi dovrò settare una variabile che mi definisce qual è il piano preso in considerazione, questo sarà nello state
} }
} }
if (gs.selected != -1 && gs.drag_Piece){ if (gs.selected != -1 && gs.drag_Piece){
rb::Vector3 tmp = gs.pieces[gs.selected]->body.getPos(); rb::Vector3 tmp = gs.pieces[gs.selected]->body.getPos();
gs.pieces[gs.selected]->body.setPos({tmp[0]+offset.x,tmp[1],tmp[2]+offset.y}); gs.pieces[gs.selected]->body.setPos({tmp[0]+ (offset.x * px),tmp[1]+ (offset.x * py),tmp[2]+offset.y});
} }
if (gs.selected != -1 && gs.rot_Piece){ if (gs.selected != -1 && gs.rot_Piece){
rb::Vector3_s tmp = gs.pieces[gs.selected]->body.getRot(); rb::Vector3 tmp = gs.pieces[gs.selected]->body.getRot();
_Float16 nrot = _Float16(offset.x)/10; float nrot = float(offset.x)/100;
gs.pieces[gs.selected]->body.setRot({tmp[0],tmp[1],tmp[2]+nrot}); gs.pieces[gs.selected]->body.setRot({tmp[0]+(nrot*py),tmp[1]+(nrot*px),tmp[2]});
//printf("Rotation : %f,%f,%f \n",gs.pieces[gs.selected]->body.getRot()[0],gs.pieces[gs.selected]->body.getRot()[1],gs.pieces[gs.selected]->body.getRot()[2]);
} }
} }
void handle(const sf::Event::MouseButtonPressed &mouseBP, State &gs) void handle_mousePressed(const sf::Event::MouseButtonPressed &mouseBP, State &gs)
{ {
gs.mouse_pos = mouseBP.position; gs.mouse_pos = mouseBP.position;
if ( mouseBP.button == sf::Mouse::Button::Middle) gs.drag = true; if ( mouseBP.button == sf::Mouse::Button::Middle) gs.drag = true;
@@ -108,12 +149,14 @@ void handle(const sf::Event::MouseButtonPressed &mouseBP, State &gs)
gs.drag_Piece = true; gs.drag_Piece = true;
int i = 0; int i = 0;
for (PieceInterface* p : gs.pieces){ for (PieceInterface* p : gs.pieces){
sf::Vector2f pos;
sf::Vector2f pos = {p->globalPos[0]+ p->body.getPos()[0], p->globalPos[2]+ p->body.getPos()[2]}; if (gs.selectedPlane == ReferencePlane::XZ)
pos = {p->globalPos[0]+ p->body.getPos()[0], p->globalPos[2]+ p->body.getPos()[2]};
else if (gs.selectedPlane == ReferencePlane::YZ)
pos = {p->globalPos[1]+ p->body.getPos()[1], p->globalPos[2]+ p->body.getPos()[2]};
if (dist(pos,mouseBP.position) < 20){ if (dist(pos,mouseBP.position) < 20){
gs.selected = i; gs.selected = i;
break;
} }
i++; i++;
} }
@@ -122,12 +165,14 @@ void handle(const sf::Event::MouseButtonPressed &mouseBP, State &gs)
gs.rot_Piece = true; gs.rot_Piece = true;
int i = 0; int i = 0;
for (PieceInterface* p : gs.pieces){ for (PieceInterface* p : gs.pieces){
sf::Vector2f pos;
sf::Vector2f pos = {p->globalPos[0]+ p->body.getPos()[0], p->globalPos[2]+ p->body.getPos()[2]}; if (gs.selectedPlane == ReferencePlane::XZ)
pos = {p->globalPos[0]+ p->body.getPos()[0], p->globalPos[2]+ p->body.getPos()[2]};
else if (gs.selectedPlane == ReferencePlane::YZ)
pos = {p->globalPos[1]+ p->body.getPos()[1], p->globalPos[2]+ p->body.getPos()[2]};
if (dist(pos,mouseBP.position) < 20){ if (dist(pos,mouseBP.position) < 20){
gs.selected = i; gs.selected = i;
break;
} }
i++; i++;
} }
@@ -135,7 +180,7 @@ void handle(const sf::Event::MouseButtonPressed &mouseBP, State &gs)
} }
void handle(const sf::Event::MouseButtonReleased &, State &gs) void handle_mouseRelease(const sf::Event::MouseButtonReleased &, State &gs)
{ {
gs.drag = false; gs.drag = false;
gs.drag_Piece = false; gs.drag_Piece = false;
@@ -143,17 +188,13 @@ void handle(const sf::Event::MouseButtonReleased &, State &gs)
gs.selected = -1; gs.selected = -1;
} }
void handle(const sf::Event::Resized &resized, State &gs) void handle_resize(const sf::Event::Resized &resized, State &gs)
{ {
sf::FloatRect visibleArea({0.f, 0.f}, sf::Vector2f(resized.size)); sf::FloatRect visibleArea({0.f, 0.f}, sf::Vector2f(resized.size));
gs.window.setView(sf::View(visibleArea)); gs.window.setView(sf::View(visibleArea));
} }
template <typename T>
void handle(const T &, State &gs)
{
// All unhandled events will end up here
}
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
@@ -164,17 +205,87 @@ void doGUI(State &gs)
{ {
// TODO: here code to display the menus // TODO: here code to display the menus
//Bottoni //Bottoni
sf::Time elapsed = gs.clock.restart();
unsigned int zero = 0;
ImGui::SFML::Update(gs.window, elapsed);
ImGui::ShowDemoWindow();
//Finestra gestione posizione nei dati
ImGuiWindowFlags sdp_flags = ImGuiWindowFlags_NoMove|
ImGuiWindowFlags_NoResize|
ImGuiWindowFlags_NoScrollbar|
ImGuiWindowFlags_NoCollapse|
ImGuiWindowFlags_NoTitleBar;
ImGui::Begin("Set data position", 0,sdp_flags);
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x * 0.3);
ImGui::SliderScalar("Start", ImGuiDataType_U32 ,gs.intervalMinLimit,&zero,gs.intervalMajLimit);
ImGui::SameLine();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x * 0.5);
if (ImGui::SliderScalar("Pos", ImGuiDataType_U32 ,gs.pos,gs.intervalMinLimit,gs.intervalMajLimit)){
gs.play = false;
}
ImGui::SameLine();
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x * 0.8);
ImGui::SliderScalar("End", ImGuiDataType_U32 ,gs.intervalMajLimit,gs.intervalMinLimit,&gs.maxEntries);
bool red = false;
if (!gs.play){
ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(1,0,0,1));
red = true;
}
ImGui::SameLine();
if (ImGui::ArrowButton("Play", ImGuiDir_Right)){
gs.play = !gs.play;
}
if (red) ImGui::PopStyleColor();
ImGui::End();
//Finestra gestione piano visualizzazione
ImGui::Begin("Set visualization plane",0,sdp_flags);
const char* MyEnumNames[] = { "XZ", "YZ", "-XZ" };
int currentPlane = (int)gs.selectedPlane;
ImGui::SliderInt("Selected Plane", &currentPlane,0,2,MyEnumNames[currentPlane]);
gs.selectedPlane = (ReferencePlane)currentPlane;
ImGui::End();
sf::Vector2u wsize = gs.window.getSize();
ImGui::SetWindowPos("Set data position",ImVec2(0,wsize.y - 30));
ImGui::SetWindowSize("Set data position",ImVec2(wsize.x,30));
ImGui::SetWindowPos("Set visualization plane",ImVec2(wsize.x-400,0));
ImGui::SetWindowSize("Set visualization plane",ImVec2(400,30));
ImGui::SFML::Render(gs.window);
} }
void doGraphics(State &gs) void doGraphics(State &gs)
{ {
gs.window.clear(); gs.window.clear();
for(PieceInterface* p: gs.pieces){
gs.window.draw(*p->draw(gs.selectedPlane));
}
while (const std::optional event = gs.window.pollEvent()) {
ImGui::SFML::ProcessEvent(gs.window, *event);
if (event->is<sf::Event::Closed>())
handle_close (gs);
if (const auto* resized = event->getIf<sf::Event::Resized>())
handle_resize (*resized, gs);
if (const auto* pressed = event->getIf<sf::Event::KeyPressed>())
handle_keyPressed (*pressed, gs);
if (const auto* moved = event->getIf<sf::Event::MouseMoved>())
handle_mouseMove (*moved, gs);
if (const auto* mpressed = event->getIf<sf::Event::MouseButtonPressed>())
handle_mousePressed (*mpressed, gs);
if (const auto* mreleased = event->getIf<sf::Event::MouseButtonReleased>())
handle_mouseRelease (*mreleased, gs);
}
doGUI(gs); doGUI(gs);
for(PieceInterface* p: gs.pieces){
gs.window.draw(*p->draw(ReferencePlane::XZ));
}
// TODO: add here code to display shapes in your canvas // TODO: add here code to display shapes in your canvas
+34 -12
View File
@@ -28,51 +28,73 @@ int main() {
std::cerr << "Error: " << e.what() << std::endl; std::cerr << "Error: " << e.what() << std::endl;
} }
// inizializzo variabili per gestire l'intervallo di visualizzazione
unsigned int min = 0;
unsigned int pos = 0;
unsigned int maj = 100;
//Costruisco la GUI //Costruisco la GUI
State gs(800, 600, "Visualizzatore passo"); State gs(800, 600, "Visualizzatore passo",&maj,&min,&pos);
gs.window.setFramerateLimit(60); gs.window.setFramerateLimit(70);
printf("Costruisco gli oggetti\n"); printf("Costruisco gli oggetti\n");
try{ try{
processor.readCSVFile (DATA_PATH + "coscia_filt.csv"); processor.readCSVFile (DATA_PATH + "coscia_filt.csv");
const auto& coscia = processor.getData(); const auto& coscia = processor.getData();
gs.setIntervall(coscia.size());
gs.pieces.push_back(new Coscia (rb::Vector3{300,10,300},2)); gs.pieces.push_back(new Coscia (rb::Vector3{300,300,300},2));
gs.pieces.push_back(new Sensore (rb::Vector3{300,300,300},_Float16( 0.2 ),900,3000,coscia)); gs.pieces.push_back(new Sensore (rb::Vector3{300,300,300},_Float16( 0.2 ),&pos,coscia));
gs.pieces.push_back(new Coscia (rb::Vector3{300,10,500},1)); gs.pieces.push_back(new Caviglia (rb::Vector3{300,300,500},1));
gs.pieces[1]->body.setRot({0,0,0}); gs.pieces[1]->body.setRot({0,0,0});
processor.readCSVFile(DATA_PATH + "caviglia_filt.csv"); processor.readCSVFile(DATA_PATH + "caviglia_filt.csv");
const auto& caviglia = processor.getData(); const auto& caviglia = processor.getData();
gs.pieces.push_back(new Sensore (rb::Vector3{300,700,500},_Float16( 0.2 ),900,3000,caviglia)); gs.pieces.push_back(new Sensore (rb::Vector3{300,300,500},_Float16( 0.2 ),&pos,caviglia));
gs.pieces.push_back(new Torso(rb::Vector3{300,400,150},2));
// modifico la rotazione relativa della gamba // modifico la rotazione relativa della gamba
gs.pieces[1]->body.setRot({0,0,_Float16 (1.6)}); gs.pieces[1]->body.setRot({_Float16 (1.3),_Float16 (1.7),0});
gs.pieces[3]->body.setRot({0,0,_Float16 (1.7)}); gs.pieces[3]->body.setRot({_Float16 (1.8),_Float16 (1.7),0});
// aggiungo i joint // aggiungo i joint
gs.joints.push_back(new PivotJoint(gs.pieces[4], {gs.pieces[1]}, rb::Vector3{0,-100,50}));
gs.joints.push_back(new RigidJoint(gs.pieces[1], {gs.pieces[0]})); gs.joints.push_back(new RigidJoint(gs.pieces[1], {gs.pieces[0]}));
gs.joints.push_back(new PivotJoint(gs.pieces[1], {gs.pieces[3]}, rb::Vector3{0,0,100})); gs.joints.push_back(new PivotJoint(gs.pieces[1], {gs.pieces[3]}, rb::Vector3{0,0,100}));
gs.joints.push_back(new RigidJoint(gs.pieces[3], {gs.pieces[2]})); gs.joints.push_back(new RigidJoint(gs.pieces[3], {gs.pieces[2]}));
printf("Ho costruito tutto!\n"); printf("Ho costruito tutto!\n");
} }
catch(char* e){ catch(char* e){
printf("%s\n",e); printf("%s\n",e);
} }
printf("Avvio l'interfaccia grafica\n"); printf("Avvio l'interfaccia grafica\n");
unsigned int curTime = 0;
unsigned int freq = 50;
const unsigned int T = 1000/freq; //i sensori hanno una freq di campionamento di 50hz
//Avvio il loop della GUI //Avvio il loop della GUI
gs.clock.start(); gs.clock.start();
sf::Clock mainClock;
while (gs.window.isOpen()) while (gs.window.isOpen())
{ {
// event loop and handler through callbacks curTime += mainClock.restart().asMilliseconds();
gs.window.handleEvents([&](const auto &event) if (curTime > T){
{ handle(event, gs); }); if (gs.play && pos+curTime/T < maj) pos += curTime / T;
curTime = 0;
}
// Show update // Show update
gs.update(); gs.update();
doGraphics(gs); doGraphics(gs);