--- /dev/null
+
+///////////////////////////////////////////////////////////////////////////
+// This program is free software: you can redistribute it and/or modify //
+// it under the terms of the version 3 of the GNU General Public License //
+// as published by the Free Software Foundation. //
+// //
+// This program is distributed in the hope that it will be useful, but //
+// WITHOUT ANY WARRANTY; without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU //
+// General Public License for more details. //
+// //
+// You should have received a copy of the GNU General Public License //
+// along with this program. If not, see <http://www.gnu.org/licenses/>. //
+// //
+// Written by and Copyright (C) Francois Fleuret //
+// Contact <francois.fleuret@idiap.ch> for comments & bug reports //
+///////////////////////////////////////////////////////////////////////////
+
+// Multi-Tracked Path
+
+#include <iostream>
+#include <fstream>
+
+using namespace std;
+
+#include "tracker.h"
+
+int main(int argc, char **argv) {
+
+ if(argc < 2) {
+ cerr << argv[0] << " <tracker file>" << endl;
+ exit(EXIT_FAILURE);
+ }
+
+ Tracker tracker;
+
+ ifstream in_tracker(argv[1]);
+
+ if(in_tracker.good()) {
+
+ tracker.read(&in_tracker);
+ tracker.build_graph();
+ tracker.track();
+
+ ofstream out_traj("result.trj");
+ tracker.write_trajectories(&out_traj);
+ cout << "Wrote result.trj" << endl;
+
+ ofstream out_dot("graph.dot");
+ tracker.print_graph_dot(&out_dot);
+ cout << "Wrote graph.dot" << endl;
+
+ } else {
+
+ cerr << "Can not open " << argv[1] << endl;
+ exit(EXIT_FAILURE);
+
+ }
+
+ exit(EXIT_SUCCESS);
+}