summaryrefslogtreecommitdiffstats
path: root/src/display
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2012-02-14 23:08:32 +0000
committerDiederik van Lierop <mail@diedenrezi.nl>2012-02-14 23:08:32 +0000
commit2f013ce44d64f518703648c6ee7c392f38a1beb7 (patch)
tree94d7b1f7ba01dee874d3f9de72a37c5ee6000596 /src/display
parent1) Add checkboxes for perpendicular and tangential snapping to the document p... (diff)
downloadinkscape-2f013ce44d64f518703648c6ee7c392f38a1beb7.tar.gz
inkscape-2f013ce44d64f518703648c6ee7c392f38a1beb7.zip
Snap to grid/guide lines perpendicularly
(bzr r10976)
Diffstat (limited to 'src/display')
-rw-r--r--src/display/canvas-axonomgrid.cpp6
-rw-r--r--src/display/canvas-axonomgrid.h1
-rw-r--r--src/display/canvas-grid.cpp6
-rw-r--r--src/display/canvas-grid.h1
-rw-r--r--src/display/snap-indicator.cpp6
5 files changed, 20 insertions, 0 deletions
diff --git a/src/display/canvas-axonomgrid.cpp b/src/display/canvas-axonomgrid.cpp
index 1c74e3d86..ab0592fc6 100644
--- a/src/display/canvas-axonomgrid.cpp
+++ b/src/display/canvas-axonomgrid.cpp
@@ -737,6 +737,12 @@ void CanvasAxonomGridSnapper::_addSnappedPoint(IntermSnapResults &isr, Geom::Poi
isr.points.push_back(dummy);
}
+void CanvasAxonomGridSnapper::_addSnappedLinePerpendicularly(IntermSnapResults &isr, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source, long source_num, bool constrained_snap) const
+{
+ SnappedPoint dummy = SnappedPoint(snapped_point, source, source_num, Inkscape::SNAPTARGET_GRID_PERPENDICULAR, snapped_distance, getSnapperTolerance(), getSnapperAlwaysSnap(), constrained_snap, true);
+ isr.points.push_back(dummy);
+}
+
bool CanvasAxonomGridSnapper::ThisSnapperMightSnap() const
{
return _snap_enabled && _snapmanager->snapprefs.isTargetSnappable(Inkscape::SNAPTARGET_GRID);
diff --git a/src/display/canvas-axonomgrid.h b/src/display/canvas-axonomgrid.h
index 0a12d3743..ec42b5f83 100644
--- a/src/display/canvas-axonomgrid.h
+++ b/src/display/canvas-axonomgrid.h
@@ -74,6 +74,7 @@ private:
LineList _getSnapLines(Geom::Point const &p) const;
void _addSnappedLine(IntermSnapResults &isr, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source, long source_num, Geom::Point const normal_to_line, const Geom::Point point_on_line) const;
void _addSnappedPoint(IntermSnapResults &isr, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source, long source_num, bool constrained_snap) const;
+ void _addSnappedLinePerpendicularly(IntermSnapResults &isr, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source, long source_num, bool constrained_snap) const;
CanvasAxonomGrid *grid;
};
diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp
index 3517e5b47..ea406663c 100644
--- a/src/display/canvas-grid.cpp
+++ b/src/display/canvas-grid.cpp
@@ -1046,6 +1046,12 @@ void CanvasXYGridSnapper::_addSnappedPoint(IntermSnapResults &isr, Geom::Point c
isr.points.push_back(dummy);
}
+void CanvasXYGridSnapper::_addSnappedLinePerpendicularly(IntermSnapResults &isr, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source, long source_num, bool constrained_snap) const
+{
+ SnappedPoint dummy = SnappedPoint(snapped_point, source, source_num, Inkscape::SNAPTARGET_GRID_PERPENDICULAR, snapped_distance, getSnapperTolerance(), getSnapperAlwaysSnap(), constrained_snap, true);
+ isr.points.push_back(dummy);
+}
+
/**
* \return true if this Snapper will snap at least one kind of point.
*/
diff --git a/src/display/canvas-grid.h b/src/display/canvas-grid.h
index f3b285be7..173c0c02b 100644
--- a/src/display/canvas-grid.h
+++ b/src/display/canvas-grid.h
@@ -167,6 +167,7 @@ private:
LineList _getSnapLines(Geom::Point const &p) const;
void _addSnappedLine(IntermSnapResults &isr, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source, long source_num, Geom::Point const normal_to_line, const Geom::Point point_on_line) const;
void _addSnappedPoint(IntermSnapResults &isr, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source, long source_num, bool constrained_snap) const;
+ void _addSnappedLinePerpendicularly(IntermSnapResults &isr, Geom::Point const snapped_point, Geom::Coord const snapped_distance, SnapSourceType const &source, long source_num, bool constrained_snap) const;
CanvasXYGrid *grid;
};
diff --git a/src/display/snap-indicator.cpp b/src/display/snap-indicator.cpp
index ee719847f..d5b8ce07f 100644
--- a/src/display/snap-indicator.cpp
+++ b/src/display/snap-indicator.cpp
@@ -79,6 +79,9 @@ SnapIndicator::set_new_snaptarget(Inkscape::SnappedPoint const &p, bool pre_snap
case SNAPTARGET_GRID_INTERSECTION:
target_name = _("grid intersection");
break;
+ case SNAPTARGET_GRID_PERPENDICULAR:
+ target_name = _("grid line (perpendicular)");
+ break;
case SNAPTARGET_GUIDE:
target_name = _("guide");
break;
@@ -88,6 +91,9 @@ SnapIndicator::set_new_snaptarget(Inkscape::SnappedPoint const &p, bool pre_snap
case SNAPTARGET_GUIDE_ORIGIN:
target_name = _("guide origin");
break;
+ case SNAPTARGET_GUIDE_PERPENDICULAR:
+ target_name = _("guide (perpendicular)");
+ break;
case SNAPTARGET_GRID_GUIDE_INTERSECTION:
target_name = _("grid-guide intersection");
break;