X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=tracker.cc;h=0d1d781ede1febbc57ad39fe50dc48451dcf83f0;hb=df0839702923a2c5128b9374e01984dfb9f7791b;hp=ce4dfc219a6534f47b6fc8c40229dc65ade90fb4;hpb=14eafbcbbc5cb10464f39596b34eebce0a6922ed;p=mtp.git diff --git a/tracker.cc b/tracker.cc index ce4dfc2..0d1d781 100644 --- a/tracker.cc +++ b/tracker.cc @@ -104,7 +104,7 @@ void Tracker::build_graph() { _nb_locations * 2 + // The edges from the source to the entrances and from the exists // to the sink (in every time frames but the first and last) - (_nb_time_steps - 2) * (nb_exits + nb_entrances) + + (_nb_time_steps - 1) * (nb_exits + nb_entrances) + // The edges for the motions, between every pair of successive // frames (_nb_time_steps - 1) * nb_motions + @@ -157,15 +157,15 @@ void Tracker::build_graph() { } } - for(int t = 1; t < _nb_time_steps-1; t++) { + for(int t = 0; t < _nb_time_steps; t++) { for(int l = 0; l < _nb_locations; l++) { - if(_entrances[l]) { + if(t > 0 && _entrances[l]) { node_from[e] = source; node_to[e] = 1 + (2 * (t + 0) + 0) * _nb_locations + l; _edge_lengths[e] = 0.0; e++; } - if(_exits[l]) { + if(t < _nb_time_steps - 1 && _exits[l]) { node_from[e] = 1 + (2 * (t + 0) + 1) * _nb_locations + l; node_to[e] = sink; _edge_lengths[e] = 0.0; @@ -182,7 +182,7 @@ void Tracker::build_graph() { delete[] node_to; } -void Tracker::print_dot_graph(ostream *os) { +void Tracker::print_graph_dot(ostream *os) { int e = 0; for(int t = 0; t < _nb_time_steps; t++) { for(int l = 0; l < _nb_locations; l++) {