X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fdyna-draw-context.h;h=ddab2b53cf4128c062d0123889e1ecbe60a42bba;hb=06ebe04471448f69d3eaa24f6acdf958ff42b761;hp=fef6f1ea3b6deb7c8c49edabc9be3a564bb56150;hpb=0bf4778dd44a21efdb492da855b0af2352ad7304;p=inkscape.git diff --git a/src/dyna-draw-context.h b/src/dyna-draw-context.h index fef6f1ea3..ddab2b53c 100644 --- a/src/dyna-draw-context.h +++ b/src/dyna-draw-context.h @@ -1,5 +1,5 @@ -#ifndef __SP_DYNA_DRAW_CONTEXT_H__ -#define __SP_DYNA_DRAW_CONTEXT_H__ +#ifndef SP_DYNA_DRAW_CONTEXT_H_SEEN +#define SP_DYNA_DRAW_CONTEXT_H_SEEN /* * Handwriting-like drawing mode @@ -18,10 +18,8 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include "display/curve.h" -#include "event-context.h" -#include -#include +#include "common-context.h" +#include "splivarot.h" #define SP_TYPE_DYNA_DRAW_CONTEXT (sp_dyna_draw_context_get_type()) #define SP_DYNA_DRAW_CONTEXT(o) (GTK_CHECK_CAST((o), SP_TYPE_DYNA_DRAW_CONTEXT, SPDynaDrawContext)) @@ -32,8 +30,6 @@ class SPDynaDrawContext; class SPDynaDrawContextClass; -#define SAMPLING_SIZE 8 /* fixme: ?? */ - #define DDC_MIN_PRESSURE 0.0 #define DDC_MAX_PRESSURE 1.0 #define DDC_DEFAULT_PRESSURE 1.0 @@ -42,75 +38,29 @@ class SPDynaDrawContextClass; #define DDC_MAX_TILT 1.0 #define DDC_DEFAULT_TILT 0.0 -struct SPDynaDrawContext -{ - SPEventContext event_context; - - /** accumulated shape which ultimately goes in svg:path */ - SPCurve *accumulated; - - /** canvas items for "comitted" segments */ - GSList *segments; - - /** canvas item for red "leading" segment */ - SPCanvasItem *currentshape; - /** shape of red "leading" segment */ - SPCurve *currentcurve; - - /** left edge of the stroke; combined to get accumulated */ - SPCurve *cal1; - /** right edge of the stroke; combined to get accumulated */ - SPCurve *cal2; - - /** left edge points for this segment */ - NR::Point point1[SAMPLING_SIZE]; - /** right edge points for this segment */ - NR::Point point2[SAMPLING_SIZE]; - /** number of edge points for this segment */ - gint npoints; - - /* repr */ - Inkscape::XML::Node *repr; - - /* DynaDraw */ - NR::Point cur; - NR::Point vel; - NR::Point acc; - NR::Point ang; - NR::Point last; - NR::Point del; - /* extended input data */ - gdouble pressure; - gdouble xtilt; - gdouble ytilt; - /* attributes */ - guint dragging : 1; /* mouse state: mouse is dragging */ - guint usepressure : 1; - guint usetilt : 1; - double mass, drag; - double angle; - double width; - - double vel_thin; - double flatness; - double tremor; - - Inkscape::MessageContext *_message_context; - - bool is_drawing; - - /** uses absolute width independent of zoom */ - bool abs_width; +struct SPDynaDrawContext : public SPCommonContext { + /** newly created object remain selected */ + bool keep_selected; + + double hatch_spacing; + double hatch_spacing_step; + SPItem *hatch_item; + Path *hatch_livarot_path; + std::list hatch_nearest_past; + std::list hatch_pointer_past; + Geom::Point hatch_last_nearest, hatch_last_pointer; + Geom::Point hatch_vector_accumulated; + bool hatch_escaped; + SPCanvasItem *hatch_area; + + bool trace_bg; }; -struct SPDynaDrawContextClass -{ - SPEventContextClass parent_class; -}; +struct SPDynaDrawContextClass : public SPEventContextClass{}; -GtkType sp_dyna_draw_context_get_type(void); +GType sp_dyna_draw_context_get_type(void); -#endif +#endif // SP_DYNA_DRAW_CONTEXT_H_SEEN /* Local Variables: