X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrackattachment.cpp;h=eb2d563561c6fcf7864d00c1a8a170f943c7e624;hb=5116fff210cdc3f0fbdae13046cc60450aad5e8f;hp=3d28651d882395bdd8baab18162e3e201ad3b1bc;hpb=e3e3a940c75dcad126d5cf08f0802efdab914568;p=r2c2.git diff --git a/source/libr2c2/trackattachment.cpp b/source/libr2c2/trackattachment.cpp index 3d28651..eb2d563 100644 --- a/source/libr2c2/trackattachment.cpp +++ b/source/libr2c2/trackattachment.cpp @@ -20,6 +20,14 @@ TrackAttachment::~TrackAttachment() track->remove_attachment(*this); } +float TrackAttachment::get_offset_from_endpoint(unsigned epi) const +{ + if(epi==track.entry()) + return offset; + else + return track->get_type().get_path_length(0)-offset; +} + void TrackAttachment::attach_to(const TrackIter &t, float o) { if(track) @@ -81,7 +89,7 @@ float TrackAttachment::find_offset(const TrackIter &trk, const Vector &point) 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);