X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=tracker.h;h=de6ac42762ca457131d10152686e0da2570ca59a;hb=7704ecb19140055b21e1012cd0d394f2a6db98eb;hp=1811fb9f424f111e51092afbf97da2d0d8e629d6;hpb=8946d0df4263aa20a670cedd5d61f9709b858fca;p=mtp.git diff --git a/tracker.h b/tracker.h index 1811fb9..de6ac42 100644 --- a/tracker.h +++ b/tracker.h @@ -19,6 +19,10 @@ #ifndef TRACKER_H #define TRACKER_H +#include + +using namespace std; + #include "misc.h" #include "mtp_graph.h" @@ -26,22 +30,31 @@ class Tracker { int _nb_locations, _nb_time_steps; scalar_t **_detection_score; int **_allowed_motion; + int *_entrances, *_exits; MTPGraph *_graph; - int *_edge_occupation; scalar_t *_edge_lengths; public: + scalar_t **detection_score; + int **allowed_motion; + int *entrances, *exits; + Tracker(int nb_time_steps, int nb_locations); ~Tracker(); - void set_allowed_motion(int from_location, int to_location, int v); + // Build or print the graph needed for the tracking per se + void build_graph(); + void print_graph_dot(ostream *os); - void set_detection_score(int time, int location, scalar_t score); + // Compute the optimal set of trajectories void track(); + // Read-out of the optimal trajectories + int nb_trajectories(); + int trajectory_entrance_time(int k); int trajectory_duration(int k); int trajectory_location(int k, int time); };