diff options
| author | bulia byak <buliabyak@gmail.com> | 2006-04-01 03:05:54 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2006-04-01 03:05:54 +0000 |
| commit | a7d7f587a39bf9904b8d0fde90e167985c049ed4 (patch) | |
| tree | 90bdb9ce3def03138cb42cc7099652abed73c886 /src/object-snapper.cpp | |
| parent | switch get_nearest_position and get_point to using supplied livarot Path inst... (diff) | |
| download | inkscape-a7d7f587a39bf9904b8d0fde90e167985c049ed4.tar.gz inkscape-a7d7f587a39bf9904b8d0fde90e167985c049ed4.zip | |
update (and optimize) get_nearest_position and get_point calls
(bzr r385)
Diffstat (limited to 'src/object-snapper.cpp')
| -rw-r--r-- | src/object-snapper.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp index 153abe4af..3d583b709 100644 --- a/src/object-snapper.cpp +++ b/src/object-snapper.cpp @@ -115,12 +115,16 @@ void Inkscape::ObjectSnapper::_snapPaths(Inkscape::SnappedPoint &s, NR::Matrix const i2doc = sp_item_i2doc_affine(*i); NR::Point const p_it = p_doc * i2doc.inverse(); + Path *livarot_path = Path_for_item(*i, true, true); + if (livarot_path) + livarot_path->ConvertWithBackData(0.01); + /* Look for the nearest position on this SPItem to our snap point */ - NR::Maybe<Path::cut_position> const o = get_nearest_position_on_Path(*i, p_it); + NR::Maybe<Path::cut_position> const o = get_nearest_position_on_Path(livarot_path, p_it); if (o != NR::Nothing() && o.assume().t >= 0 && o.assume().t <= 1) { /* Convert the nearest point back to desktop coordinates */ - NR::Point const o_it = get_point_on_Path(*i, o.assume().piece, o.assume().t); + NR::Point const o_it = get_point_on_Path(livarot_path, o.assume().piece, o.assume().t); NR::Point const o_dt = desktop->doc2dt(o_it * i2doc); NR::Coord const dist = NR::L2(o_dt - p); @@ -128,6 +132,8 @@ void Inkscape::ObjectSnapper::_snapPaths(Inkscape::SnappedPoint &s, s = SnappedPoint(o_dt, dist); } } + + delete livarot_path; } } |
