-void Engineer::set_block_color(const Block &block, const GL::Color &color)
-{
- const set<Track *> &tracks = block.get_tracks();
- for(set<Track *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
- layout_3d.get_track(**i).get_path().set_color(color);
-}
-
-void Engineer::reset_block_color(const Block &block)
-{
- bool active = false;
- if(unsigned sid=block.get_sensor_id())
- active = layout.get_driver().get_sensor(sid);
-
- if(block.get_train())
- {
- GL::Color color;
- map<Train *, GL::Color>::iterator i = train_colors.find(block.get_train());
- if(i!=train_colors.end())
- color = i->second;
-
- if(active)
- set_block_color(block, color*0.6);
- else
- set_block_color(block, color*0.5+0.5);
- }
- else if(active)
- set_block_color(block, GL::Color(0.6));
- else
- set_block_color(block, GL::Color(1));
-}
-
-void Engineer::sensor_event(unsigned addr, bool)