TrackAttachment::TrackAttachment(Layout &l):
Object(l),
offset(0)
-{ }
+{
+ layout.signal_object_removed.connect(sigc::mem_fun(this, &TrackAttachment::object_removed));
+}
TrackAttachment::~TrackAttachment()
{
Vector epp = trk->get_snap_node(trk.entry()).position;
float dist = distance(epp, point);
- float offs = dist;
+ float offs = min(dist, trk->get_type().get_path_length(0));
while(1)
{
TrackPoint tp = trk->get_point(trk.entry(), offs);
return offs;
}
+void TrackAttachment::object_removed(Object &o)
+{
+ if(&o==track.track())
+ track = TrackIter();
+}
+
} // namespace R2C"