diff options
| author | Diederik van Lierop <mail@diedenrezi.nl> | 2009-01-25 20:02:13 +0000 |
|---|---|---|
| committer | dvlierop2 <dvlierop2@users.sourceforge.net> | 2009-01-25 20:02:13 +0000 |
| commit | a3d2dbecd77fca3b2757039e329238a99676a950 (patch) | |
| tree | 15eb12dad98c33f2bdee0e1a1b40681d38797b12 /src | |
| parent | Display the snap source indicator only when snapping is enabled (diff) | |
| download | inkscape-a3d2dbecd77fca3b2757039e329238a99676a950.tar.gz inkscape-a3d2dbecd77fca3b2757039e329238a99676a950.zip | |
Remove some SP_ACTIVE_DESKTOP() calls
(bzr r7174)
Diffstat (limited to 'src')
| -rw-r--r-- | src/desktop.h | 2 | ||||
| -rw-r--r-- | src/snap.cpp | 10 | ||||
| -rw-r--r-- | src/snapped-curve.cpp | 17 | ||||
| -rw-r--r-- | src/snapped-curve.h | 6 |
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 */
|
