+void do_tracking(istream *in_tracker) {
+ timeval start_time, end_time;
+ MTPTracker *tracker = new MTPTracker();
+
+ if(verbose) { cout << "Reading the tracking parameters." << endl; }
+ tracker->read(in_tracker);
+
+ if(verbose) { cout << "Building the graph ... "; cout.flush(); }
+ gettimeofday(&start_time, 0);
+ tracker->build_graph();
+ gettimeofday(&end_time, 0);
+ if(verbose) { cout << "done (" << diff_in_second(&start_time, &end_time) << "s)." << endl; }
+
+ if(verbose) { cout << "Tracking ... "; cout.flush(); }
+ gettimeofday(&start_time, 0);
+ tracker->track();
+ gettimeofday(&end_time, 0);
+ if(verbose) { cout << "done (" << diff_in_second(&start_time, &end_time) << "s)." << endl; }
+
+ if(strcmp(trajectory_filename, "")) {
+ ofstream out_traj(trajectory_filename);
+ tracker->write_trajectories(&out_traj);
+ if(verbose) { cout << "Wrote " << trajectory_filename << "." << endl; }
+ } else {
+ tracker->write_trajectories(&cout);
+ }