diff options
| author | Krzysztof Kosi??ski <tweenk.pl@gmail.com> | 2011-04-07 23:42:04 +0000 |
|---|---|---|
| committer | Krzysztof KosiĆski <tweenk.pl@gmail.com> | 2011-04-07 23:42:04 +0000 |
| commit | 945ce419c806c73d70203dec33ececafbe108a92 (patch) | |
| tree | cfcdb59bf47e9db7f9e01f7eebb59924bdeaea94 /src/conn-avoid-ref.cpp | |
| parent | Merge from trunk (again) (diff) | |
| parent | Extensions. SVG+media fix (see Bug #400356). (diff) | |
| download | inkscape-945ce419c806c73d70203dec33ececafbe108a92.tar.gz inkscape-945ce419c806c73d70203dec33ececafbe108a92.zip | |
Merge from trunk
(bzr r9508.1.73)
Diffstat (limited to 'src/conn-avoid-ref.cpp')
| -rw-r--r-- | src/conn-avoid-ref.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp index 21ef2deab..4c6139672 100644 --- a/src/conn-avoid-ref.cpp +++ b/src/conn-avoid-ref.cpp @@ -75,13 +75,12 @@ SPAvoidRef::~SPAvoidRef() void SPAvoidRef::setAvoid(char const *value) { - if (SP_OBJECT_IS_CLONED(item)) { - // Don't keep avoidance information for cloned objects. - return; - } - new_setting = false; - if (value && (strcmp(value, "true") == 0)) { - new_setting = true; + // Don't keep avoidance information for cloned objects. + if ( !item->cloned ) { + new_setting = false; + if (value && (strcmp(value, "true") == 0)) { + new_setting = true; + } } } @@ -194,7 +193,7 @@ void SPAvoidRef::setConnectionPoints(gchar const *value) void SPAvoidRef::setConnectionPointsAttrUndoable(const gchar* value, const gchar* action) { - SPDocument* doc = SP_OBJECT_DOCUMENT(item); + SPDocument* doc = item->document; item->setAttribute( "inkscape:connection-points", value, 0 ); item->updateRepr(); @@ -390,7 +389,7 @@ Geom::Point SPAvoidRef::getConnectionPointPos(const int type, const int id) { g_assert(item); Geom::Point pos; - const Geom::Matrix& transform = item->i2doc_affine(); + const Geom::Affine& transform = item->i2doc_affine(); if ( type == ConnPointDefault ) { @@ -475,7 +474,7 @@ static std::vector<Geom::Point> approxCurveWithPoints(SPCurve *curve) return poly_points; } -static std::vector<Geom::Point> approxItemWithPoints(SPItem const *item, const Geom::Matrix& item_transform) +static std::vector<Geom::Point> approxItemWithPoints(SPItem const *item, const Geom::Affine& item_transform) { // The structure to hold the output std::vector<Geom::Point> poly_points; @@ -512,7 +511,7 @@ static Avoid::Polygon avoid_item_poly(SPItem const *item) g_assert(desktop != NULL); double spacing = desktop->namedview->connector_spacing; - Geom::Matrix itd_mat = item->i2doc_affine(); + Geom::Affine itd_mat = item->i2doc_affine(); std::vector<Geom::Point> hull_points; hull_points = approxItemWithPoints(item, itd_mat); @@ -525,15 +524,15 @@ static Avoid::Polygon avoid_item_poly(SPItem const *item) Geom::Line hull_edge(hull[-1], hull[0]); Geom::Line prev_parallel_hull_edge; - prev_parallel_hull_edge.origin(hull_edge.origin()+hull_edge.versor().ccw()*spacing); - prev_parallel_hull_edge.versor(hull_edge.versor()); + prev_parallel_hull_edge.setOrigin(hull_edge.origin()+hull_edge.versor().ccw()*spacing); + prev_parallel_hull_edge.setVersor(hull_edge.versor()); int hull_size = hull.boundary.size(); for (int i = 0; i < hull_size; ++i) { - hull_edge.setBy2Points(hull[i], hull[i+1]); + hull_edge.setPoints(hull[i], hull[i+1]); Geom::Line parallel_hull_edge; - parallel_hull_edge.origin(hull_edge.origin()+hull_edge.versor().ccw()*spacing); - parallel_hull_edge.versor(hull_edge.versor()); + parallel_hull_edge.setOrigin(hull_edge.origin()+hull_edge.versor().ccw()*spacing); + parallel_hull_edge.setVersor(hull_edge.versor()); // determine the intersection point @@ -578,7 +577,7 @@ GSList *get_avoided_items(GSList *list, SPObject *from, SPDesktop *desktop, } -void avoid_item_move(Geom::Matrix const */*mp*/, SPItem *moved_item) +void avoid_item_move(Geom::Affine const */*mp*/, SPItem *moved_item) { Avoid::ShapeRef *shapeRef = moved_item->avoidRef->shapeRef; g_assert(shapeRef); |
