if(unlinked_endpoints.empty())
{
- done = true;
set_status("No free endpoints");
+ set_done(false);
}
const Catalogue::ObjectMap &object_types = designer.get_catalogue().get_all();
void ExtendTool::connect()
{
- float limit = designer.get_layout().get_catalogue().get_gauge()/10;
+ float limit;
Track *start_track = 0;
Track *end_track = 0;
for(vector<TrackIter>::const_iterator i=unlinked_endpoints.begin(); i!=unlinked_endpoints.end(); ++i)
{
start_sn = (*i)->get_snap_node(i->entry());
+ limit = (*i)->get_type().get_appearance().get_gauge()/10;
for(vector<TrackIter>::const_iterator j=i; ++j!=unlinked_endpoints.end(); )
{
if(gap<0)
continue;
+ start_track = i->track();
+ end_track = j->track();
ok = true;
}
if(!ok)
{
set_status("No aligned endpoints found");
+ set_done(false);
return;
}
if(extend_tracks.empty())
{
set_status("No connection possible");
+ set_done(false);
return;
}
void ExtendTool::finish()
{
- for(vector<TrackIter>::const_iterator i=unlinked_endpoints.begin(); i!=unlinked_endpoints.end(); ++i)
- if(extend_tracks.front()->link_to(**i))
- break;
+ if(!extend_tracks.empty())
+ {
+ for(vector<TrackIter>::const_iterator i=unlinked_endpoints.begin(); i!=unlinked_endpoints.end(); ++i)
+ if(extend_tracks.front()->link_to(**i))
+ break;
+ }
}
vector<Track *> ExtendTool::create_straight(const Vector &start, const Angle &dir, float length, float limit)