index feb38c2f8b745d56357325263c47e1e249faffb4..19cbfbb29f2f2cdec57ade900685df0ca85c1303 100644 (file)
--- a/src/dyna-draw-context.h
+++ b/src/dyna-draw-context.h
-#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
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include "display/curve.h"
-#include "event-context.h"
-#include <display/display-forward.h>
-#include <libnr/nr-point.h>
+#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))
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
#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;
-
- /* time_id if use timeout */
- gint timer_id;
-
- /* 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 use_timeout : 1;
- double mass, drag;
- double angle;
- double width;
- guint usepressure : 1;
- guint usetilt : 1;
-
- double vel_thin;
- double flatness;
- double tremor;
-
- Inkscape::MessageContext *_message_context;
-
- bool is_drawing;
+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<double> hatch_nearest_past;
+ std::list<double> hatch_pointer_past;
+ std::list<Geom::Point> inertia_vectors;
+ Geom::Point hatch_last_nearest, hatch_last_pointer;
+ std::list<Geom::Point> hatch_vectors;
+ bool hatch_escaped;
+ SPCanvasItem *hatch_area;
+ bool just_started_drawing;
+ 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: