# To subscribers of the xforms list from "Reed Riddle" <drriddle@qwest.net> :
Howdy folks,
I'm working on an interactive XYplot function, where I need to
change the point color (to indicate if the point is valid data or
garbage). Since you can't change the color of a point, I'm using
overlays. I was going to use the routine that inserts a point in
the data, but that adds to the size of the array (and memory is
important here). So, I started looking at the point replacement
routine in xyplot.c:
> void
> fl_replace_xyplot_point(FL_OBJECT * ob, int i, double x, double y)
> {
> SPEC *sp = ob->spec;
>
> if (i < 0 || i >= sp->n[0])
> return;
>
> if ((sp->x[0][i] != x) || (sp->y[0][i] != y))
> {
> sp->x[0][i] = x;
> sp->y[0][i] = y;
> fl_redraw_object(ob);
> }
> }
This replaces data values in the main data array. Notice the 0
index? I decided to replace it with the ID number for the overlay:
> void
> fl_replace_xyplot_overlay_point(FL_OBJECT * ob, int i, int ID,
> double x, double y)
> {
> SPEC *sp = ob->spec;
>
> if (i < 1 || i >= sp->n[ID])
> return;
>
> if ((sp->x[ID][i] != x) || (sp->y[ID][i] != y))
> {
> sp->x[ID][i] = x;
> sp->y[ID][i] = y;
> fl_redraw_object(ob);
> }
> }
And, magically, it works! I set the ID test to cut out if it's 0,
since I didn't want to replace the data itself, just add or remove a
point from the overlay; I like the idea of keeping the overlay
points separate from the data plot points.
Anyways, I just thought I would submit this, just in case someone
thinks it's useful. This is all part of creating an interactive
XYplot (scaling, mouse & keyboard interaction, etc), which I'll
gladly share when I finish it in two years. :) If anyone has done
something similar, I'd love to hear about it.
Reed
----------------------------------------------------------------------
Dr. Reed L. Riddle
Assistant Director of Whole Earth Telescope Operations
Iowa State University Department of Physics & Astronomy
Email: drriddle@qwest.net
Homepage: http://www.iitap.iastate.edu/~riddle/
"This life has been a test. If it had been an actual life, you would
have received actual instructions on where to go and what to do."
-- Angela Chase, "My so-called life"
_________________________________________________
To unsubscribe, send the message "unsubscribe" to
xforms-request@bob.usuhs.mil or see
http://bob.usuhs.mil/mailserv/xforms.html
XForms Home Page: http://world.std.com/~xforms
List Archive: http://bob.usuhs.mil/mailserv/list-archives/
This archive was generated by hypermail 2b29 : Wed Jun 05 2002 - 23:21:28 EDT