From a0a8d020201e0e38a63d9aa3dce228d7d9e6fb35 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Thu, 14 Mar 2013 12:42:39 +0100 Subject: Various changes. (bzr r11608.1.48) --- src/persp3d.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index a20537d95..1e348bf35 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -94,7 +94,7 @@ static void persp3d_class_init(Persp3DClass *klass) persp3d_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); - sp_object_class->build = persp3d_build; + //sp_object_class->build = persp3d_build; sp_object_class->release = persp3d_release; sp_object_class->set = persp3d_set; sp_object_class->update = persp3d_update; @@ -115,8 +115,9 @@ persp3d_init(Persp3D *persp) */ static void persp3d_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) { - if (((SPObjectClass *) persp3d_parent_class)->build) - (* ((SPObjectClass *) persp3d_parent_class)->build)(object, document, repr); +// if (((SPObjectClass *) persp3d_parent_class)->build) +// (* ((SPObjectClass *) persp3d_parent_class)->build)(object, document, repr); + // CPPIFY: todo /* calls sp_object_set for the respective attributes */ // The transformation matrix is updated according to the values we read for the VPs -- cgit v1.2.3 From 732214b111f2e830a8a0b654a88b087766be9067 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 30 Mar 2013 00:46:09 +0100 Subject: Added "virtual pads" for - ColorProfile - LivePathEffectObject - Persp3D (bzr r11608.1.51) --- src/persp3d.cpp | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 145 insertions(+), 10 deletions(-) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 1e348bf35..549dc2445 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -101,26 +101,50 @@ static void persp3d_class_init(Persp3DClass *klass) sp_object_class->write = persp3d_write; } +CPersp3D::CPersp3D(Persp3D* persp3d) : CObject(persp3d) { + this->persp3d = persp3d; +} + +CPersp3D::~CPersp3D() { +} + /** * Callback to initialize Persp3D object. */ static void persp3d_init(Persp3D *persp) { + persp->cpersp3d = new CPersp3D(persp); + persp->cobject = persp->cpersp3d; + persp->perspective_impl = new Persp3DImpl(); } /** * Virtual build: set persp3d attributes from its associated XML node. */ -static void persp3d_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) -{ +//static void persp3d_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) +//{ // if (((SPObjectClass *) persp3d_parent_class)->build) // (* ((SPObjectClass *) persp3d_parent_class)->build)(object, document, repr); - // CPPIFY: todo - /* calls sp_object_set for the respective attributes */ + /* calls sp_object_set for the respective attributes */ // The transformation matrix is updated according to the values we read for the VPs +// object->readAttr( "inkscape:vp_x" ); +// object->readAttr( "inkscape:vp_y" ); +// object->readAttr( "inkscape:vp_z" ); +// object->readAttr( "inkscape:persp3d-origin" ); +// +// if (repr) { +// repr->addListener (&persp3d_repr_events, object); +// } +//} + +void CPersp3D::onBuild(SPDocument *document, Inkscape::XML::Node *repr) { + CObject::onBuild(document, repr); + + Persp3D* object = this->persp3d; + object->readAttr( "inkscape:vp_x" ); object->readAttr( "inkscape:vp_y" ); object->readAttr( "inkscape:vp_z" ); @@ -135,6 +159,15 @@ static void persp3d_build(SPObject *object, SPDocument *document, Inkscape::XML: * Virtual release of Persp3D members before destruction. */ static void persp3d_release(SPObject *object) { +// Persp3D *persp = SP_PERSP3D(object); +// delete persp->perspective_impl; +// object->getRepr()->removeListenerByData(object); + ((Persp3D*)object)->cpersp3d->onRelease(); +} + +void CPersp3D::onRelease() { + Persp3D* object = this->persp3d; + Persp3D *persp = SP_PERSP3D(object); delete persp->perspective_impl; object->getRepr()->removeListenerByData(object); @@ -149,6 +182,59 @@ static void persp3d_release(SPObject *object) { static void persp3d_set(SPObject *object, unsigned key, gchar const *value) { +// Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; +// +// switch (key) { +// case SP_ATTR_INKSCAPE_PERSP3D_VP_X: { +// if (value) { +// Proj::Pt2 new_image (value); +// persp3d_update_with_point (persp_impl, Proj::X, new_image); +// } +// break; +// } +// case SP_ATTR_INKSCAPE_PERSP3D_VP_Y: { +// if (value) { +// Proj::Pt2 new_image (value); +// persp3d_update_with_point (persp_impl, Proj::Y, new_image); +// break; +// } +// } +// case SP_ATTR_INKSCAPE_PERSP3D_VP_Z: { +// if (value) { +// Proj::Pt2 new_image (value); +// persp3d_update_with_point (persp_impl, Proj::Z, new_image); +// break; +// } +// } +// case SP_ATTR_INKSCAPE_PERSP3D_ORIGIN: { +// if (value) { +// Proj::Pt2 new_image (value); +// persp3d_update_with_point (persp_impl, Proj::W, new_image); +// break; +// } +// } +// default: { +// if (((SPObjectClass *) persp3d_parent_class)->set) +// (* ((SPObjectClass *) persp3d_parent_class)->set)(object, key, value); +// break; +// } +// } +// +// // FIXME: Is this the right place for resetting the draggers? +// SPEventContext *ec = inkscape_active_event_context(); +// if (SP_IS_BOX3D_CONTEXT(ec)) { +// Box3DContext *bc = SP_BOX3D_CONTEXT(ec); +// bc->_vpdrag->updateDraggers(); +// bc->_vpdrag->updateLines(); +// bc->_vpdrag->updateBoxHandles(); +// bc->_vpdrag->updateBoxReprs(); +// } + ((Persp3D*)object)->cpersp3d->onSet(key, value); +} + +void CPersp3D::onSet(unsigned key, gchar const *value) { + Persp3D* object = this->persp3d; + Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; switch (key) { @@ -181,8 +267,9 @@ persp3d_set(SPObject *object, unsigned key, gchar const *value) } } default: { - if (((SPObjectClass *) persp3d_parent_class)->set) - (* ((SPObjectClass *) persp3d_parent_class)->set)(object, key, value); +// if (((SPObjectClass *) persp3d_parent_class)->set) +// (* ((SPObjectClass *) persp3d_parent_class)->set)(object, key, value); + CObject::onSet(key, value); break; } } @@ -201,14 +288,27 @@ persp3d_set(SPObject *object, unsigned key, gchar const *value) static void persp3d_update(SPObject *object, SPCtx *ctx, guint flags) { +// if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { +// +// /* TODO: Should we update anything here? */ +// +// } +// +// if (((SPObjectClass *) persp3d_parent_class)->update) +// ((SPObjectClass *) persp3d_parent_class)->update(object, ctx, flags); + ((Persp3D*)object)->cpersp3d->onUpdate(ctx, flags); +} + +void CPersp3D::onUpdate(SPCtx *ctx, guint flags) { if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { /* TODO: Should we update anything here? */ } - if (((SPObjectClass *) persp3d_parent_class)->update) - ((SPObjectClass *) persp3d_parent_class)->update(object, ctx, flags); +// if (((SPObjectClass *) persp3d_parent_class)->update) +// ((SPObjectClass *) persp3d_parent_class)->update(object, ctx, flags); + CObject::onUpdate(ctx, flags); } Persp3D *persp3d_create_xml_element(SPDocument *document, Persp3DImpl *dup) {// if dup is given, copy the attributes over @@ -270,6 +370,39 @@ Persp3D *persp3d_document_first_persp(SPDocument *document) static Inkscape::XML::Node * persp3d_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { +// Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; +// +// if ((flags & SP_OBJECT_WRITE_BUILD & SP_OBJECT_WRITE_EXT) && !repr) { +// // this is where we end up when saving as plain SVG (also in other circumstances?); +// // hence we don't set the sodipodi:type attribute +// repr = xml_doc->createElement("inkscape:perspective"); +// } +// +// if (flags & SP_OBJECT_WRITE_EXT) { +// gchar *str = NULL; // FIXME: Should this be freed each time we set an attribute or only in the end or at all? +// str = persp3d_pt_to_str (persp_impl, Proj::X); +// repr->setAttribute("inkscape:vp_x", str); +// +// str = persp3d_pt_to_str (persp_impl, Proj::Y); +// repr->setAttribute("inkscape:vp_y", str); +// +// str = persp3d_pt_to_str (persp_impl, Proj::Z); +// repr->setAttribute("inkscape:vp_z", str); +// +// str = persp3d_pt_to_str (persp_impl, Proj::W); +// repr->setAttribute("inkscape:persp3d-origin", str); +// } +// +// if (((SPObjectClass *) persp3d_parent_class)->write) +// (* ((SPObjectClass *) persp3d_parent_class)->write)(object, xml_doc, repr, flags); +// +// return repr; + return ((Persp3D*)object)->cpersp3d->onWrite(xml_doc, repr, flags); +} + +Inkscape::XML::Node* CPersp3D::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { + Persp3D* object = this->persp3d; + Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; if ((flags & SP_OBJECT_WRITE_BUILD & SP_OBJECT_WRITE_EXT) && !repr) { @@ -293,8 +426,10 @@ persp3d_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML: repr->setAttribute("inkscape:persp3d-origin", str); } - if (((SPObjectClass *) persp3d_parent_class)->write) - (* ((SPObjectClass *) persp3d_parent_class)->write)(object, xml_doc, repr, flags); +// if (((SPObjectClass *) persp3d_parent_class)->write) +// (* ((SPObjectClass *) persp3d_parent_class)->write)(object, xml_doc, repr, flags); + + CObject::onWrite(xml_doc, repr, flags); return repr; } -- cgit v1.2.3 From 957c3e4b7909d42c5a13f1b1dd583f877fc32259 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 30 Mar 2013 00:46:57 +0100 Subject: Removed function pointers from SPObject and subclasses. Added some missing virtual pads for classes that were hidden by preprocessor macros. (bzr r11608.1.55) --- src/persp3d.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 549dc2445..9c7f7b46c 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -95,10 +95,10 @@ static void persp3d_class_init(Persp3DClass *klass) persp3d_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = persp3d_build; - sp_object_class->release = persp3d_release; - sp_object_class->set = persp3d_set; - sp_object_class->update = persp3d_update; - sp_object_class->write = persp3d_write; +// sp_object_class->release = persp3d_release; +// sp_object_class->set = persp3d_set; +// sp_object_class->update = persp3d_update; +// sp_object_class->write = persp3d_write; } CPersp3D::CPersp3D(Persp3D* persp3d) : CObject(persp3d) { -- cgit v1.2.3 From 7df6616da5ea2debb86838366ddf746841549cdb Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 30 Mar 2013 00:56:13 +0100 Subject: Renamed virtual function names. (bzr r11608.1.57) --- src/persp3d.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 0fc18a717..b6012f038 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -86,8 +86,8 @@ persp3d_init(Persp3D *persp) /** * Virtual build: set persp3d attributes from its associated XML node. */ -void CPersp3D::onBuild(SPDocument *document, Inkscape::XML::Node *repr) { - CObject::onBuild(document, repr); +void CPersp3D::build(SPDocument *document, Inkscape::XML::Node *repr) { + CObject::build(document, repr); Persp3D* object = this->persp3d; @@ -104,7 +104,7 @@ void CPersp3D::onBuild(SPDocument *document, Inkscape::XML::Node *repr) { /** * Virtual release of Persp3D members before destruction. */ -void CPersp3D::onRelease() { +void CPersp3D::release() { Persp3D* object = this->persp3d; Persp3D *persp = SP_PERSP3D(object); @@ -118,7 +118,7 @@ void CPersp3D::onRelease() { */ // FIXME: Currently we only read the finite positions of vanishing points; // should we move VPs into their own repr (as it's done for SPStop, e.g.)? -void CPersp3D::onSet(unsigned key, gchar const *value) { +void CPersp3D::set(unsigned key, gchar const *value) { Persp3D* object = this->persp3d; Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; @@ -153,7 +153,7 @@ void CPersp3D::onSet(unsigned key, gchar const *value) { } } default: { - CObject::onSet(key, value); + CObject::set(key, value); break; } } @@ -169,14 +169,14 @@ void CPersp3D::onSet(unsigned key, gchar const *value) { } } -void CPersp3D::onUpdate(SPCtx *ctx, guint flags) { +void CPersp3D::update(SPCtx *ctx, guint flags) { if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { /* TODO: Should we update anything here? */ } - CObject::onUpdate(ctx, flags); + CObject::update(ctx, flags); } Persp3D *persp3d_create_xml_element(SPDocument *document, Persp3DImpl *dup) {// if dup is given, copy the attributes over @@ -235,7 +235,7 @@ Persp3D *persp3d_document_first_persp(SPDocument *document) /** * Virtual write: write object attributes to repr. */ -Inkscape::XML::Node* CPersp3D::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { +Inkscape::XML::Node* CPersp3D::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { Persp3D* object = this->persp3d; Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; @@ -261,7 +261,7 @@ Inkscape::XML::Node* CPersp3D::onWrite(Inkscape::XML::Document *xml_doc, Inkscap repr->setAttribute("inkscape:persp3d-origin", str); } - CObject::onWrite(xml_doc, repr, flags); + CObject::write(xml_doc, repr, flags); return repr; } -- cgit v1.2.3 From a5d6e692d661f0bf7648e64e8fcb04588bb8f3ab Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Mon, 1 Apr 2013 00:07:00 +0200 Subject: Prepared exchange of casting macros. (bzr r11608.1.63) --- src/persp3d.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index b6012f038..50ecd6522 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -76,6 +76,7 @@ static void persp3d_init(Persp3D *persp) { persp->cpersp3d = new CPersp3D(persp); + persp->typeHierarchy.insert(typeid(Persp3D)); delete persp->cobject; persp->cobject = persp->cpersp3d; -- cgit v1.2.3 From 69f3b6f1abb2bb422935d43262e1e99aab359954 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 2 Apr 2013 01:41:30 +0200 Subject: Added constructors to SP classes. (bzr r11608.1.67) --- src/persp3d.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 50ecd6522..2d67ac1a2 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -43,7 +43,7 @@ Persp3DImpl::Persp3DImpl() { my_counter = global_counter++; } -G_DEFINE_TYPE(Persp3D, persp3d, SP_TYPE_OBJECT); +G_DEFINE_TYPE(Persp3D, persp3d, G_TYPE_OBJECT); static Inkscape::XML::NodeEventVector const persp3d_repr_events = { NULL, /* child_added */ @@ -69,12 +69,9 @@ CPersp3D::CPersp3D(Persp3D* persp3d) : CObject(persp3d) { CPersp3D::~CPersp3D() { } -/** - * Callback to initialize Persp3D object. - */ -static void -persp3d_init(Persp3D *persp) -{ +Persp3D::Persp3D() : SPObject() { + Persp3D* persp = this; + persp->cpersp3d = new CPersp3D(persp); persp->typeHierarchy.insert(typeid(Persp3D)); @@ -84,6 +81,15 @@ persp3d_init(Persp3D *persp) persp->perspective_impl = new Persp3DImpl(); } +/** + * Callback to initialize Persp3D object. + */ +static void +persp3d_init(Persp3D *persp) +{ + new (persp) Persp3D(); +} + /** * Virtual build: set persp3d attributes from its associated XML node. */ -- cgit v1.2.3 From d1af3566872dfff2aeec84859c87f1f8d13f79df Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Tue, 2 Apr 2013 19:14:36 +0200 Subject: Registered classes with new factory. Hkern, Vkern and FeFuncX have to be rewritten, as they aren't real classes. (bzr r11608.1.69) --- src/persp3d.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 2d67ac1a2..97898daf2 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -34,6 +34,16 @@ static gchar * persp3d_pt_to_str (Persp3DImpl *persp_impl, Proj::Axis const axis static int global_counter = 0; +#include "sp-factory.h" + +namespace { + SPObject* createPersp3D() { + return new Persp3D(); + } + + bool persp3DRegistered = SPFactory::instance().registerObject("inkscape:persp3d", createPersp3D); +} + /* Constructor/destructor for the internal class */ Persp3DImpl::Persp3DImpl() { -- cgit v1.2.3 From 7b7e0294b0c06a8d3ec19b73486a91e12cf67adf Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sat, 6 Apr 2013 22:16:05 +0200 Subject: Merged more classes. (bzr r11608.1.84) --- src/persp3d.cpp | 55 ++++++++++++++----------------------------------------- 1 file changed, 14 insertions(+), 41 deletions(-) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 97898daf2..7e5045d67 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -53,8 +53,6 @@ Persp3DImpl::Persp3DImpl() { my_counter = global_counter++; } -G_DEFINE_TYPE(Persp3D, persp3d, G_TYPE_OBJECT); - static Inkscape::XML::NodeEventVector const persp3d_repr_events = { NULL, /* child_added */ NULL, /* child_removed */ @@ -63,50 +61,25 @@ static Inkscape::XML::NodeEventVector const persp3d_repr_events = { NULL /* order_changed */ }; -/** - * Callback to initialize Persp3D vtable. - */ -static void persp3d_class_init(Persp3DClass *klass) -{ - SPObjectClass *sp_object_class = (SPObjectClass *) klass; -} +Persp3D::Persp3D() : SPObject(), CObject(this) { + delete this->cobject; + this->cobject = this; -CPersp3D::CPersp3D(Persp3D* persp3d) : CObject(persp3d) { - this->persp3d = persp3d; + this->perspective_impl = new Persp3DImpl(); } -CPersp3D::~CPersp3D() { +Persp3D::~Persp3D() { } -Persp3D::Persp3D() : SPObject() { - Persp3D* persp = this; - - persp->cpersp3d = new CPersp3D(persp); - persp->typeHierarchy.insert(typeid(Persp3D)); - - delete persp->cobject; - persp->cobject = persp->cpersp3d; - - persp->perspective_impl = new Persp3DImpl(); -} - -/** - * Callback to initialize Persp3D object. - */ -static void -persp3d_init(Persp3D *persp) -{ - new (persp) Persp3D(); -} /** * Virtual build: set persp3d attributes from its associated XML node. */ -void CPersp3D::build(SPDocument *document, Inkscape::XML::Node *repr) { +void Persp3D::build(SPDocument *document, Inkscape::XML::Node *repr) { CObject::build(document, repr); - Persp3D* object = this->persp3d; + Persp3D* object = this; object->readAttr( "inkscape:vp_x" ); object->readAttr( "inkscape:vp_y" ); @@ -121,8 +94,8 @@ void CPersp3D::build(SPDocument *document, Inkscape::XML::Node *repr) { /** * Virtual release of Persp3D members before destruction. */ -void CPersp3D::release() { - Persp3D* object = this->persp3d; +void Persp3D::release() { + Persp3D* object = this; Persp3D *persp = SP_PERSP3D(object); delete persp->perspective_impl; @@ -135,8 +108,8 @@ void CPersp3D::release() { */ // FIXME: Currently we only read the finite positions of vanishing points; // should we move VPs into their own repr (as it's done for SPStop, e.g.)? -void CPersp3D::set(unsigned key, gchar const *value) { - Persp3D* object = this->persp3d; +void Persp3D::set(unsigned key, gchar const *value) { + Persp3D* object = this; Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; @@ -186,7 +159,7 @@ void CPersp3D::set(unsigned key, gchar const *value) { } } -void CPersp3D::update(SPCtx *ctx, guint flags) { +void Persp3D::update(SPCtx *ctx, guint flags) { if (flags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG)) { /* TODO: Should we update anything here? */ @@ -252,8 +225,8 @@ Persp3D *persp3d_document_first_persp(SPDocument *document) /** * Virtual write: write object attributes to repr. */ -Inkscape::XML::Node* CPersp3D::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { - Persp3D* object = this->persp3d; +Inkscape::XML::Node* Persp3D::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { + Persp3D* object = this; Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; -- cgit v1.2.3 From 27e2102f96a5554bcd5310ec11435d155773b279 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Sun, 7 Apr 2013 18:28:22 +0200 Subject: Merge Object and subclasses. Merging of SP- and C-classes complete. (bzr r11608.1.86) --- src/persp3d.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 7e5045d67..5188821e8 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -62,10 +62,7 @@ static Inkscape::XML::NodeEventVector const persp3d_repr_events = { }; -Persp3D::Persp3D() : SPObject(), CObject(this) { - delete this->cobject; - this->cobject = this; - +Persp3D::Persp3D() : SPObject() { this->perspective_impl = new Persp3DImpl(); } @@ -77,7 +74,7 @@ Persp3D::~Persp3D() { * Virtual build: set persp3d attributes from its associated XML node. */ void Persp3D::build(SPDocument *document, Inkscape::XML::Node *repr) { - CObject::build(document, repr); + SPObject::build(document, repr); Persp3D* object = this; @@ -143,7 +140,7 @@ void Persp3D::set(unsigned key, gchar const *value) { } } default: { - CObject::set(key, value); + SPObject::set(key, value); break; } } @@ -166,7 +163,7 @@ void Persp3D::update(SPCtx *ctx, guint flags) { } - CObject::update(ctx, flags); + SPObject::update(ctx, flags); } Persp3D *persp3d_create_xml_element(SPDocument *document, Persp3DImpl *dup) {// if dup is given, copy the attributes over @@ -251,7 +248,7 @@ Inkscape::XML::Node* Persp3D::write(Inkscape::XML::Document *xml_doc, Inkscape:: repr->setAttribute("inkscape:persp3d-origin", str); } - CObject::write(xml_doc, repr, flags); + SPObject::write(xml_doc, repr, flags); return repr; } -- cgit v1.2.3 From beecbea1b415d5b9536f2309c4f30fc258e346f5 Mon Sep 17 00:00:00 2001 From: Markus Engel Date: Wed, 31 Jul 2013 22:51:23 +0200 Subject: Cleaned up a bit; fixed struct vs. class forward declarations. (bzr r11608.1.111) --- src/persp3d.cpp | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) (limited to 'src/persp3d.cpp') diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 5188821e8..a0e6f1c02 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -76,15 +76,13 @@ Persp3D::~Persp3D() { void Persp3D::build(SPDocument *document, Inkscape::XML::Node *repr) { SPObject::build(document, repr); - Persp3D* object = this; - - object->readAttr( "inkscape:vp_x" ); - object->readAttr( "inkscape:vp_y" ); - object->readAttr( "inkscape:vp_z" ); - object->readAttr( "inkscape:persp3d-origin" ); + this->readAttr( "inkscape:vp_x" ); + this->readAttr( "inkscape:vp_y" ); + this->readAttr( "inkscape:vp_z" ); + this->readAttr( "inkscape:persp3d-origin" ); if (repr) { - repr->addListener (&persp3d_repr_events, object); + repr->addListener (&persp3d_repr_events, this); } } @@ -92,11 +90,8 @@ void Persp3D::build(SPDocument *document, Inkscape::XML::Node *repr) { * Virtual release of Persp3D members before destruction. */ void Persp3D::release() { - Persp3D* object = this; - - Persp3D *persp = SP_PERSP3D(object); - delete persp->perspective_impl; - object->getRepr()->removeListenerByData(object); + delete this->perspective_impl; + this->getRepr()->removeListenerByData(this); } @@ -106,9 +101,7 @@ void Persp3D::release() { // FIXME: Currently we only read the finite positions of vanishing points; // should we move VPs into their own repr (as it's done for SPStop, e.g.)? void Persp3D::set(unsigned key, gchar const *value) { - Persp3D* object = this; - - Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; + Persp3DImpl *persp_impl = this->perspective_impl; switch (key) { case SP_ATTR_INKSCAPE_PERSP3D_VP_X: { @@ -223,9 +216,7 @@ Persp3D *persp3d_document_first_persp(SPDocument *document) * Virtual write: write object attributes to repr. */ Inkscape::XML::Node* Persp3D::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { - Persp3D* object = this; - - Persp3DImpl *persp_impl = SP_PERSP3D(object)->perspective_impl; + Persp3DImpl *persp_impl = this->perspective_impl; if ((flags & SP_OBJECT_WRITE_BUILD & SP_OBJECT_WRITE_EXT) && !repr) { // this is where we end up when saving as plain SVG (also in other circumstances?); -- cgit v1.2.3