From 53933f5fea9d07d1ba6304b88439fba257ee8c34 Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Wed, 2 Feb 2011 22:24:36 +0100 Subject: update to latest 2geom ! (bzr r10025) --- src/sp-use.cpp | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'src/sp-use.cpp') diff --git a/src/sp-use.cpp b/src/sp-use.cpp index 505c64fd2..dd5a6c5f9 100644 --- a/src/sp-use.cpp +++ b/src/sp-use.cpp @@ -51,7 +51,7 @@ static Inkscape::XML::Node *sp_use_write(SPObject *object, Inkscape::XML::Docume static void sp_use_update(SPObject *object, SPCtx *ctx, guint flags); static void sp_use_modified(SPObject *object, guint flags); -static void sp_use_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &transform, unsigned const flags); +static void sp_use_bbox(SPItem const *item, NRRect *bbox, Geom::Affine const &transform, unsigned const flags); static void sp_use_snappoints(SPItem const *item, std::vector &p, Inkscape::SnapPreferences const *snapprefs); static void sp_use_print(SPItem *item, SPPrintContext *ctx); static gchar *sp_use_description(SPItem *item); @@ -64,7 +64,7 @@ static void sp_use_delete_self(SPObject *deleted, SPUse *self); static SPItemClass *parent_class; -//void m_print(gchar *say, Geom::Matrix m) +//void m_print(gchar *say, Geom::Affine m) //{ g_print("%s %g %g %g %g %g %g\n", say, m[0], m[1], m[2], m[3], m[4], m[5]); } GType @@ -278,13 +278,13 @@ sp_use_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML:: } static void -sp_use_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &transform, unsigned const flags) +sp_use_bbox(SPItem const *item, NRRect *bbox, Geom::Affine const &transform, unsigned const flags) { SPUse const *use = SP_USE(item); if (use->child && SP_IS_ITEM(use->child)) { SPItem *child = SP_ITEM(use->child); - Geom::Matrix const ct( child->transform + Geom::Affine const ct( child->transform * Geom::Translate(use->x.computed, use->y.computed) * transform ); @@ -306,7 +306,7 @@ sp_use_print(SPItem *item, SPPrintContext *ctx) SPUse *use = SP_USE(item); if ((use->x._set && use->x.computed != 0) || (use->y._set && use->y.computed != 0)) { - Geom::Matrix tp(Geom::Translate(use->x.computed, use->y.computed)); + Geom::Affine tp(Geom::Translate(use->x.computed, use->y.computed)); sp_print_bind(ctx, tp, 1.0); translated = true; } @@ -363,7 +363,7 @@ sp_use_show(SPItem *item, NRArena *arena, unsigned key, unsigned flags) } Geom::Translate t(use->x.computed, use->y.computed); - nr_arena_group_set_child_transform(NR_ARENA_GROUP(ai), Geom::Matrix(t)); + nr_arena_group_set_child_transform(NR_ARENA_GROUP(ai), Geom::Affine(t)); } return ai; @@ -407,7 +407,7 @@ sp_use_root(SPUse *use) * Returns the effective transform that goes from the ultimate original to given SPUse, both ends * included. */ -Geom::Matrix +Geom::Affine sp_use_get_root_transform(SPUse *use) { //track the ultimate source of a chain of uses @@ -422,7 +422,7 @@ sp_use_get_root_transform(SPUse *use) //calculate the accummulated transform, starting from the original - Geom::Matrix t(Geom::identity()); + Geom::Affine t(Geom::identity()); for (GSList *i = chain; i != NULL; i = i->next) { SPItem *i_tem = SP_ITEM(i->data); @@ -447,10 +447,10 @@ sp_use_get_root_transform(SPUse *use) * Returns the transform that leads to the use from its immediate original. * Does not inlcude the original's transform if any. */ -Geom::Matrix +Geom::Affine sp_use_get_parent_transform(SPUse *use) { - Geom::Matrix t(Geom::identity()); + Geom::Affine t(Geom::identity()); if ((use->x._set && use->x.computed != 0) || (use->y._set && use->y.computed != 0)) { t *= Geom::Translate(use->x._set ? use->x.computed : 0, use->y._set ? use->y.computed : 0); @@ -466,7 +466,7 @@ sp_use_get_parent_transform(SPUse *use) * clone's transform. */ static void -sp_use_move_compensate(Geom::Matrix const *mp, SPItem */*original*/, SPUse *self) +sp_use_move_compensate(Geom::Affine const *mp, SPItem */*original*/, SPUse *self) { // the clone is orphaned; or this is not a real use, but a clone of another use; // we skip it, otherwise duplicate compensation will occur @@ -485,7 +485,7 @@ sp_use_move_compensate(Geom::Matrix const *mp, SPItem */*original*/, SPUse *self if (mode == SP_CLONE_COMPENSATION_NONE) return; - Geom::Matrix m(*mp); + Geom::Affine m(*mp); // this is not a simple move, do not try to compensate if (!(m.isTranslation())) @@ -494,11 +494,11 @@ sp_use_move_compensate(Geom::Matrix const *mp, SPItem */*original*/, SPUse *self // restore item->transform field from the repr, in case it was changed by seltrans SP_OBJECT (self)->readAttr ("transform"); - Geom::Matrix t = sp_use_get_parent_transform(self); - Geom::Matrix clone_move = t.inverse() * m * t; + Geom::Affine t = sp_use_get_parent_transform(self); + Geom::Affine clone_move = t.inverse() * m * t; // calculate the compensation matrix and the advertized movement matrix - Geom::Matrix advertized_move; + Geom::Affine advertized_move; if (mode == SP_CLONE_COMPENSATION_PARALLEL) { clone_move = clone_move.inverse() * m; advertized_move = m; @@ -633,7 +633,7 @@ sp_use_update(SPObject *object, SPCtx *ctx, unsigned flags) /* As last step set additional transform of arena group */ for (SPItemView *v = item->display; v != NULL; v = v->next) { - Geom::Matrix t(Geom::Translate(use->x.computed, use->y.computed)); + Geom::Affine t(Geom::Translate(use->x.computed, use->y.computed)); nr_arena_group_set_child_transform(NR_ARENA_GROUP(v->arenaitem), t); } } @@ -686,7 +686,7 @@ SPItem *sp_use_unlink(SPUse *use) } // Calculate the accumulated transform, starting from the original. - Geom::Matrix t = sp_use_get_root_transform(use); + Geom::Affine t = sp_use_get_root_transform(use); Inkscape::XML::Node *copy = NULL; if (SP_IS_SYMBOL(orig)) { // make a group, copy children @@ -739,7 +739,7 @@ SPItem *sp_use_unlink(SPUse *use) SPItem *item = SP_ITEM(unlinked); // Set the accummulated transform. { - Geom::Matrix nomove(Geom::identity()); + Geom::Affine nomove(Geom::identity()); // Advertise ourselves as not moving. item->doWriteTransform(SP_OBJECT_REPR(item), t, &nomove); } -- cgit v1.2.3 From aa8c0d876949c952ab355c096017301a00734456 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Mon, 21 Feb 2011 13:43:30 -0800 Subject: Finished cleanup of outdated SP_OBJECT_PARENT C macro. (bzr r10064) --- src/sp-use.cpp | 72 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 35 deletions(-) (limited to 'src/sp-use.cpp') diff --git a/src/sp-use.cpp b/src/sp-use.cpp index dd5a6c5f9..a92dbcaa9 100644 --- a/src/sp-use.cpp +++ b/src/sp-use.cpp @@ -129,7 +129,7 @@ sp_use_init(SPUse *use) new (&use->_transformed_connection) sigc::connection(); - use->ref = new SPUseReference(SP_OBJECT(use)); + use->ref = new SPUseReference(use); use->_changed_connection = use->ref->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_use_href_changed), use)); } @@ -137,15 +137,16 @@ sp_use_init(SPUse *use) static void sp_use_finalize(GObject *obj) { - SPUse *use = (SPUse *) obj; + SPUse *use = reinterpret_cast(obj); if (use->child) { - SP_OBJECT(obj)->detach(use->child); + use->detach(use->child); use->child = NULL; } use->ref->detach(); delete use->ref; + use->ref = 0; use->_delete_connection.~connection(); use->_changed_connection.~connection(); @@ -354,7 +355,7 @@ sp_use_show(SPItem *item, NRArena *arena, unsigned key, unsigned flags) NRArenaItem *ai = NRArenaGroup::create(arena); nr_arena_group_set_transparent(NR_ARENA_GROUP(ai), FALSE); - nr_arena_group_set_style(NR_ARENA_GROUP(ai), SP_OBJECT_STYLE(item)); + nr_arena_group_set_style(NR_ARENA_GROUP(ai), item->style); if (use->child) { NRArenaItem *ac = SP_ITEM(use->child)->invoke_show(arena, key, flags); @@ -470,12 +471,12 @@ sp_use_move_compensate(Geom::Affine const *mp, SPItem */*original*/, SPUse *self { // the clone is orphaned; or this is not a real use, but a clone of another use; // we skip it, otherwise duplicate compensation will occur - if (SP_OBJECT_IS_CLONED(self)) { + if (self->cloned) { return; } // never compensate uses which are used in flowtext - if (SP_OBJECT_PARENT(self) && SP_IS_FLOWREGION(SP_OBJECT_PARENT(self))) { + if (self->parent && SP_IS_FLOWREGION(self->parent)) { return; } @@ -492,7 +493,7 @@ sp_use_move_compensate(Geom::Affine const *mp, SPItem */*original*/, SPUse *self return; // restore item->transform field from the repr, in case it was changed by seltrans - SP_OBJECT (self)->readAttr ("transform"); + self->readAttr ("transform"); Geom::Affine t = sp_use_get_parent_transform(self); Geom::Affine clone_move = t.inverse() * m * t; @@ -510,10 +511,9 @@ sp_use_move_compensate(Geom::Affine const *mp, SPItem */*original*/, SPUse *self } // commit the compensation - SPItem *item = SP_ITEM(self); - item->transform *= clone_move; - item->doWriteTransform(SP_OBJECT_REPR(item), item->transform, &advertized_move); - SP_OBJECT(item)->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); + self->transform *= clone_move; + self->doWriteTransform(self->getRepr(), self->transform, &advertized_move); + self->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); } static void @@ -525,21 +525,21 @@ sp_use_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, SPUse *use) use->_transformed_connection.disconnect(); if (use->child) { - SP_OBJECT(use)->detach(use->child); + use->detach(use->child); use->child = NULL; } if (use->href) { SPItem *refobj = use->ref->getObject(); if (refobj) { - Inkscape::XML::Node *childrepr = SP_OBJECT_REPR(refobj); + Inkscape::XML::Node *childrepr = refobj->getRepr(); GType type = sp_repr_type_lookup(childrepr); g_return_if_fail(type > G_TYPE_NONE); if (g_type_is_a(type, SP_TYPE_ITEM)) { use->child = (SPObject*) g_object_new(type, 0); - SP_OBJECT(use)->attach(use->child, use->lastChild()); - sp_object_unref(use->child, SP_OBJECT(use)); - (use->child)->invoke_build(SP_OBJECT(use)->document, childrepr, TRUE); + use->attach(use->child, use->lastChild()); + sp_object_unref(use->child, use); + (use->child)->invoke_build(use->document, childrepr, TRUE); for (SPItemView *v = item->display; v != NULL; v = v->next) { NRArenaItem *ai; @@ -550,7 +550,7 @@ sp_use_href_changed(SPObject */*old_ref*/, SPObject */*ref*/, SPUse *use) } } - use->_delete_connection = SP_OBJECT(refobj)->connectDelete(sigc::bind(sigc::ptr_fun(&sp_use_delete_self), use)); + use->_delete_connection = refobj->connectDelete(sigc::bind(sigc::ptr_fun(&sp_use_delete_self), use)); use->_transformed_connection = SP_ITEM(refobj)->connectTransformed(sigc::bind(sigc::ptr_fun(&sp_use_move_compensate), use)); } } @@ -560,8 +560,8 @@ static void sp_use_delete_self(SPObject */*deleted*/, SPUse *self) { // always delete uses which are used in flowtext - if (SP_OBJECT_PARENT(self) && SP_IS_FLOWREGION(SP_OBJECT_PARENT(self))) { - SP_OBJECT(self)->deleteObject(); + if (self->parent && SP_IS_FLOWREGION(self->parent)) { + self->deleteObject(); return; } @@ -572,7 +572,7 @@ sp_use_delete_self(SPObject */*deleted*/, SPUse *self) if (mode == SP_CLONE_ORPHANS_UNLINK) { sp_use_unlink(self); } else if (mode == SP_CLONE_ORPHANS_DELETE) { - SP_OBJECT(self)->deleteObject(); + self->deleteObject(); } } @@ -587,12 +587,14 @@ sp_use_update(SPObject *object, SPCtx *ctx, unsigned flags) if (((SPObjectClass *) (parent_class))->update) ((SPObjectClass *) (parent_class))->update(object, ctx, flags); - if (flags & SP_OBJECT_MODIFIED_FLAG) flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; + if (flags & SP_OBJECT_MODIFIED_FLAG) { + flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; + } flags &= SP_OBJECT_MODIFIED_CASCADE; if (flags & SP_OBJECT_STYLE_MODIFIED_FLAG) { for (SPItemView *v = SP_ITEM(object)->display; v != NULL; v = v->next) { - nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object)); + nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), object->style); } } @@ -650,7 +652,7 @@ sp_use_modified(SPObject *object, guint flags) if (flags & SP_OBJECT_STYLE_MODIFIED_FLAG) { for (SPItemView *v = SP_ITEM(object)->display; v != NULL; v = v->next) { - nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), SP_OBJECT_STYLE(object)); + nr_arena_group_set_style(NR_ARENA_GROUP(v->arenaitem), object->style); } } @@ -670,13 +672,13 @@ SPItem *sp_use_unlink(SPUse *use) return NULL; } - Inkscape::XML::Node *repr = SP_OBJECT_REPR(use); + Inkscape::XML::Node *repr = use->getRepr(); if (!repr) { return NULL; } Inkscape::XML::Node *parent = sp_repr_parent(repr); - SPDocument *document = SP_OBJECT(use)->document; + SPDocument *document = use->document; Inkscape::XML::Document *xml_doc = document->getReprDoc(); // Track the ultimate source of a chain of uses. @@ -691,12 +693,12 @@ SPItem *sp_use_unlink(SPUse *use) Inkscape::XML::Node *copy = NULL; if (SP_IS_SYMBOL(orig)) { // make a group, copy children copy = xml_doc->createElement("svg:g"); - for (Inkscape::XML::Node *child = SP_OBJECT_REPR(orig)->firstChild() ; child != NULL; child = child->next()) { + for (Inkscape::XML::Node *child = orig->getRepr()->firstChild() ; child != NULL; child = child->next()) { Inkscape::XML::Node *newchild = child->duplicate(xml_doc); copy->appendChild(newchild); } } else { // just copy - copy = SP_OBJECT_REPR(orig)->duplicate(xml_doc); + copy = orig->getRepr()->duplicate(xml_doc); } // Add the duplicate repr just after the existing one. @@ -706,20 +708,20 @@ SPItem *sp_use_unlink(SPUse *use) SPObject *unlinked = document->getObjectByRepr(copy); // Merge style from the use. - SPStyle *unli_sty = SP_OBJECT_STYLE(unlinked); - SPStyle const *use_sty = SP_OBJECT_STYLE(use); + SPStyle *unli_sty = unlinked->style; + SPStyle const *use_sty = use->style; sp_style_merge_from_dying_parent(unli_sty, use_sty); sp_style_merge_from_parent(unli_sty, unlinked->parent->style); - SP_OBJECT(unlinked)->updateRepr(); + unlinked->updateRepr(); // Hold onto our SPObject and repr for now. - sp_object_ref(SP_OBJECT(use), NULL); + sp_object_ref(use, NULL); Inkscape::GC::anchor(repr); // Remove ourselves, not propagating delete events to avoid a // chain-reaction with other elements that might reference us. - SP_OBJECT(use)->deleteObject(false); + use->deleteObject(false); // Give the copy our old id and let go of our old repr. copy->setAttribute("id", repr->attribute("id")); @@ -733,15 +735,15 @@ SPItem *sp_use_unlink(SPUse *use) copy->setAttribute("inkscape:tile-cy", NULL); // Establish the succession and let go of our object. - SP_OBJECT(use)->setSuccessor(unlinked); - sp_object_unref(SP_OBJECT(use), NULL); + use->setSuccessor(unlinked); + sp_object_unref(use, NULL); SPItem *item = SP_ITEM(unlinked); // Set the accummulated transform. { Geom::Affine nomove(Geom::identity()); // Advertise ourselves as not moving. - item->doWriteTransform(SP_OBJECT_REPR(item), t, &nomove); + item->doWriteTransform(item->getRepr(), t, &nomove); } return item; } -- cgit v1.2.3