Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
TrackedElement.cpp 3.84 KiB
#include "TrackedElement.h"
#include "TrackedTrajectory.h"
#include "QDebug"
#include "QRect"
#include "QBrush"
#include "QPainter"
#include "QtMath"

TrackedElement::TrackedElement(QObject *parent, QString name, int id) :
	IModelTrackedPoint(parent)
{
	_x = 0;
	_y = 0;
    _id = id;
	_deg = 0;
	_rad = 0;
	_valid = false;
	_fixed = false;
}

void  TrackedElement::setValid(bool v) 
{ 
    _valid = v;
    if (_parentNode) {
        TrackedTrajectory* n = dynamic_cast<TrackedTrajectory*>(_parentNode);
        if (n)
            n->triggerRecalcValid();
    }
}


QString TrackedElement::getName()
{
	return "";
}

void TrackedElement::setFishPose(FishPose p)
{
	_pose = p;
	_x = p.position_cm().x;
	_y = p.position_cm().y;
	_deg = p.orientation_deg();
	_rad = p.orientation_rad();
    _ypx = p.position_px().y;
    _xpx = p.position_px().x;
	_valid = true;
	Q_EMIT notifyView();
}

void TrackedElement::setTime(std::chrono::system_clock::time_point t) {
    _timeSysclck = t;
};

void TrackedElement::setTime(qint64 t) {
    _time = t;
    std::string::size_type sz = 0;
    long long ll = t / 1000;
    long long remainder = t % 1000;
    std::time_t tm(ll);

    _timeSysclck = std::chrono::system_clock::from_time_t(tm); 
    std::chrono::duration<long long, std::milli> dur(remainder);
    _timeSysclck += dur;
};

qint64 TrackedElement::getTime() {
    qint64 q(std::chrono::duration_cast<std::chrono::milliseconds>(_timeSysclck.time_since_epoch()).count());
    return q;
};