summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDiederik van Lierop <mail@diedenrezi.nl>2009-01-25 20:02:13 +0000
committerdvlierop2 <dvlierop2@users.sourceforge.net>2009-01-25 20:02:13 +0000
commita3d2dbecd77fca3b2757039e329238a99676a950 (patch)
tree15eb12dad98c33f2bdee0e1a1b40681d38797b12 /src
parentDisplay the snap source indicator only when snapping is enabled (diff)
downloadinkscape-a3d2dbecd77fca3b2757039e329238a99676a950.tar.gz
inkscape-a3d2dbecd77fca3b2757039e329238a99676a950.zip
Remove some SP_ACTIVE_DESKTOP() calls
(bzr r7174)
Diffstat (limited to 'src')
-rw-r--r--src/desktop.h2
-rw-r--r--src/snap.cpp10
-rw-r--r--src/snapped-curve.cpp17
-rw-r--r--src/snapped-curve.h6
4 files changed, 14 insertions, 21 deletions
diff --git a/src/desktop.h b/src/desktop.h
index 50041543c..e1479d857 100644
--- a/src/desktop.h
+++ b/src/desktop.h
@@ -290,7 +290,7 @@ struct SPDesktop : public Inkscape::UI::View::View
void toggleGrids();
void toggleSnapGlobal();
- bool gridsEnabled() { return grids_visible; }
+ bool gridsEnabled() const { return grids_visible; };
void showGrids(bool show, bool dirty_document = true);
bool is_iconified();
diff --git a/src/snap.cpp b/src/snap.cpp
index 7404ed12b..04521f07f 100644
--- a/src/snap.cpp
+++ b/src/snap.cpp
@@ -77,8 +77,7 @@ SnapManager::getGridSnappers() const
SnapperList s;
//FIXME: this code should actually do this: add new grid snappers that are active for this desktop. now it just adds all gridsnappers
- SPDesktop* desktop = SP_ACTIVE_DESKTOP;
- if (desktop && desktop->gridsEnabled()) {
+ if (_desktop && _desktop->gridsEnabled()) {
for ( GSList const *l = _named_view->grids; l != NULL; l = l->next) {
Inkscape::CanvasGrid *grid = (Inkscape::CanvasGrid*) l->data;
s.push_back(grid->snapper);
@@ -207,9 +206,8 @@ Geom::Point SnapManager::multipleOfGridPitch(Geom::Point const &t) const
return t;
//FIXME: this code should actually do this: add new grid snappers that are active for this desktop. now it just adds all gridsnappers
- SPDesktop* desktop = SP_ACTIVE_DESKTOP;
- if (desktop && desktop->gridsEnabled()) {
+ if (_desktop && _desktop->gridsEnabled()) {
bool success = false;
Geom::Point nearest_multiple;
Geom::Coord nearest_distance = NR_HUGE;
@@ -219,7 +217,7 @@ Geom::Point SnapManager::multipleOfGridPitch(Geom::Point const &t) const
// this, so when using multiple grids one can get unexpected results
// Cannot use getGridSnappers() because we need both the grids AND their snappers
- // Therefor we iterate through all grids manually
+ // Therefore we iterate through all grids manually
for (GSList const *l = _named_view->grids; l != NULL; l = l->next) {
Inkscape::CanvasGrid *grid = (Inkscape::CanvasGrid*) l->data;
const Inkscape::Snapper* snapper = grid->snapper;
@@ -787,7 +785,7 @@ Inkscape::SnappedPoint SnapManager::findBestSnap(Geom::Point const &p, SnappedCo
if (snapprefs.getSnapIntersectionCS()) {
// search for the closest snapped intersection of curves
Inkscape::SnappedPoint closestCurvesIntersection;
- if (getClosestIntersectionCS(sc.curves, p, closestCurvesIntersection)) {
+ if (getClosestIntersectionCS(sc.curves, p, closestCurvesIntersection, _desktop->dt2doc())) {
sp_list.push_back(closestCurvesIntersection);
}
}
diff --git a/src/snapped-curve.cpp b/src/snapped-curve.cpp
index 50bc83648..20d7aea33 100644
--- a/src/snapped-curve.cpp
+++ b/src/snapped-curve.cpp
@@ -14,10 +14,6 @@
#include <2geom/path-intersection.h>
#include <libnr/nr-convert2geom.h>
-// These two are needed for SP_ACTIVE_DESKTOP; this is a dirty hack
-#include "desktop.h"
-#include "inkscape.h"
-
Inkscape::SnappedCurve::SnappedCurve(Geom::Point const &snapped_point, Geom::Coord const &snapped_distance, Geom::Coord const &snapped_tolerance, bool const &always_snap, bool const &fully_constrained, Geom::Curve const *curve)
{
_distance = snapped_distance;
@@ -50,7 +46,7 @@ Inkscape::SnappedCurve::~SnappedCurve()
{
}
-Inkscape::SnappedPoint Inkscape::SnappedCurve::intersect(SnappedCurve const &curve, Geom::Point const &p) const
+Inkscape::SnappedPoint Inkscape::SnappedCurve::intersect(SnappedCurve const &curve, Geom::Point const &p, Geom::Matrix dt2doc) const
{
// Calculate the intersections of two curves, which are both within snapping range, and
// return only the closest intersection
@@ -76,10 +72,9 @@ Inkscape::SnappedPoint Inkscape::SnappedCurve::intersect(SnappedCurve const &cur
bool const use_this_as_primary = _distance < curve.getSnapDistance();
Inkscape::SnappedCurve const *primaryC = use_this_as_primary ? this : &curve;
Inkscape::SnappedCurve const *secondaryC = use_this_as_primary ? &curve : this;
- // The intersection should in fact be returned in desktop coordinates, but for this
- // we need a desktop: this is a dirty hack
- SPDesktop const *desktop = SP_ACTIVE_DESKTOP;
- best_p = desktop->dt2doc(best_p);
+
+ // The intersection should in fact be returned in desktop coordinates
+ best_p = best_p * dt2doc;
Geom::Coord primaryDist = use_this_as_primary ? Geom::L2(best_p - this->getPoint()) : Geom::L2(best_p - curve.getPoint());
Geom::Coord secondaryDist = use_this_as_primary ? Geom::L2(best_p - curve.getPoint()) : Geom::L2(best_p - this->getPoint());
@@ -110,7 +105,7 @@ bool getClosestCurve(std::list<Inkscape::SnappedCurve> const &list, Inkscape::Sn
}
// search for the closest intersection of two snapped curves, which are both member of the same collection
-bool getClosestIntersectionCS(std::list<Inkscape::SnappedCurve> const &list, Geom::Point const &p, Inkscape::SnappedPoint &result)
+bool getClosestIntersectionCS(std::list<Inkscape::SnappedCurve> const &list, Geom::Point const &p, Inkscape::SnappedPoint &result, Geom::Matrix dt2doc)
{
bool success = false;
@@ -118,7 +113,7 @@ bool getClosestIntersectionCS(std::list<Inkscape::SnappedCurve> const &list, Geo
std::list<Inkscape::SnappedCurve>::const_iterator j = i;
j++;
for (; j != list.end(); j++) {
- Inkscape::SnappedPoint sp = (*i).intersect(*j, p);
+ Inkscape::SnappedPoint sp = (*i).intersect(*j, p, dt2doc);
if (sp.getAtIntersection()) {
// if it's the first point
bool const c1 = !success;
diff --git a/src/snapped-curve.h b/src/snapped-curve.h
index 814777b68..8414c10eb 100644
--- a/src/snapped-curve.h
+++ b/src/snapped-curve.h
@@ -29,8 +29,8 @@ public:
SnappedCurve();
SnappedCurve(Geom::Point const &snapped_point, Geom::Coord const &snapped_distance, Geom::Coord const &snapped_tolerance, bool const &always_snap, bool const &fully_constrained, Geom::Curve const *curve);
~SnappedCurve();
- Inkscape::SnappedPoint intersect(SnappedCurve const &curve, Geom::Point const &p) const; //intersect with another SnappedCurve
-
+ Inkscape::SnappedPoint intersect(SnappedCurve const &curve, Geom::Point const &p, Geom::Matrix dt2doc) const; //intersect with another SnappedCurve
+
private:
Geom::Curve const *_curve;
};
@@ -38,7 +38,7 @@ private:
}
bool getClosestCurve(std::list<Inkscape::SnappedCurve> const &list, Inkscape::SnappedCurve &result);
-bool getClosestIntersectionCS(std::list<Inkscape::SnappedCurve> const &list, Geom::Point const &p, Inkscape::SnappedPoint &result);
+bool getClosestIntersectionCS(std::list<Inkscape::SnappedCurve> const &list, Geom::Point const &p, Inkscape::SnappedPoint &result, Geom::Matrix dt2doc);
#endif /* !SEEN_SNAPPEDCURVE_H */