-}
-
-void Block::find_paths(TrackIter track, unsigned path)
-{
- unsigned mask = track.endpoint().paths;
- for(unsigned i=0; mask>>i; ++i)
- if(mask&(1<<i))
- {
- TrackIter next = track.next(i);
- if(!next)
- continue;
- else if(has_track(*next))
- find_paths(track.next(i), path);
- else
- {
- next = next.flip();
- for(vector<Endpoint>::iterator j=endpoints.begin(); j!=endpoints.end(); ++j)
- if(j->track==next.track() && j->track_ep==next.entry())
- j->paths |= path;
- }
- }
-}
-
-void Block::determine_id()
-{
- if(sensor_id)
- id = 0x1000|sensor_id;
- else if(turnout_id)
- id = 0x2000|turnout_id;