diff --git a/src/seltrans.cpp b/src/seltrans.cpp
index cfc784dac6c24e19def0abe7e01a1c1fa5f9cbdf..56138c51eb9ee1632a52b1ae1cb0a5fe534325c1 100644 (file)
--- a/src/seltrans.cpp
+++ b/src/seltrans.cpp
@@ -310,6 +310,8 @@ void Inkscape::SelTrans::grab(NR::Point const &p, gdouble x, gdouble y, bool sho
_opposite = _opposite_for_bboxpoints;
}
+ // The lines below are usefull for debugging any snapping issues, as they'll spit out all points that are considered for snapping
+
/*std::cout << "Number of snap points: " << _snap_points.size() << std::endl;
for (std::vector<NR::Point>::const_iterator i = _snap_points.begin(); i != _snap_points.end(); i++)
{
@@ -1338,22 +1340,17 @@ void Inkscape::SelTrans::stretch(SPSelTransHandle const &handle, NR::Point &pt,
return;
}
- //Get two corners of the new bbox
- NR::Point p1 = _approximate_bbox->min() * (NR::translate(-scale_origin) * NR::Matrix(s) * NR::translate(scale_origin));
- NR::Point p2 = _approximate_bbox->max() * (NR::translate(-scale_origin) * NR::Matrix(s) * NR::translate(scale_origin));
-
- //Find the corners at the lower-left and upper-right, as required by get_scale_transform_with_stroke
- NR::Point new_bbox_min = NR::Point(std::min(p1[NR::X], p2[NR::X]), std::min(p1[NR::Y], p2[NR::Y]));
- NR::Point new_bbox_max = NR::Point(std::max(p1[NR::X], p2[NR::X]), std::max(p1[NR::Y], p2[NR::Y]));
+ NR::Point new_bbox_min = _approximate_bbox->min() * (NR::translate(-scale_origin) * NR::Matrix(s) * NR::translate(scale_origin));
+ NR::Point new_bbox_max = _approximate_bbox->max() * (NR::translate(-scale_origin) * NR::Matrix(s) * NR::translate(scale_origin));
int transform_stroke = false;
gdouble strokewidth = 0;
-
+
if ( _snap_bbox_type != SPItem::GEOMETRIC_BBOX) {
transform_stroke = prefs_get_int_attribute ("options.transform", "stroke", 1);
strokewidth = _strokewidth;
}
-
+
NR::Matrix scaler = get_scale_transform_with_stroke (*_approximate_bbox, strokewidth, transform_stroke,
new_bbox_min[NR::X], new_bbox_min[NR::Y], new_bbox_max[NR::X], new_bbox_max[NR::Y]);
s[i] = 1e-9;
}
- //Get two corners of the new bbox
- NR::Point p1 = _approximate_bbox->min() * (NR::translate(-_origin) * NR::Matrix(s) * NR::translate(_origin));
- NR::Point p2 = _approximate_bbox->max() * (NR::translate(-_origin) * NR::Matrix(s) * NR::translate(_origin));
-
- //Find the corners at the lower-left and upper-right, as required by get_scale_transform_with_stroke
- NR::Point new_bbox_min = NR::Point(std::min(p1[NR::X], p2[NR::X]), std::min(p1[NR::Y], p2[NR::Y]));
- NR::Point new_bbox_max = NR::Point(std::max(p1[NR::X], p2[NR::X]), std::max(p1[NR::Y], p2[NR::Y]));
+ NR::Point new_bbox_min = _approximate_bbox->min() * (NR::translate(-_origin) * NR::Matrix(s) * NR::translate(_origin));
+ NR::Point new_bbox_max = _approximate_bbox->max() * (NR::translate(-_origin) * NR::Matrix(s) * NR::translate(_origin));
int transform_stroke = false;
gdouble strokewidth = 0;