From: Daniel J S. <dan...@ie...> - 2004-08-19 19:19:50
|
Daniel J Sebald wrote: > In attempting to make both plot3d.c use only df_readline(), even for > matrix data, I think I've uncovered a bug, or perhaps more than one. <snip> > If someone else wants to tackle that one, fine. I'm just going to fix > it in the "image/binary" stuff so that it works for a single > "df_readline()". On second thought, I'll leave it unfixed in the patch. There are too many instances of df_no_use_specs being used in strange ways. Here's a problem note: /* FIXME EAM - as it stands we cannot have LABELPOINTS */ /* with pm3d colors, because they don't agree on columns */ and right near that is if (df_no_use_specs==4) { /* getting color from an explicitly given 4th column */ pm3d_color_from_column = TRUE; x = v[0]; y = v[1]; z = v[2]; color = v[3]; break; } I think what has happened here is because matrix data is currently read by df_3dmatrix(), which doesn't return the number of columns, there is a tendency inside plot3d.c to use "df_no_use_spec" as the number of columns of available data. That works under the condition the data came from df_3dmatrix. But if it didn't, like in the example I've shown previous, problems arise. My feeling on this is that if df_readline() is only used to bring in data, the "df_no_use_specs" can be removed from "datafile.h". That will force things to be reorganized ever so slightly in plot3d.c so that strange behavior doesn't creep in. Dan |