David MacMahon wrote: > Adds support for arbitrary storage of 2D user data. This is very > similar to the technique employed by some existing functions (e.g. > plfcont and plfshade) that use "evaluator" functions to access 2D user > data that is stored in an arbtrary format. The new approach extends > the concept of a user-supplied (or predefined) "evaluator" function to a > group of user-supplied (or predefined) "operator" functions. The > operator functions provide for various operations on the arbitrarily > stored 2D data including: get, set, +=, -=, *=, /=, isnan, and minmax. > > To facilitate the passing of an entire family of operator functions (via > function pointers), a plf2ops_t structure is defined to contain a > pointer to each type of operator function. Predefined operator > functions are defined for several common 2D data storage techniques. > Variables (of type plf2ops_t) containing function pointers for these > operator functions are also defined. > > New variants of functions that accept 2D data are created. The new > variants accept the 2D data as two parameters: a pointer to a plf2ops_t > structure containing (pointers to) suitable operator functions and a > PLPointer to the actual 2D data store. Existing functions that accept > 2D data are modified to simply pass their parameters to the > corresponding new variant of the function, along with a pointer to the > suitable predefined plf2ops_t stucture of operator function pointers. > > The list of functions for which new variants are created is: > c_plimagefr, c_plmesh, c_plmeshc, c_plot3d, c_plot3dc, c_plot3dcl, > c_plsurf3d, and c_plsurf3dl, and c_plgriddata. The new variants are > named the same as their corresponding existing function except that the > "c_" prefix is changed to "plf" (e.g. the new variant of c_plmesh is > called plfmesh). > > Adds plfvect declaration to plplot.h and changes the names (and only the > names) of some plfvect arguments to make them slightly clearer. In > order to maintain backwards API compatibility, this function and the > other existing functions that use "evaluator" functions are NOT changed > to use the new operator functions. > > Makes plplot.h and libplplot consistent vis-a-vis pltr0f and pltr2d. > Moves the definitions of pltr2f (already declared in plplot.h) from the > sccont.c files of the FORTRAN 77 and Fortran 95 bindings into plcont.c. > Removes pltr0f declaration from plplot.h. > --- > bindings/f77/sccont.c | 182 ---------------------- > bindings/f95/sccont.c | 182 ---------------------- > include/plplot.h | 196 +++++++++++++++++++++++-- > src/CMakeLists.txt | 1 + > src/plcont.c | 207 +++++++++++++++++++++++++- > src/plf2ops.c | 397 > +++++++++++++++++++++++++++++++++++++++++++++++++ > src/plgridd.c | 119 ++++++++------- > src/plimage.c | 16 ++- > src/plot3d.c | 212 +++++++++++++++++---------- > src/plshade.c | 8 +- > src/plvect.c | 17 +-- > 11 files changed, 1004 insertions(+), 533 deletions(-) > create mode 100644 src/plf2ops.c
Unless anyone objects I will test & commit this change in about a week. -Hazen ------------------------------------------------------------------------------ SOLARIS 10 is the OS for Data Centers - provides features such as DTrace, Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW http://p.sf.net/sfu/solaris-dev2dev _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel