Source code for objects.tracked
from copy import deepcopy
from datetime import datetime
import glm
[docs]
class Tracked:
""" Class Tracked
Realisation of tracked object
"""
def __init__(self, tracking_start_time: int):
self.trajectory: list = []
self.start_tracked_time: int = tracking_start_time
self.last_tracked_time: int = tracking_start_time
self.filteredVelocityAB = glm.vec3(0, 0, 0)
self.extrapolatedValueAB = glm.vec3(0, 0, 0)
self.extrapolatedVelocityAB = glm.vec3(0, 0, 0)
self.extrapolatedValue = glm.vec3(0, 0, 0)
self.extrapolatedVelocity = glm.vec3(0, 0, 0)
self.obj_name = None
self.mse = 0
self.__filename = f"trajectories/'Tracked_{datetime.now()}_{self.start_tracked_time}.txt"
open(self.__filename, "w").close()
[docs]
def add_position(self, position):
""" Add point to object trajectory """
self.trajectory.append(deepcopy(position))
[docs]
def update_time(self, new_time):
""" Update time of tracked object """
self.last_tracked_time = new_time
with open(self.__filename, "a") as file:
position = self.trajectory[-1].x, self.trajectory[-1].y, self.trajectory[-1].z
extr_position = self.extrapolatedValueAB.x, self.extrapolatedValueAB.y, self.extrapolatedValueAB.z
file.write(f"{position[0]},{position[1]},{position[2]},{extr_position[0]},{extr_position[1]},{extr_position[2]},{self.mse / len(self.trajectory)}\n")
@property
def tracked_time(self):
return self.last_tracked_time - self.start_tracked_time
def __repr__(self):
return f"Tracked({self.start_tracked_time}, {self.last_tracked_time}, {self.trajectory[-1]})"