diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000000000000000000000000000000000000..b3b525e770051e39a5171dfa7a5753bb9152dcc6 --- /dev/null +++ b/.clang-format @@ -0,0 +1,104 @@ +--- +Language: Cpp +Standard: Cpp11 +UseTab: Never +TabWidth: 4 +IndentWidth: 4 +AccessModifierOffset: -4 +ContinuationIndentWidth: 4 +ColumnLimit: 79 +ConstructorInitializerIndentWidth: 0 +BinPackArguments: false +BinPackParameters: false +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: true +AlignConsecutiveDeclarations: true +AlignOperands: true +AlignEscapedNewlines: Right +AlignTrailingComments: true +AllowAllArgumentsOnNextLine: false +AllowAllConstructorInitializersOnNextLine: false +ConstructorInitializerAllOnOneLineOrOnePerLine: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: None +AllowShortIfStatementsOnASingleLine: Never +AllowShortLoopsOnASingleLine: false +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: true +AlwaysBreakTemplateDeclarations: Yes +BreakBeforeBraces: Custom +BraceWrapping: + AfterClass: true + AfterControlStatement: false + AfterEnum: true + AfterFunction: true + AfterNamespace: true + AfterObjCDeclaration: true + AfterStruct: true + AfterUnion: true + AfterExternBlock: true + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakBeforeBinaryOperators: None +BreakBeforeInheritanceComma: false +BreakInheritanceList: BeforeColon +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: BeforeComma +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +CompactNamespaces: false +Cpp11BracedListStyle: true +DerivePointerAlignment: false +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: false +IndentCaseLabels: false +IndentPPDirectives: BeforeHash +IndentWrappedFunctionNames: true +KeepEmptyLinesAtTheStartOfBlocks: true +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: All +PointerAlignment: Left +ReflowComments: true +SortIncludes: false +SortUsingDeclarations: true +SpaceAfterCStyleCast: true +SpaceAfterTemplateKeyword: false +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: true +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: false +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +PenaltyBreakAssignment: 100 +PenaltyBreakBeforeFirstCallParameter: 19 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 1000 +CommentPragmas: '' +MacroBlockBegin: '' +MacroBlockEnd: '' +ForEachMacros: + - foreach + - Q_FOREACH + - BOOST_FOREACH +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +... diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000000000000000000000000000000000..7b80d1c534ecc2c161a0b02606664db720304395 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,19 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{c,h,cc,hh,cpp,hpp,cxx,hxx}] +indent_style = space +indent_size = 4 + +[*.py] +indent_style = space +indent_size = 4 + +[*.yml] +indent_style = space +indent_size = 2 diff --git a/Src/Utility/IConfig.cpp b/Src/Utility/IConfig.cpp index 5e98bd3eeaf585a86f3bafa7e3d9d03103335627..33d676701be760207074cbedf4c9d7279e021081 100644 --- a/Src/Utility/IConfig.cpp +++ b/Src/Utility/IConfig.cpp @@ -1,28 +1,31 @@ #include "IConfig.h" #include <QStandardPaths> -QString IConfig::configLocation = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation); -QString IConfig::dataLocation = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation); +QString IConfig::configLocation = QStandardPaths::writableLocation( + QStandardPaths::AppConfigLocation); +QString IConfig::dataLocation = QStandardPaths::writableLocation( + QStandardPaths::AppDataLocation); -cv::Mat IConfig::asMat(QString str){ +cv::Mat IConfig::asMat(QString str) +{ return asMat(str.toStdString()); } -std::vector<std::string> explode(std::string const & s, char delim) +std::vector<std::string> explode(std::string const& s, char delim) { - std::vector<std::string> result; - std::istringstream iss(s); + std::vector<std::string> result; + std::istringstream iss(s); - for (std::string token; std::getline(iss, token, delim); ) - { - result.push_back(std::move(token)); - } + for (std::string token; std::getline(iss, token, delim);) { + result.push_back(std::move(token)); + } - return result; + return result; } -cv::Mat IConfig::asMat(std::string str){ - std::vector<std::string> row = explode(str, ';'); +cv::Mat IConfig::asMat(std::string str) +{ + std::vector<std::string> row = explode(str, ';'); std::vector<std::string> cols = explode(row[0], '#'); cv::Mat m(row.size(), cols.size(), CV_32F); @@ -37,15 +40,16 @@ cv::Mat IConfig::asMat(std::string str){ return m; }; - -std::string IConfig::asStdString(cv::Mat m){ +std::string IConfig::asStdString(cv::Mat m) +{ return asQString(m).toStdString(); } -QString IConfig::asQString(cv::Mat m){ +QString IConfig::asQString(cv::Mat m) +{ std::string result; - int w = m.size().width; - int h = m.size().height; + int w = m.size().width; + int h = m.size().height; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { result += std::to_string(m.at<float>(i, j)); @@ -56,4 +60,3 @@ QString IConfig::asQString(cv::Mat m){ } return QString(result.c_str()); }; - diff --git a/Src/Utility/IConfig.h b/Src/Utility/IConfig.h index c33ecb09e941b29f531d58c460f90cea9a259ab6..5344c6a7a687128e79e04cc73385d426416fe784 100644 --- a/Src/Utility/IConfig.h +++ b/Src/Utility/IConfig.h @@ -2,18 +2,17 @@ #include <QString> #include <opencv2/opencv.hpp> -class IConfig +class IConfig { public: static QString configLocation; static QString dataLocation; virtual void load(QString dir, QString file = "sampleConfig.ini") = 0; - virtual void save(QString dir, QString file) = 0; + virtual void save(QString dir, QString file) = 0; - static cv::Mat asMat(QString str); - static cv::Mat asMat(std::string str); + static cv::Mat asMat(QString str); + static cv::Mat asMat(std::string str); static std::string asStdString(cv::Mat m); - static QString asQString(cv::Mat m); - + static QString asQString(cv::Mat m); }; diff --git a/Src/Utility/TrackedComponents/TrackedComponentFactory.cpp b/Src/Utility/TrackedComponents/TrackedComponentFactory.cpp index f0641538e543588025228420e796f073b6a86bcb..99988e6344073bdaa382631c28e6506afb34e1e3 100644 --- a/Src/Utility/TrackedComponents/TrackedComponentFactory.cpp +++ b/Src/Utility/TrackedComponents/TrackedComponentFactory.cpp @@ -5,32 +5,34 @@ TrackedComponentFactory::TrackedComponentFactory() { - } TrackedComponentFactory::~TrackedComponentFactory() { - } -QList<QString> TrackedComponentFactory::getElementTypes() { - return QList<QString>{ "TrackedElement" }; +QList<QString> TrackedComponentFactory::getElementTypes() +{ + return QList<QString>{"TrackedElement"}; } -IModelTrackedComponent *TrackedComponentFactory::createTrackedElement(QString name) +IModelTrackedComponent* TrackedComponentFactory::createTrackedElement( + QString name) { return new TrackedElement(this, "n.a."); } -IModelTrackedComponent *TrackedComponentFactory::createTrackedObject(QString name) +IModelTrackedComponent* TrackedComponentFactory::createTrackedObject( + QString name) { - TrackedTrajectory *t = new TrackedTrajectory(); - TrackedElement *e = new TrackedElement(this, "n.a.", 0); - t->add(e, 0); - return t; + TrackedTrajectory* t = new TrackedTrajectory(); + TrackedElement* e = new TrackedElement(this, "n.a.", 0); + t->add(e, 0); + return t; } -IModelTrackedComponent *TrackedComponentFactory::createTrackedTrajectory(QString name) +IModelTrackedComponent* TrackedComponentFactory::createTrackedTrajectory( + QString name) { return new TrackedTrajectory(); } diff --git a/Src/Utility/TrackedComponents/TrackedComponentFactory.h b/Src/Utility/TrackedComponents/TrackedComponentFactory.h index 42a961d477a9bcd052ab611e11862babc1134fbe..88bac7d946ebb0c7d9f5634c851518e312f9f5a0 100644 --- a/Src/Utility/TrackedComponents/TrackedComponentFactory.h +++ b/Src/Utility/TrackedComponents/TrackedComponentFactory.h @@ -12,8 +12,9 @@ public: 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; + virtual IModelTrackedComponent* createTrackedElement( + QString name) override; + virtual IModelTrackedComponent* createTrackedObject(QString name) override; + virtual IModelTrackedComponent* createTrackedTrajectory( + QString name) override; }; - diff --git a/Src/Utility/TrackedComponents/TrackedElement.cpp b/Src/Utility/TrackedComponents/TrackedElement.cpp index 6124bcb30295113b5e00fac20cc292c74c292f0e..cabd7e725c70c15daa27305a52e8b35feb9e6c5f 100644 --- a/Src/Utility/TrackedComponents/TrackedElement.cpp +++ b/Src/Utility/TrackedComponents/TrackedElement.cpp @@ -4,73 +4,79 @@ #include "QBrush" #include "QPainter" -TrackedElement::TrackedElement(QObject *parent, QString name, int id) : - IModelTrackedPoint(parent), - _name(name), - _id(id) +TrackedElement::TrackedElement(QObject* parent, QString name, int id) +: IModelTrackedPoint(parent) +, _name(name) +, _id(id) { - _x = 0; - _y = 0; - _xpx = 0; - _xpx = 0; - _valid = false; - _fixed = false; - _coordU = "px"; + _x = 0; + _y = 0; + _xpx = 0; + _xpx = 0; + _valid = false; + _fixed = false; + _coordU = "px"; } QString TrackedElement::getName() { - return _name; + return _name; } void TrackedElement::setPoint(cv::Point2f p) { - _x = p.x; - _y = p.y; - _valid = true; - Q_EMIT notifyView(); + _x = p.x; + _y = p.y; + _valid = true; + Q_EMIT notifyView(); } cv::Point2f TrackedElement::getPoint() { - return cv::Point2f(_x, _y); + return cv::Point2f(_x, _y); } -void TrackedElement::setX(float val) { - _x = val; +void TrackedElement::setX(float val) +{ + _x = val; }; -void TrackedElement::setY(float val) { - _y = val; +void TrackedElement::setY(float val) +{ + _y = val; }; -void TrackedElement::setXpx(float val) { - _xpx = val; +void TrackedElement::setXpx(float val) +{ + _xpx = val; }; -void TrackedElement::setYpx(float val) { - _ypx = val; +void TrackedElement::setYpx(float val) +{ + _ypx = val; }; -float TrackedElement::getX() { +float TrackedElement::getX() +{ return _x; } -float TrackedElement::getY() { +float TrackedElement::getY() +{ return _y; } -float TrackedElement::getXpx() { +float TrackedElement::getXpx() +{ return _xpx; } -float TrackedElement::getYpx() { +float TrackedElement::getYpx() +{ return _ypx; } void TrackedElement::operate() { - qDebug() << "I am TrackedElement " << _name; + qDebug() << "I am TrackedElement " << _name; } - - diff --git a/Src/Utility/TrackedComponents/TrackedElement.h b/Src/Utility/TrackedComponents/TrackedElement.h index f08cf8b130a2a7db7f784e97c85ebeb383b74247..3c7c39b30abf02e14b69dc5205c8b19b10564c34 100644 --- a/Src/Utility/TrackedComponents/TrackedElement.h +++ b/Src/Utility/TrackedComponents/TrackedElement.h @@ -8,103 +8,189 @@ #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. -*/ + * 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 + Q_OBJECT public: - TrackedElement(QObject *parent = 0, QString name = "n.a.", int id = 0); - virtual ~TrackedElement() {}; + TrackedElement(QObject* parent = 0, QString name = "n.a.", int id = 0); + virtual ~TrackedElement(){}; - virtual QString getName(); - virtual QString getCoordinateUnit() override { return _coordU; }; - - virtual void setCoordinateUnit(QString unit) override { _coordU = unit; }; + virtual QString getName(); + virtual QString getCoordinateUnit() override + { + return _coordU; + }; + + virtual void setCoordinateUnit(QString unit) override + { + _coordU = unit; + }; - 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) { + 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 { - long long ll = t / 1000; + virtual void setTime(qint64 t) override + { + 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 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()); + 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 { + virtual QString getTimeString() override + { std::time_t t = std::chrono::system_clock::to_time_t(_timeSysclck); - QDateTime dt; + 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 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 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 void setPoint(cv::Point2f p); virtual cv::Point2f getPoint(); - // ITrackedPoint interface + // ITrackedPoint interface public: - void operate() override; + void operate() override; private: std::chrono::system_clock::time_point _timeSysclck; - QString _name; - QString _timeString; /**< timestamp a formatted as string */ - float _x; - float _y; - float _xpx; - float _ypx; - int _id; - bool _valid; - bool _fixed; + QString _name; + QString _timeString; /**< timestamp a formatted as string */ + float _x; + float _y; + float _xpx; + float _ypx; + int _id; + bool _valid; + bool _fixed; QString _coordU; }; - diff --git a/Src/Utility/TrackedComponents/TrackedTrajectory.cpp b/Src/Utility/TrackedComponents/TrackedTrajectory.cpp index bb118ebdb368c0f5e183fcf268a2717c549df78c..031e90bd9a75d73f5e84585dde1d5cb773c2396b 100644 --- a/Src/Utility/TrackedComponents/TrackedTrajectory.cpp +++ b/Src/Utility/TrackedComponents/TrackedTrajectory.cpp @@ -2,48 +2,47 @@ #include "QDebug" #include "TrackedElement.h" -TrackedTrajectory::TrackedTrajectory(QObject *parent, QString name) : - IModelTrackedTrajectory(parent), - name(name) +TrackedTrajectory::TrackedTrajectory(QObject* parent, QString name) +: IModelTrackedTrajectory(parent) +, name(name) { - setFixed(false); + setFixed(false); setValid(true); } void TrackedTrajectory::operate() { - qDebug() << "Printing all TrackedElements in TrackedObject " << name; - qDebug() << "========================= Begin =========================="; - for (int i = 0; i < _TrackedComponents.size(); ++i) { - dynamic_cast<TrackedElement *>(_TrackedComponents.at(i))->operate(); - } - qDebug() << "======================== End ========================="; + qDebug() << "Printing all TrackedElements in TrackedObject " << name; + qDebug() << "========================= Begin =========================="; + for (int i = 0; i < _TrackedComponents.size(); ++i) { + dynamic_cast<TrackedElement*>(_TrackedComponents.at(i))->operate(); + } + qDebug() << "======================== End ========================="; } -void TrackedTrajectory::add(IModelTrackedComponent *comp, int pos) +void TrackedTrajectory::add(IModelTrackedComponent* comp, int pos) { - if (pos < 0) { - _TrackedComponents.append(comp); - } - else if (_TrackedComponents.size() <= pos) { - while (_TrackedComponents.size() < pos) - _TrackedComponents.append(0); + if (pos < 0) { + _TrackedComponents.append(comp); + } else if (_TrackedComponents.size() <= pos) { + while (_TrackedComponents.size() < pos) + _TrackedComponents.append(0); - _TrackedComponents.append(comp); - } - else { - _TrackedComponents[pos] = comp; - } + _TrackedComponents.append(comp); + } else { + _TrackedComponents[pos] = comp; + } } -bool TrackedTrajectory::remove(IModelTrackedComponent *comp) +bool TrackedTrajectory::remove(IModelTrackedComponent* comp) { - return _TrackedComponents.removeOne(comp); //Do not actually remove, just invalidate / replace by dummy + return _TrackedComponents.removeOne( + comp); // Do not actually remove, just invalidate / replace by dummy } void TrackedTrajectory::clear() { - foreach(IModelTrackedComponent* el, _TrackedComponents) { + foreach (IModelTrackedComponent* el, _TrackedComponents) { if (dynamic_cast<IModelTrackedTrajectory*>(el)) dynamic_cast<IModelTrackedTrajectory*>(el)->clear(); } @@ -52,18 +51,19 @@ void TrackedTrajectory::clear() IModelTrackedComponent* TrackedTrajectory::getChild(int index) { - return (_TrackedComponents.size() > index ? _TrackedComponents.at(index) : nullptr); + return (_TrackedComponents.size() > index ? _TrackedComponents.at(index) + : nullptr); } IModelTrackedComponent* TrackedTrajectory::getLastChild() { - return _TrackedComponents.at(_TrackedComponents.size()-1); + return _TrackedComponents.at(_TrackedComponents.size() - 1); } IModelTrackedComponent* TrackedTrajectory::getValidChild(int index) { int c = 0; - foreach(IModelTrackedComponent* el, _TrackedComponents) { + foreach (IModelTrackedComponent* el, _TrackedComponents) { if (el) { if (c == index && el->getValid()) return el; @@ -82,7 +82,7 @@ int TrackedTrajectory::size() int TrackedTrajectory::validCount() { int c = 0; - foreach(IModelTrackedComponent* el, _TrackedComponents){ + foreach (IModelTrackedComponent* el, _TrackedComponents) { if (el) c += el->getValid() ? 1 : 0; } diff --git a/Src/Utility/TrackedComponents/TrackedTrajectory.h b/Src/Utility/TrackedComponents/TrackedTrajectory.h index ea010337aa8c89c1f47d2d820bc72c54e0339779..42100868c2d75cc0b64d5580ba996abf2aed64b4 100644 --- a/Src/Utility/TrackedComponents/TrackedTrajectory.h +++ b/Src/Utility/TrackedComponents/TrackedTrajectory.h @@ -5,50 +5,52 @@ #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 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 +class TrackedTrajectory : public IModelTrackedTrajectory +{ + Q_OBJECT - public: - TrackedTrajectory(QObject *parent = 0, QString name = "n.a."); - virtual ~TrackedTrajectory() {}; +public: + TrackedTrajectory(QObject* parent = 0, QString name = "n.a."); + virtual ~TrackedTrajectory(){}; - // ITrackedComponent interface + // ITrackedComponent interface public: - void operate() override; + void operate() override; - // ITrackedObject interface + // 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 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 { + virtual QList<IModelTrackedComponent*> getChildNodes() override + { return _TrackedComponents; } - virtual void setChildNodes(QList<IModelTrackedComponent*> n) override { + virtual void setChildNodes(QList<IModelTrackedComponent*> n) override + { _TrackedComponents = n; } - virtual bool hasChildNodes() override { + virtual bool hasChildNodes() override + { return !_TrackedComponents.empty(); } - protected: - QList<IModelTrackedComponent*> _TrackedComponents; + QList<IModelTrackedComponent*> _TrackedComponents; - QString name; + QString name; }; - diff --git a/Src/Utility/misc.cpp b/Src/Utility/misc.cpp index e71adc022920b34399c8dfd27f1d7f69b9ffa261..4c29fc2bff883b49fed03ad4aeb83c365e4543b0 100644 --- a/Src/Utility/misc.cpp +++ b/Src/Utility/misc.cpp @@ -1,96 +1,105 @@ #include "Utility/misc.h" -#include <QPoint> // QPoint -#include <QString> +#include <QPoint> // QPoint +#include <QString> #include <QStringList> #include <QCoreApplication> -int BioTrackerUtilsMisc::split(std::string &txt, std::vector<std::string> &strs, char ch) +int BioTrackerUtilsMisc::split(std::string& txt, + std::vector<std::string>& strs, + char ch) { - std::string::size_type pos = txt.find(ch); - std::string::size_type initialPos = 0; - strs.clear(); + std::string::size_type pos = txt.find(ch); + std::string::size_type initialPos = 0; + strs.clear(); - // Decompose statement - while (pos != std::string::npos) { - strs.push_back(txt.substr(initialPos, pos - initialPos)); - initialPos = pos + 1; + // Decompose statement + while (pos != std::string::npos) { + strs.push_back(txt.substr(initialPos, pos - initialPos)); + initialPos = pos + 1; - pos = txt.find(ch, initialPos); - } + pos = txt.find(ch, initialPos); + } - // Add the last one - strs.push_back(txt.substr(initialPos, std::min(pos, txt.size()) - initialPos + 1)); + // Add the last one + strs.push_back( + txt.substr(initialPos, std::min(pos, txt.size()) - initialPos + 1)); - return strs.size(); + return strs.size(); } -std::string BioTrackerUtilsMisc::getTimeAndDate(std::string prefix, std::string suffix) +std::string BioTrackerUtilsMisc::getTimeAndDate(std::string prefix, + std::string suffix) { - // time_t timetitle; - // std::string timeInfo = prefix; - // time(&timetitle); - // std::string t = ctime(&timetitle); - // for (int i = 0; i < t.size(); i++) - // if (t[i] == ' ' || t[i] == ':') - // t[i] = '_'; - // timeInfo += t.substr(0, t.size() - 1); - // timeInfo += suffix; - // return timeInfo; - - time_t rawtime; - struct tm * timeinfo; - - time ( &rawtime ); - timeinfo = localtime ( &rawtime ); + // time_t timetitle; + // std::string timeInfo = prefix; + // time(&timetitle); + // std::string t = ctime(&timetitle); + // for (int i = 0; i < t.size(); i++) + // if (t[i] == ' ' || t[i] == ':') + // t[i] = '_'; + // timeInfo += t.substr(0, t.size() - 1); + // timeInfo += suffix; + // return timeInfo; + + time_t rawtime; + struct tm* timeinfo; + + time(&rawtime); + timeinfo = localtime(&rawtime); char t[30]; strftime(t, 30, "%Y-%m-%dT%H_%M_%S", timeinfo); // - std::string out = prefix; + std::string out = prefix; - std::string timeStampF(t); + std::string timeStampF(t); - out += timeStampF; - out += "_"; - out += std::to_string(QCoreApplication::applicationPid()); + out += timeStampF; + out += "_"; + out += std::to_string(QCoreApplication::applicationPid()); - out += suffix; + out += suffix; return out; } -std::vector<cv::Point> BioTrackerUtilsMisc::stringToCVPointVec(std::string arena) { - std::vector<cv::Point> pts; - - QString qarena(arena.c_str()); - QStringList corners = qarena.split(";"); - for (int i = 0; i < corners.size(); i++) { - QString cur = corners.at(i); - QStringList p = cur.split(","); - pts.push_back(cv::Point(p.at(0).toInt(), p.at(1).toInt())); - } - return pts; +std::vector<cv::Point> BioTrackerUtilsMisc::stringToCVPointVec( + std::string arena) +{ + std::vector<cv::Point> pts; + + QString qarena(arena.c_str()); + QStringList corners = qarena.split(";"); + for (int i = 0; i < corners.size(); i++) { + QString cur = corners.at(i); + QStringList p = cur.split(","); + pts.push_back(cv::Point(p.at(0).toInt(), p.at(1).toInt())); + } + return pts; } - -std::vector<cv::Point> BioTrackerUtilsMisc::QVecToCvVec(std::vector<QPoint> q) { - std::vector<cv::Point> v; - for (int i = 0; i < q.size(); i++) - v.push_back(cv::Point(q[i].x(), q[i].y())); - return v; +std::vector<cv::Point> BioTrackerUtilsMisc::QVecToCvVec(std::vector<QPoint> q) +{ + std::vector<cv::Point> v; + for (int i = 0; i < q.size(); i++) + v.push_back(cv::Point(q[i].x(), q[i].y())); + return v; } -std::vector<QPoint> BioTrackerUtilsMisc::CvVecToQVec(std::vector<cv::Point> q) { - std::vector<QPoint> v; - for (int i = 0; i < q.size(); i++) - v.push_back(QPoint(q[i].x, q[i].y)); - return v; +std::vector<QPoint> BioTrackerUtilsMisc::CvVecToQVec(std::vector<cv::Point> q) +{ + std::vector<QPoint> v; + for (int i = 0; i < q.size(); i++) + v.push_back(QPoint(q[i].x, q[i].y)); + return v; } -std::string BioTrackerUtilsMisc::cvPointsToString(std::vector<cv::Point> ac) { +std::string BioTrackerUtilsMisc::cvPointsToString(std::vector<cv::Point> ac) +{ - std::string arena = ""; - for (int i = 0; i < ac.size(); i++) - arena += (std::to_string(ac[i].x) + "," + std::to_string(ac[i].y) + ";"); - return arena.substr(0, arena.size() - 1); + std::string arena = ""; + for (int i = 0; i < ac.size(); i++) + arena += (std::to_string(ac[i].x) + "," + std::to_string(ac[i].y) + + ";"); + return arena.substr(0, arena.size() - 1); } diff --git a/Src/Utility/misc.h b/Src/Utility/misc.h index 6cc6db0a65ef067473affd2c9d5b23f525d6d5a4..e083116f2c5217dc55e38175ee3792c5ab027018 100644 --- a/Src/Utility/misc.h +++ b/Src/Utility/misc.h @@ -5,12 +5,13 @@ #include <opencv2/opencv.hpp> #include <QPoint> -namespace BioTrackerUtilsMisc{ - int split(std::string &txt, std::vector<std::string> &strs, char ch); +namespace BioTrackerUtilsMisc +{ + int split(std::string& txt, std::vector<std::string>& strs, char ch); std::string getTimeAndDate(std::string prefix, std::string suffix); std::vector<cv::Point> stringToCVPointVec(std::string arena); std::vector<cv::Point> QVecToCvVec(std::vector<QPoint> q); - std::string cvPointsToString(std::vector<cv::Point> ac); - std::vector<QPoint> CvVecToQVec(std::vector<cv::Point> q); + std::string cvPointsToString(std::vector<cv::Point> ac); + std::vector<QPoint> CvVecToQVec(std::vector<cv::Point> q); } #endif \ No newline at end of file