From 119da008bf14ff423a4f808d2c7ed8a9b7a89262 Mon Sep 17 00:00:00 2001 From: johanengelen Date: Tue, 8 Jul 2008 18:05:08 +0000 Subject: [PATCH] 2geomify the static defined hatchcircles of dropper tool, dyna draw and tweak tool. --- src/dropper-context.cpp | 10 +++++++++- src/dyna-draw-context.cpp | 24 +++++++++--------------- src/tweak-context.cpp | 23 +++++++++-------------- 3 files changed, 27 insertions(+), 30 deletions(-) diff --git a/src/dropper-context.cpp b/src/dropper-context.cpp index 81814fc01..0be132340 100644 --- a/src/dropper-context.cpp +++ b/src/dropper-context.cpp @@ -111,7 +111,15 @@ static void sp_dropper_context_setup(SPEventContext *ec) ((SPEventContextClass *) parent_class)->setup(ec); } - SPCurve *c = SPCurve::new_from_foreign_bpath(spdc_circle); + /* TODO: have a look at sp_dyna_draw_context_setup where the same is done.. generalize? at least make it an arcto! */ + SPCurve *c = new SPCurve(); + const double C1 = 0.552; + c->moveto(-1,0); + c->curveto(-1, C1, -C1, 1, 0, 1 ); + c->curveto(C1, 1, 1, C1, 1, 0 ); + c->curveto(1, -C1, C1, -1, 0, -1 ); + c->curveto(-C1, -1, -1, -C1, -1, 0 ); + c->closepath(); dc->area = sp_canvas_bpath_new(sp_desktop_controls(ec->desktop), c); c->unref(); sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(dc->area), 0x00000000,(SPWindRule)0); diff --git a/src/dyna-draw-context.cpp b/src/dyna-draw-context.cpp index 8db9cb2e1..4e7c855ca 100644 --- a/src/dyna-draw-context.cpp +++ b/src/dyna-draw-context.cpp @@ -81,20 +81,6 @@ #define DYNA_MIN_WIDTH 1.0e-6 - -// FIXME: move it to some shared file to be reused by both calligraphy and dropper -#define C1 0.552 -static NArtBpath const hatch_area_circle[] = { - { NR_MOVETO, 0, 0, 0, 0, -1, 0 }, - { NR_CURVETO, -1, C1, -C1, 1, 0, 1 }, - { NR_CURVETO, C1, 1, 1, C1, 1, 0 }, - { NR_CURVETO, 1, -C1, C1, -1, 0, -1 }, - { NR_CURVETO, -C1, -1, -1, -C1, -1, 0 }, - { NR_END, 0, 0, 0, 0, 0, 0 } -}; -#undef C1 - - static void sp_dyna_draw_context_class_init(SPDynaDrawContextClass *klass); static void sp_dyna_draw_context_init(SPDynaDrawContext *ddc); static void sp_dyna_draw_context_dispose(GObject *object); @@ -221,7 +207,15 @@ sp_dyna_draw_context_setup(SPEventContext *ec) g_signal_connect(G_OBJECT(ddc->currentshape), "event", G_CALLBACK(sp_desktop_root_handler), ec->desktop); { - SPCurve *c = SPCurve::new_from_foreign_bpath(hatch_area_circle); + /* TODO: this can be done either with an arcto, and should maybe also be put in a general file (other tools use this as well) */ + SPCurve *c = new SPCurve(); + const double C1 = 0.552; + c->moveto(-1,0); + c->curveto(-1, C1, -C1, 1, 0, 1 ); + c->curveto(C1, 1, 1, C1, 1, 0 ); + c->curveto(1, -C1, C1, -1, 0, -1 ); + c->curveto(-C1, -1, -1, -C1, -1, 0 ); + c->closepath(); ddc->hatch_area = sp_canvas_bpath_new(sp_desktop_controls(ec->desktop), c); c->unref(); sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(ddc->hatch_area), 0x00000000,(SPWindRule)0); diff --git a/src/tweak-context.cpp b/src/tweak-context.cpp index 923a219bc..5e572c39e 100644 --- a/src/tweak-context.cpp +++ b/src/tweak-context.cpp @@ -80,19 +80,6 @@ #define DYNA_MIN_WIDTH 1.0e-6 -// FIXME: move it to some shared file to be reused by both calligraphy and dropper -#define C1 0.552 -static NArtBpath const hatch_area_circle[] = { - { NR_MOVETO, 0, 0, 0, 0, -1, 0 }, - { NR_CURVETO, -1, C1, -C1, 1, 0, 1 }, - { NR_CURVETO, C1, 1, 1, C1, 1, 0 }, - { NR_CURVETO, 1, -C1, C1, -1, 0, -1 }, - { NR_CURVETO, -C1, -1, -1, -C1, -1, 0 }, - { NR_END, 0, 0, 0, 0, 0, 0 } -}; -#undef C1 - - static void sp_tweak_context_class_init(SPTweakContextClass *klass); static void sp_tweak_context_init(SPTweakContext *ddc); static void sp_tweak_context_dispose(GObject *object); @@ -240,7 +227,15 @@ sp_tweak_context_setup(SPEventContext *ec) ((SPEventContextClass *) parent_class)->setup(ec); { - SPCurve *c = SPCurve::new_from_foreign_bpath(hatch_area_circle); + /* TODO: have a look at sp_dyna_draw_context_setup where the same is done.. generalize? at least make it an arcto! */ + SPCurve *c = new SPCurve(); + const double C1 = 0.552; + c->moveto(-1,0); + c->curveto(-1, C1, -C1, 1, 0, 1 ); + c->curveto(C1, 1, 1, C1, 1, 0 ); + c->curveto(1, -C1, C1, -1, 0, -1 ); + c->curveto(-C1, -1, -1, -C1, -1, 0 ); + c->closepath(); tc->dilate_area = sp_canvas_bpath_new(sp_desktop_controls(ec->desktop), c); c->unref(); sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(tc->dilate_area), 0x00000000,(SPWindRule)0); -- 2.30.2