Oups, some renaming of variables was a bit too brutal. Fixed.
[mtp.git] / mtp_graph.cc
index 4608b82..92e3875 100644 (file)
@@ -1,20 +1,26 @@
 
-///////////////////////////////////////////////////////////////////////////
-// 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        //
-///////////////////////////////////////////////////////////////////////////
+/*
+ *  mtp is the ``Multi Tracked Paths'', an implementation of the
+ *  k-shortest paths algorithm for multi-target tracking.
+ *
+ *  Copyright (c) 2012 Idiap Research Institute, http://www.idiap.ch/
+ *  Written by Francois Fleuret <francois.fleuret@idiap.ch>
+ *
+ *  This file is part of mtp.
+ *
+ *  mtp is free software: you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License version 3 as
+ *  published by the Free Software Foundation.
+ *
+ *  mtp 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 selector.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
 
 #include "mtp_graph.h"
 
@@ -90,7 +96,7 @@ void Vertex::del_leaving_edge(Edge *e) {
 //////////////////////////////////////////////////////////////////////
 
 MTPGraph::MTPGraph(int nb_vertices, int nb_edges,
-                   int *from, int *to,
+                   int *vertex_from, int *vertex_to,
                    int source, int sink) {
   _nb_vertices = nb_vertices;
   _nb_edges = nb_edges;
@@ -108,11 +114,11 @@ MTPGraph::MTPGraph(int nb_vertices, int nb_edges,
   }
 
   for(int e = 0; e < nb_edges; e++) {
-    _vertices[from[e]].add_leaving_edge(_edges + e);
+    _vertices[vertex_from[e]].add_leaving_edge(_edges + e);
     _edges[e].occupied = 0;
     _edges[e].id = e;
-    _edges[e].origin_vertex = _vertices + from[e];
-    _edges[e].terminal_vertex = _vertices + to[e];
+    _edges[e].origin_vertex = _vertices + vertex_from[e];
+    _edges[e].terminal_vertex = _vertices + vertex_to[e];
   }
 
   paths = 0;
@@ -147,22 +153,23 @@ void MTPGraph::print(ostream *os) {
 
 void MTPGraph::print_dot(ostream *os) {
   (*os) << "digraph {" << endl;
-  // (*os) << "        node [shape=circle];" << endl;
-  (*os) << "        edge [color=gray]" << endl;
+  (*os) << "        node [shape=circle,width=0.75,fixedsize=true];" << endl;
+  (*os) << "        edge [color=gray,arrowhead=open]" << endl;
   (*os) << "        " << _source->id << " [peripheries=2];" << endl;
   (*os) << "        " << _sink->id << " [peripheries=2];" << endl;
+  // (*os) << "        " << _source->id << " [style=bold,color=red];" << endl;
+  // (*os) << "        " << _sink->id << " [style=bold,color=green];" << endl;
   for(int k = 0; k < _nb_edges; k++) {
     Edge *e = _edges + k;
     // (*os) << "  " << e->origin_vertex->id << " -> " << e->terminal_vertex->id
-          // << ";"
-          // << endl;
+    // << ";"
+    // << endl;
+    (*os) << "        " << e->origin_vertex->id << " -> " << e->terminal_vertex->id
+          << " [";
     if(e->occupied) {
-      (*os) << "        " << e->origin_vertex->id << " -> " << e->terminal_vertex->id
-           << " [style=bold,color=black,label=\"" << e->length << "\"];" << endl;
-    } else {
-      (*os) << "        " << e->origin_vertex->id << " -> " << e->terminal_vertex->id
-           << " [label=\"" << e->length << "\"];" << endl;
+      (*os) << "style=bold,color=black,";
     }
+    (*os) << "label=\"" << e->length << "\"];" << endl;
   }
   (*os) << "}" << endl;
 }