Code

r11516@tres: ted | 2006-04-26 21:30:18 -0700
[inkscape.git] / src / dyna-draw-context.h
index e2f2c1e5902016b7ff3ebc0b3783443f2633eb04..fef6f1ea3b6deb7c8c49edabc9be3a564bb56150 100644 (file)
@@ -32,7 +32,7 @@
 class SPDynaDrawContext;
 class SPDynaDrawContextClass;
 
-#define SAMPLING_SIZE 16        /* fixme: ?? */
+#define SAMPLING_SIZE 8        /* fixme: ?? */
 
 #define DDC_MIN_PRESSURE      0.0
 #define DDC_MAX_PRESSURE      1.0
@@ -46,24 +46,32 @@ struct SPDynaDrawContext
 {
     SPEventContext event_context;
 
+    /** accumulated shape which ultimately goes in svg:path */
     SPCurve *accumulated;
+
+    /** canvas items for "comitted" segments */
     GSList *segments;
-    /* current shape and curves */
+
+    /** 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;
-    /* temporary work area */
+
+    /** 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;
@@ -76,23 +84,23 @@ struct SPDynaDrawContext
     gdouble xtilt;
     gdouble ytilt;
     /* attributes */
-    /* fixme: shuld be merge dragging and dynahand ?? */
     guint dragging : 1;           /* mouse state: mouse is dragging */
-    guint dynahand : 1;           /* mouse state: mouse is in draw */
-    guint use_timeout : 1;
-    guint use_calligraphic : 1;
+    guint usepressure : 1;
+    guint usetilt : 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;
+
+    /** uses absolute width independent of zoom */
+    bool abs_width;
 };
 
 struct SPDynaDrawContextClass