diff --git a/Src/CMakeLists.txt b/Src/CMakeLists.txt index dec838b89d334795c01d7b7d8e6b3d4bab7343b7..53167ff20edaf21a8a1f00089ce78609af037784 100644 --- a/Src/CMakeLists.txt +++ b/Src/CMakeLists.txt @@ -30,17 +30,17 @@ set_target_properties(${TN} PROPERTIES target_sources(${TN} PRIVATE - "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedComponentFactory.cpp" - "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedElement.cpp" - "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedTrajectory.cpp" - "${CMAKE_CURRENT_LIST_DIR}/util/misc.cpp" - "${CMAKE_CURRENT_LIST_DIR}/IConfig.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedComponentFactory.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedElement.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedTrajectory.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Utility/misc.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Utility/IConfig.cpp" ) set(${TN}_PUBLIC_HEADERS - "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedComponentFactory.h" - "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedElement.h" - "${CMAKE_CURRENT_LIST_DIR}/TrackedComponents/TrackedTrajectory.h" - "${CMAKE_CURRENT_LIST_DIR}/util/misc.h" - "${CMAKE_CURRENT_LIST_DIR}/IConfig.h" + "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedComponentFactory.h" + "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedElement.h" + "${CMAKE_CURRENT_LIST_DIR}/Utility/TrackedComponents/TrackedTrajectory.h" + "${CMAKE_CURRENT_LIST_DIR}/Utility/misc.h" + "${CMAKE_CURRENT_LIST_DIR}/Utility/IConfig.h" ) \ No newline at end of file diff --git a/Src/TrackedComponents/TrackedComponentFactory.h b/Src/TrackedComponents/TrackedComponentFactory.h deleted file mode 100644 index 70b0d8eef2eb0743b10cdfd8f36bf3b58651c59d..0000000000000000000000000000000000000000 --- a/Src/TrackedComponents/TrackedComponentFactory.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef TRACKEDCOMPONENTFACTORY_H -#define TRACKEDCOMPONENTFACTORY_H - -#include "Interfaces/IModel/IModelTrackedComponentFactory.h" - -class TrackedComponentFactory : public IModelTrackedComponentFactory -{ - Q_OBJECT -public: - TrackedComponentFactory(); - ~TrackedComponentFactory(); - - QList<QString> getElementTypes() override; - // ITrackedComponentFactory interface -protected: - IModelTrackedComponent *createTrackedElement(QString name) override; - IModelTrackedComponent *createTrackedObject(QString name) override; - IModelTrackedComponent *createTrackedTrajectory(QString name) override; -}; - -#endif // TRACKEDOBJECTFACTORY_H diff --git a/Src/TrackedComponents/TrackedElement.h b/Src/TrackedComponents/TrackedElement.h deleted file mode 100644 index fa8b9f9f6d1ba320e0feb591adb5164e0e3f7b30..0000000000000000000000000000000000000000 --- a/Src/TrackedComponents/TrackedElement.h +++ /dev/null @@ -1,107 +0,0 @@ -#ifndef TRACKEDELEMENT_H -#define TRACKEDELEMENT_H - -#include "QGraphicsItem" -#include "Interfaces/IModel/IModelTrackedComponent.h" -#include "QString" -#include <cv.h> -#include <qdatetime.h> -#include <ctime> - -/** -* This class is an example of how a TrackedComponent could be defined. -* This class inherits from the IModelTrackedComponent class and is therefor part of the Composite Pattern. -* This class represents the Leaf class in the Composite Pattern. -* Objects of this class have a QObject as parent. -*/ -class TrackedElement : public IModelTrackedPoint -{ - Q_OBJECT - -public: - TrackedElement(QObject *parent = 0, QString name = "n.a.", int id = 0); - - QString getName(); - QString getCoordinateUnit() override { return "px"; }; - - void setX(float val); - void setY(float val); - void setW(float w) {}; - void setH(float h) {}; - void setXpx(float val) {}; - void setYpx(float val) {}; - void setWpx(float w) {}; - void setHpx(float h) {}; - void setRad(float r) {}; - void setDeg(float d) {}; - void setId(int val) { _id = val; }; - void setTime(std::chrono::system_clock::time_point t) { - _timeSysclck = t; - }; - void setTime(qint64 t) { - _time = t; - std::string::size_type sz = 0; - long long ll = t / 1000; - std::time_t tm(ll); - _timeSysclck = std::chrono::system_clock::from_time_t(tm); - }; - void setTimeString(QString t) { _timeString = t; }; - void setValid(bool v) { _valid = v; }; - void setFixed(bool f) { _fixed = f; }; - - float getX(); - float getY(); - float getXpx(); - float getYpx(); - float getW() { return 0; }; - float getH() { return 0; }; - float getWpx() { return 0; }; - float getHpx() { return 0; }; - float getRad() { return 0; }; - float getDeg() { return 0; }; - int getId() { return _id; }; - qint64 getTime() { - qint64 q(std::chrono::duration_cast<std::chrono::milliseconds>(_timeSysclck.time_since_epoch()).count()); - return q; - }; - QString getTimeString() { - std::time_t t = std::chrono::system_clock::to_time_t(_timeSysclck); - QDateTime dt; - dt.setTime_t(t); - _timeString = dt.toString(); - return _timeString; - }; - bool getValid() { return _valid; }; - bool getFixed() { return _fixed; }; - - bool hasX() { return true; }; - bool hasY() { return true; }; - bool hasW() { return false; }; - bool hasH() { return false; }; - bool hasXpx() { return false; }; - bool hasYpx() { return false; }; - bool hasWpx() { return false; }; - bool hasHpx() { return false; }; - bool hasRad() { return false; }; - bool hasDeg() { return false; }; - bool hasTime() { return true; }; - bool hasTimeString() { return true; }; - - void setPoint(cv::Point2f p); - cv::Point2f getPoint(); - - // ITrackedPoint interface -public: - void operate(); - -private: - std::chrono::system_clock::time_point _timeSysclck; - QString _name; - float _x; - float _y; - int _id; - bool _valid; - bool _fixed; -}; - -#endif // TRACKEDELEMENT_H diff --git a/Src/TrackedComponents/TrackedTrajectory.h b/Src/TrackedComponents/TrackedTrajectory.h deleted file mode 100644 index 11710c76b2d8a95a8358f1244529df11a212512d..0000000000000000000000000000000000000000 --- a/Src/TrackedComponents/TrackedTrajectory.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef TRACKEDOTRAJECTORY_H -#define TRACKEDOTRAJECTORY_H - -#include "Interfaces/IModel/IModelTrackedTrajectory.h" -#include "QList" -#include "QString" - -/** - * This class inherits from the IModelTrackedTrajectory class and is therefor part of the Composite Pattern. - * This class represents the Composite class. - * This class is responsibility for the handling of Leaf objects. - * Internaly this class uses a QList for storing Leaf object. - * - * Objects of this class have a QObject as parent. - */ -class TrackedTrajectory : public IModelTrackedTrajectory { - Q_OBJECT - - public: - TrackedTrajectory(QObject *parent = 0, QString name = "n.a."); - - // ITrackedComponent interface -public: - void operate(); - - // ITrackedObject interface -public: - void add(IModelTrackedComponent *comp, int pos = -1) override; - bool remove(IModelTrackedComponent *comp) override; - void clear() override; - IModelTrackedComponent *getChild(int index) override; - IModelTrackedComponent *getValidChild(int index) override; - IModelTrackedComponent *getLastChild() override; - - int size() override; - int validCount(); - -private: - QList<IModelTrackedComponent*> _TrackedComponents; - - QString name; -}; - -#endif // TRACKEDOTRAJECTORY_H diff --git a/Src/IConfig.cpp b/Src/Utility/IConfig.cpp similarity index 100% rename from Src/IConfig.cpp rename to Src/Utility/IConfig.cpp diff --git a/Src/IConfig.h b/Src/Utility/IConfig.h similarity index 100% rename from Src/IConfig.h rename to Src/Utility/IConfig.h diff --git a/Src/TrackedComponents/TrackedComponentFactory.cpp b/Src/Utility/TrackedComponents/TrackedComponentFactory.cpp similarity index 100% rename from Src/TrackedComponents/TrackedComponentFactory.cpp rename to Src/Utility/TrackedComponents/TrackedComponentFactory.cpp diff --git a/Src/Utility/TrackedComponents/TrackedComponentFactory.h b/Src/Utility/TrackedComponents/TrackedComponentFactory.h new file mode 100644 index 0000000000000000000000000000000000000000..42a961d477a9bcd052ab611e11862babc1134fbe --- /dev/null +++ b/Src/Utility/TrackedComponents/TrackedComponentFactory.h @@ -0,0 +1,19 @@ +#pragma once + +#include "Interfaces/IModel/IModelTrackedComponentFactory.h" + +class TrackedComponentFactory : public IModelTrackedComponentFactory +{ + Q_OBJECT +public: + TrackedComponentFactory(); + virtual ~TrackedComponentFactory(); + + virtual QList<QString> getElementTypes() override; + // ITrackedComponentFactory interface +protected: + virtual IModelTrackedComponent *createTrackedElement(QString name) override; + virtual IModelTrackedComponent *createTrackedObject(QString name) override; + virtual IModelTrackedComponent *createTrackedTrajectory(QString name) override; +}; + diff --git a/Src/TrackedComponents/TrackedElement.cpp b/Src/Utility/TrackedComponents/TrackedElement.cpp similarity index 100% rename from Src/TrackedComponents/TrackedElement.cpp rename to Src/Utility/TrackedComponents/TrackedElement.cpp diff --git a/Src/Utility/TrackedComponents/TrackedElement.h b/Src/Utility/TrackedComponents/TrackedElement.h new file mode 100644 index 0000000000000000000000000000000000000000..f08f99b0c9e341bebcf4b8eff06e780b912777ba --- /dev/null +++ b/Src/Utility/TrackedComponents/TrackedElement.h @@ -0,0 +1,106 @@ +#pragma once + +#include "QGraphicsItem" +#include "Interfaces/IModel/IModelTrackedComponent.h" +#include "QString" +#include <cv.h> +#include <qdatetime.h> +#include <ctime> + +/** +* This class is an example of how a TrackedComponent could be defined. +* This class inherits from the IModelTrackedComponent class and is therefor part of the Composite Pattern. +* This class represents the Leaf class in the Composite Pattern. +* Objects of this class have a QObject as parent. +*/ +class TrackedElement : public IModelTrackedPoint +{ + Q_OBJECT + +public: + TrackedElement(QObject *parent = 0, QString name = "n.a.", int id = 0); + virtual ~TrackedElement() {}; + + virtual QString getName(); + virtual QString getCoordinateUnit() override { return "px"; }; + + virtual void setX(float val) override; + virtual void setY(float val) override; + virtual void setW(float w) override {}; + virtual void setH(float h) override {}; + virtual void setXpx(float val) override {}; + virtual void setYpx(float val) override {}; + virtual void setWpx(float w) override {}; + virtual void setHpx(float h) override {}; + virtual void setRad(float r) override {}; + virtual void setDeg(float d) override{}; + virtual void setId(int val) override { _id = val; }; + virtual void setTime(std::chrono::system_clock::time_point t) { + _timeSysclck = t; + }; + virtual void setTime(qint64 t) override { + std::string::size_type sz = 0; + long long ll = t / 1000; + std::time_t tm(ll); + _timeSysclck = std::chrono::system_clock::from_time_t(tm); + }; + virtual void setTimeString(QString t) override { _timeString = t; }; + virtual void setValid(bool v) override { _valid = v; }; + virtual void setFixed(bool f) override { _fixed = f; }; + + virtual float getX() override; + virtual float getY() override; + virtual float getXpx() override; + virtual float getYpx() override; + virtual float getW() override { return 0; }; + virtual float getH() override { return 0; }; + virtual float getWpx() override { return 0; }; + virtual float getHpx() override { return 0; }; + virtual float getRad() override { return 0; }; + virtual float getDeg() override { return 0; }; + virtual int getId() override { return _id; }; + virtual qint64 getTime() override { + qint64 q(std::chrono::duration_cast<std::chrono::milliseconds>(_timeSysclck.time_since_epoch()).count()); + return q; + }; + virtual QString getTimeString() override { + std::time_t t = std::chrono::system_clock::to_time_t(_timeSysclck); + QDateTime dt; + dt.setTime_t(t); + _timeString = dt.toString(); + return _timeString; + }; + virtual bool getValid() override { return _valid; }; + virtual bool getFixed() override { return _fixed; }; + + virtual bool hasX() override { return true; }; + virtual bool hasY() override { return true; }; + virtual bool hasW() override { return false; }; + virtual bool hasH() override { return false; }; + virtual bool hasXpx() override { return false; }; + virtual bool hasYpx() override { return false; }; + virtual bool hasWpx() override { return false; }; + virtual bool hasHpx() override { return false; }; + virtual bool hasRad() override { return false; }; + virtual bool hasDeg() override { return false; }; + virtual bool hasTime() override { return true; }; + virtual bool hasTimeString() override { return true; }; + + virtual void setPoint(cv::Point2f p); + virtual cv::Point2f getPoint(); + + // ITrackedPoint interface +public: + void operate(); + +private: + std::chrono::system_clock::time_point _timeSysclck; + QString _name; + QString _timeString; /**< timestamp a formatted as string */ + float _x; + float _y; + int _id; + bool _valid; + bool _fixed; +}; + diff --git a/Src/TrackedComponents/TrackedTrajectory.cpp b/Src/Utility/TrackedComponents/TrackedTrajectory.cpp similarity index 100% rename from Src/TrackedComponents/TrackedTrajectory.cpp rename to Src/Utility/TrackedComponents/TrackedTrajectory.cpp diff --git a/Src/Utility/TrackedComponents/TrackedTrajectory.h b/Src/Utility/TrackedComponents/TrackedTrajectory.h new file mode 100644 index 0000000000000000000000000000000000000000..0f9511f4643cd4d26681e31b1a8753996f07533c --- /dev/null +++ b/Src/Utility/TrackedComponents/TrackedTrajectory.h @@ -0,0 +1,54 @@ +#pragma once + +#include "Interfaces/IModel/IModelTrackedTrajectory.h" +#include "QList" +#include "QString" + +/** + * This class inherits from the IModelTrackedTrajectory class and is therefor part of the Composite Pattern. + * This class represents the Composite class. + * This class is responsibility for the handling of Leaf objects. + * Internaly this class uses a QList for storing Leaf object. + * + * Objects of this class have a QObject as parent. + */ +class TrackedTrajectory : public IModelTrackedTrajectory { + Q_OBJECT + + public: + TrackedTrajectory(QObject *parent = 0, QString name = "n.a."); + virtual ~TrackedTrajectory() {}; + + // ITrackedComponent interface +public: + void operate(); + + // ITrackedObject interface +public: + virtual void add(IModelTrackedComponent *comp, int pos = -1) override; + virtual bool remove(IModelTrackedComponent *comp) override; + virtual void clear() override; + virtual IModelTrackedComponent *getChild(int index) override; + virtual IModelTrackedComponent *getValidChild(int index) override; + virtual IModelTrackedComponent *getLastChild() override; + + virtual int size() override; + virtual int validCount() override; + + virtual QList<IModelTrackedComponent*> getChildNodes() override { + return _TrackedComponents; + } + virtual void setChildNodes(QList<IModelTrackedComponent*> n) override { + _TrackedComponents = n; + } + virtual bool hasChildNodes() override { + return !_TrackedComponents.empty(); + } + + +protected: + QList<IModelTrackedComponent*> _TrackedComponents; + + QString name; +}; + diff --git a/Src/util/misc.cpp b/Src/Utility/misc.cpp similarity index 95% rename from Src/util/misc.cpp rename to Src/Utility/misc.cpp index 19601e8890f4a71cde7356aa77143125b4d7fd95..f2479db89d2fca6497b96eab27700a24a5377aeb 100644 --- a/Src/util/misc.cpp +++ b/Src/Utility/misc.cpp @@ -1,4 +1,4 @@ -#include "util/misc.h" +#include "Utility/misc.h" #include <QPoint> // QPoint #include <QString> diff --git a/Src/util/misc.h b/Src/Utility/misc.h similarity index 100% rename from Src/util/misc.h rename to Src/Utility/misc.h