From 035bcfb2537e2ce849bda025cffa1eb2ee47ea5b Mon Sep 17 00:00:00 2001 From: TimZnr Date: Thu, 10 Nov 2022 16:45:34 +0100 Subject: [PATCH] Added Line, Vector, Point utility classes --- CMakeLists.txt | 6 +++++- Utils/CMakeLists.txt | 7 +++++++ Utils/utils.cpp | 47 ++++++++++++++++++++++++++++++++++++++++++++ Utils/utils.h | 40 +++++++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 Utils/CMakeLists.txt create mode 100644 Utils/utils.cpp create mode 100644 Utils/utils.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c28ebe..b1c52cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ include_directories( ${OpenCV_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/ControlModule ${CMAKE_CURRENT_SOURCE_DIR}/Interpreter ${CMAKE_CURRENT_SOURCE_DIR}/IntersectionHandler + ${CMAKE_CURRENT_SOURCE_DIR}/Utils ) link_directories( ${Input_SOURCE_DIRS} @@ -22,6 +23,7 @@ link_directories( ${Input_SOURCE_DIRS} ${ControlModule_SOURCE_DIRS} ${Interpreter_SOURCE_DIRS} ${IntersectionHandler_SOURCE_DIRS} + ${Utils_SOURCE_DIRS} ) add_subdirectory(Input) @@ -29,16 +31,18 @@ add_subdirectory(Processing) add_subdirectory(ControlModule) add_subdirectory(Interpreter) add_subdirectory(IntersectionHandler) +add_subdirectory(Utils) target_include_directories(Input PRIVATE .) target_include_directories(Processing PRIVATE .) target_include_directories(ControlModule PRIVATE .) target_include_directories(Interpreter PRIVATE .) target_include_directories(IntersectionHandler PRIVATE .) +target_include_directories(Utils PRIVATE .) add_executable(lfr_image_processing lfr.cpp autonomous_mode_main.cpp) -target_link_libraries( lfr_image_processing ${OpenCV_LIBS} Input Processing ControlModule Interpreter IntersectionHandler Threads::Threads) +target_link_libraries( lfr_image_processing ${OpenCV_LIBS} Input Processing ControlModule Interpreter IntersectionHandler Utils Threads::Threads) set(CPACK_PROJECT_NAME ${PROJECT_NAME}) set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) diff --git a/Utils/CMakeLists.txt b/Utils/CMakeLists.txt new file mode 100644 index 0000000..57493d0 --- /dev/null +++ b/Utils/CMakeLists.txt @@ -0,0 +1,7 @@ +add_library(Utils utils.cpp) +set_target_properties(Utils PROPERTIES VERSION ${PROJECT_VERSION}) +target_include_directories(Utils PRIVATE .) + +set(CPACK_PROJECT_NAME ${PROJECT_NAME}) +set(CPACK_PROJECT_VERSION ${PROJECT_VERSION}) +include(CPack) \ No newline at end of file diff --git a/Utils/utils.cpp b/Utils/utils.cpp new file mode 100644 index 0000000..c170b5c --- /dev/null +++ b/Utils/utils.cpp @@ -0,0 +1,47 @@ +#include "utils.h" + +LFRPoint::LFRPoint(/* args */) : x(0.0), y(0.0) +{ +} + +LFRPoint::LFRPoint(double x, double y): x(x), y(y) +{ +} + +LFRPoint::~LFRPoint() +{ +} + +LFRVector::LFRVector(/* args */) : LFRPoint() +{ +} + +LFRVector::LFRVector(double x, double y) : LFRPoint(x, y) +{ +} + +LFRVector::LFRVector(const LFRPoint& pt) : LFRPoint(pt) +{ + +} + +LFRVector::~LFRVector() +{ +} + +LFRLine::LFRLine(/* args */) : start(), dir() +{ +} + +LFRLine::LFRLine(LFRPoint start, LFRVector dir) : start(start), dir(dir) +{ +} + +LFRLine::LFRLine(LFRPoint start, LFRPoint end) : start(start) +{ + dir = end - start; +} + +LFRLine::~LFRLine() +{ +} diff --git a/Utils/utils.h b/Utils/utils.h new file mode 100644 index 0000000..dfc5590 --- /dev/null +++ b/Utils/utils.h @@ -0,0 +1,40 @@ +class LFRPoint +{ +private: + /* data */ +public: + double x, y; + LFRPoint(/* args */); + LFRPoint(double x, double y); + ~LFRPoint(); + + LFRPoint operator-(const LFRPoint& pt){return LFRPoint(x-pt.x, y-pt.y);} + LFRPoint operator+(const LFRPoint& pt){return LFRPoint(x+pt.x, y+pt.y);} +}; + +class LFRVector : public LFRPoint +{ +private: + /* data */ +public: + LFRVector(/* args */); + LFRVector(double x, double y); + LFRVector(const LFRPoint& pt); + ~LFRVector(); + +}; + +class LFRLine +{ +private: + /* data */ + +public: + LFRPoint start; + LFRVector dir; + + LFRLine(/* args */); + LFRLine(LFRPoint start, LFRVector dir); + LFRLine(LFRPoint start, LFRPoint end); + ~LFRLine(); +}; \ No newline at end of file