#include "qvectorhelper.h" #include int QVectorHelper::minSec1; // set by database int QVectorHelper::minSec2; // set by database int QVectorHelper::minSec3; // set by database int QVectorHelper::minTrackTime; // set by database QVectorHelper::QVectorHelper() { } int QVectorHelper::getCurTime(const QVector x) { if (x.size() >= 3) { return x.at(0) + x.at(1) + x.at(2); } else { return 9999; } } int QVectorHelper::getMinSec1(const QVector> x) { int min = 9999; if (x.size() > 0) { for (auto vec : x) { if (vec.size() >= 4) { if (vec.at(0) >= minSec1 && vec.at(3) >= minTrackTime) { min = vec.at(0); break; } } } } else { return 9999; } for (int i = 1; i < x.size(); i++) { if (x.at(i).size() >= 4) { // entire lap if (x.at(i).at(0) < min) { if (x.at(i).at(0) >= minSec1 && x.at(i).at(3) >= minTrackTime) { min = x.at(i).at(0); } } } } return min; } int QVectorHelper::getMinSec2(const QVector> x) { int min = 9999; if (x.size() > 0) { for (auto vec : x) { if (vec.size() >= 4) { if (vec.at(1) >= minSec2 && vec.at(3) >= minTrackTime) { min = vec.at(1); break; } } } } else { return 9999; } for (int i = 1; i < x.size(); i++) { if (x.at(0).size() >= 4) { // entire lap if (x.at(i).at(1) < min) { if (x.at(0).at(1) >= minSec2 && x.at(i).at(3) >= minTrackTime) { min = x.at(i).at(1); } } } } return min; } int QVectorHelper::getMinSec3(const QVector> x) { int min = 9999; if (x.size() > 0) { for (auto vec : x) { if (vec.size() >= 4) { if (vec.at(2) >= minSec3 && vec.at(3) >= minTrackTime) { min = vec.at(2); break; } } } } else { // no times set return 9999; } for (int i = 1; i < x.size(); i++) { if (x.at(i).size() >= 4) { // entire lap if (x.at(i).at(2) < min) { if (x.at(0).at(2) >= minSec3 && x.at(i).at(3) >= minTrackTime) { min = x.at(i).at(2); } } } } return min; } int QVectorHelper::getMin(const QVector> x) { int min = 9999; if (x.size() > 0) { // at least one lap is available for (auto vec : x) { if (vec.size() >= 3) { // check if 3 sectors are available if (getCurTime(x.at(0)) >= minTrackTime && vec.at(0) > QVectorHelper::minSec1 && vec.at(1) > QVectorHelper::minSec2 && vec.at(2) > QVectorHelper::minSec3) { // check if lap is valid min = getCurTime(vec); break; } } } } else { return 9999; } for (int i = 1; i < x.size(); i++) { if (getCurTime(x.at(i)) < min) { if (getCurTime(x.at(i)) >= minTrackTime && x.at(i).at(0) > QVectorHelper::minSec1 && x.at(i).at(1) > QVectorHelper::minSec2 && x.at(i).at(2) > QVectorHelper::minSec3) { min = getCurTime(x.at(i)); } } } return min; }