]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/trafficmanager.cpp
Add Track::get_endpoint_position to avoid duplicating calculations
[r2c2.git] / source / libmarklin / trafficmanager.cpp
index 7a47f1425c077c85686624587f92682c7e293810..516f64fd0b00741ea65ee2572cbec2e501d44afc 100644 (file)
@@ -31,24 +31,32 @@ TrafficManager::TrafficManager(Control &c, Layout &l):
                }
                if(used_tracks.count(*i)==0)
                {
-                       Section *sect=new Section(*this, *i);
-                       sections.push_back(sect);
-                       used_tracks.insert(sect->get_tracks().begin(), sect->get_tracks().end());
+                       Block *block=new Block(*this, *i);
+                       blocks.push_back(block);
+                       used_tracks.insert(block->get_tracks().begin(), block->get_tracks().end());
                }
        }
 
-       for(SectionSeq::iterator i=sections.begin(); i!=sections.end(); ++i)
+       for(BlockSeq::iterator i=blocks.begin(); i!=blocks.end(); ++i)
        {
-               for(SectionSeq::iterator j=i; j!=sections.end(); ++j)
+               for(BlockSeq::iterator j=i; j!=blocks.end(); ++j)
                        if(j!=i)
                                (*i)->check_link(**j);
                (*i)->print_debug();
        }
 }
 
-Section *TrafficManager::get_section_by_track(const Track *t) const
+TrafficManager::~TrafficManager()
 {
-       for(SectionSeq::const_iterator i=sections.begin(); i!=sections.end(); ++i)
+       for(BlockSeq::iterator i=blocks.begin(); i!=blocks.end(); ++i)
+               delete *i;
+       for(TrainSeq::iterator i=trains.begin(); i!=trains.end(); ++i)
+               delete *i;
+}
+
+Block *TrafficManager::get_block_by_track(const Track *t) const
+{
+       for(BlockSeq::const_iterator i=blocks.begin(); i!=blocks.end(); ++i)
        {
                const TrackSet &tracks=(*i)->get_tracks();
                if(tracks.count(const_cast<Track *>(t)))