check_allocated_blocks(false),
passing(false)
{
- layout.add_signal(*this);
+ layout.add(*this);
layout.signal_block_reserved.connect(sigc::mem_fun(this, &Signal::block_reserved));
}
Signal::~Signal()
{
- layout.remove_signal(*this);
+ layout.remove(*this);
}
Signal *Signal::clone(Layout *to_layout) const
position = p;
update_location();
+ signal_moved.emit();
}
void Signal::update_location()
{
- const set<Track *> &tracks = layout.get_tracks();
+ const set<Track *> &tracks = layout.get_all<Track>();
float limit = layout.get_catalogue().get_gauge()*2;
float dist = -1;
for(set<Track *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
rotation = r;
update_location();
+ signal_moved.emit();
}
unsigned Signal::get_n_snap_nodes() const
{
if(t)
{
- int train_entry = t->get_block_allocator().get_entry_to_block(*block);
- if(train_entry>=0 && static_cast<unsigned>(train_entry)==entry)
+ const BlockIter &b_iter = t->get_block_allocator().iter_for(b);
+ if(b_iter && b_iter.entry()==entry)
{
if(train_conn)
train_conn.disconnect();