mtp_command is now the main executable.
[mtp.git] / mtp.cc
diff --git a/mtp.cc b/mtp.cc
new file mode 100644 (file)
index 0000000..2f9e7a9
--- /dev/null
+++ b/mtp.cc
@@ -0,0 +1,61 @@
+
+///////////////////////////////////////////////////////////////////////////
+// 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);
+}