From a6b6fbb1328806236edd899adaf7390ec318b968 Mon Sep 17 00:00:00 2001 From: Tobias Frisch <tfrisch@uni-koblenz.de> Date: Tue, 25 May 2021 10:56:26 +0200 Subject: [PATCH] [#35] Moved code into own module directory, added submodule, removed glfw dependency Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de> --- .gitmodules | 3 ++ modules/CMakeLists.txt | 1 + modules/camera/CMakeLists.txt | 31 +++++++++++++++++++ modules/camera/config/GLM.cmake | 15 +++++++++ .../include/vkcv/camera/Camera.hpp | 7 +---- .../include/vkcv/camera/TrackballCamera.hpp | 4 +-- modules/camera/lib/glm | 1 + .../src/vkcv/camera/Camera.cpp | 0 .../src/vkcv/camera/TrackballCamera.cpp | 6 ++-- modules/testing/CMakeLists.txt | 12 +------ modules/testing/GLFW.cmake | 18 ----------- modules/testing/GLM.cmake | 22 ------------- 12 files changed, 57 insertions(+), 63 deletions(-) create mode 100644 modules/camera/CMakeLists.txt create mode 100644 modules/camera/config/GLM.cmake rename modules/{testing => camera}/include/vkcv/camera/Camera.hpp (86%) rename modules/{testing => camera}/include/vkcv/camera/TrackballCamera.hpp (91%) create mode 160000 modules/camera/lib/glm rename modules/{testing => camera}/src/vkcv/camera/Camera.cpp (100%) rename modules/{testing => camera}/src/vkcv/camera/TrackballCamera.cpp (96%) delete mode 100644 modules/testing/GLFW.cmake delete mode 100644 modules/testing/GLM.cmake diff --git a/.gitmodules b/.gitmodules index b44e4738..97fc7d9d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "lib/glfw"] path = lib/glfw url = https://github.com/glfw/glfw.git +[submodule "modules/camera/lib/glm"] + path = modules/camera/lib/glm + url = https://github.com/g-truc/glm.git diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index 3309d860..e9911a59 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -1,3 +1,4 @@ # Add new modules here: +add_subdirectory(camera) add_subdirectory(testing) diff --git a/modules/camera/CMakeLists.txt b/modules/camera/CMakeLists.txt new file mode 100644 index 00000000..061c22e2 --- /dev/null +++ b/modules/camera/CMakeLists.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION 3.16) +project(vkcv_camera) + +# setting c++ standard for the project +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(vkcv_camera_source ${PROJECT_SOURCE_DIR}/src) +set(vkcv_camera_include ${PROJECT_SOURCE_DIR}/include) + +set(vkcv_camera_sources + ${vkcv_camera_include}/vkcv/camera/Camera.hpp + ${vkcv_camera_source}/vkcv/camera/Camera.cpp + ${vkcv_camera_include}/vkcv/camera/TrackballCamera.hpp + ${vkcv_camera_source}/vkcv/camera/TrackballCamera.cpp +) + +# adding source files to the project +add_library(vkcv_camera STATIC ${vkcv_camera_sources}) + +# Setup some path variables to load libraries +set(vkcv_camera_lib lib) +set(vkcv_camera_lib_path ${PROJECT_SOURCE_DIR}/${vkcv_camera_lib}) + +include(config/GLM.cmake) + +target_link_libraries(vkcv_camera PUBLIC ${vkcv_camera_libraries}) + +# add the own include directory for public headers +target_include_directories(vkcv_camera BEFORE PUBLIC ${vkcv_camera_include} ${vkcv_camera_includes}) + diff --git a/modules/camera/config/GLM.cmake b/modules/camera/config/GLM.cmake new file mode 100644 index 00000000..c4d14392 --- /dev/null +++ b/modules/camera/config/GLM.cmake @@ -0,0 +1,15 @@ + +find_package(glm QUIET) + +if (glm_FOUND) + list(APPEND vkcv_camera_includes ${GLM_INCLUDE_DIRS}) + list(APPEND vkcv_camera_libraries glm) +else() + if (EXISTS "${vkcv_camera_lib_path}/glm") + add_subdirectory(${vkcv_camera_lib}/glm) + + list(APPEND vkcv_camera_libraries glm) + else() + message(WARNING "GLM is required..! Update the submodules!") + endif () +endif () diff --git a/modules/testing/include/vkcv/camera/Camera.hpp b/modules/camera/include/vkcv/camera/Camera.hpp similarity index 86% rename from modules/testing/include/vkcv/camera/Camera.hpp rename to modules/camera/include/vkcv/camera/Camera.hpp index 1f0cd580..90a2b003 100644 --- a/modules/testing/include/vkcv/camera/Camera.hpp +++ b/modules/camera/include/vkcv/camera/Camera.hpp @@ -1,6 +1,5 @@ #pragma once -#include <GLFW/glfw3.h> #include <glm/glm.hpp> #include <glm/gtc/matrix_transform.hpp> #include <glm/gtc/matrix_access.hpp> @@ -9,8 +8,6 @@ namespace vkcv { class Camera { protected: - GLFWwindow *m_window; - glm::mat4 m_view, m_projection; int m_width, m_height; @@ -26,8 +23,6 @@ namespace vkcv { ~Camera(); - virtual void update(GLFWwindow *window) {}; - void setPerspective(float fov, float ratio, float near, float far); const glm::mat4 &getView(); @@ -38,7 +33,7 @@ namespace vkcv { void lookAt(glm::vec3 position, glm::vec3 center, glm::vec3 up); - const glm::mat4 &Camera::getProjection(); + const glm::mat4& getProjection(); void setProjection(const glm::mat4 projection); diff --git a/modules/testing/include/vkcv/camera/TrackballCamera.hpp b/modules/camera/include/vkcv/camera/TrackballCamera.hpp similarity index 91% rename from modules/testing/include/vkcv/camera/TrackballCamera.hpp rename to modules/camera/include/vkcv/camera/TrackballCamera.hpp index e9143e87..156ad8e4 100644 --- a/modules/testing/include/vkcv/camera/TrackballCamera.hpp +++ b/modules/camera/include/vkcv/camera/TrackballCamera.hpp @@ -1,6 +1,6 @@ #pragma once -#include "vkcv/camera/Camera.hpp" +#include "Camera.hpp" namespace vkcv { @@ -13,8 +13,6 @@ namespace vkcv { ~TrackballCamera(); - void update( GLFWwindow* window); - float getSensitivity() const; void setSensitivity(float sensitivity); diff --git a/modules/camera/lib/glm b/modules/camera/lib/glm new file mode 160000 index 00000000..66062497 --- /dev/null +++ b/modules/camera/lib/glm @@ -0,0 +1 @@ +Subproject commit 66062497b104ca7c297321bd0e970869b1e6ece5 diff --git a/modules/testing/src/vkcv/camera/Camera.cpp b/modules/camera/src/vkcv/camera/Camera.cpp similarity index 100% rename from modules/testing/src/vkcv/camera/Camera.cpp rename to modules/camera/src/vkcv/camera/Camera.cpp diff --git a/modules/testing/src/vkcv/camera/TrackballCamera.cpp b/modules/camera/src/vkcv/camera/TrackballCamera.cpp similarity index 96% rename from modules/testing/src/vkcv/camera/TrackballCamera.cpp rename to modules/camera/src/vkcv/camera/TrackballCamera.cpp index 6e2323da..880a6209 100644 --- a/modules/testing/src/vkcv/camera/TrackballCamera.cpp +++ b/modules/camera/src/vkcv/camera/TrackballCamera.cpp @@ -59,8 +59,8 @@ namespace vkcv{ { } - - void TrackballCamera::update( GLFWwindow* window) { + // TODO: Can be done as events... (mouseMove, mouseDown, mouseUp) + /*void TrackballCamera::update( GLFWwindow* window) { double x, y; @@ -94,7 +94,7 @@ namespace vkcv{ m_view = glm::lookAt( m_position, m_center, m_up); - } + }*/ float TrackballCamera::getSensitivity() const { return m_sensitivity; diff --git a/modules/testing/CMakeLists.txt b/modules/testing/CMakeLists.txt index 213bbb22..a22e5476 100644 --- a/modules/testing/CMakeLists.txt +++ b/modules/testing/CMakeLists.txt @@ -11,21 +11,11 @@ set(vkcv_testing_include ${PROJECT_SOURCE_DIR}/include) set(vkcv_testing_sources ${vkcv_testing_include}/vkcv/testing/Test.hpp ${vkcv_testing_source}/vkcv/testing/Test.cpp - ${vkcv_testing_include}/vkcv/camera/Camera.hpp - ${vkcv_testing_source}/vkcv/camera/Camera.cpp - ${vkcv_testing_include}/vkcv/camera/TrackballCamera.hpp - ${vkcv_testing_source}/vkcv/camera/TrackballCamera.cpp - ) +) # adding source files to the project add_library(vkcv_testing STATIC ${vkcv_testing_sources}) -#include(GLM.cmake) # libglm-dev -#include(GLFW.cmake) # libglfw3-dev -find_package(glfw3 QUIET) -find_package(glm QUIET) -target_link_libraries(vkcv_testing PUBLIC glm glfw) - # add the own include directory for public headers target_include_directories(vkcv_testing BEFORE PUBLIC ${vkcv_testing_include}) diff --git a/modules/testing/GLFW.cmake b/modules/testing/GLFW.cmake deleted file mode 100644 index 1b68d8aa..00000000 --- a/modules/testing/GLFW.cmake +++ /dev/null @@ -1,18 +0,0 @@ - -find_package(glfw3 QUIET) - -if (glfw3_FOUND) - list(APPEND vkcv_libraries glfw) - - message(${vkcv_config_msg} " GLFW - " ${glfw3_VERSION}) -else() - if (EXISTS "${vkcv_lib_path}/glfw") - add_subdirectory(${vkcv_lib}/glfw) - - list(APPEND vkcv_libraries glfw) - - message(${vkcv_config_msg} " GLFW - " ${glfw3_VERSION}) - else() - message(WARNING "GLFW is required..! Update the submodules!") - endif () -endif () diff --git a/modules/testing/GLM.cmake b/modules/testing/GLM.cmake deleted file mode 100644 index 151886dc..00000000 --- a/modules/testing/GLM.cmake +++ /dev/null @@ -1,22 +0,0 @@ -find_package(glm REQUIRED) - -if (glm_FOUND) - -# list(APPEND vkcv_includes ${GLM_INCLUDE_DIRS}) -# list(APPEND vkcv_libraries glm) - message(STATUS "GLM included at ${GLM_INCLUDE_DIR}") - message(STATUS ${GLM_INCLUDE_DIR}) - message(STATUS ${GLM_INCLUDE_DIRS}) - message(STATUS ${GLM_LIBRARIES}) - message(${vkcv_config_msg} " GLM - " ${glm_VERSION}) -else() - if (EXISTS "${vkcv_lib_path}/glfw") - add_subdirectory(${vkcv_lib}/glfw) - - list(APPEND vkcv_libraries glfw) - - message(${vkcv_config_msg} " GLFW - " ${glfw3_VERSION}) - else() - message(WARNING "GLFW is required..! Update the submodules!") - endif () -endif () \ No newline at end of file -- GitLab