Make all the nodes of identical size.
[mtp.git] / tracker.h
index d37e46a..40e21ab 100644 (file)
--- a/tracker.h
+++ b/tracker.h
 #ifndef TRACKER_H
 #define TRACKER_H
 
+#include <iostream>
+
+using namespace std;
+
 #include "misc.h"
 #include "mtp_graph.h"
 
 class Tracker {
   int _nb_locations, _nb_time_steps;
-  MTPGraph *_graph;
   scalar_t **_detection_score;
   int **_allowed_motion;
+  int *_entrances, *_exits;
+
+  MTPGraph *_graph;
+  scalar_t *_edge_lengths;
+
+  int early_pair_node(int t, int l);
+  int late_pair_node(int t, int l);
 
 public:
-  Tracker(int nb_locations, int nb_time_steps);
+
+  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);
-  void set_detection_score(int location, int time, scalar_t score);
-  void make_graph();
+  // Build or print the graph needed for the tracking per se
+
+  void build_graph();
+  void print_graph_dot(ostream *os);
+
+  // Compute the optimal set of trajectories
 
   void track();
 
+  // Read-out of the optimal trajectories
+
   int nb_trajectories();
-  int trajectory_start_time(int k);
-  int trajectory_end_time(int k);
-  int trajectory_location(int k, int time);
+  scalar_t trajectory_score(int k);
+  int trajectory_entrance_time(int k);
+  int trajectory_duration(int k);
+  int trajectory_location(int k, int time_from_entry);
 };
 
 #endif