index 7781b15f0350b30c5fd937db21a792b4a11a900d..6383a1faecba26b93c6aa99211a4ebbf84d546d2 100644 (file)
*/
#include <sp-item.h>
-#include <libnr/nr-matrix-translate-ops.h>
+#include <2geom/transforms.h>
#include <sp-guide.h>
#include <sp-item-rm-unsatisfied-cns.h>
using std::vector;
@@ -20,15 +20,15 @@ void sp_item_notify_moveto(SPItem &item, SPGuide const &mv_g, int const snappoin
{
g_return_if_fail(SP_IS_ITEM(&item));
g_return_if_fail( unsigned(snappoint_ix) < 8 );
- NR::Point const dir( mv_g.normal );
+ Geom::Point const dir( mv_g.normal_to_line );
double const dir_lensq(dot(dir, dir));
g_return_if_fail( dir_lensq != 0 );
- vector<NR::Point> snappoints;
- sp_item_snappoints(&item, true, SnapPointsIter(snappoints));
+ std::vector<Inkscape::SnapCandidatePoint> snappoints;
+ sp_item_snappoints(&item, snappoints, NULL);
g_return_if_fail( snappoint_ix < int(snappoints.size()) );
- double const pos0 = dot(dir, snappoints[snappoint_ix]);
+ double const pos0 = dot(dir, snappoints[snappoint_ix].getPoint());
/// \todo effic: skip if mv_g is already satisfied.
/* Translate along dir to make dot(dir, snappoints(item)[snappoint_ix]) == position. */
pos0 + s * dot(dir, dir) = position.
s * lensq(dir) = position - pos0.
s = (position - pos0) / dot(dir, dir). */
- NR::translate const tr( ( position - pos0 )
+ Geom::Translate const tr( ( position - pos0 )
* ( dir / dir_lensq ) );
sp_item_set_i2d_affine(&item, sp_item_i2d_affine(&item) * tr);
/// \todo Reget snappoints, check satisfied.
fill-column:99
End:
*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :