#ifndef TRACKER_H
#define TRACKER_H
+#include <iostream>
+
+using namespace std;
+
#include "misc.h"
#include "mtp_graph.h"
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:
Tracker(int nb_time_steps, int nb_locations);
~Tracker();
+ // Define the spatial topology
+
void set_allowed_motion(int from_location, int to_location, int v);
+ void set_as_entrance(int location, int v);
+ void set_as_exit(int location, int v);
+
+ // Build or print the graph needed for the tracking per se
+
void build_graph();
+ void print_graph_dot(ostream *os);
+
+ // Define the detection scores
void set_detection_score(int time, int location, scalar_t score);
+ // Compute the optimal set of trajectories
+
void track();
- // int nb_trajectories();
- // int trajectory_start_time(int k);
- // int trajectory_end_time(int k);
- // int trajectory_location(int k, int time);
+ // 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);
};
#endif