From: Thomas J. D. <to...@us...> - 2005-05-03 16:05:51
|
Update of /cvsroot/plplot/plplot/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11327/include Modified Files: gcw.h Log Message: Added virtual coordinate system defines. Index: gcw.h =================================================================== RCS file: /cvsroot/plplot/plplot/include/gcw.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gcw.h 1 May 2005 13:43:21 -0000 1.9 +++ gcw.h 3 May 2005 16:05:32 -0000 1.10 @@ -40,52 +40,64 @@ #include <libgnomeprint/gnome-print.h> typedef struct { - GnomeCanvas* canvas; - GnomeCanvasItem* background; - GnomeCanvasGroup* group_background; - GnomeCanvasGroup* group_foreground; - GnomeCanvasGroup* group_visible; - GnomeCanvasGroup* group_hidden; - GnomeCanvasGroup* group_current; + GnomeCanvas* canvas; /* The canvas to draw on */ + GnomeCanvasItem* background; /* The background of the canvas */ - GtkWidget* window; - GtkWidget* notebook; + GnomeCanvasGroup* group_background; /* Background group for plot items */ + GnomeCanvasGroup* group_foreground; /* Foreground group for plot items */ + GnomeCanvasGroup* group_visible; /* Visible group, removed at next eop */ + GnomeCanvasGroup* group_hidden; /* Hidden group --> visible at eop */ + GnomeCanvasGroup* group_current; /* A pointer to one of the above */ + + GtkWidget* window; /* A window used in standalone mode */ + GtkWidget* notebook; /* A notebook pager in the window */ + GtkWidget* statusbar=NULL; /* A statusbar for the window */ + GtkWidget *filew=NULL; /* A file widget chooser when Save is pressed */ GdkColormap* colormap; guint32 color; - gdouble width; - gdouble height; + gdouble width; /* Width of the canvas in device pixels */ + gdouble height; /* Height of the canvas in device pixels */ - PLINT pen_color; - PLINT pen_width; + PLINT pen_color; /* Current pen color */ + PLINT pen_width; /* Current pen width */ gboolean zoom_is_initialized; - PLINT pattern; - GdkBitmap* pattern_stipple[2]; - - gboolean use_text; - gboolean use_fast_rendering; + gboolean use_text; /* Flag to use TrueType text */ + gboolean use_fast_rendering; /* Flag for fastest (but buggy) rendering */ - gboolean aa; + gboolean aa; /* Flag for an antialiased Canvas */ - gboolean use_pixmap; - gboolean pixmap_has_data; - GdkPixmap* pixmap; + gboolean use_pixmap; /* Flags a pixmap should be used for shades */ + GdkPixmap* pixmap; /* The pixmap */ + gboolean pixmap_has_data; /* Flags the pixmap has data */ } GcwPLdev; /* Physical dimensions */ -/* pixels per mm */ -#define PIXELS_PER_MM (4.) +/* Virtual coordinate scaling parameter, used to do calculations at + * higher resolution. Chosen to be 32 for consistency with the PLplot + * metafile (see plplotP.h). + * + * The trick here is to do everything in device coordinates on the driver + * side, but report/receive everything in virtual coordinates to/from the + * PLplot core. + */ +#define VSCALE (32.) + +/* pixels per mm; note DPMM = 4. in plplotP.h */ +#define DEVICE_PIXELS_PER_MM (DPMM) +#define VIRTUAL_PIXELS_PER_MM (DPMM*VSCALE) /* mm per inch */ #define MM_PER_IN (25.4) /* pixels per inch */ -#define PIXELS_PER_IN (PIXELS_PER_MM*MM_PER_IN) +#define DEVICE_PIXELS_PER_IN (DEVICE_PIXELS_PER_MM*MM_PER_IN) +#define VIRTUAL_PIXELS_PER_IN (VIRTUAL_PIXELS_PER_MM*MM_PER_IN) /* Default dimensions of the canvas (in inches) */ #define CANVAS_WIDTH (10.) @@ -101,13 +113,9 @@ * in gcw-lib.c. */ -void gcw_set_canvas(PLStream* pls,GnomeCanvas* canvas); -void gcw_set_canvas_aspect(GnomeCanvas* canvas,PLFLT aspect); -void gcw_set_canvas_zoom(GnomeCanvas* canvas,PLFLT magnification); +/* Public_functions */ +/* void gcw_install_canvas(PLStream *pls, GnomeCanvas *canvas); */ void gcw_set_canvas_size(GnomeCanvas* canvas,PLFLT width,PLFLT height); -void gcw_get_canvas_viewport(GnomeCanvas* canvas,PLFLT xmin1,PLFLT xmax1, - PLFLT ymin1,PLFLT ymax1,PLFLT* xmin2,PLFLT* xmax2, - PLFLT* ymin2,PLFLT* ymax2); void gcw_use_text(GnomeCanvas* canvas,PLINT use_text); void gcw_use_fast_rendering(GnomeCanvas* canvas,PLINT use_fast_rendering); void gcw_use_pixmap(GnomeCanvas* canvas,PLINT use_pixmap); @@ -115,5 +123,12 @@ void gcw_use_background_group(GnomeCanvas* canvas); void gcw_use_default_group(GnomeCanvas* canvas); +/* Private functions */ +void gcw_init_canvas(PLStream* pls,GnomeCanvas* canvas); +void gcw_set_canvas_aspect(GnomeCanvas* canvas,PLFLT aspect); +void gcw_set_canvas_zoom(GnomeCanvas* canvas,PLFLT magnification); +void gcw_get_canvas_viewport(GnomeCanvas* canvas,PLFLT xmin1,PLFLT xmax1, + PLFLT ymin1,PLFLT ymax1,PLFLT* xmin2,PLFLT* xmax2, + PLFLT* ymin2,PLFLT* ymax2); #endif /* __GCW_H__ */ |