X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=mtp_graph.cc;h=92e3875ce43f85e5c78466d21db8f6c5d49410aa;hb=de64ce0b1101045816e6731e03d2735356c33ef0;hp=4608b82f428fe252c96aec1fbf6656f753f3238b;hpb=6afe91234d7807ce82b96a071087decb2f7aead3;p=mtp.git diff --git a/mtp_graph.cc b/mtp_graph.cc index 4608b82..92e3875 100644 --- a/mtp_graph.cc +++ b/mtp_graph.cc @@ -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 . // -// // -// Written by and Copyright (C) Francois Fleuret // -// Contact 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 + * + * 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 . + * + */ #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; }