From: <and...@us...> - 2008-01-17 19:59:39
|
Revision: 8140 http://plplot.svn.sourceforge.net/plplot/?rev=8140&view=rev Author: andrewross Date: 2008-01-17 11:50:45 -0800 (Thu, 17 Jan 2008) Log Message: ----------- Change java bindings and example so the source is rewritten with float rather than double when using single precision. Modified Paths: -------------- trunk/bindings/java/CMakeLists.txt trunk/examples/java/CMakeLists.txt Added Paths: ----------- trunk/bindings/java/PLStream.java.in Removed Paths: ------------- trunk/bindings/java/PLStream.java Modified: trunk/bindings/java/CMakeLists.txt =================================================================== --- trunk/bindings/java/CMakeLists.txt 2008-01-17 12:52:31 UTC (rev 8139) +++ trunk/bindings/java/CMakeLists.txt 2008-01-17 19:50:45 UTC (rev 8140) @@ -31,12 +31,12 @@ # Full list of generated java files set(JAVA_GEN_FILES config.java + PLStream.java ${SWIG_JAVA_FILES} ) # All source files set(JAVA_FILES ${JAVA_GEN_FILES} - PLStream.java ) # List of generated java files with full path names @@ -59,6 +59,11 @@ ${CMAKE_CURRENT_BINARY_DIR}/config.java ) +# Creat PLStream.java +configure_file( +${CMAKE_CURRENT_SOURCE_DIR}/PLStream.java.in +${CMAKE_CURRENT_BINARY_DIR}/PLStream.java +) # This is currently the include list for swig, the C wrapper and the # the java classpath. Not particular pretty... Deleted: trunk/bindings/java/PLStream.java =================================================================== --- trunk/bindings/java/PLStream.java 2008-01-17 12:52:31 UTC (rev 8139) +++ trunk/bindings/java/PLStream.java 2008-01-17 19:50:45 UTC (rev 8140) @@ -1,932 +0,0 @@ -//---------------------------------------------------------------------------// -// -// Copyright (C) 2004 Andrew Ross -// -// This file is part of PLplot. -// -// PLplot is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Library Public License as published -// by the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// PLplot is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public License -// along with PLplot; if not, write to the Free Software -// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -// -// This class provides a more object orientated wrapper to the PLplot library -// for java. It is currently very similar to the C++ plstream class. -// Each instance of the class corresponds to a plplot stream. Calling a -// method in the class will ensure the stream is correctly set before -// calling the underlying API function. -// - -package plplot.core; - -import java.io.*; - -public class PLStream implements plplotjavacConstants { - -// Class data. - int stream_id = -1; - - static int next_stream = 0; - static int active_streams = 0; - -// Constructor -public PLStream() { - // If this is the first instance of the class we - // need to load the C part of the bindings - if (active_streams == 0) { - openlib(); - } - - stream_id = next_stream; - active_streams++; - next_stream++; - - // Create stream and check it worked ok. - if(set_stream() == -1) { - System.err.println("Error creating plplot stream"); - stream_id = -1; - active_streams--; - next_stream--; - } -} - -// Ensure this is the current stream -public int set_stream() { - if ((stream_id == -1) || (active_streams == 0)) { - System.err.println("Error: This stream is not active"); - return -1; - } - plplotjavac.plsstrm(stream_id); - return 0; -} - -// Method to load the native C part of the java wrapper -public void openlib() { - File libname = null; - - try { - String libdir = System.getProperty("plplot.libdir"); - libname = new File(libdir+File.separatorChar+plplot.core.config.libname); - if (! libname.exists()) { - libname = null; - } - } catch ( Exception e) { - } - if (libname == null) { - libname = new File(plplot.core.config.libdir+File.separatorChar+plplot.core.config.libname); - if ( ! libname.exists() ) { - libname = null; - } - } - if (libname != null) { - try { - System.load( libname.getAbsolutePath() ); - } catch (UnsatisfiedLinkError e) { - System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); - System.exit(1); - } - } - else { - System.err.println("Unable to find native code library.\n"); - System.exit(1); - } - -} - -// The following are wrappers to the C API methods, or their derivatives - -public void setcontlabelformat(int lexp, int sigdig) { - if (set_stream() == -1) return; - plplotjavac.pl_setcontlabelformat(lexp, sigdig); -} - -public void setcontlabelparam(double offset, double size, double spacing, int active) { - if (set_stream() == -1) return; - plplotjavac.pl_setcontlabelparam(offset, size, spacing, active); -} - -public void adv(int page) { - if (set_stream() == -1) return; - plplotjavac.pladv(page); -} - -public void axes(double x0, double y0, String xopt, double xtick, int nxsub, - String yopt, double ytick, int nysub) { - if (set_stream() == -1) return; - plplotjavac.plaxes(x0, y0, xopt, xtick, nxsub, yopt, ytick, nysub); -} - -public void bin(double[] x, double[] y, int center) { - if (set_stream() == -1) return; - plplotjavac.plbin(x, y, center); -} - -public void bop() { - if (set_stream() == -1) return; - plplotjavac.plbop(); -} - -public void box(String xopt, double xtick, int nxsub, - String yopt, double ytick, int nysub) { - if (set_stream() == -1) return; - plplotjavac.plbox(xopt, xtick, nxsub, yopt, ytick, nysub); -} - -public void box3(String xopt, String xlabel, double xtick, int nsubx, - String yopt, String ylabel, double ytick, int nsuby, - String zopt, String zlabel, double ztick, int nsubz) { - if (set_stream() == -1) return; - plplotjavac.plbox3(xopt, xlabel, xtick, nsubx, yopt, ylabel, ytick, nsuby, - zopt, zlabel, ztick, nsubz); -} - -public void calc_world(double rx, double ry, double[] wx, double[] wy, int[] window) { - if (set_stream() == -1) return; - plplotjavac.plcalc_world(rx, ry, wx, wy, window); -} - -public void clear() { - if (set_stream() == -1) return; - plplotjavac.plclear(); -} - -public void col0(int icol0) { - if (set_stream() == -1) return; - plplotjavac.plcol0(icol0); -} - -public void col1(double col1) { - if (set_stream() == -1) return; - plplotjavac.plcol1(col1); -} - -public void cont(double[][] f, int kx, int lx, int ky, int ly, - double[] clevel, double[][] pltr, double[][] OBJECT_DATA) { - if (set_stream() == -1) return; - plplotjavac.plcont(f, kx, lx, ky, ly, clevel, pltr, OBJECT_DATA); -} - -public void cpstrm(PLStream pls, boolean flags) { - if (set_stream() == -1) return; - plplotjavac.plcpstrm(pls.stream_id, flags); -} - -// The end / end1 functions have extra code in to keep track of the -// stream references in the class. -public void end() { - if (set_stream() == -1) return; - plplotjavac.plend(); - active_streams = 0; - stream_id = -1; -} - -public void end1() { - if (set_stream() == -1) return; - plplotjavac.plend1(); - - active_streams--; - stream_id = -1; -} - -public void env(double xmin, double xmax, double ymin, double ymax, int just, int axis) { - if (set_stream() == -1) return; - plplotjavac.plenv(xmin, xmax, ymin, ymax, just, axis); -} - -public void env0(double xmin, double xmax, double ymin, double ymax, int just, int axis) { - if (set_stream() == -1) return; - plplotjavac.plenv0(xmin, xmax, ymin, ymax, just, axis); -} - -public void eop() { - if (set_stream() == -1) return; - plplotjavac.pleop(); -} - -public void errx(double[] xmin, double[] xmax, double[] y) { - if (set_stream() == -1) return; - plplotjavac.plerrx(xmin, xmax, y); -} - -public void erry(double[] x, double[] ymin, double[] ymax) { - if (set_stream() == -1) return; - plplotjavac.plerry(x, ymin, ymax); -} - -public void famadv() { - if (set_stream() == -1) return; - plplotjavac.plfamadv(); -} - -public void fill(double[] x, double[] y) { - if (set_stream() == -1) return; - plplotjavac.plfill(x, y); -} - -public void fill3(double[] x, double[] y, double[] z) { - if (set_stream() == -1) return; - plplotjavac.plfill3(x, y, z); -} - -public void flush() { - if (set_stream() == -1) return; - plplotjavac.plflush(); -} - -public void font(int ifont) { - if (set_stream() == -1) return; - plplotjavac.plfont(ifont); -} - -public void fontld(int fnt) { - if (set_stream() == -1) return; - plplotjavac.plfontld(fnt); -} - -public void gchr(double[] p_def, double[] p_ht) { - if (set_stream() == -1) return; - plplotjavac.plgchr(p_def, p_ht); -} - -public void gcol0(int icol0, int[] r, int[] g, int[] b) { - if (set_stream() == -1) return; - plplotjavac.plgcol0(icol0, r, g, b); -} - -public void gcolbg(int[] r, int[] g, int[] b) { - if (set_stream() == -1) return; - plplotjavac.plgcolbg(r, g, b); -} - -public void gcompression(int[] compression) { - if (set_stream() == -1) return; - plplotjavac.plgcompression(compression); -} - -public void gdev(StringBuffer dev) { - if (set_stream() == -1) return; - plplotjavac.plgdev(dev); -} - -public void gdidev(double[] mar, double[] aspect, double[] jx, double[] jy) { - if (set_stream() == -1) return; - plplotjavac.plgdidev(mar, aspect, jx, jy); -} - -public void gdiori(double[] rot) { - if (set_stream() == -1) return; - plplotjavac.plgdiori(rot); -} - -public void gdiplt(double[] xmin, double[] xmax, double[] ymin, double[] ymax) { - if (set_stream() == -1) return; - plplotjavac.plgdiplt(xmin, xmax, ymin, ymax); -} - -public int getCursor(PLGraphicsIn gin) { - if (set_stream() == -1) return 0; - return plplotjavac.plGetCursor(gin); -} - -public void gfam(int[] fam, int[] num, int[] bmax) { - if (set_stream() == -1) return; - plplotjavac.plgfam(fam, num, bmax); -} - -public void gfnam(StringBuffer fnam) { - if (set_stream() == -1) return; - plplotjavac.plgfnam(fnam); -} - -public void glevel(int[] p_level) { - if (set_stream() == -1) return; - plplotjavac.plglevel(p_level); -} - -public void gpage(double[] xp, double[] yp, int[] xleng, int[] yleng, int[] xoff, int[] yoff) { - if (set_stream() == -1) return; - plplotjavac.plgpage(xp, yp, xleng, yleng, xoff, yoff); -} - -public void gra() { - if (set_stream() == -1) return; - plplotjavac.plgra(); -} - -public void griddata(double[] x, double[] y, double[] z, double[] xg, - double[] yg, double[][] zg, int type, double data) { - if (set_stream() == -1) return; - plplotjavac.plgriddata(x, y, z, xg, yg, zg, type, data); -} - -public void gspa(double[] xmin, double[] xmax, double[] ymin, double[] ymax) { - if (set_stream() == -1) return; - plplotjavac.plgspa(xmin, xmax, ymin, ymax); -} - -// Note: The user should never need this in with this class -// since the stream is encapsulated in the class. -//public void gstrm(int[] p_strm) { -// if (set_stream() == -1) return; -// plplotjavac.plgstrm(p_strm); -//} - -public void gver(StringBuffer ver) { - if (set_stream() == -1) return; - plplotjavac.plgver(ver); -} - -public void gvpd(double[] xmin, double[] xmax, double[] ymin, double[] ymax) { - if (set_stream() == -1) return; - plplotjavac.plgvpd(xmin, xmax, ymin, ymax); -} - -public void gvpw(double[] xmin, double[] xmax, double[] ymin, double[] ymax) { - if (set_stream() == -1) return; - plplotjavac.plgvpw(xmin, xmax, ymin, ymax); -} - -public void gxax(int[] digmax, int[] digits) { - if (set_stream() == -1) return; - plplotjavac.plgxax(digmax, digits); -} - -public void gyax(int[] digmax, int[] digits) { - if (set_stream() == -1) return; - plplotjavac.plgyax(digmax, digits); -} - -public void gzax(int[] digmax, int[] digits) { - if (set_stream() == -1) return; - plplotjavac.plgzax(digmax, digits); -} - -public void hist(double[] data, double datmin, double datmax, int nbin, int oldwin) { - if (set_stream() == -1) return; - plplotjavac.plhist(data, datmin, datmax, nbin, oldwin); -} - -public void hls(double h, double l, double s) { - if (set_stream() == -1) return; - plplotjavac.plhls(h, l, s); -} - -public void image(double[][] data, double xmin, double xmax, double ymin, double ymax, double zmin, double zmax, double Dxmin, double Dxmax, double Dymin, double Dymax) { - if (set_stream() == -1) return; - plplotjavac.plimage(data, xmin, xmax, ymin, ymax, zmin, zmax, Dxmin, Dxmax, Dymin, Dymax); -} - -public void init() { - if (set_stream() == -1) return; - plplotjavac.plinit(); -} - -public void join(double x1, double y1, double x2, double y2) { - if (set_stream() == -1) return; - plplotjavac.pljoin(x1, y1, x2, y2); -} - -public void lab(String xlabel, String ylabel, String tlabel) { - if (set_stream() == -1) return; - plplotjavac.pllab(xlabel, ylabel, tlabel); -} - -public void lightsource(double x, double y, double z) { - if (set_stream() == -1) return; - plplotjavac.pllightsource(x, y, z); -} - -public void line(double[] x, double[] y) { - if (set_stream() == -1) return; - plplotjavac.plline(x, y); -} - -public void line3(double[] x, double[] y, double[] z) { - if (set_stream() == -1) return; - plplotjavac.plline3(x, y, z); -} - -public void lsty(int lin) { - if (set_stream() == -1) return; - plplotjavac.pllsty(lin); -} - -public void minMax2dGrid(double[][]f, double[] fmax, double[] fmin) { - if (set_stream() == -1) return; - plplotjavac.plMinMax2dGrid(f,fmax,fmin); - -} - -public void mesh(double[] x, double[] y, double[][] z, int opt) { - if (set_stream() == -1) return; - plplotjavac.plmesh(x, y, z, opt); -} - -public void meshc(double[] x, double[] y, double[][] z, int opt, double[] clevel) { - if (set_stream() == -1) return; - plplotjavac.plmeshc(x, y, z, opt,clevel); -} - -// Don't need this in the OO approach - create a new object instead. -//public void mkstrm(int[] OUTPUT) { -// if (set_stream() == -1) return; -// plplotjavac.plmkstrm(int[] OUTPUT); -//} - -public void mtex(String side, double disp, double pos, double just, String text) { - if (set_stream() == -1) return; - plplotjavac.plmtex(side, disp, pos, just, text); -} - -public void mtex3(String side, double disp, double pos, double just, String text) { - if (set_stream() == -1) return; - plplotjavac.plmtex3(side, disp, pos, just, text); -} - -public void plot3d(double[] x, double[] y, double[][] z, int opt, boolean side) { - if (set_stream() == -1) return; - plplotjavac.plot3d(x, y, z, opt, side); -} - -public void plot3dc(double[] x, double[] y, double[][] z, int opt, double[] clevel) { - if (set_stream() == -1) return; - plplotjavac.plot3dc(x, y, z, opt, clevel); -} - -public void plot3dcl(double[] x, double[] y, double[][] z, int opt, - double[] clevel, int ixstart, int[] indexymin, int[] indexymax) { - if (set_stream() == -1) return; - plplotjavac.plot3dcl(x, y, z, opt, clevel, ixstart, indexymin, indexymax); -} - -public void surf3d(double[] x, double[] y, double[][] z, int opt, double[] clevel) { - if (set_stream() == -1) return; - plplotjavac.plsurf3d(x, y, z, opt, clevel); -} - -public void surf3dl(double[] x, double[] y, double[][] z, int opt, - double[] clevel, int ixstart, int[] indexymin, int[] indexymax) { - if (set_stream() == -1) return; - plplotjavac.plsurf3dl(x, y, z, opt, clevel, ixstart, indexymin, indexymax); -} - -public void parseopts(String[] argv, int mode) { - if (set_stream() == -1) return; - plplotjavac.plparseopts(argv, mode); -} - -public void pat(int[] inc, int[] del) { - if (set_stream() == -1) return; - plplotjavac.plpat(inc, del); -} - -public void poin(double[] x, double[] y, int code) { - if (set_stream() == -1) return; - plplotjavac.plpoin(x, y, code); -} - -public void poin3(double[] x, double[] y, double[] z, int code) { - if (set_stream() == -1) return; - plplotjavac.plpoin3(x, y, z, code); -} - -public void poly3(double[] x, double[] y, double[] z, boolean[] draw, boolean ifcc) { - if (set_stream() == -1) return; - plplotjavac.plpoly3(x, y, z, draw, ifcc); -} - -public void prec(int setp, int prec) { - if (set_stream() == -1) return; - plplotjavac.plprec(setp, prec); -} - -public void psty(int patt) { - if (set_stream() == -1) return; - plplotjavac.plpsty(patt); -} - -public void ptex(double x, double y, double dx, double dy, double just, String text) { - if (set_stream() == -1) return; - plplotjavac.plptex(x, y, dx, dy, just, text); -} - -public void ptex3(double x, double y, double z, double dx, double dy, double dz, double sx, double sy, double sz, double just, String text) { - if (set_stream() == -1) return; - plplotjavac.plptex3(x, y, z, dx, dy, dz, sx, sy, sz, just, text); -} - -public void replot() { - if (set_stream() == -1) return; - plplotjavac.plreplot(); -} - -public void schr(double def, double scale) { - if (set_stream() == -1) return; - plplotjavac.plschr(def, scale); -} - -public void scmap0(int[] r, int[] g, int[] b) { - if (set_stream() == -1) return; - plplotjavac.plscmap0(r, g, b); -} - -public void scmap0n(int ncol0) { - if (set_stream() == -1) return; - plplotjavac.plscmap0n(ncol0); -} - -public void scmap1(int[] r, int[] g, int[] b) { - if (set_stream() == -1) return; - plplotjavac.plscmap1(r, g, b); -} - -public void scmap1l(boolean itype, double[] intensity, double[] coord1, - double[] coord2, double[] coord3, boolean[] rev) { - if (set_stream() == -1) return; - plplotjavac.plscmap1l(itype, intensity, coord1, coord2, coord3, rev); -} - -public void scmap1l(boolean itype, double[] intensity, double[] coord1, - double[] coord2, double[] coord3) { - if (set_stream() == -1) return; - plplotjavac.plscmap1l(itype, intensity, coord1, coord2, coord3, null); -} - -public void scmap1n(int ncol1) { - if (set_stream() == -1) return; - plplotjavac.plscmap1n(ncol1); -} - -public void scol0(int icol0, int r, int g, int b) { - if (set_stream() == -1) return; - plplotjavac.plscol0(icol0, r, g, b); -} - -public void scolbg(int r, int g, int b) { - if (set_stream() == -1) return; - plplotjavac.plscolbg(r, g, b); -} - -public void scolor(int color) { - if (set_stream() == -1) return; - plplotjavac.plscolor(color); -} - -public void scompression(int compression) { - if (set_stream() == -1) return; - plplotjavac.plscompression(compression); -} - -public void sdev(String devname) { - if (set_stream() == -1) return; - plplotjavac.plsdev(devname); -} - -public void sdidev(double mar, double aspect, double jx, double jy) { - if (set_stream() == -1) return; - plplotjavac.plsdidev(mar, aspect, jx, jy); -} - -public void sdimap(int dimxmin, int dimxmax, int dimymin, int dimymax, - double dimxpmm, double dimypmm) { - if (set_stream() == -1) return; - plplotjavac.plsdimap(dimxmin, dimxmax, dimymin, dimymax, dimxpmm, dimypmm); -} - -public void sdiori(double rot) { - if (set_stream() == -1) return; - plplotjavac.plsdiori(rot); -} - -public void sdiplt(double xmin, double ymin, double xmax, double ymax) { - if (set_stream() == -1) return; - plplotjavac.plsdiplt(xmin, ymin, xmax, ymax); -} - -public void sdiplz(double xmin, double ymin, double xmax, double ymax) { - if (set_stream() == -1) return; - plplotjavac.plsdiplz(xmin, ymin, xmax, ymax); -} - -public void sesc(char esc) { - if (set_stream() == -1) return; - plplotjavac.plsesc(esc); -} - -public void setopt(String opt, String optarg) { - if (set_stream() == -1) return; - plplotjavac.plsetopt(opt, optarg); -} - -public void sfam(int fam, int num, int bmax) { - if (set_stream() == -1) return; - plplotjavac.plsfam(fam, num, bmax); -} - -public void sfnam(String fnam) { - if (set_stream() == -1) return; - plplotjavac.plsfnam(fnam); -} - -public void shades( double[][] a, double xmin, double xmax, double ymin, - double ymax, double[] clevel, int fill_width, int cont_color, - int cont_width, boolean rectangular, - double[][] pltr, double[][] OBJECT_DATA) { - if (set_stream() == -1) return; - plplotjavac.plshades( a, xmin, xmax, ymin, ymax, clevel, fill_width, - cont_color, cont_width, rectangular, pltr, OBJECT_DATA); -} - -public void shade(double[][] a, double left, double right, double bottom, - double top, double shade_min, double shade_max, int sh_cmap, - double sh_color, int sh_width, int min_color, int min_width, - int max_color, int max_width, boolean rectangular, - double[][] pltr, double[][] OBJECT_DATA) { - if (set_stream() == -1) return; - plplotjavac.plshade(a, left, right, bottom, top, shade_min, shade_max, - sh_cmap, sh_color, sh_width, min_color, min_width, - max_color, max_width, rectangular, pltr, OBJECT_DATA); -} - -public void smaj(double def, double scale) { - if (set_stream() == -1) return; - plplotjavac.plsmaj(def, scale); -} - -public void smin(double def, double scale) { - if (set_stream() == -1) return; - plplotjavac.plsmin(def, scale); -} - -public void sori(int ori) { - if (set_stream() == -1) return; - plplotjavac.plsori(ori); -} - -public void spage(double xp, double yp, int xleng, int yleng, int xoff, int yoff) { - if (set_stream() == -1) return; - plplotjavac.plspage(xp, yp, xleng, yleng, xoff, yoff); -} - -public void spause(boolean pause) { - if (set_stream() == -1) return; - plplotjavac.plspause(pause); -} - -public void sstrm(int strm) { - if (set_stream() == -1) return; - plplotjavac.plsstrm(strm); -} - -public void ssub(int nx, int ny) { - if (set_stream() == -1) return; - plplotjavac.plssub(nx, ny); -} - -public void ssym(double def, double scale) { - if (set_stream() == -1) return; - plplotjavac.plssym(def, scale); -} - -public void star(int nx, int ny) { - if (set_stream() == -1) return; - plplotjavac.plstar(nx, ny); -} - -public void start(String devname, int nx, int ny) { - if (set_stream() == -1) return; - plplotjavac.plstart(devname, nx, ny); -} - -public void stripa(int id, int pen, double x, double y) { - if (set_stream() == -1) return; - plplotjavac.plstripa(id, pen, x, y); -} - -public void stripc(int[] id, String xspec, String yspec, - double xmin, double xmax, double xjump, - double ymin, double ymax, double xlpos, double ylpos, - boolean y_ascl, boolean acc, int colbox, int collab, - int[] colline, int[] styline, String[] legline, - String labx, String laby, String labtop) { - if (set_stream() == -1) return; - plplotjavac.plstripc(id, xspec, yspec, xmin, xmax, xjump, ymin, ymax, - xlpos, ylpos, y_ascl, acc, colbox, collab, colline, - styline, legline, labx, laby, labtop); -} - -public void stripd(int id) { - if (set_stream() == -1) return; - plplotjavac.plstripd(id); -} - -public void styl(int[] mark, int[] space) { - if (set_stream() == -1) return; - plplotjavac.plstyl(mark, space); -} - -public void svect(double[] arrow_x, double[] arrow_y, boolean fill) { - if (set_stream() == -1) return; - plplotjavac.plsvect(arrow_x, arrow_y, fill); -} - -public void svpa(double xmin, double xmax, double ymin, double ymax) { - if (set_stream() == -1) return; - plplotjavac.plsvpa(xmin, xmax, ymin, ymax); -} - -public void sxax(int digmax, int digits) { - if (set_stream() == -1) return; - plplotjavac.plsxax(digmax, digits); -} - -public void syax(int digmax, int digits) { - if (set_stream() == -1) return; - plplotjavac.plsyax(digmax, digits); -} - -public void sym(double[] x, double[] y, int code) { - if (set_stream() == -1) return; - plplotjavac.plsym(x, y, code); -} - -public void szax(int digmax, int digits) { - if (set_stream() == -1) return; - plplotjavac.plszax(digmax, digits); -} - -public void text() { - if (set_stream() == -1) return; - plplotjavac.pltext(); -} - -public void vasp(double aspect) { - if (set_stream() == -1) return; - plplotjavac.plvasp(aspect); -} - -public void vect(double[][] u, double[][] v, double scale, double[][] pltr, double[][] OBJECT_DATA) { - if (set_stream() == -1) return; - plplotjavac.plvect(u, v, scale, pltr, OBJECT_DATA); -} - -public void vpas(double xmin, double xmax, double ymin, double ymax, double aspect) { - if (set_stream() == -1) return; - plplotjavac.plvpas(xmin, xmax, ymin, ymax, aspect); -} - -public void vpor(double xmin, double xmax, double ymin, double ymax) { - if (set_stream() == -1) return; - plplotjavac.plvpor(xmin, xmax, ymin, ymax); -} - -public void vsta() { - if (set_stream() == -1) return; - plplotjavac.plvsta(); -} - -public void w3d(double basex, double basey, double height, double xmin0, - double xmax0, double ymin0, double ymax0, double zmin0, - double zmax0, double alt, double az) { - if (set_stream() == -1) return; - plplotjavac.plw3d(basex, basey, height, xmin0, xmax0, ymin0, ymax0, - zmin0, zmax0, alt, az); -} - -public void wid(int width) { - if (set_stream() == -1) return; - plplotjavac.plwid(width); -} - -public void wind(double xmin, double xmax, double ymin, double ymax) { - if (set_stream() == -1) return; - plplotjavac.plwind(xmin, xmax, ymin, ymax); -} - -public void xormod(boolean mode, boolean[] status) { - if (set_stream() == -1) return; - plplotjavac.plxormod(mode, status); -} - -public void ClearOpts() { - if (set_stream() == -1) return; - plplotjavac.plClearOpts(); -} - -public void ResetOpts() { - if (set_stream() == -1) return; - plplotjavac.plResetOpts(); -} - -public void SetUsage(String program_string, String usage_string) { - if (set_stream() == -1) return; - plplotjavac.plSetUsage(program_string, usage_string); -} - -public void OptUsage() { - if (set_stream() == -1) return; - plplotjavac.plOptUsage(); -} - -public void hlsrgb(double h, double l, double s, double[] r, double[] g, double[] b) { - if (set_stream() == -1) return; - plplotjavac.plhlsrgb(h,l,s,r,g,b); -} - -public void rgbhls(double r, double g, double b, double[] h, double[] l, double[] s) { - if (set_stream() == -1) return; - plplotjavac.plrgbhls(r,g,b,h,l,s); -} - -// Deprecated versions of methods which use int for a flag instead of -// boolean. -public void cpstrm(int iplsr, int flags) { - if (set_stream() == -1) return; - plplotjavac.plcpstrm(iplsr, flags != 0); -} - -public void plot3d(double[] x, double[] y, double[][] z, int opt, int side) { - if (set_stream() == -1) return; - plplotjavac.plot3d(x, y, z, opt, side != 0); -} - -public void poly3(double[] x, double[] y, double[] z, int[] draw, int ifcc) { - if (set_stream() == -1) return; - boolean [] loc_draw = new boolean[draw.length]; - for (int i=0;i<draw.length;i++) { - loc_draw[i] = (draw[i]!=0); - } - plplotjavac.plpoly3(x, y, z, loc_draw, ifcc != 0); -} - -public void scmap1l(int itype, double[] intensity, double[] coord1, - double[] coord2, double[] coord3, int[] rev) { - if (set_stream() == -1) return; - boolean [] loc_rev = null; - if (rev != null) { - loc_rev = new boolean[rev.length]; - for (int i=0;i<rev.length;i++) { - loc_rev[i] = (rev[i]!=0); - } - } - plplotjavac.plscmap1l(itype != 0, intensity, coord1, coord2, coord3, loc_rev); -} - -public void shades( double[][] a, double xmin, double xmax, double ymin, - double ymax, double[] clevel, int fill_width, int cont_color, - int cont_width, int rectangular, - double[][] pltr, double[][] OBJECT_DATA) { - if (set_stream() == -1) return; - plplotjavac.plshades( a, xmin, xmax, ymin, ymax, clevel, fill_width, - cont_color, cont_width, rectangular != 0, pltr, OBJECT_DATA); -} - -public void shade(double[][] a, double left, double right, double bottom, - double top, double shade_min, double shade_max, int sh_cmap, - double sh_color, int sh_width, int min_color, int min_width, - int max_color, int max_width, int rectangular, - double[][] pltr, double[][] OBJECT_DATA) { - if (set_stream() == -1) return; - plplotjavac.plshade(a, left, right, bottom, top, shade_min, shade_max, - sh_cmap, sh_color, sh_width, min_color, min_width, - max_color, max_width, rectangular != 0, pltr, OBJECT_DATA); -} - -public void spause(int pause) { - if (set_stream() == -1) return; - plplotjavac.plspause(pause != 0); -} - -public void stripc(int[] id, String xspec, String yspec, - double xmin, double xmax, double xjump, - double ymin, double ymax, double xlpos, double ylpos, - int y_ascl, int acc, int colbox, int collab, - int[] colline, int[] styline, String[] legline, - String labx, String laby, String labtop) { - if (set_stream() == -1) return; - plplotjavac.plstripc(id, xspec, yspec, xmin, xmax, xjump, ymin, ymax, - xlpos, ylpos, y_ascl != 0, acc != 0, colbox, collab, - colline, styline, legline, labx, laby, labtop); -} - -public void svect(double[] arrow_x, double[] arrow_y, int fill) { - if (set_stream() == -1) return; - plplotjavac.plsvect(arrow_x, arrow_y, fill != 0); -} - -public void xormod(int mode, int[] status) { - if (set_stream() == -1) return; - boolean [] loc_status = new boolean[1]; - plplotjavac.plxormod(mode != 0, loc_status); - status[0] = loc_status[0] ? 1 : 0; -} - -} Copied: trunk/bindings/java/PLStream.java.in (from rev 8139, trunk/bindings/java/PLStream.java) =================================================================== --- trunk/bindings/java/PLStream.java.in (rev 0) +++ trunk/bindings/java/PLStream.java.in 2008-01-17 19:50:45 UTC (rev 8140) @@ -0,0 +1,932 @@ +//---------------------------------------------------------------------------// +// +// Copyright (C) 2004 Andrew Ross +// +// This file is part of PLplot. +// +// PLplot is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Library Public License as published +// by the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// PLplot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Library General Public License for more details. +// +// You should have received a copy of the GNU Library General Public License +// along with PLplot; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +// This class provides a more object orientated wrapper to the PLplot library +// for java. It is currently very similar to the C++ plstream class. +// Each instance of the class corresponds to a plplot stream. Calling a +// method in the class will ensure the stream is correctly set before +// calling the underlying API function. +// + +package plplot.core; + +import java.io.*; + +public class PLStream implements plplotjavacConstants { + +// Class data. + int stream_id = -1; + + static int next_stream = 0; + static int active_streams = 0; + +// Constructor +public PLStream() { + // If this is the first instance of the class we + // need to load the C part of the bindings + if (active_streams == 0) { + openlib(); + } + + stream_id = next_stream; + active_streams++; + next_stream++; + + // Create stream and check it worked ok. + if(set_stream() == -1) { + System.err.println("Error creating plplot stream"); + stream_id = -1; + active_streams--; + next_stream--; + } +} + +// Ensure this is the current stream +public int set_stream() { + if ((stream_id == -1) || (active_streams == 0)) { + System.err.println("Error: This stream is not active"); + return -1; + } + plplotjavac.plsstrm(stream_id); + return 0; +} + +// Method to load the native C part of the java wrapper +public void openlib() { + File libname = null; + + try { + String libdir = System.getProperty("plplot.libdir"); + libname = new File(libdir+File.separatorChar+plplot.core.config.libname); + if (! libname.exists()) { + libname = null; + } + } catch ( Exception e) { + } + if (libname == null) { + libname = new File(plplot.core.config.libdir+File.separatorChar+plplot.core.config.libname); + if ( ! libname.exists() ) { + libname = null; + } + } + if (libname != null) { + try { + System.load( libname.getAbsolutePath() ); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + else { + System.err.println("Unable to find native code library.\n"); + System.exit(1); + } + +} + +// The following are wrappers to the C API methods, or their derivatives + +public void setcontlabelformat(int lexp, int sigdig) { + if (set_stream() == -1) return; + plplotjavac.pl_setcontlabelformat(lexp, sigdig); +} + +public void setcontlabelparam(@PLFLT@ offset, @PLFLT@ size, @PLFLT@ spacing, int active) { + if (set_stream() == -1) return; + plplotjavac.pl_setcontlabelparam(offset, size, spacing, active); +} + +public void adv(int page) { + if (set_stream() == -1) return; + plplotjavac.pladv(page); +} + +public void axes(@PLFLT@ x0, @PLFLT@ y0, String xopt, @PLFLT@ xtick, int nxsub, + String yopt, @PLFLT@ ytick, int nysub) { + if (set_stream() == -1) return; + plplotjavac.plaxes(x0, y0, xopt, xtick, nxsub, yopt, ytick, nysub); +} + +public void bin(@PLFLT@[] x, @PLFLT@[] y, int center) { + if (set_stream() == -1) return; + plplotjavac.plbin(x, y, center); +} + +public void bop() { + if (set_stream() == -1) return; + plplotjavac.plbop(); +} + +public void box(String xopt, @PLFLT@ xtick, int nxsub, + String yopt, @PLFLT@ ytick, int nysub) { + if (set_stream() == -1) return; + plplotjavac.plbox(xopt, xtick, nxsub, yopt, ytick, nysub); +} + +public void box3(String xopt, String xlabel, @PLFLT@ xtick, int nsubx, + String yopt, String ylabel, @PLFLT@ ytick, int nsuby, + String zopt, String zlabel, @PLFLT@ ztick, int nsubz) { + if (set_stream() == -1) return; + plplotjavac.plbox3(xopt, xlabel, xtick, nsubx, yopt, ylabel, ytick, nsuby, + zopt, zlabel, ztick, nsubz); +} + +public void calc_world(@PLFLT@ rx, @PLFLT@ ry, @PLFLT@[] wx, @PLFLT@[] wy, int[] window) { + if (set_stream() == -1) return; + plplotjavac.plcalc_world(rx, ry, wx, wy, window); +} + +public void clear() { + if (set_stream() == -1) return; + plplotjavac.plclear(); +} + +public void col0(int icol0) { + if (set_stream() == -1) return; + plplotjavac.plcol0(icol0); +} + +public void col1(@PLFLT@ col1) { + if (set_stream() == -1) return; + plplotjavac.plcol1(col1); +} + +public void cont(@PLFLT@[][] f, int kx, int lx, int ky, int ly, + @PLFLT@[] clevel, @PLFLT@[][] pltr, @PLFLT@[][] OBJECT_DATA) { + if (set_stream() == -1) return; + plplotjavac.plcont(f, kx, lx, ky, ly, clevel, pltr, OBJECT_DATA); +} + +public void cpstrm(PLStream pls, boolean flags) { + if (set_stream() == -1) return; + plplotjavac.plcpstrm(pls.stream_id, flags); +} + +// The end / end1 functions have extra code in to keep track of the +// stream references in the class. +public void end() { + if (set_stream() == -1) return; + plplotjavac.plend(); + active_streams = 0; + stream_id = -1; +} + +public void end1() { + if (set_stream() == -1) return; + plplotjavac.plend1(); + + active_streams--; + stream_id = -1; +} + +public void env(@PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ ymin, @PLFLT@ ymax, int just, int axis) { + if (set_stream() == -1) return; + plplotjavac.plenv(xmin, xmax, ymin, ymax, just, axis); +} + +public void env0(@PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ ymin, @PLFLT@ ymax, int just, int axis) { + if (set_stream() == -1) return; + plplotjavac.plenv0(xmin, xmax, ymin, ymax, just, axis); +} + +public void eop() { + if (set_stream() == -1) return; + plplotjavac.pleop(); +} + +public void errx(@PLFLT@[] xmin, @PLFLT@[] xmax, @PLFLT@[] y) { + if (set_stream() == -1) return; + plplotjavac.plerrx(xmin, xmax, y); +} + +public void erry(@PLFLT@[] x, @PLFLT@[] ymin, @PLFLT@[] ymax) { + if (set_stream() == -1) return; + plplotjavac.plerry(x, ymin, ymax); +} + +public void famadv() { + if (set_stream() == -1) return; + plplotjavac.plfamadv(); +} + +public void fill(@PLFLT@[] x, @PLFLT@[] y) { + if (set_stream() == -1) return; + plplotjavac.plfill(x, y); +} + +public void fill3(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[] z) { + if (set_stream() == -1) return; + plplotjavac.plfill3(x, y, z); +} + +public void flush() { + if (set_stream() == -1) return; + plplotjavac.plflush(); +} + +public void font(int ifont) { + if (set_stream() == -1) return; + plplotjavac.plfont(ifont); +} + +public void fontld(int fnt) { + if (set_stream() == -1) return; + plplotjavac.plfontld(fnt); +} + +public void gchr(@PLFLT@[] p_def, @PLFLT@[] p_ht) { + if (set_stream() == -1) return; + plplotjavac.plgchr(p_def, p_ht); +} + +public void gcol0(int icol0, int[] r, int[] g, int[] b) { + if (set_stream() == -1) return; + plplotjavac.plgcol0(icol0, r, g, b); +} + +public void gcolbg(int[] r, int[] g, int[] b) { + if (set_stream() == -1) return; + plplotjavac.plgcolbg(r, g, b); +} + +public void gcompression(int[] compression) { + if (set_stream() == -1) return; + plplotjavac.plgcompression(compression); +} + +public void gdev(StringBuffer dev) { + if (set_stream() == -1) return; + plplotjavac.plgdev(dev); +} + +public void gdidev(@PLFLT@[] mar, @PLFLT@[] aspect, @PLFLT@[] jx, @PLFLT@[] jy) { + if (set_stream() == -1) return; + plplotjavac.plgdidev(mar, aspect, jx, jy); +} + +public void gdiori(@PLFLT@[] rot) { + if (set_stream() == -1) return; + plplotjavac.plgdiori(rot); +} + +public void gdiplt(@PLFLT@[] xmin, @PLFLT@[] xmax, @PLFLT@[] ymin, @PLFLT@[] ymax) { + if (set_stream() == -1) return; + plplotjavac.plgdiplt(xmin, xmax, ymin, ymax); +} + +public int getCursor(PLGraphicsIn gin) { + if (set_stream() == -1) return 0; + return plplotjavac.plGetCursor(gin); +} + +public void gfam(int[] fam, int[] num, int[] bmax) { + if (set_stream() == -1) return; + plplotjavac.plgfam(fam, num, bmax); +} + +public void gfnam(StringBuffer fnam) { + if (set_stream() == -1) return; + plplotjavac.plgfnam(fnam); +} + +public void glevel(int[] p_level) { + if (set_stream() == -1) return; + plplotjavac.plglevel(p_level); +} + +public void gpage(@PLFLT@[] xp, @PLFLT@[] yp, int[] xleng, int[] yleng, int[] xoff, int[] yoff) { + if (set_stream() == -1) return; + plplotjavac.plgpage(xp, yp, xleng, yleng, xoff, yoff); +} + +public void gra() { + if (set_stream() == -1) return; + plplotjavac.plgra(); +} + +public void griddata(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[] z, @PLFLT@[] xg, + @PLFLT@[] yg, @PLFLT@[][] zg, int type, @PLFLT@ data) { + if (set_stream() == -1) return; + plplotjavac.plgriddata(x, y, z, xg, yg, zg, type, data); +} + +public void gspa(@PLFLT@[] xmin, @PLFLT@[] xmax, @PLFLT@[] ymin, @PLFLT@[] ymax) { + if (set_stream() == -1) return; + plplotjavac.plgspa(xmin, xmax, ymin, ymax); +} + +// Note: The user should never need this in with this class +// since the stream is encapsulated in the class. +//public void gstrm(int[] p_strm) { +// if (set_stream() == -1) return; +// plplotjavac.plgstrm(p_strm); +//} + +public void gver(StringBuffer ver) { + if (set_stream() == -1) return; + plplotjavac.plgver(ver); +} + +public void gvpd(@PLFLT@[] xmin, @PLFLT@[] xmax, @PLFLT@[] ymin, @PLFLT@[] ymax) { + if (set_stream() == -1) return; + plplotjavac.plgvpd(xmin, xmax, ymin, ymax); +} + +public void gvpw(@PLFLT@[] xmin, @PLFLT@[] xmax, @PLFLT@[] ymin, @PLFLT@[] ymax) { + if (set_stream() == -1) return; + plplotjavac.plgvpw(xmin, xmax, ymin, ymax); +} + +public void gxax(int[] digmax, int[] digits) { + if (set_stream() == -1) return; + plplotjavac.plgxax(digmax, digits); +} + +public void gyax(int[] digmax, int[] digits) { + if (set_stream() == -1) return; + plplotjavac.plgyax(digmax, digits); +} + +public void gzax(int[] digmax, int[] digits) { + if (set_stream() == -1) return; + plplotjavac.plgzax(digmax, digits); +} + +public void hist(@PLFLT@[] data, @PLFLT@ datmin, @PLFLT@ datmax, int nbin, int oldwin) { + if (set_stream() == -1) return; + plplotjavac.plhist(data, datmin, datmax, nbin, oldwin); +} + +public void hls(@PLFLT@ h, @PLFLT@ l, @PLFLT@ s) { + if (set_stream() == -1) return; + plplotjavac.plhls(h, l, s); +} + +public void image(@PLFLT@[][] data, @PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ ymin, @PLFLT@ ymax, @PLFLT@ zmin, @PLFLT@ zmax, @PLFLT@ Dxmin, @PLFLT@ Dxmax, @PLFLT@ Dymin, @PLFLT@ Dymax) { + if (set_stream() == -1) return; + plplotjavac.plimage(data, xmin, xmax, ymin, ymax, zmin, zmax, Dxmin, Dxmax, Dymin, Dymax); +} + +public void init() { + if (set_stream() == -1) return; + plplotjavac.plinit(); +} + +public void join(@PLFLT@ x1, @PLFLT@ y1, @PLFLT@ x2, @PLFLT@ y2) { + if (set_stream() == -1) return; + plplotjavac.pljoin(x1, y1, x2, y2); +} + +public void lab(String xlabel, String ylabel, String tlabel) { + if (set_stream() == -1) return; + plplotjavac.pllab(xlabel, ylabel, tlabel); +} + +public void lightsource(@PLFLT@ x, @PLFLT@ y, @PLFLT@ z) { + if (set_stream() == -1) return; + plplotjavac.pllightsource(x, y, z); +} + +public void line(@PLFLT@[] x, @PLFLT@[] y) { + if (set_stream() == -1) return; + plplotjavac.plline(x, y); +} + +public void line3(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[] z) { + if (set_stream() == -1) return; + plplotjavac.plline3(x, y, z); +} + +public void lsty(int lin) { + if (set_stream() == -1) return; + plplotjavac.pllsty(lin); +} + +public void minMax2dGrid(@PLFLT@[][]f, @PLFLT@[] fmax, @PLFLT@[] fmin) { + if (set_stream() == -1) return; + plplotjavac.plMinMax2dGrid(f,fmax,fmin); + +} + +public void mesh(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[][] z, int opt) { + if (set_stream() == -1) return; + plplotjavac.plmesh(x, y, z, opt); +} + +public void meshc(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[][] z, int opt, @PLFLT@[] clevel) { + if (set_stream() == -1) return; + plplotjavac.plmeshc(x, y, z, opt,clevel); +} + +// Don't need this in the OO approach - create a new object instead. +//public void mkstrm(int[] OUTPUT) { +// if (set_stream() == -1) return; +// plplotjavac.plmkstrm(int[] OUTPUT); +//} + +public void mtex(String side, @PLFLT@ disp, @PLFLT@ pos, @PLFLT@ just, String text) { + if (set_stream() == -1) return; + plplotjavac.plmtex(side, disp, pos, just, text); +} + +public void mtex3(String side, @PLFLT@ disp, @PLFLT@ pos, @PLFLT@ just, String text) { + if (set_stream() == -1) return; + plplotjavac.plmtex3(side, disp, pos, just, text); +} + +public void plot3d(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[][] z, int opt, boolean side) { + if (set_stream() == -1) return; + plplotjavac.plot3d(x, y, z, opt, side); +} + +public void plot3dc(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[][] z, int opt, @PLFLT@[] clevel) { + if (set_stream() == -1) return; + plplotjavac.plot3dc(x, y, z, opt, clevel); +} + +public void plot3dcl(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[][] z, int opt, + @PLFLT@[] clevel, int ixstart, int[] indexymin, int[] indexymax) { + if (set_stream() == -1) return; + plplotjavac.plot3dcl(x, y, z, opt, clevel, ixstart, indexymin, indexymax); +} + +public void surf3d(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[][] z, int opt, @PLFLT@[] clevel) { + if (set_stream() == -1) return; + plplotjavac.plsurf3d(x, y, z, opt, clevel); +} + +public void surf3dl(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[][] z, int opt, + @PLFLT@[] clevel, int ixstart, int[] indexymin, int[] indexymax) { + if (set_stream() == -1) return; + plplotjavac.plsurf3dl(x, y, z, opt, clevel, ixstart, indexymin, indexymax); +} + +public void parseopts(String[] argv, int mode) { + if (set_stream() == -1) return; + plplotjavac.plparseopts(argv, mode); +} + +public void pat(int[] inc, int[] del) { + if (set_stream() == -1) return; + plplotjavac.plpat(inc, del); +} + +public void poin(@PLFLT@[] x, @PLFLT@[] y, int code) { + if (set_stream() == -1) return; + plplotjavac.plpoin(x, y, code); +} + +public void poin3(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[] z, int code) { + if (set_stream() == -1) return; + plplotjavac.plpoin3(x, y, z, code); +} + +public void poly3(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[] z, boolean[] draw, boolean ifcc) { + if (set_stream() == -1) return; + plplotjavac.plpoly3(x, y, z, draw, ifcc); +} + +public void prec(int setp, int prec) { + if (set_stream() == -1) return; + plplotjavac.plprec(setp, prec); +} + +public void psty(int patt) { + if (set_stream() == -1) return; + plplotjavac.plpsty(patt); +} + +public void ptex(@PLFLT@ x, @PLFLT@ y, @PLFLT@ dx, @PLFLT@ dy, @PLFLT@ just, String text) { + if (set_stream() == -1) return; + plplotjavac.plptex(x, y, dx, dy, just, text); +} + +public void ptex3(@PLFLT@ x, @PLFLT@ y, @PLFLT@ z, @PLFLT@ dx, @PLFLT@ dy, @PLFLT@ dz, @PLFLT@ sx, @PLFLT@ sy, @PLFLT@ sz, @PLFLT@ just, String text) { + if (set_stream() == -1) return; + plplotjavac.plptex3(x, y, z, dx, dy, dz, sx, sy, sz, just, text); +} + +public void replot() { + if (set_stream() == -1) return; + plplotjavac.plreplot(); +} + +public void schr(@PLFLT@ def, @PLFLT@ scale) { + if (set_stream() == -1) return; + plplotjavac.plschr(def, scale); +} + +public void scmap0(int[] r, int[] g, int[] b) { + if (set_stream() == -1) return; + plplotjavac.plscmap0(r, g, b); +} + +public void scmap0n(int ncol0) { + if (set_stream() == -1) return; + plplotjavac.plscmap0n(ncol0); +} + +public void scmap1(int[] r, int[] g, int[] b) { + if (set_stream() == -1) return; + plplotjavac.plscmap1(r, g, b); +} + +public void scmap1l(boolean itype, @PLFLT@[] intensity, @PLFLT@[] coord1, + @PLFLT@[] coord2, @PLFLT@[] coord3, boolean[] rev) { + if (set_stream() == -1) return; + plplotjavac.plscmap1l(itype, intensity, coord1, coord2, coord3, rev); +} + +public void scmap1l(boolean itype, @PLFLT@[] intensity, @PLFLT@[] coord1, + @PLFLT@[] coord2, @PLFLT@[] coord3) { + if (set_stream() == -1) return; + plplotjavac.plscmap1l(itype, intensity, coord1, coord2, coord3, null); +} + +public void scmap1n(int ncol1) { + if (set_stream() == -1) return; + plplotjavac.plscmap1n(ncol1); +} + +public void scol0(int icol0, int r, int g, int b) { + if (set_stream() == -1) return; + plplotjavac.plscol0(icol0, r, g, b); +} + +public void scolbg(int r, int g, int b) { + if (set_stream() == -1) return; + plplotjavac.plscolbg(r, g, b); +} + +public void scolor(int color) { + if (set_stream() == -1) return; + plplotjavac.plscolor(color); +} + +public void scompression(int compression) { + if (set_stream() == -1) return; + plplotjavac.plscompression(compression); +} + +public void sdev(String devname) { + if (set_stream() == -1) return; + plplotjavac.plsdev(devname); +} + +public void sdidev(@PLFLT@ mar, @PLFLT@ aspect, @PLFLT@ jx, @PLFLT@ jy) { + if (set_stream() == -1) return; + plplotjavac.plsdidev(mar, aspect, jx, jy); +} + +public void sdimap(int dimxmin, int dimxmax, int dimymin, int dimymax, + @PLFLT@ dimxpmm, @PLFLT@ dimypmm) { + if (set_stream() == -1) return; + plplotjavac.plsdimap(dimxmin, dimxmax, dimymin, dimymax, dimxpmm, dimypmm); +} + +public void sdiori(@PLFLT@ rot) { + if (set_stream() == -1) return; + plplotjavac.plsdiori(rot); +} + +public void sdiplt(@PLFLT@ xmin, @PLFLT@ ymin, @PLFLT@ xmax, @PLFLT@ ymax) { + if (set_stream() == -1) return; + plplotjavac.plsdiplt(xmin, ymin, xmax, ymax); +} + +public void sdiplz(@PLFLT@ xmin, @PLFLT@ ymin, @PLFLT@ xmax, @PLFLT@ ymax) { + if (set_stream() == -1) return; + plplotjavac.plsdiplz(xmin, ymin, xmax, ymax); +} + +public void sesc(char esc) { + if (set_stream() == -1) return; + plplotjavac.plsesc(esc); +} + +public void setopt(String opt, String optarg) { + if (set_stream() == -1) return; + plplotjavac.plsetopt(opt, optarg); +} + +public void sfam(int fam, int num, int bmax) { + if (set_stream() == -1) return; + plplotjavac.plsfam(fam, num, bmax); +} + +public void sfnam(String fnam) { + if (set_stream() == -1) return; + plplotjavac.plsfnam(fnam); +} + +public void shades( @PLFLT@[][] a, @PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ ymin, + @PLFLT@ ymax, @PLFLT@[] clevel, int fill_width, int cont_color, + int cont_width, boolean rectangular, + @PLFLT@[][] pltr, @PLFLT@[][] OBJECT_DATA) { + if (set_stream() == -1) return; + plplotjavac.plshades( a, xmin, xmax, ymin, ymax, clevel, fill_width, + cont_color, cont_width, rectangular, pltr, OBJECT_DATA); +} + +public void shade(@PLFLT@[][] a, @PLFLT@ left, @PLFLT@ right, @PLFLT@ bottom, + @PLFLT@ top, @PLFLT@ shade_min, @PLFLT@ shade_max, int sh_cmap, + @PLFLT@ sh_color, int sh_width, int min_color, int min_width, + int max_color, int max_width, boolean rectangular, + @PLFLT@[][] pltr, @PLFLT@[][] OBJECT_DATA) { + if (set_stream() == -1) return; + plplotjavac.plshade(a, left, right, bottom, top, shade_min, shade_max, + sh_cmap, sh_color, sh_width, min_color, min_width, + max_color, max_width, rectangular, pltr, OBJECT_DATA); +} + +public void smaj(@PLFLT@ def, @PLFLT@ scale) { + if (set_stream() == -1) return; + plplotjavac.plsmaj(def, scale); +} + +public void smin(@PLFLT@ def, @PLFLT@ scale) { + if (set_stream() == -1) return; + plplotjavac.plsmin(def, scale); +} + +public void sori(int ori) { + if (set_stream() == -1) return; + plplotjavac.plsori(ori); +} + +public void spage(@PLFLT@ xp, @PLFLT@ yp, int xleng, int yleng, int xoff, int yoff) { + if (set_stream() == -1) return; + plplotjavac.plspage(xp, yp, xleng, yleng, xoff, yoff); +} + +public void spause(boolean pause) { + if (set_stream() == -1) return; + plplotjavac.plspause(pause); +} + +public void sstrm(int strm) { + if (set_stream() == -1) return; + plplotjavac.plsstrm(strm); +} + +public void ssub(int nx, int ny) { + if (set_stream() == -1) return; + plplotjavac.plssub(nx, ny); +} + +public void ssym(@PLFLT@ def, @PLFLT@ scale) { + if (set_stream() == -1) return; + plplotjavac.plssym(def, scale); +} + +public void star(int nx, int ny) { + if (set_stream() == -1) return; + plplotjavac.plstar(nx, ny); +} + +public void start(String devname, int nx, int ny) { + if (set_stream() == -1) return; + plplotjavac.plstart(devname, nx, ny); +} + +public void stripa(int id, int pen, @PLFLT@ x, @PLFLT@ y) { + if (set_stream() == -1) return; + plplotjavac.plstripa(id, pen, x, y); +} + +public void stripc(int[] id, String xspec, String yspec, + @PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ xjump, + @PLFLT@ ymin, @PLFLT@ ymax, @PLFLT@ xlpos, @PLFLT@ ylpos, + boolean y_ascl, boolean acc, int colbox, int collab, + int[] colline, int[] styline, String[] legline, + String labx, String laby, String labtop) { + if (set_stream() == -1) return; + plplotjavac.plstripc(id, xspec, yspec, xmin, xmax, xjump, ymin, ymax, + xlpos, ylpos, y_ascl, acc, colbox, collab, colline, + styline, legline, labx, laby, labtop); +} + +public void stripd(int id) { + if (set_stream() == -1) return; + plplotjavac.plstripd(id); +} + +public void styl(int[] mark, int[] space) { + if (set_stream() == -1) return; + plplotjavac.plstyl(mark, space); +} + +public void svect(@PLFLT@[] arrow_x, @PLFLT@[] arrow_y, boolean fill) { + if (set_stream() == -1) return; + plplotjavac.plsvect(arrow_x, arrow_y, fill); +} + +public void svpa(@PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ ymin, @PLFLT@ ymax) { + if (set_stream() == -1) return; + plplotjavac.plsvpa(xmin, xmax, ymin, ymax); +} + +public void sxax(int digmax, int digits) { + if (set_stream() == -1) return; + plplotjavac.plsxax(digmax, digits); +} + +public void syax(int digmax, int digits) { + if (set_stream() == -1) return; + plplotjavac.plsyax(digmax, digits); +} + +public void sym(@PLFLT@[] x, @PLFLT@[] y, int code) { + if (set_stream() == -1) return; + plplotjavac.plsym(x, y, code); +} + +public void szax(int digmax, int digits) { + if (set_stream() == -1) return; + plplotjavac.plszax(digmax, digits); +} + +public void text() { + if (set_stream() == -1) return; + plplotjavac.pltext(); +} + +public void vasp(@PLFLT@ aspect) { + if (set_stream() == -1) return; + plplotjavac.plvasp(aspect); +} + +public void vect(@PLFLT@[][] u, @PLFLT@[][] v, @PLFLT@ scale, @PLFLT@[][] pltr, @PLFLT@[][] OBJECT_DATA) { + if (set_stream() == -1) return; + plplotjavac.plvect(u, v, scale, pltr, OBJECT_DATA); +} + +public void vpas(@PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ ymin, @PLFLT@ ymax, @PLFLT@ aspect) { + if (set_stream() == -1) return; + plplotjavac.plvpas(xmin, xmax, ymin, ymax, aspect); +} + +public void vpor(@PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ ymin, @PLFLT@ ymax) { + if (set_stream() == -1) return; + plplotjavac.plvpor(xmin, xmax, ymin, ymax); +} + +public void vsta() { + if (set_stream() == -1) return; + plplotjavac.plvsta(); +} + +public void w3d(@PLFLT@ basex, @PLFLT@ basey, @PLFLT@ height, @PLFLT@ xmin0, + @PLFLT@ xmax0, @PLFLT@ ymin0, @PLFLT@ ymax0, @PLFLT@ zmin0, + @PLFLT@ zmax0, @PLFLT@ alt, @PLFLT@ az) { + if (set_stream() == -1) return; + plplotjavac.plw3d(basex, basey, height, xmin0, xmax0, ymin0, ymax0, + zmin0, zmax0, alt, az); +} + +public void wid(int width) { + if (set_stream() == -1) return; + plplotjavac.plwid(width); +} + +public void wind(@PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ ymin, @PLFLT@ ymax) { + if (set_stream() == -1) return; + plplotjavac.plwind(xmin, xmax, ymin, ymax); +} + +public void xormod(boolean mode, boolean[] status) { + if (set_stream() == -1) return; + plplotjavac.plxormod(mode, status); +} + +public void ClearOpts() { + if (set_stream() == -1) return; + plplotjavac.plClearOpts(); +} + +public void ResetOpts() { + if (set_stream() == -1) return; + plplotjavac.plResetOpts(); +} + +public void SetUsage(String program_string, String usage_string) { + if (set_stream() == -1) return; + plplotjavac.plSetUsage(program_string, usage_string); +} + +public void OptUsage() { + if (set_stream() == -1) return; + plplotjavac.plOptUsage(); +} + +public void hlsrgb(@PLFLT@ h, @PLFLT@ l, @PLFLT@ s, @PLFLT@[] r, @PLFLT@[] g, @PLFLT@[] b) { + if (set_stream() == -1) return; + plplotjavac.plhlsrgb(h,l,s,r,g,b); +} + +public void rgbhls(@PLFLT@ r, @PLFLT@ g, @PLFLT@ b, @PLFLT@[] h, @PLFLT@[] l, @PLFLT@[] s) { + if (set_stream() == -1) return; + plplotjavac.plrgbhls(r,g,b,h,l,s); +} + +// Deprecated versions of methods which use int for a flag instead of +// boolean. +public void cpstrm(int iplsr, int flags) { + if (set_stream() == -1) return; + plplotjavac.plcpstrm(iplsr, flags != 0); +} + +public void plot3d(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[][] z, int opt, int side) { + if (set_stream() == -1) return; + plplotjavac.plot3d(x, y, z, opt, side != 0); +} + +public void poly3(@PLFLT@[] x, @PLFLT@[] y, @PLFLT@[] z, int[] draw, int ifcc) { + if (set_stream() == -1) return; + boolean [] loc_draw = new boolean[draw.length]; + for (int i=0;i<draw.length;i++) { + loc_draw[i] = (draw[i]!=0); + } + plplotjavac.plpoly3(x, y, z, loc_draw, ifcc != 0); +} + +public void scmap1l(int itype, @PLFLT@[] intensity, @PLFLT@[] coord1, + @PLFLT@[] coord2, @PLFLT@[] coord3, int[] rev) { + if (set_stream() == -1) return; + boolean [] loc_rev = null; + if (rev != null) { + loc_rev = new boolean[rev.length]; + for (int i=0;i<rev.length;i++) { + loc_rev[i] = (rev[i]!=0); + } + } + plplotjavac.plscmap1l(itype != 0, intensity, coord1, coord2, coord3, loc_rev); +} + +public void shades( @PLFLT@[][] a, @PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ ymin, + @PLFLT@ ymax, @PLFLT@[] clevel, int fill_width, int cont_color, + int cont_width, int rectangular, + @PLFLT@[][] pltr, @PLFLT@[][] OBJECT_DATA) { + if (set_stream() == -1) return; + plplotjavac.plshades( a, xmin, xmax, ymin, ymax, clevel, fill_width, + cont_color, cont_width, rectangular != 0, pltr, OBJECT_DATA); +} + +public void shade(@PLFLT@[][] a, @PLFLT@ left, @PLFLT@ right, @PLFLT@ bottom, + @PLFLT@ top, @PLFLT@ shade_min, @PLFLT@ shade_max, int sh_cmap, + @PLFLT@ sh_color, int sh_width, int min_color, int min_width, + int max_color, int max_width, int rectangular, + @PLFLT@[][] pltr, @PLFLT@[][] OBJECT_DATA) { + if (set_stream() == -1) return; + plplotjavac.plshade(a, left, right, bottom, top, shade_min, shade_max, + sh_cmap, sh_color, sh_width, min_color, min_width, + max_color, max_width, rectangular != 0, pltr, OBJECT_DATA); +} + +public void spause(int pause) { + if (set_stream() == -1) return; + plplotjavac.plspause(pause != 0); +} + +public void stripc(int[] id, String xspec, String yspec, + @PLFLT@ xmin, @PLFLT@ xmax, @PLFLT@ xjump, + @PLFLT@ ymin, @PLFLT@ ymax, @PLFLT@ xlpos, @PLFLT@ ylpos, + int y_ascl, int acc, int colbox, int collab, + int[] colline, int[] styline, String[] legline, + String labx, String laby, String labtop) { + if (set_stream() == -1) return; + plplotjavac.plstripc(id, xspec, yspec, xmin, xmax, xjump, ymin, ymax, + xlpos, ylpos, y_ascl != 0, acc != 0, colbox, collab, + colline, styline, legline, labx, laby, labtop); +} + +public void svect(@PLFLT@[] arrow_x, @PLFLT@[] arrow_y, int fill) { + if (set_stream() == -1) return; + plplotjavac.plsvect(arrow_x, arrow_y, fill != 0); +} + +public void xormod(int mode, int[] status) { + if (set_stream() == -1) return; + boolean [] loc_status = new boolean[1]; + plplotjavac.plxormod(mode != 0, loc_status); + status[0] = loc_status[0] ? 1 : 0; +} + +} Modified: trunk/examples/java/CMakeLists.txt =================================================================== --- trunk/examples/java/CMakeLists.txt 2008-01-17 12:52:31 UTC (rev 8139) +++ trunk/examples/java/CMakeLists.txt 2008-01-17 19:50:45 UTC (rev 8140) @@ -64,16 +64,33 @@ ) foreach(STRING_INDEX ${java_STRING_INDICES}) - set(java_SRCS ${java_SRCS} x${STRING_INDEX}.java) + if(PL_DOUBLE) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x${STRING_INDEX}.java + COMMAND ${CMAKE_COMMAND} + -E copy ${CMAKE_CURRENT_SOURCE_DIR}/x${STRING_INDEX}.java ${CMAKE_CURRENT_BINARY_DIR}/x${STRING_INDEX}.java + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/x${STRING_INDEX}.java + ) + else(PL_DOUBLE) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/x${STRING_INDEX}.java + COMMAND sed + -e 's/double/float/g' -e 's/Double/Float/g' ${CMAKE_CURRENT_SOURCE_DIR}/x${STRING_INDEX}.java > ${CMAKE_CURRENT_BINARY_DIR}/x${STRING_INDEX}.java + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/x${STRING_INDEX}.java + ) + endif(PL_DOUBLE) + + set(java_SRCS ${java_SRCS} ${CMAKE_CURRENT_BINARY_DIR}/x${STRING_INDEX}.java) set(java_CLASSES ${java_CLASSES} ${CMAKE_CURRENT_BINARY_DIR}/plplot/examples/x${STRING_INDEX}.class) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/plplot/examples/x${STRING_INDEX}.class COMMAND ${CMAKE_Java_COMPILER} - -classpath ${CMAKE_BINARY_DIR}/bindings/java ${CMAKE_CURRENT_SOURCE_DIR}/x${STRING_INDEX}.java -d ${CMAKE_CURRENT_BINARY_DIR} -encoding utf8 - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/x${STRING_INDEX}.java + -classpath ${CMAKE_BINARY_DIR}/bindings/java ${CMAKE_CURRENT_BINARY_DIR}/x${STRING_INDEX}.java -d ${CMAKE_CURRENT_BINAR... [truncated message content] |
From: <and...@us...> - 2008-01-22 13:57:48
|
Revision: 8156 http://plplot.svn.sourceforge.net/plplot/?rev=8156&view=rev Author: andrewross Date: 2008-01-22 05:57:53 -0800 (Tue, 22 Jan 2008) Log Message: ----------- Further fixes for gd driver and alpha transparency support. Modified Paths: -------------- trunk/drivers/gd.c trunk/src/plctrl.c Modified: trunk/drivers/gd.c =================================================================== --- trunk/drivers/gd.c 2008-01-21 09:52:26 UTC (rev 8155) +++ trunk/drivers/gd.c 2008-01-22 13:57:53 UTC (rev 8156) @@ -235,6 +235,11 @@ #define gdImagePalettePixel( im, x, y ) (im)->pixels[(y)][(x)] #endif +int plToGdAlpha( PLFLT a ) { + int tmp = (int)((1.0-a)*gdAlphaMax); + return tmp; +} + /* Struct to hold device-specific info. */ typedef struct { @@ -849,8 +854,14 @@ { for (i = 0; i < ncol0; i++) { +#if GD2_VERS >= 2 + gdImageColorAllocateAlpha(dev->im_out, + pls->cmap0[i].r, pls->cmap0[i].g, pls->cmap0[i].b, + plToGdAlpha(pls->cmap0[i].a)); +#else gdImageColorAllocate(dev->im_out, pls->cmap0[i].r, pls->cmap0[i].g, pls->cmap0[i].b); +#endif ++dev->totcol; /* count the number of colours we use as we use them */ } @@ -886,8 +897,14 @@ } - gdImageColorAllocate(dev->im_out, +#if GD2_VERS >= 2 + gdImageColorAllocateAlpha(dev->im_out, + cmap1col.r, cmap1col.g, cmap1col.b, + plToGdAlpha(cmap1col.a)); +#else + gdImageColorAllocate(dev->im_out, cmap1col.r, cmap1col.g, cmap1col.b); +#endif ++dev->totcol; /* count the number of colours we use as we go */ } @@ -928,11 +945,11 @@ if ( (dev->totcol < NCOLOURS)|| /* See if there are slots left, if so we will allocate a new colour */ (gdImageTrueColor(dev->im_out)) ) /* In TrueColour mode we allocate each colour as we come to it */ { - /* Next allocate a new colour to a temporary slot since what we do with it will varay depending on if its a pallter index or truecolour */ + /* Next allocate a new colour to a temporary slot since what we do with it will vary depending on if its a palette index or truecolour */ #if GD2_VERS >= 2 temp_col=gdImageColorAllocateAlpha(dev->im_out,pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, - (int) ((1.0-pls->curcolor.a)*gdAlphaMax)); + plToGdAlpha(pls->curcolor.a)); #else temp_col=gdImageColorAllocate(dev->im_out,pls->curcolor.r, pls->curcolor.g, pls->curcolor.b); @@ -962,7 +979,7 @@ #if GD2_VERS >= 2 gdImageColorAllocateAlpha(dev->im_out,pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, - (int) ((1.0-pls->curcolor.a)*gdAlphaMax)); + plToGdAlpha(pls->curcolor.a)); #else gdImageColorAllocate(dev->im_out,pls->curcolor.r, pls->curcolor.g, pls->curcolor.b); @@ -998,9 +1015,9 @@ #if GD2_VERS >= 2 dev->colour = gdTrueColorAlpha(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b, - (int) ((1.0-pls->curcolor.a)*gdAlphaMax) ); + plToGdAlpha(pls->curcolor.a)); #else - dev->colour = gdTrueColorAlpha(pls->curcolor.r, pls->curcolor.g, + dev->colour = gdTrueColor(pls->curcolor.r, pls->curcolor.g, pls->curcolor.b); #endif } @@ -1119,11 +1136,12 @@ */ if ( (pls->cmap0[0].r!=0)||(pls->cmap0[0].g!=0)|| - (pls->cmap0[0].b!=0) ) + (pls->cmap0[0].b!=0) || (pls->cmap0[0].a!=0.0) ) { gdImageFilledRectangle(dev->im_out,0,0, pls->xlength-1, pls->ylength-1, - gdTrueColor(pls->cmap0[0].r,pls->cmap0[0].g, - pls->cmap0[0].b)); + gdTrueColorAlpha(pls->cmap0[0].r,pls->cmap0[0].g, + pls->cmap0[0].b, + plToGdAlpha(pls->cmap0[0].a) )); } } Modified: trunk/src/plctrl.c =================================================================== --- trunk/src/plctrl.c 2008-01-21 09:52:26 UTC (rev 8155) +++ trunk/src/plctrl.c 2008-01-22 13:57:53 UTC (rev 8156) @@ -1750,11 +1750,13 @@ newcolor->r = pls->cmap1[il].r; newcolor->g = pls->cmap1[il].g; newcolor->b = pls->cmap1[il].b; + newcolor->a = pls->cmap1[il].a; } else { newcolor->r = (1.-delta) * pls->cmap1[il].r + delta * pls->cmap1[ir].r; newcolor->g = (1.-delta) * pls->cmap1[il].g + delta * pls->cmap1[ir].g; newcolor->b = (1.-delta) * pls->cmap1[il].b + delta * pls->cmap1[ir].b; + newcolor->a = (1.-delta) * pls->cmap1[il].a + delta * pls->cmap1[ir].a; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-01-22 18:07:10
|
Revision: 8159 http://plplot.svn.sourceforge.net/plplot/?rev=8159&view=rev Author: andrewross Date: 2008-01-22 10:07:15 -0800 (Tue, 22 Jan 2008) Log Message: ----------- Add new date / time and alpha transparency functions to C++ bindings. Implement examples 29 and 30 for C++. Modified Paths: -------------- trunk/bindings/c++/plstream.cc trunk/bindings/c++/plstream.h trunk/examples/c++/CMakeLists.txt trunk/test/test_cxx.sh.in Added Paths: ----------- trunk/examples/c++/x29.cc trunk/examples/c++/x30.cc Modified: trunk/bindings/c++/plstream.cc =================================================================== --- trunk/bindings/c++/plstream.cc 2008-01-22 18:05:05 UTC (rev 8158) +++ trunk/bindings/c++/plstream.cc 2008-01-22 18:07:15 UTC (rev 8159) @@ -659,8 +659,17 @@ plgcol0( icol0, &r, &g, &b ); } -// Returns the background color by 8 bit RGB value/ +// Returns 8 bit RGB values + alpha value for given color from color map 0. +void plstream::gcol0a( PLINT icol0, PLINT& r, PLINT& g, PLINT& b, PLFLT& a ) +{ + set_stream(); + + plgcol0a( icol0, &r, &g, &b, &a ); +} + +// Returns the background color by 8 bit RGB value. + void plstream::gcolbg( PLINT& r, PLINT& g, PLINT& b ) { set_stream(); @@ -668,6 +677,15 @@ plgcolbg( &r, &g, &b ); } +// Returns the background color by 8 bit RGB value + alpha value. + +void plstream::gcolbga( PLINT& r, PLINT& g, PLINT& b, PLFLT& a ) +{ + set_stream(); + + plgcolbga( &r, &g, &b, &a ); +} + // Returns the current compression setting void plstream::gcompression(PLINT& compression) @@ -1241,6 +1259,15 @@ plscmap0(r,g,b,ncol0); } +/* Set color map 0 colors by 8 bit RGB values + alpha value */ + +void plstream::scmap0a( PLINT *r, PLINT *g, PLINT *b, PLFLT *a, PLINT ncol0 ) +{ + set_stream(); + + plscmap0a(r,g,b,a,ncol0); +} + /* Set color map 1 colors by 8 bit RGB values */ void plstream::scmap1( PLINT *r, PLINT *g, PLINT *b, PLINT ncol1 ) @@ -1250,6 +1277,15 @@ plscmap1(r,g,b,ncol1); } +/* Set color map 1 colors by 8 bit RGB values + alpha value */ + +void plstream::scmap1a( PLINT *r, PLINT *g, PLINT *b, PLFLT *a, PLINT ncol1 ) +{ + set_stream(); + + plscmap1a(r,g,b,a,ncol1); +} + /* Set color map 1 colors using a piece-wise linear relationship between */ /* intensity [0,1] (cmap 1 index) and position in HLS or RGB color space. */ @@ -1273,6 +1309,31 @@ delete loc_rev; } +/* Set color map 1 colors using a piece-wise linear relationship between */ +/* intensity [0,1] (cmap 1 index) and position in HLS or RGB color space */ +/* and alpha value. */ + +void plstream::scmap1la( bool itype, PLINT npts, PLFLT *intensity, + PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, + PLFLT *a, bool *rev ) +{ + PLBOOL * loc_rev = NULL; + if (rev != NULL) { + loc_rev = new PLBOOL[npts-1]; + for (int i=0;i<npts-1;i++) { + loc_rev[i] = (PLBOOL) rev[i]; + } + } + + set_stream(); + + plscmap1la((PLBOOL) itype,npts,intensity,coord1,coord2,coord3,a,loc_rev); + + if (loc_rev != NULL) + delete loc_rev; +} + +/* void plstream::scmap1l( bool itype, PLINT npts, PLFLT *intensity, PLFLT *coord1, PLFLT *coord2, PLFLT *coord3) { @@ -1281,6 +1342,7 @@ plscmap1l((PLBOOL) itype,npts,intensity,coord1,coord2,coord3,NULL); } +*/ // Deprecated version using PLINT instead of bool void plstream::scmap1l( PLINT itype, PLINT npts, PLFLT *intensity, @@ -1312,6 +1374,15 @@ plscol0(icol0,r,g,b); } +/* Set a given color from color map 0 by 8 bit RGB value + alpha value*/ + +void plstream::scol0a( PLINT icol0, PLINT r, PLINT g, PLINT b, PLFLT a ) +{ + set_stream(); + + plscol0a(icol0,r,g,b,a); +} + /* Set the background color by 8 bit RGB value */ void plstream::scolbg( PLINT r, PLINT g, PLINT b ) @@ -1919,6 +1990,15 @@ pltext(); } +/* Set the format for date / time labels */ + +void plstream::timefmt(const char *fmt) +{ + set_stream(); + + pltimefmt(fmt); +} + /* Sets the edges of the viewport with the given aspect ratio, leaving */ /* room for labels. */ Modified: trunk/bindings/c++/plstream.h =================================================================== --- trunk/bindings/c++/plstream.h 2008-01-22 18:05:05 UTC (rev 8158) +++ trunk/bindings/c++/plstream.h 2008-01-22 18:07:15 UTC (rev 8159) @@ -275,10 +275,18 @@ void gcol0( PLINT icol0, PLINT& r, PLINT& g, PLINT& b ); +// Returns 8 bit RGB and 0.0-1.0 alpha values for given color from color map 0. + + void gcol0a( PLINT icol0, PLINT& r, PLINT& g, PLINT& b, PLFLT& a ); + // Returns the background color by 8 bit RGB value. void gcolbg( PLINT& r, PLINT& g, PLINT& b ); +// Returns the background color by 8 bit RGB and 0.0-1.0 alpha values. + + void gcolbga( PLINT& r, PLINT& g, PLINT& b, PLFLT& a ); + // Returns the current compression setting void gcompression(PLINT& compression); @@ -533,23 +541,43 @@ void scmap0( PLINT *r, PLINT *g, PLINT *b, PLINT ncol0 ); +/* Set color map 0 colors by 8 bit RGB values and alpha value (0.0-1.0) */ + + void scmap0a( PLINT *r, PLINT *g, PLINT *b, PLFLT *a, PLINT ncol0 ); + /* Set color map 1 colors by 8 bit RGB values */ void scmap1( PLINT *r, PLINT *g, PLINT *b, PLINT ncol1 ); +/* Set color map 1 colors by 8 bit RGB values and alpha value (0.0-1.0) */ + + void scmap1a( PLINT *r, PLINT *g, PLINT *b, PLFLT *a, PLINT ncol1 ); + /* Set color map 1 colors using a piece-wise linear relationship between */ /* intensity [0,1] (cmap 1 index) and position in HLS or RGB color space. */ void scmap1l( bool itype, PLINT npts, PLFLT *intensity, - PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, bool *rev ); + PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, bool *rev = NULL ); - void scmap1l( bool itype, PLINT npts, PLFLT *intensity, - PLFLT *coord1, PLFLT *coord2, PLFLT *coord3 ); +/* void scmap1l( bool itype, PLINT npts, PLFLT *intensity, + PLFLT *coord1, PLFLT *coord2, PLFLT *coord3 );*/ +/* Set color map 1 colors using a piece-wise linear relationship between */ +/* intensity [0,1] (cmap 1 index) and position in HLS or RGB color space. */ +/* Include alpha value in range 0.0-1.0.*/ + + void scmap1la( bool itype, PLINT npts, PLFLT *intensity, + PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, PLFLT *a, + bool *rev = NULL ); + /* Set a given color from color map 0 by 8 bit RGB value */ void scol0( PLINT icol0, PLINT r, PLINT g, PLINT b ); +/* Set a given color from color map 0 by 8 bit RGB value and alpha value (0.0-1.0) */ + + void scol0a( PLINT icol0, PLINT r, PLINT g, PLINT b, PLFLT a ); + /* Set the background color by 8 bit RGB value */ void scolbg( PLINT r, PLINT g, PLINT b ); @@ -772,6 +800,10 @@ void text(); +/* Set the format for date / time labels */ + + void timefmt(const char *fmt); + /* Sets the edges of the viewport with the given aspect ratio, leaving */ /* room for labels. */ Modified: trunk/examples/c++/CMakeLists.txt =================================================================== --- trunk/examples/c++/CMakeLists.txt 2008-01-22 18:05:05 UTC (rev 8158) +++ trunk/examples/c++/CMakeLists.txt 2008-01-22 18:07:15 UTC (rev 8159) @@ -52,6 +52,8 @@ "25" "26" "28" +"29" +"30" ) if(BUILD_TEST) Added: trunk/examples/c++/x29.cc =================================================================== --- trunk/examples/c++/x29.cc (rev 0) +++ trunk/examples/c++/x29.cc 2008-01-22 18:07:15 UTC (rev 8159) @@ -0,0 +1,231 @@ +// $Id:$ +// +// Sample plots using date / time formatting for axes +// +// Copyright (C) 2007 Andrew Ross +// +// This file is part of PLplot. +// +// PLplot is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Library Public License as published +// by the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// PLplot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Library General Public License for more details. +// +// You should have received a copy of the GNU Library General Public License +// along with PLplot; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// + +#include "plc++demos.h" + +#ifdef USE_NAMESPACE +using namespace std; +#endif + +#include <ctime> + +class x29 { +public: + x29(int, const char**); + +private: + plstream *pls; + + PLFLT x[365], y[365]; + + // Function prototypes + void plot1(); + void plot2(); + void plot3(); + + PLFLT MIN(PLFLT x, PLFLT y) { return (x<y?x:y);}; + PLFLT MAX(PLFLT x, PLFLT y) { return (x>y?x:y);}; + +}; + +//--------------------------------------------------------------------------*\ +// main +// +// Draws several plots which demonstrate the use of date / time formats for +// the axis labels. +// Time formatting is done using the system strftime routine. See the +// documentation of this for full details of the available formats. +// +// 1) Plotting temperature over a day (using hours / minutes) +// 2) Plotting +// +// Note: Times are stored as seconds since the epoch (usually 1st Jan 1970). +// +//-------------------------------------------------------------------------- + +x29::x29(int argc, const char *argv[]) +{ + + pls = new plstream(); + + /* Parese command line arguments */ + pls->parseopts(&argc, argv, PL_PARSE_FULL); + + /* Initialize plplot */ + pls->init(); + + plot1(); + + plot2(); + + plot3(); + + delete pls; +} + +/* Plot a model diurnal cycle of temperature */ +void +x29::plot1() +{ + int i, npts; + PLFLT xmin, xmax, ymin, ymax; + + /* Data points every 10 minutes for 1 day */ + npts = 145; + + xmin = 0; + xmax = 60.0*60.0*24.0; /* Number of seconds in a day */ + ymin = 10.0; + ymax = 20.0; + + for (i=0;i<npts;i++) { + x[i] = xmax*((PLFLT) i/(PLFLT)npts); + y[i] = 15.0 - 5.0*cos( 2*M_PI*((PLFLT) i / (PLFLT) npts)); + } + + pls->adv(0); + + pls->vsta(); + pls->wind(xmin, xmax, ymin, ymax); + + /* Draw a box with ticks spaced every 3 hour in X and 1 degree C in Y. */ + pls->col0(1); + pls->timefmt("%H:%M"); + pls->box("bcnstd", 3.0*60*60, 3, "bcnstv", 1, 5); + + pls->col0(3); + pls->lab("Time (hours:mins)", "Temperature (degC)", "#frPLplot Example 29 - Daily temperature"); + + pls->col0(4); + + pls->line(npts, x, y); +} + +/* Plot the number of hours of daylight as a function of day for a year */ +void +x29::plot2() +{ + int j, npts; + PLFLT xmin, xmax, ymin, ymax; + PLFLT lat, p, d; + + /* Latitude for London */ + lat = 51.5; + + npts = 365; + + xmin = 0; + xmax = npts*60.0*60.0*24.0; + ymin = 0; + ymax = 24; + + /* Formula for hours of daylight from + * "A Model Comparison for Daylength as a Function of Latitude and + * Day of the Year", 1995, Ecological Modelling, 80, pp 87-95. */ + for (j = 0; j < npts; j++) { + x[j] = j*60.0*60.0*24.0; + p = asin(0.39795*cos(0.2163108 + 2*atan(0.9671396*tan(0.00860*(j-186))))); + d = 24.0 - (24.0/M_PI)* + acos( (sin(0.8333*M_PI/180.0) + sin(lat*M_PI/180.0)*sin(p)) / + (cos(lat*M_PI/180.0)*cos(p)) ); + y[j] = d; + } + + pls->col0(1); + pls->timefmt("%d %b"); + pls->env(xmin, xmax, ymin, ymax, 0, 40); + + + pls->col0(3); + pls->lab("Date", "Hours of daylight", "#frPLplot Example 29 - Hours of daylight at 51.5N"); + + pls->col0(4); + + pls->line(npts, x, y); + +} + +void +x29::plot3() +{ + int i, npts; + PLFLT xmin, xmax, ymin, ymax; + time_t tstart, t1, t2; + double toff; + + struct tm tm; + + /* Warning: mktime is in local time so we need to calculate + * offset to get UTC. C time handling is quirky */ + t1 = 0; + tm = *gmtime(&t1); + t2 = mktime(&tm); + toff = difftime(t1,t2); + + tm.tm_year = 105; /* Years since 1900 */ + tm.tm_mon = 11; /* 0 == January, 11 = December */ + tm.tm_mday = 1; /* 1 = 1st of month */ + tm.tm_hour = 0; + tm.tm_min = 0; + tm.tm_sec = 0; + + tstart = mktime(&tm); + + npts = 62; + + xmin = (PLFLT) tstart + toff; + xmax = xmin + npts*60.0*60.0*24.0; + ymin = 0.0; + ymax = 5.0; + + for (i = 0; i<npts; i++) { + x[i] = xmin + i*60.0*60.0*24.0; + y[i] = 1.0 + sin( 2*M_PI*( (PLFLT) i ) / 7.0 ) + + exp( ((PLFLT) MIN(i,npts-i)) / 31.0); + } + pls->adv(0); + + pls->vsta(); + pls->wind(xmin, xmax, ymin, ymax); + + /* Draw a box with ticks spaced every 10 days in X and 1 hour in Y. */ + pls->col0(1); + pls->timefmt("%y-%m-%d"); + pls->box("bcnstd", 10*24.0*60.0*60.0,10, "bcnstv", 1, 4); + + pls->col0(3); + pls->lab("Date", "Hours of television watched", "#frPLplot Example 29 - Hours of television watched in Dec 2005 / Jan 2006"); + + pls->col0(4); + + pls->poin(npts, x, y, 2); + pls->line(npts, x, y); + +} + +int main( int argc, const char **argv ) +{ + x29 *x = new x29( argc, argv ); + + delete x; +} Added: trunk/examples/c++/x30.cc =================================================================== --- trunk/examples/c++/x30.cc (rev 0) +++ trunk/examples/c++/x30.cc 2008-01-22 18:07:15 UTC (rev 8159) @@ -0,0 +1,194 @@ +/* + Alpha color values demonstration. + + Copyright (C) 2008 Hazen Babcock + + + This file is part of PLplot. + + PLplot is free software; you can redistribute it and/or modify + it under the terms of the GNU General Library Public License as published + by the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + PLplot is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with PLplot; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + This example will only really be interesting when used with devices that + support or alpha (or transparency) values, such as the cairo device family. + */ + + +#include "plc++demos.h" + +#ifdef USE_NAMESPACE +using namespace std; +#endif + +class x30 { +public: + x30(int, const char **); + +private: + plstream *pls; + + static PLINT red[]; + static PLINT green[]; + static PLINT blue[]; + static PLFLT alpha[]; + + static PLFLT px[]; + static PLFLT py[]; + + static PLFLT pos[]; + static PLFLT rcoord[]; + static PLFLT gcoord[]; + static PLFLT bcoord[]; + static PLFLT acoord[]; + static PLBOOL rev[]; +}; + +PLINT x30::red[] = { 0, 255, 0, 0}; +PLINT x30::green[] = { 0, 0, 255, 0}; +PLINT x30::blue[] = { 0, 0, 0, 255}; +PLFLT x30::alpha[] = {1.0, 1.0, 1.0, 1.0}; + +PLFLT x30::px[] = {0.1, 0.5, 0.5, 0.1}; +PLFLT x30::py[] = {0.1, 0.1, 0.5, 0.5}; + +PLFLT x30::pos[] = {0.0, 1.0}; +PLFLT x30::rcoord[] = {1.0, 1.0}; +PLFLT x30::gcoord[] = {0.0, 0.0}; +PLFLT x30::bcoord[] = {0.0, 0.0}; +PLFLT x30::acoord[] = {0.0, 1.0}; + +x30::x30(int argc, const char *argv[]) +{ + int i, j; + PLINT icol, r, g, b; + PLFLT a; + PLFLT clevel[101]; + PLFLT **z; + + pls = new plstream; + + pls->parseopts (&argc, argv, PL_PARSE_FULL); + + pls->init (); + pls->scmap0n (4); + pls->scmap0a (red, green, blue, alpha, 4); + + /* + Page 1: + + This is a series of red, green and blue rectangles overlaid + on each other with gradually increasing transparency. + */ + + /* Set up the window */ + pls->adv (0); + pls->vpor (0.0, 1.0, 0.0, 1.0); + pls->wind (0.0, 1.0, 0.0, 1.0); + pls->col0 (0); + pls->box ("", 1.0, 0, "", 1.0, 0); + + /* Draw the boxes */ + for (i = 0; i < 9; i++) { + icol = i%3 + 1; + + /* Get a color, change its transparency and */ + /* set it as the current color. */ + pls->gcol0a (icol, r, g, b, a); + pls->scol0a (icol, r, g, b, 1.0 - (double)i/9.0); + pls->col0 (icol); + + /* Draw the rectangle */ + pls->fill (4, px, py); + + /* Shift the rectangles coordinates */ + for (j = 0; j < 4; j++){ + px[j] += 0.5/9.0; + py[j] += 0.5/9.0; + } + } + + /* + Page 2: + + This is a bunch of boxes colored red, green or blue with a single + large (red) box of linearly varying transparency overlaid. The + overlaid box is completely transparent at the bottom and completely + opaque at the top. + */ + + /* Set up the window */ + pls->adv(0); + pls->vpor(0.1, 0.9, 0.1, 0.9); + pls->wind(0.0, 1.0, 0.0, 1.0); + + /* Draw the boxes. There are 25 of them drawn on a 5 x 5 grid. */ + for(i = 0; i < 5; i++){ + /* Set box X position */ + px[0] = 0.05 + 0.2 * i; + px[1] = px[0] + 0.1; + px[2] = px[1]; + px[3] = px[0]; + + /* We don't want the boxes to be transparent, so since we changed */ + /* the colors transparencies in the first example we have to change */ + /* the transparencies back to completely opaque. */ + icol = i%3 + 1; + pls->gcol0a (icol, r, g, b, a); + pls->scol0a (icol, r, g, b, 1.0); + pls->col0 (icol); + for(j = 0; j < 5; j++){ + /* Set box y position and draw the box. */ + py[0] = 0.05 + 0.2 * j; + py[1] = py[0]; + py[2] = py[0] + 0.1; + py[3] = py[2]; + pls->fill(4, px, py); + } + } + + /* The overlaid box is drawn using plshades with a color map that is */ + /* the same color but has a linearly varying transparency. */ + + /* Create the color map with 128 colors and use plscmap1la to initialize */ + /* the color values with a linear varying transparency (or alpha) */ + pls->scmap1n(128); + pls->scmap1la(true, 2, pos, rcoord, gcoord, bcoord, acoord); + + /* Create a 2 x 2 array that contains the z values (0.0 to 1.0) that will */ + /* used for the shade plot. plshades will use linear interpolation to */ + /* calculate the z values of all the intermediate points in this array. */ + pls->Alloc2dGrid(&z, 2, 2); + z[0][0] = 0.0; + z[1][0] = 0.0; + z[0][1] = 1.0; + z[1][1] = 1.0; + + /* Set the color levels array. These levels are also between 0.0 and 1.0 */ + for(i=0;i<101;i++){ + clevel[i] = 0.01 * (PLFLT)i; + } + + /* Draw the shade plot with zmin = 0.0, zmax = 1.0 and x and y coordinate ranges */ + /* such that it fills the entire plotting area. */ + pls->shades(z, 2, 2, NULL, 0.0, 1.0, 0.0, 1.0, clevel, 101, 0, -1, 2, plfill, 1, NULL, NULL); + + delete pls; +} + +int main( int argc, const char **argv ) +{ + x30 *x = new x30( argc, argv ); + + delete x; +} Modified: trunk/test/test_cxx.sh.in =================================================================== --- trunk/test/test_cxx.sh.in 2008-01-22 18:05:05 UTC (rev 8158) +++ trunk/test/test_cxx.sh.in 2008-01-22 18:07:15 UTC (rev 8159) @@ -34,7 +34,7 @@ # Do the standard non-interactive examples. # skip 14 because it requires two output files. # skip 17 because it is interactive. -for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 20 21 22 23 24 25 26 28; do +for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 20 21 22 23 24 25 26 28 29 30; do $cxxdir/x${index} -dev $device -o ${OUTPUT_DIR}/x${index}cxx.$dsuffix $options 2> test.error status_code=$? cat test.error This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-01-23 09:58:15
|
Revision: 8162 http://plplot.svn.sourceforge.net/plplot/?rev=8162&view=rev Author: andrewross Date: 2008-01-23 01:58:21 -0800 (Wed, 23 Jan 2008) Log Message: ----------- Add missing scolbga to includes and C++ bindings. Modified Paths: -------------- trunk/bindings/c++/plstream.cc trunk/bindings/c++/plstream.h trunk/include/plplot.h Modified: trunk/bindings/c++/plstream.cc =================================================================== --- trunk/bindings/c++/plstream.cc 2008-01-22 18:12:00 UTC (rev 8161) +++ trunk/bindings/c++/plstream.cc 2008-01-23 09:58:21 UTC (rev 8162) @@ -1392,6 +1392,15 @@ plscolbg(r,g,b); } +/* Set the background color by 8 bit RGB + alpha value */ + +void plstream::scolbga( PLINT r, PLINT g, PLINT b, PLFLT a ) +{ + set_stream(); + + plscolbga(r,g,b,a); +} + /* Used to globally turn color output on/off */ void plstream::scolor( PLINT color ) Modified: trunk/bindings/c++/plstream.h =================================================================== --- trunk/bindings/c++/plstream.h 2008-01-22 18:12:00 UTC (rev 8161) +++ trunk/bindings/c++/plstream.h 2008-01-23 09:58:21 UTC (rev 8162) @@ -582,6 +582,10 @@ void scolbg( PLINT r, PLINT g, PLINT b ); +/* Set the background color by 8 bit RGB + alpha value */ + + void scolbga( PLINT r, PLINT g, PLINT b, PLFLT a ); + /* Used to globally turn color output on/off */ void scolor( PLINT color ); Modified: trunk/include/plplot.h =================================================================== --- trunk/include/plplot.h 2008-01-22 18:12:00 UTC (rev 8161) +++ trunk/include/plplot.h 2008-01-23 09:58:21 UTC (rev 8162) @@ -564,6 +564,7 @@ #define plscol0 c_plscol0 #define plscol0a c_plscol0a #define plscolbg c_plscolbg +#define plscolbga c_plscolbga #define plscolor c_plscolor #define plscompression c_plscompression #define plsdev c_plsdev This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-01-25 00:19:32
|
Revision: 8166 http://plplot.svn.sourceforge.net/plplot/?rev=8166&view=rev Author: airwin Date: 2008-01-24 16:19:35 -0800 (Thu, 24 Jan 2008) Log Message: ----------- AWI for Jerry Bauck. Add standard examples 6 and 7. Modified Paths: -------------- trunk/examples/ada/CMakeLists.txt trunk/test/test_ada.sh.in Added Paths: ----------- trunk/examples/ada/x06a.adb.cmake trunk/examples/ada/x07a.adb.cmake trunk/examples/ada/xthick06a.adb.cmake trunk/examples/ada/xthick07a.adb.cmake Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2008-01-24 14:41:02 UTC (rev 8165) +++ trunk/examples/ada/CMakeLists.txt 2008-01-25 00:19:35 UTC (rev 8166) @@ -24,6 +24,8 @@ "03" "04" "05" +"06" +"07" "10" "12" "thick01" @@ -31,6 +33,8 @@ "thick03" "thick04" "thick05" +"thick06" +"thick07" "thick10" "thick12" ) Added: trunk/examples/ada/x06a.adb.cmake =================================================================== --- trunk/examples/ada/x06a.adb.cmake (rev 0) +++ trunk/examples/ada/x06a.adb.cmake 2008-01-25 00:19:35 UTC (rev 8166) @@ -0,0 +1,92 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- Displays the entire "plpoin" symbol (font) set. + +-- Copyright (C) 2008 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; +use + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; + +-- COMMENT THIS LINE IF YOUR COMPILER DOES NOT INCLUDE THESE +-- DEFINITIONS, FOR EXAMPLE, IF IT IS NOT ADA 2005 WITH ANNEX G.3 COMPLIANCE. +--with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays; +@Ada_Is_2007_With_and_Use_Numerics@ + +procedure x06a is + + k : Integer; + x, y : Real_Vector(1 .. 1); + +begin + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + + pladv(0); + + -- Set up viewport and window + plcol0(2); + plvpor(0.1, 1.0, 0.1, 0.9); + plwind(0.0, 1.0, 0.0, 1.3); + + -- Draw the grid using plbox + plbox("bcg", 0.1, 0, "bcg", 0.1, 0); + + -- Write the digits below the frame + plcol0(15); + for i in 0 .. 9 loop + plmtex("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); + end loop; + + k := 0; + for i in 0 .. 12 loop + + -- Write the digits to the left of the frame + plmtex("lv", 1.0, (1.0 - (2.0 * Long_Float(i) + 1.0) / 26.0), 1.0, Trim(Integer'image(10 * i), Left)); + for j in 0 .. 9 loop + x(1) := 0.1 * Long_Float(j) + 0.05; + y(1) := 1.25 - 0.1 * Long_Float(i); + + -- Display the symbols (plpoin expects that x and y are arrays so + -- pass pointers) + if k < 128 then + plpoin(x, y, k); + end if; + k := k + 1; + end loop; + end loop; + + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols"); + plend; + +end x06a; Property changes on: trunk/examples/ada/x06a.adb.cmake ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/examples/ada/x07a.adb.cmake =================================================================== --- trunk/examples/ada/x07a.adb.cmake (rev 0) +++ trunk/examples/ada/x07a.adb.cmake 2008-01-25 00:19:35 UTC (rev 8166) @@ -0,0 +1,94 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- Font demo. + +-- Copyright (C) 2008 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; +use + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; + +-- COMMENT THIS LINE IF YOUR COMPILER DOES NOT INCLUDE THESE +-- DEFINITIONS, FOR EXAMPLE, IF IT IS NOT ADA 2005 WITH ANNEX G.3 COMPLIANCE. +--with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays; +@Ada_Is_2007_With_and_Use_Numerics@ + +procedure x07a is + + k : Integer; + x, y : Real_Vector(1 .. 1); + base : array(0 .. 16) of Integer := (0, 200, 500, 600, 700, 800, 900, 2000, + 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900); + +begin + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + + plfontld(1); + for l in 0 .. 16 loop + pladv(0); + + -- Set up viewport and window + plcol0(2); + plvpor(0.15, 0.95, 0.1, 0.9); + plwind(0.0, 1.0, 0.0, 1.0); + + -- Draw the grid using plbox + plbox("bcg", 0.1, 0, "bcg", 0.1, 0); + + -- Write the digits below the frame + plcol0(15); + for i in 0 .. 9 loop + plmtex("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); + end loop; + + k := 0; + for i in 0 .. 9 loop + + -- Write the digits to the left of the frame + plmtex("lv", 1.0, (0.95 - 0.1 * Long_Float(i)), 1.0, Trim(Integer'image(base(l) + 10 * i), Left)); + for j in 0 .. 9 loop + x(1) := 0.1 * Long_Float(j) + 0.05; + y(1) := 0.95 - 0.1 * Long_Float(i); + + -- Display the symbols + plsym(x, y, base(l) + k); + k := k + 1; + end loop; + end loop; + + plmtex("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols"); + end loop; + plend; + +end x07a; Property changes on: trunk/examples/ada/x07a.adb.cmake ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/examples/ada/xthick06a.adb.cmake =================================================================== --- trunk/examples/ada/xthick06a.adb.cmake (rev 0) +++ trunk/examples/ada/xthick06a.adb.cmake 2008-01-25 00:19:35 UTC (rev 8166) @@ -0,0 +1,92 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- Displays the entire "Draw_Points" symbol (font) set. + +-- Copyright (C) 2008 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot, + PLplot_Auxiliary; +use + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot, + PLplot_Auxiliary; + +-- COMMENT THIS LINE IF YOUR COMPILER DOES NOT INCLUDE THESE +-- DEFINITIONS, FOR EXAMPLE, IF IT IS NOT ADA 2005 WITH ANNEX G.3 COMPLIANCE. +--with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays; +@Ada_Is_2007_With_and_Use_Numerics@ + +procedure xthick06a is + + k : Integer; + x, y : Real_Vector(1 .. 1); + +begin + -- Parse and process command line arguments + Parse_Command_Line_Arguments(Parse_Full); + + -- Initialize plplot + Initialize_PLplot; + + Advance_To_Subpage(0); + + -- Set up viewport and window + Set_Pen_Color(2); + Set_Viewport_Normalized(0.1, 1.0, 0.1, 0.9); + Set_Viewport_World(0.0, 1.0, 0.0, 1.3); + + -- Draw the grid using Box_Around_Viewport + Box_Around_Viewport("bcg", 0.1, 0, "bcg", 0.1, 0); + + -- Write the digits below the frame + Set_Pen_Color(15); + for i in 0 .. 9 loop + Write_Text_Viewport("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); + end loop; + + k := 0; + for i in 0 .. 12 loop + + -- Write the digits to the left of the frame + Write_Text_Viewport("lv", 1.0, (1.0 - (2.0 * Long_Float(i) + 1.0) / 26.0), 1.0, Trim(Integer'image(10 * i), Left)); + for j in 0 .. 9 loop + x(1) := 0.1 * Long_Float(j) + 0.05; + y(1) := 1.25 - 0.1 * Long_Float(i); + + -- Display the symbols (Draw_Points expects that x and y are arrays so + -- pass pointers) + if k < 128 then + Draw_Points(x, y, k); + end if; + k := k + 1; + end loop; + end loop; + + Write_Text_Viewport("t", 1.5, 0.5, 0.5, "PLplot Example 6 - plpoin symbols"); + End_PLplot; + +end xthick06a; Property changes on: trunk/examples/ada/xthick06a.adb.cmake ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/examples/ada/xthick07a.adb.cmake =================================================================== --- trunk/examples/ada/xthick07a.adb.cmake (rev 0) +++ trunk/examples/ada/xthick07a.adb.cmake 2008-01-25 00:19:35 UTC (rev 8166) @@ -0,0 +1,94 @@ +-- $Id: x01a.adb.cmake 8022 2007-11-13 18:58:30Z airwin $ + +-- Font demo. + +-- Copyright (C) 2008 Jerry Bauck + +-- This file is part of PLplot. + +-- PLplot is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Library Public License as published +-- by the Free Software Foundation; either version 2 of the License, or +-- (at your option) any later version. + +-- PLplot is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Library General Public License for more details. + +-- You should have received a copy of the GNU Library General Public License +-- along with PLplot; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +with + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot, + PLplot_Auxiliary; +use + Ada.Strings, + Ada.Strings.Fixed, + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot, + PLplot_Auxiliary; + +-- COMMENT THIS LINE IF YOUR COMPILER DOES NOT INCLUDE THESE +-- DEFINITIONS, FOR EXAMPLE, IF IT IS NOT ADA 2005 WITH ANNEX G.3 COMPLIANCE. +--with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays; +@Ada_Is_2007_With_and_Use_Numerics@ + +procedure xthick07a is + + k : Integer; + x, y : Real_Vector(1 .. 1); + base : array(0 .. 16) of Integer := (0, 200, 500, 600, 700, 800, 900, 2000, + 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900); + +begin + -- Parse and process command line arguments + Parse_Command_Line_Arguments(Parse_Full); + + -- Initialize plplot + Initialize_PLplot; + + Set_Characer_Set(1); + for l in 0 .. 16 loop + Advance_To_Subpage(0); + + -- Set up viewport and window + Set_Pen_Color(2); + Set_Viewport_Normalized(0.15, 0.95, 0.1, 0.9); + Set_Viewport_World(0.0, 1.0, 0.0, 1.0); + + -- Draw the grid using Box_Around_Viewport + Box_Around_Viewport("bcg", 0.1, 0, "bcg", 0.1, 0); + + -- Write the digits below the frame + Set_Pen_Color(15); + for i in 0 .. 9 loop + Write_Text_Viewport("b", 1.5, (0.1 * Long_Float(i) + 0.05), 0.5, Trim(Integer'image(i), Left)); + end loop; + + k := 0; + for i in 0 .. 9 loop + + -- Write the digits to the left of the frame + Write_Text_Viewport("lv", 1.0, (0.95 - 0.1 * Long_Float(i)), 1.0, Trim(Integer'image(base(l) + 10 * i), Left)); + for j in 0 .. 9 loop + x(1) := 0.1 * Long_Float(j) + 0.05; + y(1) := 0.95 - 0.1 * Long_Float(i); + + -- Display the symbols + Draw_Hershey_Symbol(x, y, base(l) + k); + k := k + 1; + end loop; + end loop; + + Write_Text_Viewport("t", 1.5, 0.5, 0.5, "PLplot Example 7 - PLSYM symbols"); + end loop; + End_PLplot; + +end xthick07a; Property changes on: trunk/examples/ada/xthick07a.adb.cmake ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/test/test_ada.sh.in =================================================================== --- trunk/test/test_ada.sh.in 2008-01-24 14:41:02 UTC (rev 8165) +++ trunk/test/test_ada.sh.in 2008-01-25 00:19:35 UTC (rev 8166) @@ -27,7 +27,7 @@ # pushd $adadir; make; popd # Do the standard non-interactive examples. -for index in 01 02 03 04 05 10 12 thick01 thick02 thick03 thick04 thick05 thick10 thick12; do +for index in 01 02 03 04 05 06 07 10 12 thick01 thick02 thick03 thick04 thick05 thick06 thick07 thick10 thick12; do $adadir/x${index}a -dev $device -o ${OUTPUT_DIR}/x${index}a.$dsuffix $options 2> test.error status_code=$? cat test.error This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-01-25 11:06:37
|
Revision: 8171 http://plplot.svn.sourceforge.net/plplot/?rev=8171&view=rev Author: andrewross Date: 2008-01-25 03:06:35 -0800 (Fri, 25 Jan 2008) Log Message: ----------- Add new date / time and alpha transparency functions to octave bindings. Implement examples 29 and 30 in octave. Modified Paths: -------------- trunk/bindings/octave/demos/CMakeLists.txt trunk/bindings/octave/plplot_octave.h.in trunk/test/test_octave.sh.in Added Paths: ----------- trunk/bindings/octave/demos/x29c.m Modified: trunk/bindings/octave/demos/CMakeLists.txt =================================================================== --- trunk/bindings/octave/demos/CMakeLists.txt 2008-01-25 10:28:16 UTC (rev 8170) +++ trunk/bindings/octave/demos/CMakeLists.txt 2008-01-25 11:06:35 UTC (rev 8171) @@ -70,6 +70,8 @@ x25c.m x26c.m x28c.m +x29c.m +x30c.m lena.img ) Added: trunk/bindings/octave/demos/x29c.m =================================================================== --- trunk/bindings/octave/demos/x29c.m (rev 0) +++ trunk/bindings/octave/demos/x29c.m 2008-01-25 11:06:35 UTC (rev 8171) @@ -0,0 +1,178 @@ +## $Id:$ +## +## Sample plots using date / time formatting for axes +## +## Copyright (C) 2007, 2008 Andrew Ross +## +## +## This file is part of PLplot. +## +## PLplot is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Library Public License as published +## by the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## PLplot is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU Library General Public License for more details. +## +## You should have received a copy of the GNU Library General Public License +## along with PLplot; if not, write to the Free Software +## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +## + +1; + +## + +function ix29c + + ## Parse command line arguments */ + ## plparseopts(&argc, argv, PL_PARSE_FULL); + + ## Initialize plplot + plinit(); + + plot1(); + + plot2(); + + plot3(); + + ## Clean up + plend1(); + +endfunction + + + +## Plot a model diurnal cycle of temperature +function plot1 + + ## Data points every 10 minutes for 1 day + npts = 145; + + xmin = 0; + xmax = 60.0*60.0*24.0; ## Number of seconds in a day + ymin = 10.0; + ymax = 20.0; + + i = 0:npts-1; + x = i*xmax/npts; + y = 15.0 - 5.0*cos( 2*pi*i/npts); + + pladv(0); + + plvsta(); + plwind(xmin, xmax, ymin, ymax); + + ## Draw a box with ticks spaced every 3 hour in X and 1 degree C in Y. + plcol0(1); + ## Set time format to be hours:minutes + pltimefmt("%H:%M"); + plbox("bcnstd", 3.0*60*60, 3, "bcnstv", 1, 5); + + plcol0(3); + pllab("Time (hours:mins)", "Temperature (degC)", "#frPLplot Example 29 - Daily temperature"); + + plcol0(4); + + plline(x', y'); +endfunction + +## Plot the number of hours of daylight as a function of day for a year +function plot2 + + ## Latitude for London + lat = 51.5; + + npts = 365; + + xmin = 0; + xmax = npts*60.0*60.0*24.0; + ymin = 0; + ymax = 24; + + ## Formula for hours of daylight from + ## "A Model Comparison for Daylength as a Function of Latitude and + ## Day of the Year", 1995, Ecological Modelling, 80, pp 87-95. + i = 0:npts-1; + x = i*60.0*60.0*24.0; + p = asin(0.39795*cos(0.2163108 + 2*atan(0.9671396*tan(0.00860*(i-186))))); + d = 24.0 - (24.0/pi)*acos( (sin(0.8333*pi/180.0) + \ + sin(lat*pi/180.0)*sin(p)) \ + ./(cos(lat*pi/180.0)*cos(p)) ); + y = d; + + plcol0(1); + ## Set time format to be abbreviated month name followed by day of month + pltimefmt("%b %d"); + plenv(xmin, xmax, ymin, ymax, 0, 40); + + + plcol0(3); + pllab("Date", "Hours of daylight", "#frPLplot Example 29 - Hours of daylight at 51.5N"); + + plcol0(4); + + plline(x', y'); + +endfunction + +function plot3 + + ## Warning: mktime is in local time so we need to calculate + ## offset to get UTC. C time handling is quirky + t1 = 0; + tm = gmtime(t1); + t2 = mktime(tm); + ## Octave doesn't have difftime, so assume that time is an arithmetic + ## type in seconds + ## toff = difftime(t1,t2); + toff = t1-t2; + + tm.year = 105; ## Years since 1900 + tm.mon = 11; ## 0 == January, 11 = December + tm.mday = 1; ## 1 = 1st of month + tm.hour = 0; + tm.min = 0; + tm.sec = 0; + + tstart = mktime(tm); + + npts = 62; + + + xmin = tstart + toff; + xmax = xmin + npts*60.0*60.0*24.0; + ymin = 0.0; + ymax = 5.0; + + i = 0:npts-1; + x = xmin + i*60.0*60.0*24.0; + y = 1.0 + sin( 2*pi*i / 7.0 ) + exp( min(i,npts-i) / 31.0); + + pladv(0); + + plvsta(); + plwind(xmin, xmax, ymin, ymax); + plcol0(1); + ## Set time format to be ISO 8601 standard YYYY-MM-DD. Note that this is + ## equivalent to %f for C99 compliant implementations of strftime. + pltimefmt("%Y-%m-%d"); + ## Draw a box with ticks spaced every 14 days in X and 1 hour in Y. + plbox("bcnstd", 14*24.0*60.0*60.0,14, "bcnstv", 1, 4); + + plcol0(3); + pllab("Date", "Hours of television watched", "#frPLplot Example 29 - Hours of television watched in Dec 2005 / Jan 2006"); + + plcol0(4); + + plpoin(x', y', 2); + plline(x', y'); + +endfunction + +ix29c + \ No newline at end of file Property changes on: trunk/bindings/octave/demos/x29c.m ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/bindings/octave/plplot_octave.h.in =================================================================== --- trunk/bindings/octave/plplot_octave.h.in 2008-01-25 10:28:16 UTC (rev 8170) +++ trunk/bindings/octave/plplot_octave.h.in 2008-01-25 11:06:35 UTC (rev 8171) @@ -455,7 +455,9 @@ #define plfontld c_plfontld #define plgchr c_plgchr #define plgcol0 c_plgcol0 +#define plgcol0a c_plgcol0a #define plgcolbg c_plgcolbg +#define plgcolbga c_plgcolbga #define plgcompression c_plgcompression #define plgdev c_plgdev #define plgdidev c_plgdidev @@ -514,7 +516,9 @@ #define plscmap1n c_plscmap1n #define plscmap1l c_plscmap1l #define plscol0 c_plscol0 +#define plscol0a c_plscol0a #define plscolbg c_plscolbg +#define plscolbga c_plscolbga #define plscolor c_plscolor #define plscompression c_plscompression #define plsdev c_plsdev @@ -551,6 +555,7 @@ #define plsym c_plsym #define plszax c_plszax #define pltext c_pltext +#define pltimefmt c_pltimefmt #define plvasp c_plvasp #define plvect c_plvect #define plvpas c_plvpas @@ -818,10 +823,18 @@ void c_plgcol0(PLINT icol0, PLINT *r, PLINT *g, PLINT *b); //%name plgcol0 //%output r, g, b +/* Returns 8 bit RGB + alpha values for given color from color map 0 */ + +void c_plgcol0a(PLINT icol0, PLINT *r, PLINT *g, PLINT *b, PLFLT *a); //%name plgcol0a //%output r, g, b, a + /* Returns the background color by 8 bit RGB value */ void c_plgcolbg(PLINT *r, PLINT *g, PLINT *b); //%name plgcolbg //%output r, g, b +/* Returns the background color by 8 bit RGB + alpha values */ + +void c_plgcolbga(PLINT *r, PLINT *g, PLINT *b, PLFLT *a); //%name plgcolbga //%output r, g, b, a + /* Returns the current compression setting */ void c_plgcompression(PLINT *compression); //%name plgcompression //%output compression @@ -1114,6 +1127,30 @@ void c_plscolbg(PLINT r, PLINT g, PLINT b); //%name plscolbg +/* Set color map 0 colors by 8 bit RGB + alpha values */ + +void c_plscmap0a(PLINT *r, PLINT *g, PLINT *b, PLFLT *a, PLINT ncol0); //%name plscmap0a //%input r(ncol0), g(ncol0), b(ncol0), a(ncol0) + +/* Set color map 1 colors by 8 bit RGB + alpha values */ + +void c_plscmap1a(PLINT *r, PLINT *g, PLINT *b, PLFLT *a, PLINT ncol1); //%name plscmap1a //%input r(ncol1), g(ncol1), b(ncol1), a(ncol1) + +/* Set color map 1 colors using a piece-wise linear relationship between */ +/* intensity [0,1] (cmap 1 index) and position in HLS or RGB color space */ +/* and alpha transparency value. */ + +void c_plscmap1la(PLINT itype, PLINT npts, PLFLT *intensity, + PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, PLFLT *a, PLINT *rev); +//%name plscmap1la //%input intensity(npts), coord1(npts), coord2(npts), coord3(npts), a(npts), rev(npts) + +/* Set a given color from color map 0 by 8 bit RGB + alpha value */ + +void c_plscol0a(PLINT icol0, PLINT r, PLINT g, PLINT b, PLFLT a); //%name plscol0a + +/* Set the background color by 8 bit RGB + alpha value */ + +void c_plscolbga(PLINT r, PLINT g, PLINT b, PLFLT a); //%name plscolbga + /* Used to globally turn color output on/off */ void c_plscolor(PLINT color); //%name plscolor @@ -1391,6 +1428,10 @@ void c_pltext(void); //%name pltext +/* Set the format for date / time labels. */ + +void c_pltimefmt(const char *fmt); //%name pltimefmt + /* Sets the edges of the viewport with the given aspect ratio, leaving */ /* room for labels. */ Modified: trunk/test/test_octave.sh.in =================================================================== --- trunk/test/test_octave.sh.in 2008-01-25 10:28:16 UTC (rev 8170) +++ trunk/test/test_octave.sh.in 2008-01-25 11:06:35 UTC (rev 8171) @@ -62,7 +62,7 @@ #(and should probably be dropped anyway since the map stuff is not #in the API that is supposed to be common to all front ends.) failed = []; -for i=[1:13 15 16 18 20:26 28 ]; +for i=[1:13 15 16 18 20:26 28:30 ]; cmd = sprintf("x%.2dc",i); t = split("$options", "-"); t(1,:)=""; for j=1:rows(t) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-01-25 19:21:40
|
Revision: 8173 http://plplot.svn.sourceforge.net/plplot/?rev=8173&view=rev Author: airwin Date: 2008-01-25 11:21:45 -0800 (Fri, 25 Jan 2008) Log Message: ----------- Rename pc_transform_link_flags macro to pkg-config_link_flags. Modified Paths: -------------- trunk/bindings/gnome2/lib/CMakeLists.txt trunk/bindings/tcl/CMakeLists.txt trunk/bindings/wxwidgets/CMakeLists.txt trunk/src/CMakeLists.txt Modified: trunk/bindings/gnome2/lib/CMakeLists.txt =================================================================== --- trunk/bindings/gnome2/lib/CMakeLists.txt 2008-01-25 16:58:18 UTC (rev 8172) +++ trunk/bindings/gnome2/lib/CMakeLists.txt 2008-01-25 19:21:45 UTC (rev 8173) @@ -72,7 +72,7 @@ # Transform "${gcw_LINK_FLAGS}" to the # standard pkg-config form. -pc_transform_link_flags( +pkg_config_link_flags( libplplot${LIB_TAG}_LINK_FLAGS "${gcw_LINK_FLAGS}" ) Modified: trunk/bindings/tcl/CMakeLists.txt =================================================================== --- trunk/bindings/tcl/CMakeLists.txt 2008-01-25 16:58:18 UTC (rev 8172) +++ trunk/bindings/tcl/CMakeLists.txt 2008-01-25 19:21:45 UTC (rev 8173) @@ -188,7 +188,7 @@ # Transform "${libplplottcltk${LIB_TAG}_LINK_FLAGS}" string to the # standard pkg-config form. -pc_transform_link_flags( +pkg_config_link_flags( libplplottcltk${LIB_TAG}_LINK_FLAGS "${libplplottcltk${LIB_TAG}_LINK_FLAGS}" ) Modified: trunk/bindings/wxwidgets/CMakeLists.txt =================================================================== --- trunk/bindings/wxwidgets/CMakeLists.txt 2008-01-25 16:58:18 UTC (rev 8172) +++ trunk/bindings/wxwidgets/CMakeLists.txt 2008-01-25 19:21:45 UTC (rev 8173) @@ -110,7 +110,7 @@ ) # Determine libplplotwxwidgets${LIB_TAG}_LINK_FLAGS - pc_transform_link_flags( + pkg_config_link_flags( libplplotwxwidgets${LIB_TAG}_LINK_FLAGS "${wxWidgets_LIBRARIES}" ) Modified: trunk/src/CMakeLists.txt =================================================================== --- trunk/src/CMakeLists.txt 2008-01-25 16:58:18 UTC (rev 8172) +++ trunk/src/CMakeLists.txt 2008-01-25 19:21:45 UTC (rev 8173) @@ -142,7 +142,7 @@ # Transform "${libplplot${LIB_TAG}_LINK_LIBRARIES}" string to the # standard pkg-config form. -pc_transform_link_flags( +pkg_config_link_flags( libplplot${LIB_TAG}_LINK_FLAGS "${libplplot${LIB_TAG}_LINK_LIBRARIES}" ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-01-29 10:50:43
|
Revision: 8186 http://plplot.svn.sourceforge.net/plplot/?rev=8186&view=rev Author: andrewross Date: 2008-01-29 02:50:48 -0800 (Tue, 29 Jan 2008) Log Message: ----------- Final(?) round of (char *) to (const char *) changes which cleans up the tcl / tk bindings. Modified Paths: -------------- trunk/bindings/tcl/pltcl.h trunk/bindings/tcl/pltclgen.tcl trunk/bindings/tcl/tclAPI.c trunk/bindings/tcl/tclMain.c trunk/bindings/tcl/tclMatrix.c trunk/bindings/tcl/tclMatrix.h trunk/bindings/tcl/tclcmd.tpl trunk/bindings/tk/plframe.c trunk/bindings/tk/plserver.h trunk/bindings/tk-x-plat/plplotter.c trunk/include/pdf.h trunk/utils/pltcl.c Modified: trunk/bindings/tcl/pltcl.h =================================================================== --- trunk/bindings/tcl/pltcl.h 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tcl/pltcl.h 2008-01-29 10:50:48 UTC (rev 8186) @@ -23,7 +23,7 @@ /* Main program for a Tcl-based shell that reads Tcl commands from stdin. */ int PLDLLIMPEXP -pltclMain(int argc, char **argv, char *RcFileName, +pltclMain(int argc, const char **argv, char *RcFileName, int (*AppInit)(Tcl_Interp *interp)); /* tclAPI.c */ @@ -31,7 +31,7 @@ int plTclCmd(char *cmdlist, Tcl_Interp *interp, - int argc, char **argv); + int argc, const char **argv); /* Initialization routine for PLplot-extended tclsh's (like pltcl). */ @@ -50,12 +50,12 @@ /* Tcl command -- wait until the specified condition is satisfied. */ int -plWait_Until(ClientData, Tcl_Interp *, int, char **); +plWait_Until(ClientData, Tcl_Interp *, int, const char **); /* Tcl command -- return the IP address for the current host. */ int -plHost_ID(ClientData clientData, Tcl_Interp *interp, int argc, char **argv); +plHost_ID(ClientData clientData, Tcl_Interp *interp, int argc, const char **argv); #ifdef __cplusplus } Modified: trunk/bindings/tcl/pltclgen.tcl =================================================================== --- trunk/bindings/tcl/pltclgen.tcl 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tcl/pltclgen.tcl 2008-01-29 10:50:48 UTC (rev 8186) @@ -41,7 +41,7 @@ puts "\nautogenerating Tcl command proc for $rtype $cmd ()" } - puts $GENHEAD "static int ${cmd}Cmd( ClientData, Tcl_Interp *, int, char **);" + puts $GENHEAD "static int ${cmd}Cmd( ClientData, Tcl_Interp *, int, const char **);" puts $GENSTRUCT " {\"$cmd\", ${cmd}Cmd}," set args "" @@ -132,7 +132,7 @@ puts $GENFILE " tclMatrix *mat$argname($i);" } "const char *" { - puts $GENFILE " char *$argname($i);" + puts $GENFILE " const char *$argname($i);" } "char *" { puts $GENFILE " char $argname($i)\[200\];" Modified: trunk/bindings/tcl/tclAPI.c =================================================================== --- trunk/bindings/tcl/tclAPI.c 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tcl/tclAPI.c 2008-01-29 10:50:48 UTC (rev 8186) @@ -49,19 +49,19 @@ /* PLplot/Tcl API handlers. Prototypes must come before Cmds struct */ -static int loopbackCmd (ClientData, Tcl_Interp *, int, char **); -static int plcontCmd (ClientData, Tcl_Interp *, int, char **); -static int plmeshCmd (ClientData, Tcl_Interp *, int, char **); -static int plmeshcCmd (ClientData, Tcl_Interp *, int, char **); -static int plot3dCmd (ClientData, Tcl_Interp *, int, char **); -static int plot3dcCmd (ClientData, Tcl_Interp *, int, char **); -static int plsurf3dCmd (ClientData, Tcl_Interp *, int, char **); -static int plsetoptCmd (ClientData, Tcl_Interp *, int, char **); -static int plshadeCmd (ClientData, Tcl_Interp *, int, char **); -static int plshadesCmd (ClientData, Tcl_Interp *, int, char **); -static int plmapCmd (ClientData, Tcl_Interp *, int, char **); -static int plmeridiansCmd (ClientData, Tcl_Interp *, int, char **); -static int plvectCmd (ClientData, Tcl_Interp *, int, char **); +static int loopbackCmd (ClientData, Tcl_Interp *, int, const char **); +static int plcontCmd (ClientData, Tcl_Interp *, int, const char **); +static int plmeshCmd (ClientData, Tcl_Interp *, int, const char **); +static int plmeshcCmd (ClientData, Tcl_Interp *, int, const char **); +static int plot3dCmd (ClientData, Tcl_Interp *, int, const char **); +static int plot3dcCmd (ClientData, Tcl_Interp *, int, const char **); +static int plsurf3dCmd (ClientData, Tcl_Interp *, int, const char **); +static int plsetoptCmd (ClientData, Tcl_Interp *, int, const char **); +static int plshadeCmd (ClientData, Tcl_Interp *, int, const char **); +static int plshadesCmd (ClientData, Tcl_Interp *, int, const char **); +static int plmapCmd (ClientData, Tcl_Interp *, int, const char **); +static int plmeridiansCmd (ClientData, Tcl_Interp *, int, const char **); +static int plvectCmd (ClientData, Tcl_Interp *, int, const char **); /* * The following structure defines all of the commands in the PLplot/Tcl @@ -79,7 +79,7 @@ typedef struct { char *name; - int (*proc)(void *, struct Tcl_Interp *, int, char **); + int (*proc)(void *, struct Tcl_Interp *, int, const char **); } CmdInfo; /* Built-in commands, and the procedures associated with them */ @@ -238,7 +238,7 @@ \*--------------------------------------------------------------------------*/ int -plTclCmd(char *cmdlist, Tcl_Interp *interp, int argc, char **argv) +plTclCmd(char *cmdlist, Tcl_Interp *interp, int argc, const char **argv) { register Tcl_HashEntry *hPtr; int result = TCL_OK; @@ -300,7 +300,7 @@ static int loopbackCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv) + int argc, const char **argv) { register Tcl_HashEntry *hPtr; int result = TCL_OK; @@ -554,7 +554,7 @@ \*----------------------------------------------------------------------*/ int -plWait_Until(ClientData clientData, Tcl_Interp *interp, int argc, char **argv) +plWait_Until(ClientData clientData, Tcl_Interp *interp, int argc, const char **argv) { int result = 0; @@ -766,11 +766,11 @@ static int plcontCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { tclMatrix *matPtr, *matf, *matclev; PLINT nx, ny, kx=0, lx=0, ky=0, ly=0, nclev; - char *pltrname = "pltr0"; + const char *pltrname = "pltr0"; tclMatrix *mattrx = NULL, *mattry = NULL; PLFLT **z, **zused, **zwrapped; @@ -1064,11 +1064,11 @@ \*---------------------------------------------------------------------------*/ static int plvectCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { tclMatrix *matPtr, *matu, *matv; PLINT nx, ny; - char *pltrname = "pltr0"; + const char *pltrname = "pltr0"; tclMatrix *mattrx = NULL, *mattry = NULL; PLFLT **u, **v, **uused, **vused, **uwrapped, **vwrapped; PLFLT scaling; @@ -1369,7 +1369,7 @@ static int plmeshCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { PLINT nx, ny, opt; PLFLT *x, *y, **z; @@ -1490,7 +1490,7 @@ static int plmeshcCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { PLINT nx, ny, opt, nlev=10; PLFLT *x, *y, **z; @@ -1695,7 +1695,7 @@ static int plot3dCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { PLINT nx, ny, opt, side; PLFLT *x, *y, **z; @@ -1818,7 +1818,7 @@ static int plot3dcCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { PLINT nx, ny, opt, nlev=10; PLFLT *x, *y, **z; @@ -2026,7 +2026,7 @@ static int plsurf3dCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { PLINT nx, ny, opt, nlev=10; PLFLT *x, *y, **z; @@ -2222,7 +2222,7 @@ static int plsetoptCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv) + int argc, const char **argv) { if (argc < 2 || argc > 3) { Tcl_AppendResult(interp, "wrong # args: should be \"", @@ -2261,7 +2261,7 @@ static int plshadeCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { tclMatrix *matPtr, *matz, *mattrx = NULL, *mattry = NULL; PLFLT **z, **zused, **zwrapped; @@ -2270,7 +2270,7 @@ PLINT sh_cmap =1, sh_wid =2; PLINT min_col =1, min_wid =0, max_col =0, max_wid =0; PLINT rect =1; - char *pltrname = "pltr0"; + const char *pltrname = "pltr0"; void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer); PLPointer pltr_data = NULL; PLcGrid cgrid1; @@ -2535,7 +2535,7 @@ static int plshadesCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { tclMatrix *matPtr, *matz, *mattrx = NULL, *mattry = NULL; tclMatrix *matclevel = NULL; @@ -2543,7 +2543,7 @@ PLFLT xmin, xmax, ymin, ymax; PLINT fill_width = 0, cont_color = 0, cont_width =0; PLINT rect =1; - char *pltrname = "pltr0"; + const char *pltrname = "pltr0"; void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer); PLPointer pltr_data = NULL; PLcGrid cgrid1; @@ -2818,7 +2818,7 @@ static int plmapCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { PLFLT minlong, maxlong, minlat, maxlat; PLINT transform; @@ -2857,7 +2857,7 @@ static int plmeridiansCmd( ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { PLFLT dlong, dlat, minlong, maxlong, minlat, maxlat; PLINT transform; Modified: trunk/bindings/tcl/tclMain.c =================================================================== --- trunk/bindings/tcl/tclMain.c 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tcl/tclMain.c 2008-01-29 10:50:48 UTC (rev 8186) @@ -90,7 +90,7 @@ extern int isatty _ANSI_ARGS_((int fd)); extern char * strcpy _ANSI_ARGS_((char *dst, CONST char *src)); -static char *tclStartupScriptFileName = NULL; +static const char *tclStartupScriptFileName = NULL; /* pltcl enhancements */ @@ -107,7 +107,7 @@ /* Options data structure definition. */ static char *tclStartupScript = NULL; -static char *pltcl_notes[] = { +static const char *pltcl_notes[] = { "Specifying the filename on the command line is compatible with modern", "tclsh syntax. Old tclsh's used the -f syntax, which is still supported.", "You may use either syntax but not both.", @@ -188,7 +188,7 @@ * *---------------------------------------------------------------------- */ -char *TclGetStartupScriptFileName(void) +const char *TclGetStartupScriptFileName(void) { return tclStartupScriptFileName; } @@ -215,7 +215,7 @@ */ int PLDLLEXPORT -pltclMain(int argc, char **argv, char *RcFileName /* OBSOLETE */, +pltclMain(int argc, const char **argv, char *RcFileName /* OBSOLETE */, int (*appInitProc)(Tcl_Interp *interp)) { Tcl_Obj *resultPtr; Modified: trunk/bindings/tcl/tclMatrix.c =================================================================== --- trunk/bindings/tcl/tclMatrix.c 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tcl/tclMatrix.c 2008-01-29 10:50:48 UTC (rev 8186) @@ -71,12 +71,12 @@ static int matrixInitialize(Tcl_Interp* interp, tclMatrix* m, - int dim, int offs, int nargs, char** args); + int dim, int offs, int nargs, const char** args); /* Invoked to process the "matrix" Tcl command. */ static int -MatrixCmd(ClientData clientData, Tcl_Interp *interp, int argc, char **argv); +MatrixCmd(ClientData clientData, Tcl_Interp *interp, int argc, const char **argv); /* Causes matrix command to be deleted. */ @@ -92,13 +92,13 @@ /* These do the put/get operations for each supported type */ static void -MatrixPut_f(ClientData clientData, Tcl_Interp* interp, int index, char *string); +MatrixPut_f(ClientData clientData, Tcl_Interp* interp, int index, const char *string); static void MatrixGet_f(ClientData clientData, Tcl_Interp* interp, int index, char *string); static void -MatrixPut_i(ClientData clientData, Tcl_Interp* interp, int index, char *string); +MatrixPut_i(ClientData clientData, Tcl_Interp* interp, int index, const char *string); static void MatrixGet_i(ClientData clientData, Tcl_Interp* interp, int index, char *string); @@ -121,7 +121,7 @@ int Tcl_MatrixCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv) + int argc, const char **argv) { register tclMatrix *matPtr; int i, j, length, new, index, persist = 0, initializer = 0; @@ -350,7 +350,7 @@ \*--------------------------------------------------------------------------*/ tclMatrix PLDLLIMPEXP * -Tcl_GetMatrixPtr(Tcl_Interp *interp, char *matName) +Tcl_GetMatrixPtr(Tcl_Interp *interp, const char *matName) { Tcl_HashEntry *hPtr; @@ -436,7 +436,7 @@ \*--------------------------------------------------------------------------*/ static int matrixInitialize(Tcl_Interp* interp, tclMatrix* m, - int dim, int offs, int nargs, char** args) + int dim, int offs, int nargs, const char** args) { static int verbose = 0; @@ -461,7 +461,7 @@ else newoffs = 0; - matrixInitialize(interp, m, dim + 1, newoffs, numnewargs, newargs); + matrixInitialize(interp, m, dim + 1, newoffs, numnewargs, (const char **) newargs); /* Must use Tcl_Free since allocated by Tcl */ Tcl_Free((char *) newargs); } @@ -495,12 +495,12 @@ static int MatrixCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv) + int argc, const char **argv) { register tclMatrix *matPtr = (tclMatrix *) clientData; int length, put = 0; char c, tmp[80]; - char *name = argv[0]; + const char *name = argv[0]; int nmin[MAX_ARRAY_DIM], nmax[MAX_ARRAY_DIM]; int i, j, k; @@ -878,7 +878,7 @@ \*--------------------------------------------------------------------------*/ static void -MatrixPut_f(ClientData clientData, Tcl_Interp* interp, int index, char *string) +MatrixPut_f(ClientData clientData, Tcl_Interp* interp, int index, const char *string) { tclMatrix *matPtr = (tclMatrix *) clientData; @@ -895,7 +895,7 @@ } static void -MatrixPut_i(ClientData clientData, Tcl_Interp* interp, int index, char *string) +MatrixPut_i(ClientData clientData, Tcl_Interp* interp, int index, const char *string) { tclMatrix *matPtr = (tclMatrix *) clientData; Modified: trunk/bindings/tcl/tclMatrix.h =================================================================== --- trunk/bindings/tcl/tclMatrix.h 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tcl/tclMatrix.h 2008-01-29 10:50:48 UTC (rev 8186) @@ -76,7 +76,7 @@ /* These do the put/get operations for each supported type */ - void (*put) (ClientData clientData, Tcl_Interp* interp, int index, char *string); + void (*put) (ClientData clientData, Tcl_Interp* interp, int index, const char *string); void (*get) (ClientData clientData, Tcl_Interp* interp, int index, char *string); } tclMatrix; @@ -326,17 +326,17 @@ int Tcl_MatrixCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv); + int argc, const char **argv); /* Returns a pointer to the specified matrix operator's data. */ tclMatrix PLDLLIMPEXP * -Tcl_GetMatrixPtr(Tcl_Interp *interp, char *matName); +Tcl_GetMatrixPtr(Tcl_Interp *interp, const char *matName); /* Some stuff for handling extension subcommands. */ typedef int (*tclMatrixXtnsnProc) ( tclMatrix *pm, Tcl_Interp *interp, - int argc, char *argv[] ); + int argc, const char *argv[] ); typedef struct tclMatrixXtnsnDescr { char *cmd; Modified: trunk/bindings/tcl/tclcmd.tpl =================================================================== --- trunk/bindings/tcl/tclcmd.tpl 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tcl/tclcmd.tpl 2008-01-29 10:50:48 UTC (rev 8186) @@ -5,7 +5,7 @@ \*--------------------------------------------------------------------------*/ static int -%cmd%Cmd( ClientData clientData, Tcl_Interp *interp, int argc, char *argv[] ) +%cmd%Cmd( ClientData clientData, Tcl_Interp *interp, int argc, const char *argv[] ) { <argdecls> Modified: trunk/bindings/tk/plframe.c =================================================================== --- trunk/bindings/tk/plframe.c 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tk/plframe.c 2008-01-29 10:50:48 UTC (rev 8186) @@ -271,7 +271,7 @@ /* Externals */ - int plFrameCmd (ClientData, Tcl_Interp *, int, char **); + int plFrameCmd (ClientData, Tcl_Interp *, int, const char **); /* These are invoked by the TK dispatcher */ @@ -290,28 +290,28 @@ static void PlFrameEnterEH (ClientData, register XEvent *); static void PlFrameLeaveEH (ClientData, register XEvent *); static void PlFrameKeyEH (ClientData, register XEvent *); -static int PlFrameWidgetCmd (ClientData, Tcl_Interp *, int, char **); +static int PlFrameWidgetCmd (ClientData, Tcl_Interp *, int, const char **); static int ReadData (ClientData, int); static void Install_cmap (PlFrame *plFramePtr); /* These are invoked by PlFrameWidgetCmd to process widget commands */ -static int Closelink (Tcl_Interp *, PlFrame *, int, char **); -static int Cmd (Tcl_Interp *, PlFrame *, int, char **); -static int ColorManip (Tcl_Interp *, PlFrame *, int, char **); -static int ConfigurePlFrame (Tcl_Interp *, PlFrame *, int, char **, int); -static int Draw (Tcl_Interp *, PlFrame *, int, char **); -static int Info (Tcl_Interp *, PlFrame *, int, char **); -static int Openlink (Tcl_Interp *, PlFrame *, int, char **); -static int Orient (Tcl_Interp *, PlFrame *, int, char **); -static int Page (Tcl_Interp *, PlFrame *, int, char **); -static int Print (Tcl_Interp *, PlFrame *, int, char **); -static int Redraw (Tcl_Interp *, PlFrame *, int, char **); -static int Save (Tcl_Interp *, PlFrame *, int, char **); -static int View (Tcl_Interp *, PlFrame *, int, char **); -static int xScroll (Tcl_Interp *, PlFrame *, int, char **); -static int yScroll (Tcl_Interp *, PlFrame *, int, char **); -static int report (Tcl_Interp *, PlFrame *, int, char **); +static int Closelink (Tcl_Interp *, PlFrame *, int, const char **); +static int Cmd (Tcl_Interp *, PlFrame *, int, const char **); +static int ColorManip (Tcl_Interp *, PlFrame *, int, const char **); +static int ConfigurePlFrame (Tcl_Interp *, PlFrame *, int, const char **, int); +static int Draw (Tcl_Interp *, PlFrame *, int, const char **); +static int Info (Tcl_Interp *, PlFrame *, int, const char **); +static int Openlink (Tcl_Interp *, PlFrame *, int, const char **); +static int Orient (Tcl_Interp *, PlFrame *, int, const char **); +static int Page (Tcl_Interp *, PlFrame *, int, const char **); +static int Print (Tcl_Interp *, PlFrame *, int, const char **); +static int Redraw (Tcl_Interp *, PlFrame *, int, const char **); +static int Save (Tcl_Interp *, PlFrame *, int, const char **); +static int View (Tcl_Interp *, PlFrame *, int, const char **); +static int xScroll (Tcl_Interp *, PlFrame *, int, const char **); +static int yScroll (Tcl_Interp *, PlFrame *, int, const char **); +static int report (Tcl_Interp *, PlFrame *, int, const char **); /* Routines for manipulating graphic crosshairs */ @@ -334,7 +334,7 @@ /* Utility routines */ -static void gbox (PLFLT *, PLFLT *, PLFLT *, PLFLT *, char **); +static void gbox (PLFLT *, PLFLT *, PLFLT *, PLFLT *, const char **); static void UpdateVScrollbar (register PlFrame *); static void UpdateHScrollbar (register PlFrame *); @@ -358,7 +358,7 @@ int plFrameCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv) + int argc, const char **argv) { Tk_Window new; register PlFrame *plFramePtr; @@ -506,7 +506,7 @@ static int PlFrameWidgetCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv) + int argc, const char **argv) { register PlFrame *plFramePtr = (PlFrame *) clientData; int result = TCL_OK; @@ -1702,7 +1702,7 @@ static int scol0(Tcl_Interp *interp, register PlFrame *plFramePtr, - int i, char *col, int *p_changed) + int i, const char *col, int *p_changed) { PLStream *pls = plFramePtr->pls; XColor xcol; @@ -1746,7 +1746,7 @@ static int scol1(Tcl_Interp *interp, register PlFrame *plFramePtr, - int i, char *col, char *pos, char *rev, int *p_changed) + int i, const char *col, const char *pos, const char *rev, int *p_changed) { PLStream *pls = plFramePtr->pls; XColor xcol; @@ -1823,12 +1823,13 @@ static int ColorManip(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { PLStream *pls = plFramePtr->pls; int length; char c; int result = TCL_OK; + char *tmpstring; #ifdef DEBUG if (pls->debug) { @@ -1927,7 +1928,9 @@ } pls->ncol0 = ncol0; - col = strtok(argv[2], " "); + tmpstring = (char *) malloc(strlen(argv[2])+1); + strcpy(tmpstring,argv[2]); + col = strtok(tmpstring, " "); for (i = 0; i < pls->ncol0; i++) { if ( col == NULL ) break; @@ -1937,6 +1940,7 @@ col = strtok(NULL, " "); } + free(tmpstring); if (changed) plP_state(PLSTATE_CMAP0); @@ -1956,7 +1960,9 @@ return TCL_ERROR; } - col = strtok(argv[2], " "); + tmpstring = (char *) malloc(strlen(argv[2])+1); + strcpy(tmpstring,argv[2]); + col = strtok(tmpstring, " "); pos = strtok(NULL, " "); rev = strtok(NULL, " "); for (i = 0; i < ncp1; i++) { @@ -1971,6 +1977,7 @@ pos = strtok(NULL, " "); rev = strtok(NULL, " "); } + free(tmpstring); if (changed) { PLStream *pls = plFramePtr->pls; @@ -2032,7 +2039,7 @@ static int Cmd(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { int result = TCL_OK; char cmdlist[] = ""; @@ -2095,7 +2102,7 @@ static int ConfigurePlFrame(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv, int flags) + int argc, const char **argv, int flags) { register Tk_Window tkwin = plFramePtr->tkwin; PLStream *pls = plFramePtr->pls; @@ -2206,7 +2213,7 @@ static int Draw(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { register Tk_Window tkwin = plFramePtr->tkwin; int result = TCL_OK; @@ -2298,7 +2305,7 @@ static int Info(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { int length; char c; @@ -2356,7 +2363,7 @@ static int Openlink(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { register PLRDev *plr = plFramePtr->plr; register PLiodev *iodev = plr->iodev; @@ -2448,7 +2455,7 @@ static int Closelink(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { register PLRDev *plr = plFramePtr->plr; register PLiodev *iodev = plr->iodev; @@ -2570,7 +2577,7 @@ static int Orient(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { int result = TCL_OK; @@ -2611,7 +2618,7 @@ static int Print(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { PLINT ipls; int result = TCL_OK; @@ -2695,7 +2702,7 @@ static int Page(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { /* page -- return current device window parameters */ @@ -2734,7 +2741,7 @@ static int Redraw(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { dbug_enter("Redraw"); @@ -2758,7 +2765,7 @@ static int Save(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { int length; char c; @@ -2884,7 +2891,7 @@ static int View(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { int length; char c; @@ -2990,7 +2997,7 @@ static int xScroll(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { int x0, width = Tk_Width(plFramePtr->tkwin); PLFLT xl, xr, yl, yr, xlen; @@ -3024,7 +3031,7 @@ static int yScroll(Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv) + int argc, const char **argv) { int y0, height = Tk_Height(plFramePtr->tkwin); PLFLT xl, xr, yl, yr, ylen; @@ -3058,7 +3065,7 @@ static int report( Tcl_Interp *interp, register PlFrame *plFramePtr, - int argc, char **argv ) + int argc, const char **argv ) { PLFLT x, y; /* fprintf( stdout, "Made it into report, argc=%d\n", argc ); */ @@ -3203,7 +3210,7 @@ \*--------------------------------------------------------------------------*/ static void -gbox(PLFLT *xl, PLFLT *yl, PLFLT *xr, PLFLT *yr, char **argv) +gbox(PLFLT *xl, PLFLT *yl, PLFLT *xr, PLFLT *yr, const char **argv) { PLFLT x0, y0, x1, y1; Modified: trunk/bindings/tk/plserver.h =================================================================== --- trunk/bindings/tk/plserver.h 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tk/plserver.h 2008-01-29 10:50:48 UTC (rev 8186) @@ -35,10 +35,10 @@ int plFrameCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv); + int argc, const char **argv); int plPlotterCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv); + int argc, const char **argv); /* plr.c */ /* Set default state parameters before anyone else has a chance to. */ Modified: trunk/bindings/tk-x-plat/plplotter.c =================================================================== --- trunk/bindings/tk-x-plat/plplotter.c 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/bindings/tk-x-plat/plplotter.c 2008-01-29 10:50:48 UTC (rev 8186) @@ -267,7 +267,7 @@ /* Externals */ -int plPlotterCmd (ClientData, Tcl_Interp *, int, char **); +int plPlotterCmd (ClientData, Tcl_Interp *, int, const char **); void PlplotterAtEop(Tcl_Interp *interp, register PlPlotter *plPlotterPtr); void PlplotterAtBop(Tcl_Interp *interp, register PlPlotter *plPlotterPtr); @@ -346,7 +346,7 @@ int plPlotterCmd(ClientData clientData, Tcl_Interp *interp, - int argc, char **argv) + int argc, const char **argv) { Tk_Window tkwin; register PlPlotter *plPlotterPtr; @@ -1647,7 +1647,7 @@ /* no option -- return list of available PLplot commands */ if (argc == 0) - return plTclCmd(cmdlist, interp, argc, (char **) argv); + return plTclCmd(cmdlist, interp, argc, argv); /* Make sure widget has been initialized before going any further */ @@ -1849,7 +1849,7 @@ /* unrecognized, so give it to plTclCmd to take care of */ else - result = plTclCmd(cmdlist, interp, argc, (char **)argv); + result = plTclCmd(cmdlist, interp, argc, argv); plflush(); return result; Modified: trunk/include/pdf.h =================================================================== --- trunk/include/pdf.h 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/include/pdf.h 2008-01-29 10:50:48 UTC (rev 8186) @@ -62,10 +62,10 @@ typedef struct { int fd; /* I/O device file descriptor */ FILE *file; /* File handle */ - char *fileName; /* Fifo or socket name (if needed) */ - char *fileHandle; /* Handle for use from interpreter */ + const char *fileName; /* Fifo or socket name (if needed) */ + const char *fileHandle; /* Handle for use from interpreter */ int type; /* Communication channel type */ - char *typeName; /* As above, but in string form */ + const char *typeName; /* As above, but in string form */ } PLiodev; /* Error numbers */ Modified: trunk/utils/pltcl.c =================================================================== --- trunk/utils/pltcl.c 2008-01-29 10:17:17 UTC (rev 8185) +++ trunk/utils/pltcl.c 2008-01-29 10:50:48 UTC (rev 8186) @@ -52,7 +52,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char **argv) +main(int argc, const char **argv) { exit(pltclMain(argc, argv, NULL, AppInit)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-01-29 17:29:23
|
Revision: 8187 http://plplot.svn.sourceforge.net/plplot/?rev=8187&view=rev Author: andrewross Date: 2008-01-29 09:24:29 -0800 (Tue, 29 Jan 2008) Log Message: ----------- Add fortran 77 versions of example 29 and 30. Fix a bug in the f77 bindings this brought to light. Modified Paths: -------------- trunk/bindings/f77/plstubs.h trunk/examples/f77/CMakeLists.txt trunk/examples/f77/Makefile.examples.in trunk/test/test_f77.sh.in Added Paths: ----------- trunk/examples/f77/x29f.fm4 trunk/examples/f77/x30f.fm4 Modified: trunk/bindings/f77/plstubs.h =================================================================== --- trunk/bindings/f77/plstubs.h 2008-01-29 10:50:48 UTC (rev 8186) +++ trunk/bindings/f77/plstubs.h 2008-01-29 17:24:29 UTC (rev 8187) @@ -190,6 +190,7 @@ #define PLFONTLD FNAME(PLFONTLD,plfontld) #define PLGCHR FNAME(PLGCHR,plgchr) #define PLGCOL0 FNAME(PLGCOL0,plgcol0) +#define PLGCOL0A FNAME(PLGCOL0A,plgcol0a) #define PLGCOLBG FNAME(PLGCOLBG,plgcolbg) #define PLGCOMPRESSION FNAME(PLGCOMPRESSION,plgcompression) #define PLGDEV7 FNAME(PLGDEV7,plgdev7) Modified: trunk/examples/f77/CMakeLists.txt =================================================================== --- trunk/examples/f77/CMakeLists.txt 2008-01-29 10:50:48 UTC (rev 8186) +++ trunk/examples/f77/CMakeLists.txt 2008-01-29 17:24:29 UTC (rev 8187) @@ -44,6 +44,8 @@ "22" "23" "28" +"29" +"30" ) foreach(STRING_INDEX ${f77_STRING_INDICES}) Modified: trunk/examples/f77/Makefile.examples.in =================================================================== --- trunk/examples/f77/Makefile.examples.in 2008-01-29 10:50:48 UTC (rev 8186) +++ trunk/examples/f77/Makefile.examples.in 2008-01-29 17:24:29 UTC (rev 8187) @@ -51,7 +51,9 @@ x19f$(EXEEXT) \ x22f$(EXEEXT) \ x23f$(EXEEXT) \ - x28f$(EXEEXT) + x28f$(EXEEXT) \ + x29f$(EXEEXT) \ + x30f$(EXEEXT) all: $(EXECUTABLES_list) Added: trunk/examples/f77/x29f.fm4 =================================================================== --- trunk/examples/f77/x29f.fm4 (rev 0) +++ trunk/examples/f77/x29f.fm4 2008-01-29 17:24:29 UTC (rev 8187) @@ -0,0 +1,225 @@ +C $Id:$ +C +C Sample plots using date / time formatting for axes +C +C Copyright (C) 2008 Andrew Ross +C +C This file is part of PLplot. +C +C PLplot is free software; you can redistribute it and/or modify +C it under the terms of the GNU General Library Public License as +C published by the Free Software Foundation; either version 2 of the +C License, or (at your option) any later version. +C +C PLplot is distributed in the hope that it will be useful, +C but WITHOUT ANY WARRANTY; without even the implied warranty of +C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +C GNU Library General Public License for more details. +C +C You should have received a copy of the GNU Library General Public +C License along with PLplot; if not, write to the Free Software +C Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +C + + program x29f + + implicit none + + real*8 x(365), y(365) + common /plotdat/ x, y + + integer PL_PARSE_FULL + parameter(PL_PARSE_FULL = 1) + + call plparseopts(PL_PARSE_FULL) + + call plinit() + + call plot1() + call plot2() + call plot3() + + call plend() + end + +c==================================================================== +c +c Plot a model diurnal cycle of temperature +c + subroutine plot1() + implicit none + + real*8 x(365), y(365) + common /plotdat/ x, y + + integer i, npts + real*8 xmin, xmax, ymin, ymax + + parameter(npts = 145) + parameter(xmin = 0.0d0) + parameter(xmax = 60.0d0*60.0d0*24.0d0) + parameter(ymin = 10.0d0) + parameter(ymax = 20.0d0) + + real*8 PI + parameter (PI = 3.1415926535897932384d0) + + do i = 1,npts + x(i) = xmax*(dble(i-1)/dble(npts)) + y(i) = 15.0d0 - 5.0d0*cos(2.0d0*PI*dble(i-1)/dble(npts)) + enddo + + call pladv(0) + call plvsta() + call plwind(xmin, xmax, ymin, ymax) + +c Draw a box with ticks spaced every 3 hour in X and 1 degree C in Y. + call plcol0(1) +c Set time format to be hours:minutes + call pltimefmt("%H:%M") + call plbox("bcnstd", 3.0d0*60.0d0*60.0d0, 3, "bcnstv", 1.0d0, 5) + + call plcol0(3) + call pllab("Time (hours:mins)", "Temperature (degC)", + & "#frPLplot Example 29 - Daily temperature") + + call plcol0(4) + + call plline(npts, x, y) + + end + +c +c Plot the number of hours of daylight as a function of day for a year +c + subroutine plot2() + implicit none + + integer j, npts + real*8 xmin, xmax, ymin, ymax + real*8 lat, p, d + real*8 x(365), y(365) + common /plotdat/ x, y + + +c Latitude for London + parameter (lat = 51.5d0) + + parameter (npts = 365) + + parameter(xmin = 0.0d0) + parameter(xmax = npts*60.0d0*60.0d0*24.0d0) + parameter(ymin = 0) + parameter(ymax = 24) + + real*8 PI + parameter (PI = 3.1415926535897932384d0) + +c Formula for hours of daylight from +c "A Model Comparison for Daylength as a Function of Latitude and +c Day of the Year", 1995, Ecological Modelling, 80, pp 87-95. + do j=1,npts + x(j) = (j-1)*60.0d0*60.0d0*24.0d0; + p = asin(0.39795d0*cos(0.2163108d0 + 2.0d0*atan(0.9671396d0* + & tan(0.00860d0*(j-187))))) + d = 24.0d0 - (24.0d0/PI)* + & acos( (sin(0.8333d0*PI/180.0d0) + sin(lat*PI/180.0d0)* + & sin(p)) / (cos(lat*PI/180.0d0)*cos(p)) ) + y(j) = d + enddo + + call plcol0(1) +c Set time format to be abbreviated month name followed by day of month + call pltimefmt("%b %d") + call plenv(xmin, xmax, ymin, ymax, 0, 40) + + call plcol0(3) + call pllab("Date", "Hours of daylight", + & "#frPLplot Example 29 - Hours of daylight at 51.5N") + + call plcol0(4) + + call plline(npts, x, y) + + end + +c +c +c + subroutine plot3() + implicit none + + integer i, npts + real*8 xmin, xmax, ymin, ymax + integer tstart, t1, t2 + real*8 toff; + real*8 x(365), y(365) + common /plotdat/ x, y + + real*8 PI + parameter (PI = 3.1415926535897932384d0) + +c integer tm(9) + + parameter (npts = 62) + +c Warning: mktime is in local time so we need to calculate +c offset to get UTC. C time handling is quirky... +c mktime is not implemented at all in fortran. +c gmtime is non-standard. +c We'll just avoid them altogether for this example +c and take values for tstart calculated elsewhere. +c +c t1 = 0 +c call gmtime(t1,tm) +c t2 = mktime(&tm) +c toff = t1-t2 + +c Years since 1900 +c tm(6) = 105 +c 0 == January, 11 = December +c tm(5) = 11 +c & = 1st of month +c tm(4) = 1 +c tm(3) = 0 +c tm(2) = 0 +c tm(1) = 0 + +c tstart = mktime(&tm) + + tstart = 1133398800 + + xmin = dble(tstart) + xmax = xmin + npts*60.0d0*60.0d0*24.0d0 + ymin = 0.0d0 + ymax = 5.0d0 + + do i=1,npts + x(i) = xmin + dble(i-1)*60.0d0*60.0d0*24.0d0 + y(i) = 1.0d0 + sin( 2.0d0*PI*dble(i-1)/7.0d0) + + & exp( dble(min(i-1,npts+1-i)) / 31.0d0) + enddo + call pladv(0) + + call plvsta() + call plwind(xmin, xmax, ymin, ymax) + + call plcol0(1) +c Set time format to be ISO 8601 standard YYYY-MM-DD. Note that this is +c equivalent to %f for C99 compliant implementations of strftime. + call pltimefmt("%Y-%m-%d") +c Draw a box with ticks spaced every 14 days in X and 1 hour in Y. + call plbox("bcnstd", 14.0d0*24.0d0*60.0d0*60.0d0,14, "bcnstv", + & 1.0d0, 4) + + call plcol0(3) + call pllab("Date", "Hours of television watched", + & "#frPLplot Example 29 - Hours of television watched in " // + & "Dec 2005 / Jan 2006"); + + call plcol0(4) + + call plpoin(npts, x, y, 2) + call plline(npts, x, y) + + end Property changes on: trunk/examples/f77/x29f.fm4 ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/examples/f77/x30f.fm4 =================================================================== --- trunk/examples/f77/x30f.fm4 (rev 0) +++ trunk/examples/f77/x30f.fm4 2008-01-29 17:24:29 UTC (rev 8187) @@ -0,0 +1,164 @@ +C $Id:$ +C +C Alpha color values demonstration +C +C Copyright (C) 2008 Hazen Babcock +C Copyright (C) 2008 Andrew Ross +C +C This file is part of PLplot. +C +C PLplot is free software; you can redistribute it and/or modify +C it under the terms of the GNU General Library Public License as +C published by the Free Software Foundation; either version 2 of the +C License, or (at your option) any later version. +C +C PLplot is distributed in the hope that it will be useful, +C but WITHOUT ANY WARRANTY; without even the implied warranty of +C MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +C GNU Library General Public License for more details. +C +C You should have received a copy of the GNU Library General Public +C License along with PLplot; if not, write to the Free Software +C Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +C + + program x30f + + implicit none + + integer red(4), green(4), blue(4) + real*8 alpha(4), px(4), py(4) + real*8 pos(2), rcoord(2), gcoord(2), bcoord(2), acoord(2) + logical rev(2) + + data red / 0, 255, 0, 0 / + data green / 0, 0, 255, 0 / + data blue / 0, 0, 0, 255 / + data alpha / 1.0d0, 1.0d0, 1.0d0, 1.0d0 / + data px / 0.1d0, 0.5d0, 0.5d0, 0.1d0 / + data py / 0.1d0, 0.1d0, 0.5d0, 0.5d0 / + data pos / 0.0d0, 1.0d0 / + data rcoord / 1.0d0, 1.0d0 / + data gcoord / 0.0d0, 0.0d0 / + data bcoord / 0.0d0, 0.0d0 / + data acoord / 0.0d0, 1.0d0 / + data rev / .false. , .false. / + + integer i, j + integer icol, r, g, b + real*8 a, clevel(101), z(2,2) + + character*1 defined + + integer PL_PARSE_FULL + parameter(PL_PARSE_FULL = 1) + + call plparseopts(PL_PARSE_FULL) + + call plinit() + + call plscmap0n(4) + + call plscmap0a (red, green, blue, alpha, 4) + +c +c Page 1: +c +c This is a series of red, green and blue rectangles overlaid +c on each other with gradually increasing transparency. +c + +c Set up the window + call pladv (0) + call plvpor (0.0d0, 1.0d0, 0.0d0, 1.0d0) + call plwind (0.0d0, 1.0d0, 0.0d0, 1.0d0) + call plcol0 (0) + call plbox ("", 1.0d0, 0, "", 1.0d0, 0) + +c Draw the boxes + do i = 1,9 + icol = mod(i-1,3) + 1 + +c Get a color, change its transparency and +c set it as the current color. + call plgcol0a (icol, r, g, b, a) + call plscol0a (icol, r, g, b, 1.0d0 - dble(i-1)/9.0d0) + call plcol0 (icol) + +c Draw the rectangle + call plfill (4, px, py) + +c Shift the rectangles coordinates + do j = 1,4 + px(j) = px(j) + 0.5d0/9.0d0 + py(j) = py(j) + 0.5d0/9.0d0 + enddo + enddo +c +c Page 2: +c +c This is a bunch of boxes colored red, green or blue with a single +c large (red) box of linearly varying transparency overlaid. The +c overlaid box is completely transparent at the bottom and completely +c opaque at the top. +c + +c Set up the window + call pladv(0) + call plvpor(0.1d0, 0.9d0, 0.1d0, 0.9d0) + call plwind(0.0d0, 1.0d0, 0.0d0, 1.0d0) + +c Draw the boxes. There are 25 of them drawn on a 5 x 5 grid. + do i = 1,5 +c Set box X position + px(1) = 0.05d0 + 0.2d0 * dble(i-1) + px(2) = px(1) + 0.1d0 + px(3) = px(2) + px(4) = px(1) + +c We don't want the boxes to be transparent, so since we changed +c the colors transparencies in the first example we have to change +c the transparencies back to completely opaque. + icol = mod(i-1,3) + 1 + call plgcol0a (icol, r, g, b, a) + call plscol0a (icol, r, g, b, 1.0); + call plcol0 (icol) + do j = 1, 5 +c Set box y position and draw the box. + py(1) = 0.05d0 + 0.2d0 * dble(j-1) + py(2) = py(1) + py(3) = py(1) + 0.1d0 + py(4) = py(3) + call plfill(4, px, py) + enddo + enddo + +c The overlaid box is drawn using plshades with a color map that is +c the same color but has a linearly varying transparency. + +c Create the color map with 128 colors and call plscmap1la to initialize +c the color values with a linear varying transparency (or alpha) + call plscmap1n(128) + call plscmap1la(1, 2, pos, rcoord, gcoord, bcoord, acoord, rev) + +c Create a 2 x 2 array that contains the z values (0.0 to 1.0) that will +c used for the shade plot. plshades uses linear interpolation to +c calculate the z values of all the intermediate points in this array. + z(1,1) = 0.0d0 + z(2,1) = 0.0d0 + z(1,2) = 1.0d0 + z(2,2) = 1.0d0 + +c Set the color levels array. These levels are also between 0.0 and 1.0 + do i = 1,101 + clevel(i) = 0.01d0 * dble(i-1) + enddo + +c Draw the shade plot with zmin = 0.0, zmax = 1.0 and x and y coordinate ranges +c such that it fills the entire plotting area. + call plshades0(z, 2, 2, defined, 0.0d0, 1.0d0, 0.0d0, 1.0d0, + & clevel, 101, 0, -1, 2, 2) + + call plend() + end + Property changes on: trunk/examples/f77/x30f.fm4 ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/test/test_f77.sh.in =================================================================== --- trunk/test/test_f77.sh.in 2008-01-29 10:50:48 UTC (rev 8186) +++ trunk/test/test_f77.sh.in 2008-01-29 17:24:29 UTC (rev 8187) @@ -51,7 +51,7 @@ # skip 14, 17, and 20 because they are interactive, and 20 not implemented. # skip 21 because it delivers variable results depending on computer timing # and load (and not implemented yet). - for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28; do + for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28 29 30 ; do $f77dir/x${index}f -dev $device -o ${OUTPUT_DIR}/x${index}f.$dsuffix $options 2> test.error status_code=$? cat test.error @@ -92,7 +92,7 @@ # skip 14, 17, and 20 because they are interactive, and 20 not implemented. # skip 21 because it delivers variable results depending on computer timing # and load (and not implemented yet). - for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28; do + for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28 29 30 ; do $f77dir/x${index}f <<EOF 2> test.error $device ${OUTPUT_DIR}/x${index}f.$dsuffix This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-01-29 21:04:42
|
Revision: 8189 http://plplot.svn.sourceforge.net/plplot/?rev=8189&view=rev Author: andrewross Date: 2008-01-29 13:04:48 -0800 (Tue, 29 Jan 2008) Log Message: ----------- Implement f95 version of examples 29 and 30. Fix bug in f95 bindings unearthed by these examples Modified Paths: -------------- trunk/bindings/f95/sfstubsf95.f90 trunk/examples/f95/CMakeLists.txt trunk/examples/f95/Makefile.examples.in trunk/test/test_f95.sh.in Added Paths: ----------- trunk/examples/f95/x29f.f90 trunk/examples/f95/x30f.f90 Modified: trunk/bindings/f95/sfstubsf95.f90 =================================================================== --- trunk/bindings/f95/sfstubsf95.f90 2008-01-29 21:03:19 UTC (rev 8188) +++ trunk/bindings/f95/sfstubsf95.f90 2008-01-29 21:04:48 UTC (rev 8189) @@ -1050,7 +1050,7 @@ subroutine plscmap0a( r, g, b, a ) integer, dimension(:) :: r, g, b - real(kind=plflt) :: a + real(kind=plflt), dimension(:) :: a call plscmap0af77( r, g, b, a, size(r) ) end subroutine plscmap0a @@ -1063,7 +1063,7 @@ subroutine plscmap1a( r, g, b, a ) integer, dimension(:) :: r, g, b - real(kind=plflt) :: a + real(kind=plflt), dimension(:) :: a call plscmap1af77( r, g, b, a, size(r) ) end subroutine plscmap1a Modified: trunk/examples/f95/CMakeLists.txt =================================================================== --- trunk/examples/f95/CMakeLists.txt 2008-01-29 21:03:19 UTC (rev 8188) +++ trunk/examples/f95/CMakeLists.txt 2008-01-29 21:04:48 UTC (rev 8189) @@ -44,6 +44,8 @@ "22" "23" "28" +"29" +"30" ) if(BUILD_TEST) Modified: trunk/examples/f95/Makefile.examples.in =================================================================== --- trunk/examples/f95/Makefile.examples.in 2008-01-29 21:03:19 UTC (rev 8188) +++ trunk/examples/f95/Makefile.examples.in 2008-01-29 21:04:48 UTC (rev 8189) @@ -51,7 +51,9 @@ x19f$(EXEEXT) \ x22f$(EXEEXT) \ x23f$(EXEEXT) \ - x28f$(EXEEXT) + x28f$(EXEEXT) \ + x29f$(EXEEXT) \ + x30f$(EXEEXT) all: $(EXECUTABLES_list) Added: trunk/examples/f95/x29f.f90 =================================================================== --- trunk/examples/f95/x29f.f90 (rev 0) +++ trunk/examples/f95/x29f.f90 2008-01-29 21:04:48 UTC (rev 8189) @@ -0,0 +1,220 @@ +! $Id$ +! +! Sample plots using date / time formatting for axes +! +! Copyright (C) 2008 Andrew Ross +! +! This file is part of PLplot. +! +! PLplot is free software; you can redistribute it and/or modify +! it under the terms of the GNU General Library Public License as +! published by the Free Software Foundation; either version 2 of the +! License, or (at your option) any later version. +! +! PLplot is distributed in the hope that it will be useful, +! but WITHOUT ANY WARRANTY; without even the implied warranty of +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +! GNU Library General Public License for more details. +! +! You should have received a copy of the GNU Library General Public +! License along with PLplot; if not, write to the Free Software +! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +! + + program x29f95 + use plplot + + implicit none + + real(kind=plflt), dimension(365) :: x, y + common /plotdat/ x, y + + call plparseopts(PL_PARSE_FULL) + + call plinit() + + call plot1() + call plot2() + call plot3() + + call plend() + end program x29f95 + +!==================================================================== +! +! Plot a model diurnal cycle of temperature + + subroutine plot1() + use plplot, PI => PL_PI + implicit none + + real(kind=plflt), dimension(365) :: x, y + common /plotdat/ x, y + + integer :: i, npts + real(kind=plflt) :: xmin, xmax, ymin, ymax + + parameter(npts = 145) + parameter(xmin = 0.0_plflt) + parameter(xmax = 60.0_plflt*60.0_plflt*24.0_plflt) + parameter(ymin = 10.0_plflt) + parameter(ymax = 20.0_plflt) + + do i = 1,npts + x(i) = xmax*(dble(i-1)/dble(npts)) + y(i) = 15.0_plflt - 5.0_plflt*cos(2.0_plflt*PI*dble(i-1)/dble(npts)) + enddo + + call pladv(0) + call plvsta() + call plwind(xmin, xmax, ymin, ymax) + +! Draw a box with ticks spaced every 3 hour in X and 1 degree C in Y. + call plcol0(1) +! Set time format to be hours:minutes + call pltimefmt("%H:%M") + call plbox("bcnstd", 3.0_plflt*60.0_plflt*60.0_plflt, 3, "bcnstv", & + 1.0_plflt, 5) + + call plcol0(3) + call pllab("Time (hours:mins)", "Temperature (degC)", & + "#frPLplot Example 29 - Daily temperature") + + call plcol0(4) + + call plline(x(1:npts), y(1:npts)) + + end subroutine plot1 + +! +! Plot the number of hours of daylight as a function of day for a year +! + subroutine plot2() + use plplot, PI => PL_PI + + implicit none + + integer :: j, npts + real(kind=plflt) :: xmin, xmax, ymin, ymax + real(kind=plflt) :: lat, p, d + real(kind=plflt), dimension(365) :: x, y + common /plotdat/ x, y + + + ! Latitude for London + parameter (lat = 51.5_plflt) + + parameter (npts = 365) + + parameter(xmin = 0.0_plflt) + parameter(xmax = npts*60.0_plflt*60.0_plflt*24.0_plflt) + parameter(ymin = 0) + parameter(ymax = 24) + +! Formula for hours of daylight from +! "A Model Comparison for Daylength as a Function of Latitude and +! Day of the Year", 1995, Ecological Modelling, 80, pp 87-95. + do j=1,npts + x(j) = (j-1)*60.0_plflt*60.0_plflt*24.0_plflt; + p = asin(0.39795_plflt*cos(0.2163108_plflt + 2.0_plflt* & + atan(0.9671396_plflt*tan(0.00860_plflt*(j-187))))) + d = 24.0_plflt - (24.0_plflt/PI)* & + acos( (sin(0.8333_plflt*PI/180.0_plflt) + & + sin(lat*PI/180.0_plflt)*sin(p)) / (cos(lat*PI/180.0_plflt)* & + cos(p)) ) + y(j) = d + enddo + + call plcol0(1) +! Set time format to be abbreviated month name followed by day of month + call pltimefmt("%b %d") + call plenv(xmin, xmax, ymin, ymax, 0, 40) + + call plcol0(3) + call pllab("Date", "Hours of daylight", & + "#frPLplot Example 29 - Hours of daylight at 51.5N") + + call plcol0(4) + + call plline(x, y) + + end subroutine plot2 + +! +! +! + subroutine plot3() + use plplot, PI => PL_PI + implicit none + + integer :: i, npts + real(kind=plflt) :: xmin, xmax, ymin, ymax + integer :: tstart, t1, t2 +! real(kind=plflt) :: toff; + real(kind=plflt), dimension(365) :: x, y + common /plotdat/ x, y + +! integer tm(9) + + parameter (npts = 62) + +! Warning: mktime is in local time so we need to calculate +! offset to get UTC. C time handling is quirky... +! mktime is not implemented at all in fortran. +! gmtime is non-standard. +! We'll just avoid them altogether for this example +! and take values for tstart calculated elsewhere. +! +! t1 = 0 +! call gmtime(t1,tm) +! t2 = mktime(&tm) +! toff = t1-t2 + +! Years since 1900 +! tm(6) = 105 +! 0 == January, 11 = December +! tm(5) = 11 +! & = 1st of month +! tm(4) = 1 +! tm(3) = 0 +! tm(2) = 0 +! tm(1) = 0 + +! tstart = mktime(&tm) + + tstart = 1133398800 + + xmin = dble(tstart) + xmax = xmin + npts*60.0_plflt*60.0_plflt*24.0_plflt + ymin = 0.0_plflt + ymax = 5.0_plflt + + do i=1,npts + x(i) = xmin + dble(i-1)*60.0_plflt*60.0_plflt*24.0_plflt + y(i) = 1.0_plflt + sin( 2.0_plflt*PI*dble(i-1)/7.0_plflt) + & + exp( dble(min(i-1,npts+1-i)) / 31.0_plflt) + enddo + call pladv(0) + + call plvsta() + call plwind(xmin, xmax, ymin, ymax) + + call plcol0(1) +! Set time format to be ISO 8601 standard YYYY-MM-DD. Note that this is +! equivalent to %f for C99 compliant implementations of strftime. + call pltimefmt("%Y-%m-%d") +! Draw a box with ticks spaced every 14 days in X and 1 hour in Y. + call plbox("bcnstd", 14.0_plflt*24.0_plflt*60.0_plflt*60.0_plflt,14, & + "bcnstv", 1.0_plflt, 4) + + call plcol0(3) + call pllab("Date", "Hours of television watched", & + "#frPLplot Example 29 - Hours of television watched in " // & + "Dec 2005 / Jan 2006"); + + call plcol0(4) + + call plpoin(x(1:npts), y(1:npts), 2) + call plline(x(1:npts), y(1:npts)) + + end subroutine plot3 Property changes on: trunk/examples/f95/x29f.f90 ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/examples/f95/x30f.f90 =================================================================== --- trunk/examples/f95/x30f.f90 (rev 0) +++ trunk/examples/f95/x30f.f90 2008-01-29 21:04:48 UTC (rev 8189) @@ -0,0 +1,163 @@ +! $Id$ +! +! Alpha color values demonstration +! +! Copyright (C) 2008 Hazen Babcock +! Copyright (C) 2008 Andrew Ross +! +! This file is part of PLplot. +! +! PLplot is free software; you can redistribute it and/or modify +! it under the terms of the GNU General Library Public License as +! published by the Free Software Foundation; either version 2 of the +! License, or (at your option) any later version. +! +! PLplot is distributed in the hope that it will be useful, +! but WITHOUT ANY WARRANTY; without even the implied warranty of +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +! GNU Library General Public License for more details. +! +! You should have received a copy of the GNU Library General Public +! License along with PLplot; if not, write to the Free Software +! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +! + + program x30f95 + use plplot + + implicit none + + integer, dimension(4) :: red, green, blue + real(kind=plflt), dimension (4) :: alpha, px, py + real(kind=plflt), dimension (2) :: pos, rcoord, gcoord, bcoord, acoord + logical, dimension(2) :: rev + + data red / 0, 255, 0, 0 / + data green / 0, 0, 255, 0 / + data blue / 0, 0, 0, 255 / + data alpha / 1.0_plflt, 1.0_plflt, 1.0_plflt, 1.0_plflt / + data px / 0.1_plflt, 0.5_plflt, 0.5_plflt, 0.1_plflt / + data py / 0.1_plflt, 0.1_plflt, 0.5_plflt, 0.5_plflt / + data pos / 0.0_plflt, 1.0_plflt / + data rcoord / 1.0_plflt, 1.0_plflt / + data gcoord / 0.0_plflt, 0.0_plflt / + data bcoord / 0.0_plflt, 0.0_plflt / + data acoord / 0.0_plflt, 1.0_plflt / + data rev / .false. , .false. / + + integer i, j + integer icol, r, g, b + real(kind=plflt) :: a, clevel(101), z(2,2) + + character*1 defined + + call plparseopts(PL_PARSE_FULL) + + call plinit() + + call plscmap0n(4) + + call plscmap0a (red, green, blue, alpha) + + ! + ! Page 1: + ! + ! This is a series of red, green and blue rectangles overlaid + ! on each other with gradually increasing transparency. + ! + + ! Set up the window + call pladv (0) + call plvpor (0.0_plflt, 1.0_plflt, 0.0_plflt, 1.0_plflt) + call plwind (0.0_plflt, 1.0_plflt, 0.0_plflt, 1.0_plflt) + call plcol0 (0) + call plbox ("", 1.0_plflt, 0, "", 1.0_plflt, 0) + + ! Draw the boxes + do i = 1,9 + icol = mod(i-1,3) + 1 + + ! Get a color, change its transparency and + ! set it as the current color. + call plgcol0a (icol, r, g, b, a) + call plscol0a (icol, r, g, b, 1.0_plflt - dble(i-1)/9.0_plflt) + call plcol0 (icol) + + ! Draw the rectangle + call plfill (px, py) + + ! Shift the rectangles coordinates + do j = 1,4 + px(j) = px(j) + 0.5_plflt/9.0_plflt + py(j) = py(j) + 0.5_plflt/9.0_plflt + enddo + enddo + ! + ! Page 2: + ! + ! This is a bunch of boxes colored red, green or blue with a single + ! large (red) box of linearly varying transparency overlaid. The + ! overlaid box is completely transparent at the bottom and completely + ! opaque at the top. + ! + + ! Set up the window + call pladv(0) + call plvpor(0.1_plflt, 0.9_plflt, 0.1_plflt, 0.9_plflt) + call plwind(0.0_plflt, 1.0_plflt, 0.0_plflt, 1.0_plflt) + + ! Draw the boxes. There are 25 of them drawn on a 5 x 5 grid. + do i = 1,5 + ! Set box X position + px(1) = 0.05_plflt + 0.2_plflt * dble(i-1) + px(2) = px(1) + 0.1_plflt + px(3) = px(2) + px(4) = px(1) + + ! We don't want the boxes to be transparent, so since we changed + ! the colors transparencies in the first example we have to change + ! the transparencies back to completely opaque. + icol = mod(i-1,3) + 1 + call plgcol0a (icol, r, g, b, a) + call plscol0a (icol, r, g, b, 1.0_plflt); + call plcol0 (icol) + do j = 1, 5 + ! Set box y position and draw the box. + py(1) = 0.05_plflt + 0.2_plflt * dble(j-1) + py(2) = py(1) + py(3) = py(1) + 0.1_plflt + py(4) = py(3) + call plfill(px, py) + enddo + enddo + + ! The overlaid box is drawn using plshades with a color map that is + ! the same color but has a linearly varying transparency. + + ! Create the color map with 128 colors and call plscmap1la to initialize + ! the color values with a linear varying transparency (or alpha) + call plscmap1n(128) + call plscmap1la(.true., pos, rcoord, gcoord, bcoord, acoord, rev) + + ! Create a 2 x 2 array that contains the z values (0.0 to 1.0) that will + ! used for the shade plot. plshades uses linear interpolation to + ! calculate the z values of all the intermediate points in this array. + z(1,1) = 0.0_plflt + z(2,1) = 0.0_plflt + z(1,2) = 1.0_plflt + z(2,2) = 1.0_plflt + + ! Set the color levels array. These levels are also between 0.0 and 1.0 + do i = 1,101 + clevel(i) = 0.01_plflt * dble(i-1) + enddo + + ! Draw the shade plot with zmin = 0.0, zmax = 1.0 and x and y coordinate ranges + ! such that it fills the entire plotting area. + call plshades(z, defined, 0.0_plflt, 1.0_plflt, 0.0_plflt, 1.0_plflt, & + clevel, 0, -1, 2) + + call plend() + + end program x30f95 + Property changes on: trunk/examples/f95/x30f.f90 ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/test/test_f95.sh.in =================================================================== --- trunk/test/test_f95.sh.in 2008-01-29 21:03:19 UTC (rev 8188) +++ trunk/test/test_f95.sh.in 2008-01-29 21:04:48 UTC (rev 8189) @@ -52,7 +52,7 @@ # skip 14, 17, and 20 because they are interactive, and 20 not implemented. # skip 21 because it delivers variable results depending on computer timing # and load (and not implemented yet). - for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28; do + for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28 29 30; do $f95dir/x${index}f -dev $device -o ${OUTPUT_DIR}/x${index}f95.$dsuffix $options 2> test.error status_code=$? cat test.error @@ -93,7 +93,7 @@ # skip 14, 17, and 20 because they are interactive, and 20 not implemented. # skip 21 because it delivers variable results depending on computer timing # and load (and not implemented yet). - for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28; do + for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28 29 30; do $f95dir/x${index}f <<EOF 2> test.error $device ${OUTPUT_DIR}/x${index}f95.$dsuffix This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-01-29 21:09:32
|
Revision: 8191 http://plplot.svn.sourceforge.net/plplot/?rev=8191&view=rev Author: airwin Date: 2008-01-29 13:09:36 -0800 (Tue, 29 Jan 2008) Log Message: ----------- Install Ada bindings and examples. Caveat: a hand-crafted build of the installed Ada examples does work properly now, but there is more work to do to make the appropriate pkg-config file and Makefile to make the installed Ada examples build more convenient. Modified Paths: -------------- trunk/bindings/ada/CMakeLists.txt trunk/examples/ada/CMakeLists.txt Modified: trunk/bindings/ada/CMakeLists.txt =================================================================== --- trunk/bindings/ada/CMakeLists.txt 2008-01-29 21:06:00 UTC (rev 8190) +++ trunk/bindings/ada/CMakeLists.txt 2008-01-29 21:09:36 UTC (rev 8191) @@ -30,6 +30,22 @@ plplot_auxiliary.adb plplot_auxiliary.ads ) + + # These are Ada library information files built by gnat. I am not + # sure whether the name suffixes correspond to the *.adb or *.ads files + # above or the union of them. In any case, if any of the names change + # above, then this list will probably have to be changed as well.) + # N.B. the absolute location prefix of these files may have to be changed + # in the future since this is a CMake internal. + set(ALI_PREFIX + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/plplotada${LIB_TAG}.dir + ) + set(ALI_LIST + ${ALI_PREFIX}/plplot.ali + ${ALI_PREFIX}/plplot_thin.ali + ${ALI_PREFIX}/plplot_traditional.ali + ${ALI_PREFIX}/plplot_auxiliary.ali + ) set(plplotada${LIB_TAG}_LIB_SRCS) foreach(SOURCE_FILE ${SOURCE_LIST}) @@ -37,8 +53,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} ) - set(plplotada${LIB_TAG}_LIB_SRCS - ${plplotada${LIB_TAG}_LIB_SRCS} + list(APPEND plplotada${LIB_TAG}_LIB_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} ) endforeach(SOURCE_FILE ${SOURCE_LIST}) @@ -67,13 +82,21 @@ ) endif(USE_RPATH) -# The commands below have been tested to work fine for the shared libraries, -# but comment this out until we can decide on an install location for -# all the Ada stuff that is required beyond just the library. -# install(TARGETS plplotada${LIB_TAG} -# ARCHIVE DESTINATION ${LIB_DIR} -# LIBRARY DESTINATION ${LIB_DIR} -# RUNTIME DESTINATION ${BIN_DIR} -# ) + install(FILES ${plplotada${LIB_TAG}_LIB_SRCS} + DESTINATION ${ADA_INCLUDE_DIR} + ) + + # Permissions of *.ali files in accordance with + # http://www.ada-france.org/debian/debian-ada-policy.html + install(FILES ${ALI_LIST} + DESTINATION ${ADA_LIB_DIR} + PERMISSIONS OWNER_READ GROUP_READ WORLD_READ + ) + + install(TARGETS plplotada${LIB_TAG} + ARCHIVE DESTINATION ${LIB_DIR} + LIBRARY DESTINATION ${LIB_DIR} + RUNTIME DESTINATION ${BIN_DIR} + ) endif(ENABLE_ada) Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2008-01-29 21:06:00 UTC (rev 8190) +++ trunk/examples/ada/CMakeLists.txt 2008-01-29 21:09:36 UTC (rev 8191) @@ -55,11 +55,7 @@ ) # Build up list of full-path examples source names to be used (eventually # but not until this interface has matured) for installation. - set( - ada_SRCS - ${ada_SRCS} - ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} - ) + list(APPEND ada_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE}) if(BUILD_TEST) # Note due to limitations of the Ada language support for CMake, the the # nominal source file for add_executable is compiled (which is why a @@ -89,3 +85,5 @@ target_link_libraries(${TARGET_NAME} plplotada${LIB_TAG}) endif(BUILD_TEST) endforeach(STRING_INDEX ${ada_STRING_INDICES}) + +install(FILES ${ada_SRCS} DESTINATION ${DATA_DIR}/examples/ada) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-01-29 23:00:27
|
Revision: 8194 http://plplot.svn.sourceforge.net/plplot/?rev=8194&view=rev Author: andrewross Date: 2008-01-29 15:00:32 -0800 (Tue, 29 Jan 2008) Log Message: ----------- Implement java versions of examples 29 and 30. Modified Paths: -------------- trunk/examples/java/CMakeLists.txt trunk/examples/java/Makefile.examples.in trunk/test/test_java.sh.in Added Paths: ----------- trunk/examples/java/x29.java trunk/examples/java/x30.java Modified: trunk/examples/java/CMakeLists.txt =================================================================== --- trunk/examples/java/CMakeLists.txt 2008-01-29 22:45:23 UTC (rev 8193) +++ trunk/examples/java/CMakeLists.txt 2008-01-29 23:00:32 UTC (rev 8194) @@ -49,6 +49,8 @@ "25" "26" "28" +"29" +"30" ) # This information is duplicated from bindings/java/CMakeLists.txt Modified: trunk/examples/java/Makefile.examples.in =================================================================== --- trunk/examples/java/Makefile.examples.in 2008-01-29 22:45:23 UTC (rev 8193) +++ trunk/examples/java/Makefile.examples.in 2008-01-29 23:00:32 UTC (rev 8194) @@ -48,7 +48,9 @@ x23.class \ x24.class \ x26.class \ - x28.class + x28.class \ + x29.class \ + x30.class all: $(example_classes) Added: trunk/examples/java/x29.java =================================================================== --- trunk/examples/java/x29.java (rev 0) +++ trunk/examples/java/x29.java 2008-01-29 23:00:32 UTC (rev 8194) @@ -0,0 +1,223 @@ +// $Id:$ +// +// Sample plots using date / time formatting for axes +// +// Copyright (C) 2008 Andrew Ross +// +// This file is part of PLplot. +// +// PLplot is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Library Public License as published +// by the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// PLplot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Library General Public License for more details. +// +// You should have received a copy of the GNU Library General Public License +// along with PLplot; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// + +package plplot.examples; + +import plplot.core.*; + +//import java.util.*; + + +class x29 { + + PLStream pls = new PLStream(); + + //------------------------------------------------------------------------ + // main + // + // Draws several plots which demonstrate the use of date / time formats + // for the axis labels. + // Time formatting is done using the system strftime routine. See the + // documentation of this for full details of the available formats. + // + // 1) Plotting temperature over a day (using hours / minutes) + // 2) Plotting + // + // Note: Times are stored as seconds since the epoch (usually + // 1st Jan 1970). + // + //------------------------------------------------------------------------ + + x29(String[] args) + { + + // Parse command line arguments + pls.parseopts(args, PLStream.PL_PARSE_FULL | PLStream.PL_PARSE_NOPROGRAM); + + // Initialize plplot + pls.init(); + + plot1(); + + plot2(); + + plot3(); + + pls.end(); + + } + + // Plot a model diurnal cycle of temperature + void plot1() + { + int i, npts; + double xmin, xmax, ymin, ymax; + double x[], y[]; + + // Data points every 10 minutes for 1 day + npts = 145; + + x = new double[npts]; + y = new double[npts]; + + xmin = 0; + xmax = 60.0*60.0*24.0; // Number of seconds in a day + ymin = 10.0; + ymax = 20.0; + + for (i=0;i<npts;i++) { + x[i] = xmax*((double) i/(double)npts); + y[i] = 15.0 - 5.0*Math.cos( 2*Math.PI*((double) i / (double) npts)); + } + + pls.adv(0); + + pls.vsta(); + pls.wind(xmin, xmax, ymin, ymax); + + // Draw a box with ticks spaced every 3 hour in X and 1 degree C in Y. + pls.col0(1); + // Set time format to be hours:minutes + pls.timefmt("%H:%M"); + pls.box("bcnstd", 3.0*60*60, 3, "bcnstv", 1, 5); + + pls.col0(3); + pls.lab("Time (hours:mins)", "Temperature (degC)", "#frPLplot Example 29 - Daily temperature"); + + pls.col0(4); + + pls.line(x, y); + } + + // Plot the number of hours of daylight as a function of day for a year + void plot2() + { + int j, npts; + double xmin, xmax, ymin, ymax; + double lat, p, d; + double x[], y[]; + + // Latitude for London + lat = 51.5; + + npts = 365; + + x = new double[npts]; + y = new double[npts]; + + xmin = 0; + xmax = npts*60.0*60.0*24.0; + ymin = 0; + ymax = 24; + + // Formula for hours of daylight from + // "A Model Comparison for Daylength as a Function of Latitude and + // Day of the Year", 1995, Ecological Modelling, 80, pp 87-95. + for (j = 0; j < npts; j++) { + x[j] = j*60.0*60.0*24.0; + p = Math.asin(0.39795*Math.cos(0.2163108 + 2*Math.atan(0.9671396*Math.tan(0.00860*(j-186))))); + d = 24.0 - (24.0/Math.PI)* + Math.acos( (Math.sin(0.8333*Math.PI/180.0) + Math.sin(lat*Math.PI/180.0)*Math.sin(p)) / + (Math.cos(lat*Math.PI/180.0)*Math.cos(p)) ); + y[j] = d; + } + + pls.col0(1); + // Set time format to be abbreviated month name followed by day of month + pls.timefmt("%b %d"); + pls.env(xmin, xmax, ymin, ymax, 0, 40); + + + pls.col0(3); + pls.lab("Date", "Hours of daylight", "#frPLplot Example 29 - Hours of daylight at 51.5N"); + + pls.col0(4); + + pls.line(x, y); + + } + + void plot3() + { + int i, npts; + double xmin, xmax, ymin, ymax; + long tstart; + int toff; + double x[], y[]; + + //Calendar cal = Calendar.getInstance(); + //TimeZone tz = cal.getTimeZone(); + + //cal.set(2005, 0, 1, 0, 0, 0); + + //tstart = cal.getTimeInMillis()/1000; + //toff = tz.getOffset(tstart)/1000; + + tstart = 1133398800; + toff = 0; + + npts = 62; + + x = new double[npts]; + y = new double[npts]; + + xmin = (double) (tstart - toff); + xmax = xmin + npts*60.0*60.0*24.0; + ymin = 0.0; + ymax = 5.0; + + for (i = 0; i<npts; i++) { + x[i] = xmin + i*60.0*60.0*24.0; + y[i] = 1.0 + Math.sin( 2*Math.PI*( (double) i ) / 7.0 ) + + Math.exp( ((double) Math.min(i,npts-i)) / 31.0); + } + pls.adv(0); + + pls.vsta(); + pls.wind(xmin, xmax, ymin, ymax); + + pls.col0(1); + // Set time format to be ISO 8601 standard YYYY-MM-HH. Note that this is + // equivalent to %f for C99 compliant implementations of strftime. + pls.timefmt("%Y-%m-%d"); + // Draw a box with ticks spaced every 14 days in X and 1 hour in Y. + pls.box("bcnstd", 14*24.0*60.0*60.0,14, "bcnstv", 1, 4); + + pls.col0(3); + pls.lab("Date", "Hours of television watched", "#frPLplot Example 29 - Hours of television watched in Dec 2005 / Jan 2006"); + + pls.col0(4); + + pls.poin(x, y, 2); + pls.line(x, y); + + } + + + public static void main( String[] args ) + { + new x29( args ); + } + +}; + Property changes on: trunk/examples/java/x29.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/examples/java/x30.java =================================================================== --- trunk/examples/java/x30.java (rev 0) +++ trunk/examples/java/x30.java 2008-01-29 23:00:32 UTC (rev 8194) @@ -0,0 +1,189 @@ +// $Id$ +// +// Alpha color values demonstration. +// +// Copyright (C) 2008 Hazen Babcock +// Copyright (C) 2008 Andrew Ross +// +// +// This file is part of PLplot. +// +// PLplot is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Library Public License as published +// by the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// PLplot is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Library General Public License for more details. +// +// You should have received a copy of the GNU Library General Public License +// along with PLplot; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +// This example will only really be interesting when used with devices that +// support or alpha (or transparency) values, such as the cairo device family. +// + +package plplot.examples; + +import plplot.core.*; + + +class x30 { + + PLStream pls = new PLStream(); + + static int[] red = { 0, 255, 0, 0}; + static int[] green = { 0, 0, 255, 0}; + static int[] blue = { 0, 0, 0, 255}; + static double[] alpha = {1.0, 1.0, 1.0, 1.0}; + + static double[] px = {0.1, 0.5, 0.5, 0.1}; + static double[] py = {0.1, 0.1, 0.5, 0.5}; + + static double[] pos = {0.0, 1.0}; + static double[] rcoord = {1.0, 1.0}; + static double[] gcoord = {0.0, 0.0}; + static double[] bcoord = {0.0, 0.0}; + static double[] acoord = {0.0, 1.0}; + + x30(String[] args) + { + int i, j; + int icol; + int[] r = new int[1]; + int[] g = new int[1]; + int[] b = new int[1]; + double[] a = new double[1]; + double[] clevel = new double[101]; + double[][] z = new double[2][2]; + double[][] xg = new double[2][2]; + double[][] yg = new double[2][2]; + + pls.parseopts (args, PLStream.PL_PARSE_FULL | PLStream.PL_PARSE_NOPROGRAM); + + pls.init (); + pls.scmap0n (4); + pls.scmap0a (red, green, blue, alpha); + + // + // Page 1: + // + // This is a series of red, green and blue rectangles overlaid + // on each other with gradually increasing transparency. + // + + // Set up the window + pls.adv (0); + pls.vpor (0.0, 1.0, 0.0, 1.0); + pls.wind (0.0, 1.0, 0.0, 1.0); + pls.col0 (0); + pls.box ("", 1.0, 0, "", 1.0, 0); + + // Draw the boxes + for (i = 0; i < 9; i++) { + icol = i%3 + 1; + + // Get a color, change its transparency and + // set it as the current color. + pls.gcol0a (icol, r, g, b, a); + pls.scol0a (icol, r[0], g[0], b[0], 1.0 - (double)i/9.0); + pls.col0 (icol); + + // Draw the rectangle + pls.fill (px, py); + + // Shift the rectangles coordinates + for (j = 0; j < 4; j++){ + px[j] += 0.5/9.0; + py[j] += 0.5/9.0; + } + } + + // + // Page 2: + // + // This is a bunch of boxes colored red, green or blue with a single + // large (red) box of linearly varying transparency overlaid. The + // overlaid box is completely transparent at the bottom and completely + // opaque at the top. + // + + // Set up the window + pls.adv(0); + pls.vpor(0.1, 0.9, 0.1, 0.9); + pls.wind(0.0, 1.0, 0.0, 1.0); + + // Draw the boxes. There are 25 of them drawn on a 5 x 5 grid. + for(i = 0; i < 5; i++){ + // Set box X position + px[0] = 0.05 + 0.2 * i; + px[1] = px[0] + 0.1; + px[2] = px[1]; + px[3] = px[0]; + + // We don't want the boxes to be transparent, so since we changed + // the colors transparencies in the first example we have to change + // the transparencies back to completely opaque. + icol = i%3 + 1; + pls.gcol0a (icol, r, g, b, a); + pls.scol0a (icol, r[0], g[0], b[0], 1.0); + pls.col0 (icol); + for(j = 0; j < 5; j++){ + // Set box y position and draw the box. + py[0] = 0.05 + 0.2 * j; + py[1] = py[0]; + py[2] = py[0] + 0.1; + py[3] = py[2]; + pls.fill(px, py); + } + } + + // The overlaid box is drawn using plshades with a color map that is + // the same color but has a linearly varying transparency. + + // Create the color map with 128 colors and use plscmap1la to initialize + // the color values with a linear varying transparency (or alpha) + pls.scmap1n(128); + pls.scmap1la(true, pos, rcoord, gcoord, bcoord, acoord); + + // Create a 2 x 2 array that contains the z values (0.0 to 1.0) that will + // used for the shade plot. plshades will use linear interpolation to + // calculate the z values of all the intermediate points in this array. + z[0][0] = 0.0; + z[1][0] = 0.0; + z[0][1] = 1.0; + z[1][1] = 1.0; + + xg[0][0] = 0.0; + xg[1][0] = 1.0; + xg[0][1] = 0.0; + xg[1][1] = 1.0; + + yg[0][0] = 0.0; + yg[1][0] = 0.0; + yg[0][1] = 1.0; + yg[1][1] = 1.0; + + // Set the color levels array. These levels are also between 0.0 and 1.0 + for(i=0;i<101;i++){ + clevel[i] = 0.01 * (double)i; + } + + // Draw the shade plot with zmin = 0.0, zmax = 1.0 and x and y + // coordinate ranges such that it fills the entire plotting area. + pls.shades(z, 0.0, 1.0, 0.0, 1.0, clevel, 0, -1, 2, true, xg, yg ); + + pls.end(); + + } + + public static void main( String[] args) + { + new x30( args ); + + } + +}; Property changes on: trunk/examples/java/x30.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/test/test_java.sh.in =================================================================== --- trunk/test/test_java.sh.in 2008-01-29 22:45:23 UTC (rev 8193) +++ trunk/test/test_java.sh.in 2008-01-29 23:00:32 UTC (rev 8194) @@ -42,7 +42,7 @@ PLPLOT_CLASSPATH=@JAVADATA_HARDDIR@/plplot.jar fi -for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 20 21 22 23 24 25 26 28; do +for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 20 21 22 23 24 25 26 28 29 30; do if test "@WIN32@" = "1"; then java -classpath ${PLPLOT_CLASSPATH} ${JAVA_TEST_OPTS} plplot.examples.x${index} -dev $device -o ${OUTPUT_DIR}/x${index}j.$dsuffix $options 2> test.error else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-01-30 15:59:06
|
Revision: 8196 http://plplot.svn.sourceforge.net/plplot/?rev=8196&view=rev Author: andrewross Date: 2008-01-30 07:59:12 -0800 (Wed, 30 Jan 2008) Log Message: ----------- Further (const char *) fixes for plgFileDev and related calls. Modified Paths: -------------- trunk/bindings/c++/plstream.cc trunk/bindings/c++/plstream.h trunk/bindings/tk/plframe.c trunk/bindings/tk-x-plat/plplotter.c trunk/drivers/wxwidgets.cpp trunk/include/disptab.h trunk/include/plcore.h trunk/include/plplot.h trunk/src/plcore.c Modified: trunk/bindings/c++/plstream.cc =================================================================== --- trunk/bindings/c++/plstream.cc 2008-01-29 23:06:29 UTC (rev 8195) +++ trunk/bindings/c++/plstream.cc 2008-01-30 15:59:12 UTC (rev 8196) @@ -2108,7 +2108,7 @@ /* Returns a list of file-oriented device names and their menu strings */ -void plstream::gFileDevs( char ***p_menustr, char ***p_devname, int *p_ndev ) +void plstream::gFileDevs( const char ***p_menustr, const char ***p_devname, int *p_ndev ) { set_stream(); Modified: trunk/bindings/c++/plstream.h =================================================================== --- trunk/bindings/c++/plstream.h 2008-01-29 23:06:29 UTC (rev 8195) +++ trunk/bindings/c++/plstream.h 2008-01-30 15:59:12 UTC (rev 8196) @@ -848,7 +848,7 @@ /* Returns a list of file-oriented device names and their menu strings */ - void gFileDevs( char ***p_menustr, char ***p_devname, int *p_ndev ); + void gFileDevs( const char ***p_menustr, const char ***p_devname, int *p_ndev ); /* Set the function pointer for the keyboard event handler */ Modified: trunk/bindings/tk/plframe.c =================================================================== --- trunk/bindings/tk/plframe.c 2008-01-29 23:06:29 UTC (rev 8195) +++ trunk/bindings/tk/plframe.c 2008-01-30 15:59:12 UTC (rev 8196) @@ -453,7 +453,7 @@ plFramePtr->devName[i] = NULL; } ndev = NDEV; - plgFileDevs(&plFramePtr->devDesc, &plFramePtr->devName, &ndev); + plgFileDevs((const char***)&plFramePtr->devDesc, (const char ***)&plFramePtr->devName, &ndev); /* Start up event handlers and other good stuff */ Modified: trunk/bindings/tk-x-plat/plplotter.c =================================================================== --- trunk/bindings/tk-x-plat/plplotter.c 2008-01-29 23:06:29 UTC (rev 8195) +++ trunk/bindings/tk-x-plat/plplotter.c 2008-01-30 15:59:12 UTC (rev 8196) @@ -438,7 +438,7 @@ plPlotterPtr->devName[i] = NULL; } ndev = NDEV; - plgFileDevs(&plPlotterPtr->devDesc, &plPlotterPtr->devName, &ndev); + plgFileDevs((const char ***) &plPlotterPtr->devDesc, (const char ***) &plPlotterPtr->devName, &ndev); /* Start up event handlers and other good stuff */ Modified: trunk/drivers/wxwidgets.cpp =================================================================== --- trunk/drivers/wxwidgets.cpp 2008-01-29 23:06:29 UTC (rev 8195) +++ trunk/drivers/wxwidgets.cpp 2008-01-30 15:59:12 UTC (rev 8196) @@ -226,8 +226,8 @@ unsigned char m_colbluefill; #endif - char** devDesc; /* Descriptive names for file-oriented devices. Malloc'ed. */ - char** devName; /* Keyword names of file-oriented devices. Malloc'ed. */ + const char** devDesc; /* Descriptive names for file-oriented devices. Malloc'ed. */ + const char** devName; /* Keyword names of file-oriented devices. Malloc'ed. */ int ndev; }; @@ -514,9 +514,9 @@ m_colbluefill=0; #endif - devName = (char **)malloc( NDEV * sizeof(char**) ); + devName = (const char **)malloc( NDEV * sizeof(char**) ); memset( devName, '\0', NDEV * sizeof(char**) ); - devDesc = (char **)malloc( NDEV * sizeof(char**) ); + devDesc = (const char **)malloc( NDEV * sizeof(char**) ); memset( devDesc, '\0', NDEV * sizeof(char**) ); ndev=NDEV; } Modified: trunk/include/disptab.h =================================================================== --- trunk/include/disptab.h 2008-01-29 23:06:29 UTC (rev 8195) +++ trunk/include/disptab.h 2008-01-30 15:59:12 UTC (rev 8196) @@ -75,8 +75,8 @@ typedef void (*plD_esc_fp) (struct PLStream_struct *, PLINT, void *); typedef struct { - char *pl_MenuStr; - char *pl_DevName; + const char *pl_MenuStr; + const char *pl_DevName; int pl_type; int pl_seq; plD_init_fp pl_init; Modified: trunk/include/plcore.h =================================================================== --- trunk/include/plcore.h 2008-01-29 23:06:29 UTC (rev 8195) +++ trunk/include/plcore.h 2008-01-30 15:59:12 UTC (rev 8196) @@ -56,7 +56,7 @@ static void calc_didev (void); static void calc_diori (void); static void calc_dimap (void); -static void plgdevlst (char **, char **, int *, int); +static void plgdevlst (const char **, const char **, int *, int); static void plInitDispatchTable (void); Modified: trunk/include/plplot.h =================================================================== --- trunk/include/plplot.h 2008-01-29 23:06:29 UTC (rev 8195) +++ trunk/include/plplot.h 2008-01-30 15:59:12 UTC (rev 8196) @@ -1565,12 +1565,12 @@ /* Returns a list of file-oriented device names and their menu strings */ PLDLLIMPEXP void -plgFileDevs(char ***p_menustr, char ***p_devname, int *p_ndev); +plgFileDevs(const char ***p_menustr, const char ***p_devname, int *p_ndev); /* Returns a list of all device names and their menu strings */ PLDLLIMPEXP void -plgDevs(char ***p_menustr, char ***p_devname, int *p_ndev); +plgDevs(const char ***p_menustr, const char ***p_devname, int *p_ndev); /* Set the function pointer for the keyboard event handler */ Modified: trunk/src/plcore.c =================================================================== --- trunk/src/plcore.c 2008-01-29 23:06:29 UTC (rev 8195) +++ trunk/src/plcore.c 2008-01-30 15:59:12 UTC (rev 8196) @@ -2628,7 +2628,7 @@ \*--------------------------------------------------------------------------*/ void -plgFileDevs(char ***p_menustr, char ***p_devname, int *p_ndev) +plgFileDevs(const char ***p_menustr, const char ***p_devname, int *p_ndev) { plgdevlst(*p_menustr, *p_devname, p_ndev, 0); } @@ -2640,13 +2640,13 @@ \*--------------------------------------------------------------------------*/ void -plgDevs(char ***p_menustr, char ***p_devname, int *p_ndev) +plgDevs(const char ***p_menustr, const char ***p_devname, int *p_ndev) { plgdevlst(*p_menustr, *p_devname, p_ndev, -1); } static void -plgdevlst(char **p_menustr, char **p_devname, int *p_ndev, int type) +plgdevlst(const char **p_menustr, const char **p_devname, int *p_ndev, int type) { int i, j; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-01-30 18:58:11
|
Revision: 8198 http://plplot.svn.sourceforge.net/plplot/?rev=8198&view=rev Author: andrewross Date: 2008-01-30 10:58:16 -0800 (Wed, 30 Jan 2008) Log Message: ----------- Another round of const char * changes for the tk bindings and examples. Modified Paths: -------------- trunk/bindings/tk/plserver.c trunk/bindings/tk/pltk.h trunk/bindings/tk/tkMain.c trunk/examples/tk/xtk01.c trunk/examples/tk/xtk02.c trunk/examples/tk/xtk04.c Modified: trunk/bindings/tk/plserver.c =================================================================== --- trunk/bindings/tk/plserver.c 2008-01-30 18:38:39 UTC (rev 8197) +++ trunk/bindings/tk/plserver.c 2008-01-30 18:58:16 UTC (rev 8198) @@ -93,10 +93,10 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char **argv) +main(int argc, const char **argv) { int i, myargc = argc; - char *myargv[20]; + const char *myargv[20]; Tcl_Interp *interp; char *helpmsg = "Command-specific options:"; @@ -121,7 +121,7 @@ /* Parse args */ /* Examine the result string to see if an error return is really an error */ - if (Tk_ParseArgv(interp, (Tk_Window) NULL, &argc, (CONST char**) argv, + if (Tk_ParseArgv(interp, (Tk_Window) NULL, &argc, argv, argTable, TK_ARGV_NO_DEFAULTS) != TCL_OK) { fprintf(stderr, "\n(plserver) %s\n\n", interp->result); fprintf(stderr, "\ Modified: trunk/bindings/tk/pltk.h =================================================================== --- trunk/bindings/tk/pltk.h 2008-01-30 18:38:39 UTC (rev 8197) +++ trunk/bindings/tk/pltk.h 2008-01-30 18:58:16 UTC (rev 8198) @@ -29,7 +29,7 @@ /* Main program for wish, with PLplot extensions. */ int -pltkMain(int argc, char **argv, char *RcFileName, +pltkMain(int argc, const char **argv, char *RcFileName, int (*AppInit)(Tcl_Interp *interp)); #ifdef __cplusplus Modified: trunk/bindings/tk/tkMain.c =================================================================== --- trunk/bindings/tk/tkMain.c 2008-01-30 18:38:39 UTC (rev 8197) +++ trunk/bindings/tk/tkMain.c 2008-01-30 18:58:16 UTC (rev 8198) @@ -126,11 +126,11 @@ */ static int synchronize = 0; -static char *script = NULL; -static char *fileName = NULL; -static char *name = NULL; -static char *display = NULL; -static char *geometry = NULL; +static const char *script = NULL; +static const char *fileName = NULL; +static const char *name = NULL; +static const char *display = NULL; +static const char *geometry = NULL; static Tk_ArgvInfo argTable[] = { {"-file", TK_ARGV_STRING, (char *) NULL, (char *) &fileName, @@ -177,10 +177,11 @@ */ int -pltkMain(int argc, char **argv, char *RcFileName, +pltkMain(int argc, const char **argv, char *RcFileName, int (*AppInit)(Tcl_Interp *interp)) { - char *args, *p, *msg; + char *args, *msg; + const char *p; char buf[20]; int code; @@ -194,7 +195,7 @@ * Parse command-line arguments. */ - if (Tk_ParseArgv(interp, (Tk_Window) NULL, &argc, (CONST char**) argv, argTable, 0) + if (Tk_ParseArgv(interp, (Tk_Window) NULL, &argc, argv, argTable, 0) != TCL_OK) { fprintf(stderr, "%s\n", interp->result); exit(1); Modified: trunk/examples/tk/xtk01.c =================================================================== --- trunk/examples/tk/xtk01.c 2008-01-30 18:38:39 UTC (rev 8197) +++ trunk/examples/tk/xtk01.c 2008-01-30 18:58:16 UTC (rev 8198) @@ -37,7 +37,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char **argv) +main(int argc, const char **argv) { exit(pltkMain(argc, argv, NULL, AppInit)); } Modified: trunk/examples/tk/xtk02.c =================================================================== --- trunk/examples/tk/xtk02.c 2008-01-30 18:38:39 UTC (rev 8197) +++ trunk/examples/tk/xtk02.c 2008-01-30 18:58:16 UTC (rev 8198) @@ -34,7 +34,7 @@ \*--------------------------------------------------------------------------*/ int stuff( tclMatrix *pm, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { int i; PLFLT x, y; @@ -65,7 +65,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char **argv) +main(int argc, const char **argv) { exit(pltkMain(argc, argv, NULL, AppInit)); } Modified: trunk/examples/tk/xtk04.c =================================================================== --- trunk/examples/tk/xtk04.c 2008-01-30 18:38:39 UTC (rev 8197) +++ trunk/examples/tk/xtk04.c 2008-01-30 18:58:16 UTC (rev 8198) @@ -27,7 +27,7 @@ AppInit(Tcl_Interp *interp); int mat_max( tclMatrix *pm, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { PLFLT max = pm->fdata[0]; int i; @@ -40,7 +40,7 @@ } int mat_min( tclMatrix *pm, Tcl_Interp *interp, - int argc, char *argv[] ) + int argc, const char *argv[] ) { PLFLT min = pm->fdata[0]; int i; @@ -64,7 +64,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char **argv) +main(int argc, const char **argv) { exit(pltkMain(argc, argv, NULL, AppInit)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-01-31 22:14:45
|
Revision: 8205 http://plplot.svn.sourceforge.net/plplot/?rev=8205&view=rev Author: airwin Date: 2008-01-31 14:14:48 -0800 (Thu, 31 Jan 2008) Log Message: ----------- Move lena.pgm from examples/c to examples. Modified Paths: -------------- trunk/examples/CMakeLists.txt trunk/examples/c/CMakeLists.txt trunk/test/CMakeLists.txt Added Paths: ----------- trunk/examples/lena.pgm Removed Paths: ------------- trunk/examples/c/lena.pgm Modified: trunk/examples/CMakeLists.txt =================================================================== --- trunk/examples/CMakeLists.txt 2008-01-31 21:25:29 UTC (rev 8204) +++ trunk/examples/CMakeLists.txt 2008-01-31 22:14:48 UTC (rev 8205) @@ -25,6 +25,30 @@ set(RPATHCMD "-Wl,-rpath -Wl,${LIB_INSTALL_RPATH}") endif(USE_RPATH) +# Install lena.pgm in installed examples directory so that all implementations +# of example 20 in the various examples subdirectories can conveniently +# access this file. +install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm +DESTINATION ${DATA_DIR}/examples +) + +# Do the same as above for the build tree for those who want to individually +# run the various example 20 implementations from the examples subdirectories +# of the build tree. + +if(BUILD_TEST) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm + ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm + ) + add_custom_target(examples_lena_file ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm + ) +endif(BUILD_TEST) + add_subdirectory(c) if(ENABLE_cxx) add_subdirectory(c++) Modified: trunk/examples/c/CMakeLists.txt =================================================================== --- trunk/examples/c/CMakeLists.txt 2008-01-31 21:25:29 UTC (rev 8204) +++ trunk/examples/c/CMakeLists.txt 2008-01-31 22:14:48 UTC (rev 8205) @@ -95,27 +95,3 @@ DESTINATION ${DATA_DIR}/examples/c RENAME Makefile ) - -# Install lena.pgm in installed examples directory so that all implementations -# of example 20 in the various examples subdirectories can conveniently -# access this file. -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm -DESTINATION ${DATA_DIR}/examples -) - -# Do the same as above for the build tree for those who want to individually -# run the various example 20 implementations from the examples subdirectories -# of the build tree. - -if(BUILD_TEST) - add_custom_command( - OUTPUT ${CMAKE_BINARY_DIR}/examples/lena.pgm - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm - ${CMAKE_BINARY_DIR}/examples/lena.pgm - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lena.pgm - ) - add_custom_target(examples_lena_file ALL - DEPENDS ${CMAKE_BINARY_DIR}/examples/lena.pgm - ) -endif(BUILD_TEST) Deleted: trunk/examples/c/lena.pgm =================================================================== (Binary files differ) Copied: trunk/examples/lena.pgm (from rev 8203, trunk/examples/c/lena.pgm) =================================================================== (Binary files differ) Modified: trunk/test/CMakeLists.txt =================================================================== --- trunk/test/CMakeLists.txt 2008-01-31 21:25:29 UTC (rev 8204) +++ trunk/test/CMakeLists.txt 2008-01-31 22:14:48 UTC (rev 8205) @@ -194,9 +194,9 @@ add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/examples/c/lena.pgm + ${CMAKE_SOURCE_DIR}/examples/lena.pgm ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm - DEPENDS ${CMAKE_SOURCE_DIR}/examples/c/lena.pgm + DEPENDS ${CMAKE_SOURCE_DIR}/examples/lena.pgm ) add_custom_target(lena_file ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/lena.pgm) if(ENABLE_octave) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-02-07 15:34:06
|
Revision: 8223 http://plplot.svn.sourceforge.net/plplot/?rev=8223&view=rev Author: andrewross Date: 2008-02-07 07:34:12 -0800 (Thu, 07 Feb 2008) Log Message: ----------- Add python version of example 29 Modified Paths: -------------- trunk/examples/python/CMakeLists.txt trunk/test/test_python.sh.in Added Paths: ----------- trunk/examples/python/x29 trunk/examples/python/xw29.py Modified: trunk/examples/python/CMakeLists.txt =================================================================== --- trunk/examples/python/CMakeLists.txt 2008-02-07 13:55:45 UTC (rev 8222) +++ trunk/examples/python/CMakeLists.txt 2008-02-07 15:34:12 UTC (rev 8223) @@ -44,6 +44,7 @@ "25" "26" "28" +"29" ) set(python_SCRIPTS) Added: trunk/examples/python/x29 =================================================================== --- trunk/examples/python/x29 (rev 0) +++ trunk/examples/python/x29 2008-02-07 15:34:12 UTC (rev 8223) @@ -0,0 +1,38 @@ +#!/usr/bin/env python + +# Copyright (C) 2008 Andrew Ross +# +# This file is part of PLplot. +# +# PLplot is free software; you can redistribute it and/or modify +# it under the terms of the GNU Library General Public License as published +# by the Free Software Foundation; version 2 of the License. +# +# PLplot is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public License +# along with the file PLplot; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +# Run all python plplot examples non-interactively. + +# Append to effective python path so that can find plplot modules. +from plplot_python_start import * + +import sys +from plplot import * + +# Parse and process command line arguments +plparseopts(sys.argv, PL_PARSE_FULL) + +# Initialize plplot +plinit() + +import xw29 + +# Terminate plplot +plend() Property changes on: trunk/examples/python/x29 ___________________________________________________________________ Name: svn:executable + * Added: trunk/examples/python/xw29.py =================================================================== --- trunk/examples/python/xw29.py (rev 0) +++ trunk/examples/python/xw29.py 2008-02-07 15:34:12 UTC (rev 8223) @@ -0,0 +1,170 @@ +# $Id:$ + +# Copyright (C) 2008 Andrew Ross + +# Sample plots using date / time formatting for axes +# +# This file is part of PLplot. +# +# PLplot is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Library Public License as published +# by the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PLplot is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public License +# along with PLplot; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +from plplot_py_demos import * + +#-------------------------------------------------------------------------- +# main +# +# Draws several plots which demonstrate the use of date / time formats for +# the axis labels. +# Time formatting is done using the system strftime routine. See the +# documentation of this for full details of the available formats. +# +# 1) Plotting temperature over a day (using hours / minutes) +# 2) Plotting +# +# Note: Times are stored as seconds since the epoch (usually 1st Jan 1970). +# +#-------------------------------------------------------------------------- + +def main(): + + plot1() + + plot2() + + plot3() + + +# Plot a model diurnal cycle of temperature +def plot1(): + + # Data points every 10 minutes for 1 day + npts = 145; + + xmin = 0.0; + xmax = 60.0*60.0*24.0; # Number of seconds in a day + ymin = 10.0; + ymax = 20.0; + + x = xmax*arange(npts)/float(npts) + y = 15.0 - 5.0*cos(2*pi*x/xmax) + + pladv(0) + + plvsta() + plwind(xmin, xmax, ymin, ymax) + + # Draw a box with ticks spaced every 3 hour in X and 1 degree C in Y. + plcol0(1) + # Set time format to be hours:minutes + pltimefmt("%H:%M") + plbox("bcnstd", 3.0*60*60, 3, "bcnstv", 1, 5) + + plcol0(3) + pllab("Time (hours:mins)", "Temperature (degC)", "#frPLplot Example 29 - Daily temperature") + + plcol0(4) + + plline(x, y) + + +# Plot the number of hours of daylight as a function of day for a year +def plot2(): + + # Latitude for London + lat = 51.5 + + npts = 365 + + xmin = 0.0 + xmax = npts*60.0*60.0*24.0 + ymin = 0.0 + ymax = 24.0 + + # Formula for hours of daylight from + # "A Model Comparison for Daylength as a Function of Latitude and + # Day of the Year", 1995, Ecological Modelling, 80, pp 87-95. + x = arange(npts)*60.0*60.0*24.0 + p = arcsin(0.39795*cos(0.2163108 + 2*arctan(0.9671396*tan(0.00860*(arange(npts)-186))))) + d = 24.0 - (24.0/pi)*arccos( (sin(0.8333*pi/180.0) + sin(lat*pi/180.0)*sin(p)) / (cos(lat*pi/180.0)*cos(p)) ) + y = d + + plcol0(1) + # Set time format to be abbreviated month name followed by day of month + pltimefmt("%b %d") + plenv(xmin, xmax, ymin, ymax, 0, 40) + + + plcol0(3) + pllab("Date", "Hours of daylight", "#frPLplot Example 29 - Hours of daylight at 51.5N") + + plcol0(4) + + plline(x, y) + + + +def plot3(): + + # Warning: mktime is in local time so we need to calculate + # offset to get UTC. C time handling is quirky + # t1 = 0 + # tm = *gmtime(&t1) + # t2 = mktime(&tm) + # toff = difftime(t1,t2) + + # tm.tm_year = 105 # Years since 1900 + # tm.tm_mon = 11 # 0 == January, 11 = December + # tm.tm_mday = 1 # 1 = 1st of month + # tm.tm_hour = 0 + # tm.tm_min = 0 + # tm.tm_sec = 0 + + # tstart = mktime(&tm) + + tstart = 1133398800 + toff = 0 + + npts = 62 + + xmin = float(tstart + toff) + xmax = xmin + npts*60.0*60.0*24.0 + ymin = 0.0 + ymax = 5.0 + + i = arange(npts) + imin = float(npts)/2.0-abs(i - float(npts)/2.0) + x = xmin + i*60.0*60.0*24.0 + y = 1.0 + sin(2*pi*i/7.0) + exp( imin / 31.0) + pladv(0) + + plvsta() + plwind(xmin, xmax, ymin, ymax) + + plcol0(1) + # Set time format to be ISO 8601 standard YYYY-MM-DD. Note that this is + # equivalent to %f for C99 compliant implementations of strftime. + pltimefmt("%Y-%m-%d") + # Draw a box with ticks spaced every 14 days in X and 1 hour in Y. + plbox("bcnstd", 14*24.0*60.0*60.0,14, "bcnstv", 1, 4) + + plcol0(3) + pllab("Date", "Hours of television watched", "#frPLplot Example 29 - Hours of television watched in Dec 2005 / Jan 2006") + + plcol0(4) + + plpoin(x, y, 2) + plline(x, y) + +main() Property changes on: trunk/examples/python/xw29.py ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/test/test_python.sh.in =================================================================== --- trunk/test/test_python.sh.in 2008-02-07 13:55:45 UTC (rev 8222) +++ trunk/test/test_python.sh.in 2008-02-07 15:34:12 UTC (rev 8223) @@ -31,7 +31,7 @@ # Skip 21 if using Numeric - it doesn't work # For 24 you need special fonts installed to get good result. for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 \ -20 22 23 24 25 26 28 @NUMPY_EXAMPLES@ ; do +20 22 23 24 25 26 28 29 @NUMPY_EXAMPLES@ ; do @PYTHON_EXECUTABLE@ $pythondir/x$index -dev $device -o ${OUTPUT_DIR}/x${index}p.$dsuffix $options 2> test.error status_code=$? cat test.error This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-02-07 16:18:20
|
Revision: 8224 http://plplot.svn.sourceforge.net/plplot/?rev=8224&view=rev Author: andrewross Date: 2008-02-07 08:18:26 -0800 (Thu, 07 Feb 2008) Log Message: ----------- Add python version of example 30. Modified Paths: -------------- trunk/examples/python/CMakeLists.txt trunk/test/test_python.sh.in Added Paths: ----------- trunk/examples/python/x30 trunk/examples/python/xw30.py Modified: trunk/examples/python/CMakeLists.txt =================================================================== --- trunk/examples/python/CMakeLists.txt 2008-02-07 15:34:12 UTC (rev 8223) +++ trunk/examples/python/CMakeLists.txt 2008-02-07 16:18:26 UTC (rev 8224) @@ -45,6 +45,7 @@ "26" "28" "29" +"30" ) set(python_SCRIPTS) Added: trunk/examples/python/x30 =================================================================== --- trunk/examples/python/x30 (rev 0) +++ trunk/examples/python/x30 2008-02-07 16:18:26 UTC (rev 8224) @@ -0,0 +1,38 @@ +#!/usr/bin/env python + +# Copyright (C) 2008 Andrew Ross +# +# This file is part of PLplot. +# +# PLplot is free software; you can redistribute it and/or modify +# it under the terms of the GNU Library General Public License as published +# by the Free Software Foundation; version 2 of the License. +# +# PLplot is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public License +# along with the file PLplot; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +# Run all python plplot examples non-interactively. + +# Append to effective python path so that can find plplot modules. +from plplot_python_start import * + +import sys +from plplot import * + +# Parse and process command line arguments +plparseopts(sys.argv, PL_PARSE_FULL) + +# Initialize plplot +plinit() + +import xw30 + +# Terminate plplot +plend() Property changes on: trunk/examples/python/x30 ___________________________________________________________________ Name: svn:executable + * Added: trunk/examples/python/xw30.py =================================================================== --- trunk/examples/python/xw30.py (rev 0) +++ trunk/examples/python/xw30.py 2008-02-07 16:18:26 UTC (rev 8224) @@ -0,0 +1,138 @@ +# $Id:$ + +# Copyright (C) 2008 Hazen Babcock +# Copyright (C) 2008 Andrew Ross + +# Alpha color values demonstration. +# +# This file is part of PLplot. +# +# PLplot is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Library Public License as published +# by the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# PLplot is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public License +# along with PLplot; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +from plplot_py_demos import * + +red = array([ 0, 255, 0, 0]) +green = array([ 0, 0, 255, 0]) +blue = array([ 0, 0, 0, 255]) +alpha = array([1.0, 1.0, 1.0, 1.0]) + +pos = array([0.0, 1.0]) +rcoord = array([1.0, 1.0]) +gcoord = array([0.0, 0.0]) +bcoord = array([0.0, 0.0]) +acoord = array([0.0, 1.0]) +rev = array([0, 0]) + +def main(): + + px = array([0.1, 0.5, 0.5, 0.1]) + py = array([0.1, 0.1, 0.5, 0.5]) + + + plscmap0n (4) + plscmap0a (red, green, blue, alpha) + + # + # Page 1: + # + # This is a series of red, green and blue rectangles overlaid + # on each other with gradually increasing transparency. + + + # Set up the window + pladv (0) + plvpor (0.0, 1.0, 0.0, 1.0) + plwind (0.0, 1.0, 0.0, 1.0) + plcol0 (0) + plbox ("", 1.0, 0, "", 1.0, 0) + + # Draw the boxes + for i in range(9): + icol = i%3 + 1 + + # Get a color, change its transparency and + # set it as the current color. + rgba = plgcol0a (icol) + plscol0a (icol, rgba[0], rgba[1], rgba[2], 1.0 - float(i)/9.0) + plcol0 (icol) + + # Draw the rectangle + plfill (px, py) + + # Shift the rectangles coordinates + px += 0.5/9.0 + py += 0.5/9.0 + + # + # Page 2: + # + # This is a bunch of boxes colored red, green or blue with a single + # large (red) box of linearly varying transparency overlaid. The + # overlaid box is completely transparent at the bottom and completely + # opaque at the top. + + + # Set up the window + pladv(0) + plvpor(0.1, 0.9, 0.1, 0.9) + plwind(0.0, 1.0, 0.0, 1.0) + + # Draw the boxes. There are 25 of them drawn on a 5 x 5 grid. + for i in range(5): + # Set box X position + px[0] = 0.05 + 0.2 * i + px[1] = px[0] + 0.1 + px[2] = px[1] + px[3] = px[0] + + # We don't want the boxes to be transparent, so since we changed + # the colors transparencies in the first example we have to change + # the transparencies back to completely opaque. + icol = i%3 + 1 + rgba = plgcol0a (icol) + plscol0a (icol, rgba[0], rgba[1], rgba[2], 1.0) + plcol0 (icol) + for j in range(5): + # Set box y position and draw the box. + py[0] = 0.05 + 0.2 * j + py[1] = py[0] + py[2] = py[0] + 0.1 + py[3] = py[2] + plfill(px, py) + + # The overlaid box is drawn using plshades with a color map that is + # the same color but has a linearly varying transparency. + + # Create the color map with 128 colors and use plscmap1la to initialize + # the color values with a linear varying transparency (or alpha) + plscmap1n(128) + plscmap1la(1, pos, rcoord, gcoord, bcoord, acoord, rev) + + # Create a 2 x 2 array that contains the z values (0.0 to 1.0) that will + # used for the shade plot. plshades will use linear interpolation to + # calculate the z values of all the intermediate points in this array. + z = reshape(zeros(2*2),(2,2)) + z[0][1] = 1.0 + z[1][1] = 1.0 + + # Set the color levels array. These levels are also between 0.0 and 1.0 + clevel = 0.01*arange(101) + + # Draw the shade plot with zmin = 0.0, zmax = 1.0 and x and y coordinate + # ranges such that it fills the entire plotting area. + plshades(z, 0.0, 1.0, 0.0, 1.0, clevel, 0, 1) + + +main() Property changes on: trunk/examples/python/xw30.py ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/test/test_python.sh.in =================================================================== --- trunk/test/test_python.sh.in 2008-02-07 15:34:12 UTC (rev 8223) +++ trunk/test/test_python.sh.in 2008-02-07 16:18:26 UTC (rev 8224) @@ -31,7 +31,7 @@ # Skip 21 if using Numeric - it doesn't work # For 24 you need special fonts installed to get good result. for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 \ -20 22 23 24 25 26 28 29 @NUMPY_EXAMPLES@ ; do +20 22 23 24 25 26 28 29 30 @NUMPY_EXAMPLES@ ; do @PYTHON_EXECUTABLE@ $pythondir/x$index -dev $device -o ${OUTPUT_DIR}/x${index}p.$dsuffix $options 2> test.error status_code=$? cat test.error This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hba...@us...> - 2008-02-10 17:22:44
|
Revision: 8238 http://plplot.svn.sourceforge.net/plplot/?rev=8238&view=rev Author: hbabcock Date: 2008-02-10 09:22:45 -0800 (Sun, 10 Feb 2008) Log Message: ----------- Updated release notes for the 5.9.1 release. Modified Paths: -------------- trunk/OLD-README.release trunk/README.release Modified: trunk/OLD-README.release =================================================================== --- trunk/OLD-README.release 2008-02-10 17:07:02 UTC (rev 8237) +++ trunk/OLD-README.release 2008-02-10 17:22:45 UTC (rev 8238) @@ -1,3 +1,129 @@ +PLplot Release 5.9.0 +~~~~~~~~~~~~~~~~~~~~ +This is a development release of PLplot. It represents the ongoing efforts +of the community to improve the PLplot plotting package. Development +releases in the 5.9.x series will be available every few months. The next +stable release will be 5.10.0. + + If you encounter a problem that is not already documented in the +PROBLEMS file, then please send bug reports to PLplot developers via the +mailing lists at http://sourceforge.net/mail/?group_id=2915 . + + Please see the license under which this software is distributed +(LGPL), and the disclaimer of all warrantees, given in the COPYING.LIB +file. + +N.B. This is the official notice that our deprecated autotools-based build +system has now been removed. Instead, use the CMake-based build system +following the directions in the INSTALL file. + +INDEX + +1. Changes relative to PLplot 5.8.0 (the previous stable release) + +1.1 All autotools-related files have now been removed +1.2 Date / time labels for axes +1.3 Code cleanup +1.4 Bug fixes +1.5 Alpha value support +1.6 Build system improvements +1.7 Implement build-system infrastructure for installed Ada bindings and +examples +1.8 WxWidgets driver improvements +1.9 External libLASi library improvements affecting our psttf device. + + +1.1 All autotools-related files have now been removed + +CMake (with the exception of a special build script for the DJGPP platform) +is now the only supported build system. It has been tested on Linux / Unix, +Mac OS-X and Windows platforms. + +1.2 Date / time labels for axes + +Plplot now allows date / time labels to be used on axes. A new option +('d') is available for the xopt and yopt arguments to plbox which +indicates that the axis should be interpreted as a date / time. Similarly +there is a new range of options for plenv to select date / time labels. +The time format is seconds since the epoch (usually 1 Jan 1970). This +format is commonly used on most systems. The C gmtime routine can be +used to calculate this for a given date and time. The format for the +labels is controlled using a new pltimefmt function, which takes a +format string. All formatting is done using the C strftime function. +See documentation for available options on your platform. Example 29 +demonstrates the new capabilities. + +1.3 Code cleanup + +The plplot source code has been cleaned up to make consistent use of +(const char *) and (char *) throughout. Some API functions have changed +to use const char * instead of char * to make it clear that the strings +are not modified by the function. The C and C++ examples have been updated +consistent with this. These changes fix a large number of warnings +with gcc-4.2. Note: this should not require programs using plplot to be +recompiled as it is not a binary API change. + +There has also been some cleanup of include files in the C++ examples +so the code will compile with the forthcoming gcc-4.3. + +1.4 Bug fixes + +Various fixes including: + +Ctest will now work correctly when the build tree path includes symlinks. + +Dependencies for swig generated files fixed so they are not rebuilt every +time make is called. + +Various dependency fixes to ensure that parallel builds (using make -j) +work under unix. + +1.5 Alpha value support + +PLplot core has been modified to support a transparency or alpha value +channel for each color in color map 0 and 1. In addition a number of new +functions were added the PLplot API so that the user can both set and query +alpha values for color in the two color maps. These functions have the same +name as their non-alpha value equivalents, but with a an "a" added to the +end. Example 30 demonstrates some different ways to use these functions +and the effects of alpha values, at least for those drivers that support alpha +values. This change should have no effect on the device drivers that do not +currently support alpha values. Currently only the cairo, gd, wxwidgets and +aquaterm drivers support alpha values. There are some limitations with the gd +driver due to transparency support in the underlying libgd library. + +1.6 Build system improvements + +We now transform link flag results delivered to the CMake environment by +pkg-config into the preferred CMake form of library information. The +practical effect of this improvement is that external libraries in +non-standard locations now have their rpath options set correctly for our +build system both for the build tree and the install tree so you don't have +to fiddle with LD_LIBRARY_PATH, etc. + +1.7 Implement build-system infrastructure for installed Ada bindings and +examples + +Install source files, library information files, and the plplotada library +associated with the Ada bindings. Configure and install the pkg-config file +for the plplotada library. Install the Ada examples and a configured Makefile +to build them in the install tree. + +1.8 WxWidgets driver improvements + +A number of small bug fixes. New functionality includes menu options to +save the current plot in different formats. + +1.9 External libLASi library improvements affecting our psttf device. + +Our psttf device depends on the libLASi library. libLASi-1.1.0 has just been +released at http://sourceforge.net/svn/?group_id=187113 . We recommend +using this latest version of libLASi for building PLplot and the psttf +device since this version of libLASi is more robust against glyph +information returned by pango/cairo/fontconfig that on rare occasions is not +suitable for use by libLASi. + + PLplot Release 5.8.0 ~~~~~~~~~~~~~~~~~~~~ Modified: trunk/README.release =================================================================== --- trunk/README.release 2008-02-10 17:07:02 UTC (rev 8237) +++ trunk/README.release 2008-02-10 17:22:45 UTC (rev 8238) @@ -1,4 +1,4 @@ -PLplot Release 5.9.0 +PLplot Release 5.9.1 ~~~~~~~~~~~~~~~~~~~~ This is a development release of PLplot. It represents the ongoing efforts of the community to improve the PLplot plotting package. Development @@ -21,25 +21,28 @@ 1. Changes relative to PLplot 5.8.0 (the previous stable release) -1.1 All autotools-related files have now been removed -1.2 Date / time labels for axes -1.3 Code cleanup -1.4 Bug fixes -1.5 Alpha value support -1.6 Build system improvements -1.7 Implement build-system infrastructure for installed Ada bindings and + +2. Changes relative to PLplot 5.8.0 (the previous stable release) + +2.1 All autotools-related files have now been removed +2.2 Date / time labels for axes +2.3 Code cleanup +2.4 Bug fixes +2.5 Alpha value support +2.6 Build system improvements +2.7 Implement build-system infrastructure for installed Ada bindings and examples -1.8 WxWidgets driver improvements -1.9 External libLASi library improvements affecting our psttf device. +2.8 WxWidgets driver improvements +2.9 External libLASi library improvements affecting our psttf device. -1.1 All autotools-related files have now been removed +2.1 All autotools-related files have now been removed CMake (with the exception of a special build script for the DJGPP platform) is now the only supported build system. It has been tested on Linux / Unix, Mac OS-X and Windows platforms. -1.2 Date / time labels for axes +2.2 Date / time labels for axes Plplot now allows date / time labels to be used on axes. A new option ('d') is available for the xopt and yopt arguments to plbox which @@ -53,7 +56,7 @@ See documentation for available options on your platform. Example 29 demonstrates the new capabilities. -1.3 Code cleanup +2.3 Code cleanup The plplot source code has been cleaned up to make consistent use of (const char *) and (char *) throughout. Some API functions have changed @@ -66,7 +69,7 @@ There has also been some cleanup of include files in the C++ examples so the code will compile with the forthcoming gcc-4.3. -1.4 Bug fixes +2.4 Bug fixes Various fixes including: @@ -78,7 +81,7 @@ Various dependency fixes to ensure that parallel builds (using make -j) work under unix. -1.5 Alpha value support +2.5 Alpha value support PLplot core has been modified to support a transparency or alpha value channel for each color in color map 0 and 1. In addition a number of new @@ -92,7 +95,7 @@ aquaterm drivers support alpha values. There are some limitations with the gd driver due to transparency support in the underlying libgd library. -1.6 Build system improvements +2.6 Build system improvements We now transform link flag results delivered to the CMake environment by pkg-config into the preferred CMake form of library information. The @@ -101,7 +104,7 @@ build system both for the build tree and the install tree so you don't have to fiddle with LD_LIBRARY_PATH, etc. -1.7 Implement build-system infrastructure for installed Ada bindings and +2.7 Implement build-system infrastructure for installed Ada bindings and examples Install source files, library information files, and the plplotada library @@ -109,12 +112,12 @@ for the plplotada library. Install the Ada examples and a configured Makefile to build them in the install tree. -1.8 WxWidgets driver improvements +2.8 WxWidgets driver improvements A number of small bug fixes. New functionality includes menu options to save the current plot in different formats. -1.9 External libLASi library improvements affecting our psttf device. +2.9 External libLASi library improvements affecting our psttf device. Our psttf device depends on the libLASi library. libLASi-1.1.0 has just been released at http://sourceforge.net/svn/?group_id=187113 . We recommend This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-02-12 03:16:14
|
Revision: 8241 http://plplot.svn.sourceforge.net/plplot/?rev=8241&view=rev Author: airwin Date: 2008-02-11 19:16:19 -0800 (Mon, 11 Feb 2008) Log Message: ----------- Make pdftex.map a file which is configured to deal with the EC versus ec issue for tetex versus texlive. Modified Paths: -------------- trunk/cmake/modules/docbook.cmake trunk/doc/docbook/src/CMakeLists.txt Added Paths: ----------- trunk/doc/docbook/src/pdftex.map.in Removed Paths: ------------- trunk/doc/docbook/src/pdftex.map Modified: trunk/cmake/modules/docbook.cmake =================================================================== --- trunk/cmake/modules/docbook.cmake 2008-02-11 03:38:21 UTC (rev 8240) +++ trunk/cmake/modules/docbook.cmake 2008-02-12 03:16:19 UTC (rev 8241) @@ -55,6 +55,19 @@ # Check for required programs and perl libraries. if(BUILD_DOC) + # EC_PDFTEX needed to configure pdftex.map which is used in general for + # the documentation build. The specific location in + # /usr/share/texmf/dvips/base is used in Debian sarge and may cover other + # distributions which still use tetex. + find_file(EC_ENC_NAME EC.enc /usr/share/texmf/dvips/base) + if(EC_ENC_NAME) + # Value appropriate for tetex + set(EC_PDFTEX EC) + else(EC_ENC_NAME) + # Value appropriate for texlive + set(EC_PDFTEX ec) + endif(EC_ENC_NAME) + if(PERL_FOUND) check_perl_modules(PERL_XML_PARSER XML::Parser) check_perl_modules(PERL_XML_DOM XML::DOM) Modified: trunk/doc/docbook/src/CMakeLists.txt =================================================================== --- trunk/doc/docbook/src/CMakeLists.txt 2008-02-11 03:38:21 UTC (rev 8240) +++ trunk/doc/docbook/src/CMakeLists.txt 2008-02-12 03:16:19 UTC (rev 8241) @@ -63,7 +63,6 @@ file ${SOURCE_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/jadetex.cfg - ${CMAKE_CURRENT_SOURCE_DIR}/pdftex.map ) get_filename_component(filename ${file} NAME) if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/${filename}) @@ -78,7 +77,6 @@ file ${SOURCE_FILES} ${CMAKE_CURRENT_SOURCE_DIR}/jadetex.cfg - ${CMAKE_CURRENT_SOURCE_DIR}/pdftex.map ) endif(NOT CMAKE_BINARY_DIR STREQUAL "${CMAKE_SOURCE_DIR}") @@ -233,6 +231,11 @@ ${CMAKE_CURRENT_BINARY_DIR}/${STYLESHEET_PRINT} ) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/pdftex.map.in + ${CMAKE_CURRENT_BINARY_DIR}/pdftex.map + ) + # Custom commands for building print version of documentation add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${BASE}.jadetex @@ -280,7 +283,7 @@ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${BASE}.jadetex ${CMAKE_CURRENT_SOURCE_DIR}/jadetex.cfg - ${CMAKE_CURRENT_SOURCE_DIR}/pdftex.map + ${CMAKE_CURRENT_BINARY_DIR}/pdftex.map ) # Following approach used in our ABS, use shell commands to recurse @@ -315,7 +318,7 @@ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${BASE}.jadetex ${CMAKE_CURRENT_SOURCE_DIR}/jadetex.cfg - ${CMAKE_CURRENT_SOURCE_DIR}/pdftex.map + ${CMAKE_CURRENT_BINARY_DIR}/pdftex.map ${CMAKE_CURRENT_BINARY_DIR}/${BASE}.pdf ) Deleted: trunk/doc/docbook/src/pdftex.map =================================================================== --- trunk/doc/docbook/src/pdftex.map 2008-02-11 03:38:21 UTC (rev 8240) +++ trunk/doc/docbook/src/pdftex.map 2008-02-12 03:16:19 UTC (rev 8241) @@ -1,31 +0,0 @@ -cmr10 "ECEncoding ReEncodeFont"<EC.enc <cmr10.pfb -cmmi10 <cmmi10.pfb -cmsy10 <cmsy10.pfb -cmsy9 <cmsy9.pfb -ectt0800 "ECEncoding ReEncodeFont"<EC.enc <cmtt8.pfb -ecit0900 "0.9 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmitt10.pfb -ecit1000 "ECEncoding ReEncodeFont"<EC.enc <cmitt10.pfb -tcrm0800 "ECEncoding ReEncodeFont"<EC.enc <cmr8.pfb -ecrm0600 "ECEncoding ReEncodeFont"<EC.enc <cmr8.pfb -ectt0900 "ECEncoding ReEncodeFont"<EC.enc <cmtt9.pfb -ecti1000 "ECEncoding ReEncodeFont"<EC.enc <cmti10.pfb -ecbx1000 "ECEncoding ReEncodeFont"<EC.enc <cmbx10.pfb -ecrb1000 "ECEncoding ReEncodeFont"<EC.enc <cmbx10.pfb -ecrm0800 "ECEncoding ReEncodeFont"<EC.enc <cmr8.pfb -ecti0800 "ECEncoding ReEncodeFont"<EC.enc <cmti8.pfb -tcrm1000 "ECEncoding ReEncodeFont"<EC.enc <cmr10.pfb -ecrm1000 "ECEncoding ReEncodeFont"<EC.enc <cmr10.pfb -ecrm0900 "ECEncoding ReEncodeFont"<EC.enc <cmr10.pfb -ecsx1000 "ECEncoding ReEncodeFont"<EC.enc <cmssbx10.pfb -ecss1000 "ECEncoding ReEncodeFont"<EC.enc <cmssbx10.pfb -ecsx1200 "ECEncoding ReEncodeFont"<EC.enc <cmss12.pfb -ecss1200 "ECEncoding ReEncodeFont"<EC.enc <cmss12.pfb -ecsx1440 "1.2 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmss12.pfb -ecss1440 "1.2 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmss12.pfb -ecsx1728 "1.44 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmss12.pfb -ecss1728 "1.44 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmss12.pfb -ecsx2074 "1.0165 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmss17.pfb -ecss2074 "1.0165 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmss17.pfb -ecsx2488 "1.4635 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmss17.pfb -ecss2488 "1.4635 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmss17.pfb -ectt1095 "1.095 ExtendFont" "ECEncoding ReEncodeFont"<EC.enc <cmtt10.pfb Copied: trunk/doc/docbook/src/pdftex.map.in (from rev 8239, trunk/doc/docbook/src/pdftex.map) =================================================================== --- trunk/doc/docbook/src/pdftex.map.in (rev 0) +++ trunk/doc/docbook/src/pdftex.map.in 2008-02-12 03:16:19 UTC (rev 8241) @@ -0,0 +1,31 @@ +cmr10 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmr10.pfb +cmmi10 <cmmi10.pfb +cmsy10 <cmsy10.pfb +cmsy9 <cmsy9.pfb +ectt0800 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmtt8.pfb +ecit0900 "0.9 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmitt10.pfb +ecit1000 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmitt10.pfb +tcrm0800 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmr8.pfb +ecrm0600 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmr8.pfb +ectt0900 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmtt9.pfb +ecti1000 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmti10.pfb +ecbx1000 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmbx10.pfb +ecrb1000 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmbx10.pfb +ecrm0800 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmr8.pfb +ecti0800 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmti8.pfb +tcrm1000 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmr10.pfb +ecrm1000 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmr10.pfb +ecrm0900 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmr10.pfb +ecsx1000 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmssbx10.pfb +ecss1000 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmssbx10.pfb +ecsx1200 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss12.pfb +ecss1200 "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss12.pfb +ecsx1440 "1.2 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss12.pfb +ecss1440 "1.2 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss12.pfb +ecsx1728 "1.44 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss12.pfb +ecss1728 "1.44 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss12.pfb +ecsx2074 "1.0165 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss17.pfb +ecss2074 "1.0165 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss17.pfb +ecsx2488 "1.4635 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss17.pfb +ecss2488 "1.4635 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmss17.pfb +ectt1095 "1.095 ExtendFont" "@EC_PDFTEX@Encoding ReEncodeFont"<@EC_PDFTEX@.enc <cmtt10.pfb This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-03-09 19:16:57
|
Revision: 8257 http://plplot.svn.sourceforge.net/plplot/?rev=8257&view=rev Author: airwin Date: 2008-03-09 12:17:02 -0700 (Sun, 09 Mar 2008) Log Message: ----------- c_plimage changes to show plimage is part of our public API. Modified Paths: -------------- trunk/bindings/ada/plplot_thin.ads.cmake trunk/bindings/octave/plplot_octave.h.in trunk/include/plplot.h trunk/src/plimage.c Modified: trunk/bindings/ada/plplot_thin.ads.cmake =================================================================== --- trunk/bindings/ada/plplot_thin.ads.cmake 2008-03-05 19:53:10 UTC (rev 8256) +++ trunk/bindings/ada/plplot_thin.ads.cmake 2008-03-09 19:17:02 UTC (rev 8257) @@ -1402,7 +1402,7 @@ plimage( data : Long_Float_Pointer_Array; nx : PLINT; ny : PLINT; xmin : PLFLT; xmax : PLFLT; ymin : PLFLT; ymax : PLFLT; zmin : PLFLT; zmax : PLFLT; Dxmin : PLFLT; Dxmax : PLFLT; Dymin : PLFLT; Dymax : PLFLT); - pragma Import(C, plimage, "plimage"); + pragma Import(C, plimage, "c_plimage"); -- Set up a new line style Modified: trunk/bindings/octave/plplot_octave.h.in =================================================================== --- trunk/bindings/octave/plplot_octave.h.in 2008-03-05 19:53:10 UTC (rev 8256) +++ trunk/bindings/octave/plplot_octave.h.in 2008-03-09 19:17:02 UTC (rev 8257) @@ -481,6 +481,7 @@ #define plhist c_plhist #define plhls c_plhls #define plhlsrgb c_plhlsrgb +#define plimage c_plimage #define plinit c_plinit #define pljoin c_pljoin #define pllab c_pllab Modified: trunk/include/plplot.h =================================================================== --- trunk/include/plplot.h 2008-03-05 19:53:10 UTC (rev 8256) +++ trunk/include/plplot.h 2008-03-09 19:17:02 UTC (rev 8257) @@ -522,6 +522,7 @@ #define plhist c_plhist #define plhls c_plhls #define plhlsrgb c_plhlsrgb +#define plimage c_plimage #define plinit c_plinit #define pljoin c_pljoin #define pllab c_pllab @@ -1450,7 +1451,7 @@ /* plots a 2d image (or a matrix too large for plshade() ) */ PLDLLIMPEXP void -plimage( PLFLT **data, PLINT nx, PLINT ny, +c_plimage( PLFLT **data, PLINT nx, PLINT ny, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax); Modified: trunk/src/plimage.c =================================================================== --- trunk/src/plimage.c 2008-03-05 19:53:10 UTC (rev 8256) +++ trunk/src/plimage.c 2008-03-09 19:17:02 UTC (rev 8257) @@ -160,7 +160,7 @@ \*-------------------------------------------------------------------------*/ void -plimage(PLFLT **idata, PLINT nx, PLINT ny, +c_plimage(PLFLT **idata, PLINT nx, PLINT ny, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-03-10 01:01:57
|
Revision: 8266 http://plplot.svn.sourceforge.net/plplot/?rev=8266&view=rev Author: airwin Date: 2008-03-09 18:01:59 -0700 (Sun, 09 Mar 2008) Log Message: ----------- AWI for Hezekiah M. Carty to create a fixed range version of plimage (plimagefr) with plimage (which calculates an automatic range internally) now calling plimagefr to do most of the work. Modified Paths: -------------- trunk/include/plplot.h trunk/src/plimage.c Modified: trunk/include/plplot.h =================================================================== --- trunk/include/plplot.h 2008-03-09 23:29:18 UTC (rev 8265) +++ trunk/include/plplot.h 2008-03-10 01:01:59 UTC (rev 8266) @@ -523,6 +523,7 @@ #define plhls c_plhls #define plhlsrgb c_plhlsrgb #define plimage c_plimage +#define plimagefr c_plimagefr #define plinit c_plinit #define pljoin c_pljoin #define pllab c_pllab @@ -1448,13 +1449,22 @@ PLDLLIMPEXP void c_plstripd(PLINT id); - /* plots a 2d image (or a matrix too large for plshade() ) */ +/* plots a 2d image (or a matrix too large for plshade() ) */ PLDLLIMPEXP void -c_plimage( PLFLT **data, PLINT nx, PLINT ny, +c_plimagefr(PLFLT **idata, PLINT nx, PLINT ny, PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, - PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax); + PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax, + PLFLT valuemin, PLFLT valuemax); +/* plots a 2d image (or a matrix too large for plshade() ) - colors + automatically scaled */ + +PLDLLIMPEXP void +c_plimage(PLFLT **idata, PLINT nx, PLINT ny, + PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, + PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax); + /* Set up a new line style */ PLDLLIMPEXP void Modified: trunk/src/plimage.c =================================================================== --- trunk/src/plimage.c 2008-03-09 23:29:18 UTC (rev 8265) +++ trunk/src/plimage.c 2008-03-10 01:01:59 UTC (rev 8266) @@ -136,11 +136,10 @@ } /*-------------------------------------------------------------------------*\ - * plimage - * (***** SUBJECT TO CHANGE ******) + * plimagefr * * arguments are - * data: array containing image data + * idata: array containing image data * nx: dimension of the array in the X axis. * ny: dimension of the array in the Y axis * The array data is indexed like data[ix][iy] @@ -157,18 +156,36 @@ * plots only the window of points whose(x,y)'s fall * inside the [Dxmin->Dxmax]X[Dymin->Dymax] window * + * valuemin, valuemax: + * The minimum and maximum values to use for value -> color + * mappings. A value in idata of valuemin or less will have + * color 0.0 and a value in idata of valuemax or greater will + * have color 1.0. Values between valuemin and valuemax will + * map linearly to to the colors between 0.0 and 1.0. + * If you do not want to display values outside of the + * (valuemin -> valuemax) range, then set zmin = valuemin and + * zmax = valuemax. + * This allows for multiple plots to use the same color scale + * with a consistent value -> color mapping, regardless of the + * image content. + * \*-------------------------------------------------------------------------*/ void -c_plimage(PLFLT **idata, PLINT nx, PLINT ny, - PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, - PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax) +c_plimagefr(PLFLT **idata, PLINT nx, PLINT ny, + PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, + PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax, + PLFLT valuemin, PLFLT valuemax) { PLINT nnx, nny, ix, iy, ixx, iyy, xm, ym; PLFLT dx, dy; + // Zf holds transformed image pixel values + // szmin and szmax are zmin and zmax scaled to unsigned short values unsigned short *Zf, szmin, szmax; short *Xf, *Yf; - PLFLT lzmin, lzmax, tz; + // This is used when looping through the image array, checking to + // make sure the values are within an acceptable range. + PLFLT datum; if (plsc->level < 3) { plabort("plimage: window must be set up first"); @@ -180,8 +197,8 @@ return; } - if (Dxmin < xmin || Dxmax > xmax || Dymin < ymin || Dymax > ymax){ - plabort("plimage: Dxmin or Dxmax or Dymin or Dymax not compatible with xminor xmax or ymin or ymax."); + if (Dxmin < xmin || Dxmax > xmax || Dymin < ymin || Dymax > ymax) { + plabort("plimage: Dxmin or Dxmax or Dymin or Dymax not compatible with xmin or xmax or ymin or ymax."); return; } @@ -196,38 +213,41 @@ } xm = floor((Dxmin-xmin)/dx); ym = floor((Dymin-ymin)/dy); - lzmin = lzmax = idata[xm][ym]; + // Go through the image values and scale them to fit in an + // unsigned short range. + // Any values greater than valuemax are set to valuemax, + // and values less than valuemin are set to valuemin. + ixx=-1; for (ix=xm; ix<xm+nnx; ix++) { + ixx++; iyy=0; for (iy=ym; iy<ym+nny; iy++) { - tz = idata[ix][iy]; - if (lzmax < tz) - lzmax = tz; - if (lzmin > tz) - lzmin = tz; + datum = idata[ix][iy]; + if (datum < valuemin) { + datum = valuemin; + } + else if (datum > valuemax) { + datum = valuemax; + } + Zf[ixx*nny+iyy++] = + (datum - valuemin) / (valuemax - valuemin) * USHRT_MAX; } } - ixx=-1; - for (ix=xm; ix<xm+nnx; ix++) { - ixx++; iyy=0; - for (iy=ym; iy<ym+nny; iy++) - Zf[ixx*nny+iyy++] = (idata[ix][iy] - lzmin)/(lzmax-lzmin)*USHRT_MAX; - } - if (zmin == zmax) { - zmin = lzmin; - zmax = lzmax; - } else { - if (zmin < lzmin) - zmin = lzmin; - - if (zmax > lzmax) - zmax = lzmax; + zmin = valuemin; + zmax = valuemax; } + else { + if (zmin < valuemin) + zmin = valuemin; + if (zmax > valuemax) + zmax = valuemax; + } - szmin = (zmin - lzmin)/(lzmax-lzmin)*USHRT_MAX; - szmax = (zmax - lzmin)/(lzmax-lzmin)*USHRT_MAX; + // The value range to plot, scaled to unsigned short values + szmin = (zmin - valuemin) / (valuemax - valuemin) * USHRT_MAX; + szmax = (zmax - valuemin) / (valuemax - valuemin) * USHRT_MAX; xmin = Dxmin; xmax = Dxmax; ymin = Dymin; ymax = Dymax; @@ -245,11 +265,12 @@ dx = dx*(nx-1)/nx; dy = dy*(ny-1)/ny; - for (ix = 0; ix < nnx; ix++) + for (ix = 0; ix < nnx; ix++) { for (iy = 0; iy < nny; iy++) { Xf[ix*nny+iy] = plP_wcpcx(xmin + ix*dx); Yf[ix*nny+iy] = plP_wcpcy(ymin + iy*dy); } + } plP_image(Xf, Yf, Zf, nnx, nny, xmin, ymin, dx, dy, szmin, szmax); @@ -257,3 +278,55 @@ free(Yf); free(Zf); } + +/*-------------------------------------------------------------------------*\ + * plimage + * (***** SUBJECT TO CHANGE ******) + * + * arguments are + * idata: array containing image data + * nx: dimension of the array in the X axis. + * ny: dimension of the array in the Y axis + * The array data is indexed like data[ix][iy] + * + * xmin, xmax, ymin, ymax: + * data[0][0] corresponds to (xmin,ymin) + * data[nx-1][ny-1] to (xmax,ymax) + * + * zmin, zmax: + * only data within bounds zmin <= data <= zmax will be + * plotted. If zmin == zmax, all data will be ploted. + * + * Dxmin, Dxmax, Dymin, Dymax: + * plots only the window of points whose(x,y)'s fall + * inside the [Dxmin->Dxmax]X[Dymin->Dymax] window + * +\*-------------------------------------------------------------------------*/ + +void +c_plimage(PLFLT **idata, PLINT nx, PLINT ny, + PLFLT xmin, PLFLT xmax, PLFLT ymin, PLFLT ymax, PLFLT zmin, PLFLT zmax, + PLFLT Dxmin, PLFLT Dxmax, PLFLT Dymin, PLFLT Dymax) +{ + PLINT ix, iy; + PLFLT data_min, data_max, iz; + + // Find the minimum and maximum values in the image, and automatically + // scale the colors scale over this range. + data_min = data_max = idata[0][0]; + + for (ix = 0; ix < nx; ix++) { + for (iy = 0; iy < ny; iy++) { + iz = idata[ix][iy]; + if (data_max < iz) + data_max = iz; + if (data_min > iz) + data_min = iz; + } + } + + // Call plimagefr with the value -> color range mapped to the minimum + // and maximum values in idata. + plimagefr(idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, + Dxmin, Dxmax, Dymin, Dymax, data_min, data_max); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-03-11 10:14:32
|
Revision: 8269 http://plplot.svn.sourceforge.net/plplot/?rev=8269&view=rev Author: andrewross Date: 2008-03-11 03:14:36 -0700 (Tue, 11 Mar 2008) Log Message: ----------- Officially depreciate plarrows from the common API. It was replaced by plvect about 4 years ago and hasn't appeared in the examples or documentation since then. Modified Paths: -------------- trunk/bindings/ada/plplot.adb.cmake trunk/bindings/ada/plplot.ads.cmake trunk/bindings/ada/plplot_thin.ads.cmake trunk/bindings/ada/plplot_traditional.adb.cmake trunk/bindings/ada/plplot_traditional.ads.cmake trunk/bindings/octave/plplot_octave.h.in trunk/include/plplot.h trunk/src/pldeprecated.c trunk/src/plvect.c Modified: trunk/bindings/ada/plplot.adb.cmake =================================================================== --- trunk/bindings/ada/plplot.adb.cmake 2008-03-10 17:38:45 UTC (rev 8268) +++ trunk/bindings/ada/plplot.adb.cmake 2008-03-11 10:14:36 UTC (rev 8269) @@ -1101,15 +1101,6 @@ end Advance_To_Subpage; - -- fix this - -- simple arrow plotter. - -- plarrows - procedure Arrow_Plotter is - begin - Put_Line("Not implemented due to lack of documentation."); - end Arrow_Plotter; - - -- fix this See comment for plcont. -- Draw a 2D vector plot. -- plvect Modified: trunk/bindings/ada/plplot.ads.cmake =================================================================== --- trunk/bindings/ada/plplot.ads.cmake 2008-03-10 17:38:45 UTC (rev 8268) +++ trunk/bindings/ada/plplot.ads.cmake 2008-03-11 10:14:36 UTC (rev 8269) @@ -563,11 +563,6 @@ procedure Advance_To_Subpage(Page : Natural); - -- simple arrow plotter. - -- plarrows - procedure Arrow_Plotter; - - -- Draw a 2D vector plot. -- plvect procedure Vector_Plot Modified: trunk/bindings/ada/plplot_thin.ads.cmake =================================================================== --- trunk/bindings/ada/plplot_thin.ads.cmake 2008-03-10 17:38:45 UTC (rev 8268) +++ trunk/bindings/ada/plplot_thin.ads.cmake 2008-03-11 10:14:36 UTC (rev 8269) @@ -424,12 +424,6 @@ -- simple arrow plotter. procedure - plarrows(u : PL_Float_Array; v : PL_Float_Array; x : PL_Float_Array; y : PL_Float_Array; n : PLINT; - scale : PLFLT; dx : PLFLT; dy : PLFLT) ; - pragma Import(C, plarrows, "plarrows"); - - - procedure plvect(u : Long_Float_Pointer_Array; v : Long_Float_Pointer_Array; nx : PLINT; ny : PLINT; scale : PLFLT; pltr : Transformation_Procedure_Pointer_Type; pltr_data : PLpointer); Modified: trunk/bindings/ada/plplot_traditional.adb.cmake =================================================================== --- trunk/bindings/ada/plplot_traditional.adb.cmake 2008-03-10 17:38:45 UTC (rev 8268) +++ trunk/bindings/ada/plplot_traditional.adb.cmake 2008-03-11 10:14:36 UTC (rev 8269) @@ -1102,14 +1102,6 @@ end pladv; - -- fix this - -- simple arrow plotter. - procedure plarrows is - begin - Put_Line("Not implemented due to lack of documentation."); - end plarrows; - - -- fix this See comment for plcont. -- Draw a 2D vector plot. procedure plvect Modified: trunk/bindings/ada/plplot_traditional.ads.cmake =================================================================== --- trunk/bindings/ada/plplot_traditional.ads.cmake 2008-03-10 17:38:45 UTC (rev 8268) +++ trunk/bindings/ada/plplot_traditional.ads.cmake 2008-03-11 10:14:36 UTC (rev 8269) @@ -559,10 +559,6 @@ procedure pladv(Page : Natural); - -- simple arrow plotter. - procedure plarrows; - - -- Draw a 2D vector plot. procedure plvect (u, v : Real_Matrix; Modified: trunk/bindings/octave/plplot_octave.h.in =================================================================== --- trunk/bindings/octave/plplot_octave.h.in 2008-03-10 17:38:45 UTC (rev 8268) +++ trunk/bindings/octave/plplot_octave.h.in 2008-03-11 10:14:36 UTC (rev 8269) @@ -426,7 +426,6 @@ #define pladv c_pladv #define plclear c_plclear -#define plarrows c_plarrows #define plaxes c_plaxes #define plbin c_plbin #define plbop c_plbop @@ -601,11 +600,6 @@ void c_pladv(PLINT page); //%name pladv -/* simple arrow plotter. */ - -void c_plarrows(PLFLT *u, PLFLT *v, PLFLT *x, PLFLT *y, PLINT n, - PLFLT scale, PLFLT dx, PLFLT dy) ; //%name plarrows //%input u(n), v(n), x(n), y(n) - /* This functions similarly to plbox() except that the origin of the axes */ /* is placed at the user-specified point (x0, y0). */ @@ -1667,5 +1661,13 @@ } #endif +/* Depreciated functions - retained for backwards compatibility */ + +/* simple arrow plotter. */ + +void plarrows(PLFLT *u, PLFLT *v, PLFLT *x, PLFLT *y, PLINT n, + PLFLT scale, PLFLT dx, PLFLT dy) ; //%name plarrows //%input u(n), v(n), x(n), y(n) + + #endif /* __PLPLOT_H__ */ Modified: trunk/include/plplot.h =================================================================== --- trunk/include/plplot.h 2008-03-10 17:38:45 UTC (rev 8268) +++ trunk/include/plplot.h 2008-03-11 10:14:36 UTC (rev 8269) @@ -469,7 +469,6 @@ #define pl_setcontlabelformat c_pl_setcontlabelformat #define pl_setcontlabelparam c_pl_setcontlabelparam #define pladv c_pladv -#define plarrows c_plarrows #define plaxes c_plaxes #define plbin c_plbin #define plbop c_plbop @@ -669,10 +668,6 @@ /* simple arrow plotter. */ PLDLLIMPEXP void -c_plarrows(PLFLT *u, PLFLT *v, PLFLT *x, PLFLT *y, PLINT n, - PLFLT scale, PLFLT dx, PLFLT dy) ; - -PLDLLIMPEXP void c_plvect(PLFLT **u, PLFLT **v, PLINT nx, PLINT ny, PLFLT scale, void (*pltr) (PLFLT, PLFLT, PLFLT *, PLFLT *, PLPointer), PLPointer pltr_data); @@ -1802,6 +1797,12 @@ PLDLLIMPEXP void plRGB_HLS(PLFLT r, PLFLT g, PLFLT b, PLFLT *p_h, PLFLT *p_l, PLFLT *p_s); + +PLDLLIMPEXP void +plarrows(PLFLT *u, PLFLT *v, PLFLT *x, PLFLT *y, PLINT n, + PLFLT scale, PLFLT dx, PLFLT dy) ; + + #ifdef __cplusplus } #endif Modified: trunk/src/pldeprecated.c =================================================================== --- trunk/src/pldeprecated.c 2008-03-10 17:38:45 UTC (rev 8268) +++ trunk/src/pldeprecated.c 2008-03-11 10:14:36 UTC (rev 8269) @@ -54,3 +54,111 @@ { c_plrgbhls(r, g, b, p_h, p_l, p_s); } + +/*--------------------------------------------------------------------------*\ + * Use plvect / plsvect instead. + * void plarrows() + * + * simple arrow plotter + * copyright 1993 Wesley Ebisuzaki + * + * an arrow is defined by its location (x, y) and its direction (u, v) + * + * inputs: + * u[i], v[i] arrow's horizontal and vertical projection + * x[i], y[i] arrow's location (world coordinates) + * n number of arrows to draw + * scale > 0 scaling factor for arrows + * 0 default scaling factor + * < 0 default scaling factor * (-scale) + * dx, dy distance between arrows + * used when calculating the default arrow scaling + * so that arrows don't overlap + * +\*--------------------------------------------------------------------------*/ + +#define SCALE0 2.0 + +/* definition of original arrow: 2 line segments */ + +static PLFLT arrow_x[4] = {0.5, -0.5, -0.27, -0.5}; +static PLFLT arrow_y[4] = {0.0, 0.0, 0.0, 0.20}; + +void +plarrows(PLFLT *u, PLFLT *v, PLFLT *x, PLFLT *y, PLINT n, + PLFLT scale, PLFLT dx, PLFLT dy) +{ + PLFLT uu, vv; + PLINT i, j, npts = 4; + PLINT px0, py0, dpx, dpy; + PLINT a_x[4], a_y[4]; + PLFLT max_u, max_v; + double t; + + plwarn("plarrows: function depreciated. Use plvect instead"); + + if (n <= 0) return; + + if (scale <= 0.0) { + + /* automatic scaling */ + /* find max / min values of data */ + + max_u = u[0]; + max_v = v[0]; + for (i = 1; i < n; i++) { + t = fabs((double) u[i]); + max_u = t > max_u ? t : max_u; + t = fabs((double) v[i]); + max_v = t > max_v ? t : max_v; + } + + /* measure distance in grid boxs */ + + max_u = max_u / fabs( (double) dx); + max_v = max_v / fabs( (double) dy); + + t = (max_u > max_v ? max_u : max_v); + t = SCALE0 / t; + if (scale < 0) { + scale = -scale * t; + } + else { + scale = t; + } + } + pldebug("plarrows", "scale factor=%lf n=%d\n", scale,n); + + for (i = 0; i < n; i++) { + uu = scale * u[i]; + vv = scale * v[i]; + if (uu == 0.0 && uu == 0.0) continue; + + /* conversion to physical coordinates */ + + px0 = plP_wcpcx(x[i]); + py0 = plP_wcpcy(y[i]); + + pldebug("plarrows", "%f %f %d %d\n",x[i],y[i],px0,py0); + + dpx = plP_wcpcx(x[i] + 0.5*uu) - px0; + dpy = plP_wcpcy(y[i] + 0.5*vv) - py0; + + /* transform arrow -> a */ + + for (j = 0; j < npts; j++) { + a_x[j] = arrow_x[j] * dpx - + arrow_y[j] * dpy + px0; + a_y[j] = arrow_x[j] * dpy + + arrow_y[j] * dpx + py0; + } + + /* draw the arrow */ + plP_movphy(a_x[0], a_y[0]); + plP_draphy(a_x[1], a_y[1]); + plP_movphy(a_x[2], a_y[2]); + plP_draphy(a_x[3], a_y[3]); + } + +} + Modified: trunk/src/plvect.c =================================================================== --- trunk/src/plvect.c 2008-03-10 17:38:45 UTC (rev 8268) +++ trunk/src/plvect.c 2008-03-11 10:14:36 UTC (rev 8269) @@ -31,113 +31,9 @@ static void plP_plotvect(PLFLT x, PLFLT y, PLFLT u, PLFLT v, PLFLT scale); /*--------------------------------------------------------------------------*\ - * void c_plarrows() - * - * simple arrow plotter - * copyright 1993 Wesley Ebisuzaki - * - * an arrow is defined by its location (x, y) and its direction (u, v) - * - * inputs: - * u[i], v[i] arrow's horizontal and vertical projection - * x[i], y[i] arrow's location (world coordinates) - * n number of arrows to draw - * scale > 0 scaling factor for arrows - * 0 default scaling factor - * < 0 default scaling factor * (-scale) - * dx, dy distance between arrows - * used when calculating the default arrow scaling - * so that arrows don't overlap - * -\*--------------------------------------------------------------------------*/ - -#define SCALE0 2.0 - -/* definition of original arrow: 2 line segments */ - -static PLFLT arrow_x[4] = {0.5, -0.5, -0.27, -0.5}; -static PLFLT arrow_y[4] = {0.0, 0.0, 0.0, 0.20}; - -void -c_plarrows(PLFLT *u, PLFLT *v, PLFLT *x, PLFLT *y, PLINT n, - PLFLT scale, PLFLT dx, PLFLT dy) -{ - PLFLT uu, vv; - PLINT i, j, npts = 4; - PLINT px0, py0, dpx, dpy; - PLINT a_x[4], a_y[4]; - PLFLT max_u, max_v; - double t; - - if (n <= 0) return; - - if (scale <= 0.0) { - - /* automatic scaling */ - /* find max / min values of data */ - - max_u = u[0]; - max_v = v[0]; - for (i = 1; i < n; i++) { - t = fabs((double) u[i]); - max_u = t > max_u ? t : max_u; - t = fabs((double) v[i]); - max_v = t > max_v ? t : max_v; - } - - /* measure distance in grid boxs */ - - max_u = max_u / fabs( (double) dx); - max_v = max_v / fabs( (double) dy); - - t = (max_u > max_v ? max_u : max_v); - t = SCALE0 / t; - if (scale < 0) { - scale = -scale * t; - } - else { - scale = t; - } - } - pldebug("plarrows", "scale factor=%lf n=%d\n", scale,n); - - for (i = 0; i < n; i++) { - uu = scale * u[i]; - vv = scale * v[i]; - if (uu == 0.0 && uu == 0.0) continue; - - /* conversion to physical coordinates */ - - px0 = plP_wcpcx(x[i]); - py0 = plP_wcpcy(y[i]); - - pldebug("plarrows", "%f %f %d %d\n",x[i],y[i],px0,py0); - - dpx = plP_wcpcx(x[i] + 0.5*uu) - px0; - dpy = plP_wcpcy(y[i] + 0.5*vv) - py0; - - /* transform arrow -> a */ - - for (j = 0; j < npts; j++) { - a_x[j] = arrow_x[j] * dpx - - arrow_y[j] * dpy + px0; - a_y[j] = arrow_x[j] * dpy + - arrow_y[j] * dpx + py0; - } - - /* draw the arrow */ - plP_movphy(a_x[0], a_y[0]); - plP_draphy(a_x[1], a_y[1]); - plP_movphy(a_x[2], a_y[2]); - plP_draphy(a_x[3], a_y[3]); - } - -} - -/*--------------------------------------------------------------------------*\ * void c_plsvect() * - * Set the style of the arrow used by plarrows + * Set the style of the arrow used by plvect \*--------------------------------------------------------------------------*/ void @@ -239,7 +135,7 @@ /* Calculate apropriate scaling if necessary */ if (scale <= 0.0 ) { - if (nx <= 1 && ny <= 1) { + if (nx <= 1 && ny <= 1) { fprintf(stderr,"plfvect: not enough points for autoscaling\n"); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-03-12 12:05:13
|
Revision: 8275 http://plplot.svn.sourceforge.net/plplot/?rev=8275&view=rev Author: andrewross Date: 2008-03-12 05:05:20 -0700 (Wed, 12 Mar 2008) Log Message: ----------- Implement plsfont / plgfont as a user-friendly front-end to plsfci and plgfci. Modified Paths: -------------- trunk/doc/docbook/src/api.xml trunk/include/plplot.h trunk/src/plsym.c Modified: trunk/doc/docbook/src/api.xml =================================================================== --- trunk/doc/docbook/src/api.xml 2008-03-12 06:42:25 UTC (rev 8274) +++ trunk/doc/docbook/src/api.xml 2008-03-12 12:05:20 UTC (rev 8275) @@ -4128,6 +4128,89 @@ </sect1> + <sect1 id="plgfont" renderas="sect3"> + <title> + <function>plgfont</function>: Get family, style and weight of the + current font + </title> + + <para> + <funcsynopsis> + <funcprototype> + <funcdef> + <function>plgfont</function> + </funcdef> + <paramdef><parameter>p_family</parameter></paramdef> + <paramdef><parameter>p_style</parameter></paramdef> + <paramdef><parameter>p_weight</parameter></paramdef> + </funcprototype> + </funcsynopsis> + </para> + + <para> + Gets information about current font. See <xref + linkend="fci"/> for more information on font selection. + </para> + + <variablelist> + <varlistentry> + <term> + <parameter>p_family</parameter> + (<literal>PLINT *</literal>, output) + </term> + <listitem> + <para> + Pointer to variable with the current font family. The available + values are given by the PL_FCI_* constants in + plplot.h. Current options are PL_FCI_SANS, PL_FCI_SERIF, + PL_FCI_MONO, PL_FCI_SCRIPT and PL_FCI_SYMBOL. If + p_family is NULL then the font family is not returned. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <parameter>p_style</parameter> + (<literal>PLINT *</literal>, output) + </term> + <listitem> + <para> + Pointer to variable with the current font style. The available + values are given by the PL_FCI_* constants in + plplot.h. Current options are PL_FCI_UPRIGHT, PL_FCI_ITALIC + and PL_FCI_OBLIQUE. If + p_style is NULL then the font style is not returned. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <parameter>p_weight</parameter> + (<literal>PLINT *</literal>, output) + </term> + <listitem> + <para> + Pointer to variable with the current font weight. The available + values are given by the PL_FCI_* constants in + plplot.h. Current options are PL_FCI_MEDIUM and + PL_FCI_BOLD. If + p_weight is NULL then the font weight is not returned. + </para> + </listitem> + </varlistentry> + </variablelist> + + <para> + Redacted form: <function>plgfont(p_family, p_style, p_weight)</function> + </para> + + <para> + This function is used in example 23. + </para> + + </sect1> + + <sect1 id="plglevel" renderas="sect3"> <title> <function>plglevel</function>: Get the (current) run level @@ -10598,6 +10681,90 @@ </sect1> + <sect1 id="plsfont" renderas="sect3"> + <title> + <function>plsfont</function>: Set family, style and weight of the + current font + </title> + + <para> + <funcsynopsis> + <funcprototype> + <funcdef> + <function>plsfont</function> + </funcdef> + <paramdef><parameter>family</parameter></paramdef> + <paramdef><parameter>style</parameter></paramdef> + <paramdef><parameter>weight</parameter></paramdef> + </funcprototype> + </funcsynopsis> + </para> + + <para> + Sets the current font. See <xref + linkend="fci"/> for more information on font selection. + </para> + + <variablelist> + <varlistentry> + <term> + <parameter>family</parameter> + (<literal>PLINT</literal>, input) + </term> + <listitem> + <para> + Font family to select for the current font. The available + values are given by the PL_FCI_* constants in + plplot.h. Current options are PL_FCI_SANS, PL_FCI_SERIF, + PL_FCI_MONO, PL_FCI_SCRIPT and PL_FCI_SYMBOL. A + negative value signifies that the font family should not be + altered. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <parameter>style</parameter> + (<literal>PLINT</literal>, input) + </term> + <listitem> + <para> + Font style to select for the current font. The available + values are given by the PL_FCI_* constants in + plplot.h. Current options are PL_FCI_UPRIGHT, PL_FCI_ITALIC + and PL_FCI_OBLIQUE. A + negative value signifies that the font style should not be + altered. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <parameter>weight</parameter> + (<literal>PLINT</literal>, input) + </term> + <listitem> + <para> + Font weight to select for the current font. The available + values are given by the PL_FCI_* constants in + plplot.h. Current options are PL_FCI_MEDIUM and PL_FCI_BOLD. + A negative value signifies that the font weight should not + be altered. + </para> + </listitem> + </varlistentry> + </variablelist> + + <para> + Redacted form: <function>plsfont(family, style, weight)</function> + </para> + + <para> + This function is used in example 23. + </para> + + </sect1> + <sect1 id="plshades" renderas="sect3"> <title> <function>plshades</function>: Shade regions on the basis of value Modified: trunk/include/plplot.h =================================================================== --- trunk/include/plplot.h 2008-03-12 06:42:25 UTC (rev 8274) +++ trunk/include/plplot.h 2008-03-12 12:05:20 UTC (rev 8275) @@ -506,6 +506,7 @@ #define plgfam c_plgfam #define plgfci c_plgfci #define plgfnam c_plgfnam +#define plgfont c_plgfont #define plglevel c_plglevel #define plgpage c_plgpage #define plgra c_plgra @@ -579,6 +580,7 @@ #define plsfam c_plsfam #define plsfci c_plsfci #define plsfnam c_plsfnam +#define plsfont c_plsfont #define plshade c_plshade #define plshade1 c_plshade1 #define plshades c_plshades @@ -905,6 +907,11 @@ PLDLLIMPEXP void c_plgfnam(char *fnam); +/* Get the current font family, style and weight */ + +PLDLLIMPEXP void +c_plgfont(PLINT *p_family, PLINT *p_style, PLINT *p_weight); + /* Get the (current) run level. */ PLDLLIMPEXP void @@ -1319,6 +1326,11 @@ PLDLLIMPEXP void c_plsfnam(const char *fnam); +/* Set the current font family, style and weight */ + +PLDLLIMPEXP void +c_plsfont(PLINT family, PLINT style, PLINT weight); + /* Shade region. */ PLDLLIMPEXP void Modified: trunk/src/plsym.c =================================================================== --- trunk/src/plsym.c 2008-03-12 06:42:25 UTC (rev 8274) +++ trunk/src/plsym.c 2008-03-12 12:05:20 UTC (rev 8275) @@ -1661,5 +1661,79 @@ plP_text(0, just, xform, xpc, ypc, xrefpc, yrefpc, text); } +/*------------------------------------------------------------------------*\ + * void plsfont() + * + * Set the family, style and weight of the current font. + * This is a user-friendly front-end to plsfci. + * Note: A negative value signifies that this element should not be changed. +\*------------------------------------------------------------------------*/ +void +c_plsfont(PLINT family, PLINT style, PLINT weight) +{ + PLUNICODE fci; + + plgfci(&fci); + + if (family >= 0) { + /* Bounds checking assumes symbol is last font */ + if (family > PL_FCI_SYMBOL) + plwarn("plsfont: Value for family is out of range"); + else + plP_hex2fci((unsigned char)family,PL_FCI_FAMILY,&fci); + } + + if (style >= 0) { + /* Bounds checking assumes oblique is last style */ + if (family > PL_FCI_OBLIQUE) + plwarn("plsfont: Value for style is out of range"); + else + plP_hex2fci((unsigned char)style,PL_FCI_STYLE,&fci); + } + + if (weight >= 0) { + /* Bounds checking assumes bold is last weight */ + if (family > PL_FCI_BOLD) + plwarn("plsfont: Value for weight is out of range"); + else + plP_hex2fci((unsigned char)weight,PL_FCI_WEIGHT,&fci); + } + + plsfci(fci); +} + +/*------------------------------------------------------------------------*\ + * void plgfont() + * + * Get the family, style and weight of the current font. + * This is a user-friendly front-end to plgfci. + * Note: A NULL pointer signifies that this value should not be returned. +\*------------------------------------------------------------------------*/ +void +c_plgfont(PLINT *p_family, PLINT *p_style, PLINT *p_weight) +{ + PLUNICODE fci; + unsigned char val; + + plgfci(&fci); + + if (p_family) { + plP_fci2hex(fci, &val, PL_FCI_FAMILY); + *p_family = (PLINT) val; + } + + if (p_style) { + plP_fci2hex(fci, &val, PL_FCI_STYLE); + *p_style= (PLINT) val; + } + + if (p_weight) { + plP_fci2hex(fci, &val, PL_FCI_WEIGHT); + *p_weight= (PLINT) val; + } + +} + + #undef PLSYM_H #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-03-13 13:12:03
|
Revision: 8285 http://plplot.svn.sourceforge.net/plplot/?rev=8285&view=rev Author: andrewross Date: 2008-03-13 06:12:09 -0700 (Thu, 13 Mar 2008) Log Message: ----------- Implement new plgfont / plsfont functions in C++. Update example 23 consistent with C version to demonstrate font changing capabilities. Modified Paths: -------------- trunk/bindings/c++/plstream.cc trunk/bindings/c++/plstream.h trunk/examples/c++/x23.cc Modified: trunk/bindings/c++/plstream.cc =================================================================== --- trunk/bindings/c++/plstream.cc 2008-03-13 13:11:21 UTC (rev 8284) +++ trunk/bindings/c++/plstream.cc 2008-03-13 13:12:09 UTC (rev 8285) @@ -750,6 +750,15 @@ plgfnam(fnam); } +// Get the current font family, style and weight + +void plstream::gfont( PLINT& family, PLINT& style, PLINT& weight ) +{ + set_stream(); + + plgfont(&family, &style, &weight); +} + // Get current run level. void plstream::glevel(PLINT& level) @@ -1537,6 +1546,15 @@ plsfnam(fnam); } +// Set the current font family, style and weight + +void plstream::sfont( PLINT family, PLINT style, PLINT weight ) +{ + set_stream(); + + plsfont(family, style, weight); +} + /* Shade region. */ void Modified: trunk/bindings/c++/plstream.h =================================================================== --- trunk/bindings/c++/plstream.h 2008-03-13 13:11:21 UTC (rev 8284) +++ trunk/bindings/c++/plstream.h 2008-03-13 13:12:09 UTC (rev 8285) @@ -315,8 +315,12 @@ void gfnam( char *fnam ); -/* Get the (current) run level. */ +// Get the current font family, style and weight + void gfont(PLINT& family, PLINT& style, PLINT& weight); + +// Get the (current) run level. + void glevel( PLINT &p_level ); // Get output device parameters. @@ -649,6 +653,10 @@ void sfnam( const char *fnam ); +// Set the current font family, style and weight + + void sfont(PLINT family, PLINT style, PLINT weight); + /* Shade region. */ void shade( PLFLT **a, PLINT nx, PLINT ny, Modified: trunk/examples/c++/x23.cc =================================================================== --- trunk/examples/c++/x23.cc 2008-03-13 13:11:21 UTC (rev 8284) +++ trunk/examples/c++/x23.cc 2008-03-13 13:12:09 UTC (rev 8285) @@ -4,8 +4,8 @@ //---------------------------------------------------------------------------// // //---------------------------------------------------------------------------// -// Copyright (C) 2005 Alan Irwin -// Copyright (C) 2005 Andrew Ross +// Copyright (C) 2005,2008 Alan Irwin +// Copyright (C) 2005,2008 Andrew Ross // // This file is part of PLplot. // @@ -45,6 +45,7 @@ static int nxcells[]; static int nycells[]; static int offset[]; + static PLUNICODE fci[]; }; /* @@ -180,6 +181,42 @@ 0, }; +/* 30 possible FCI values. */ + +#define FCI_COMBINATIONS 30 +PLUNICODE x23::fci[] = { +0x80000000, +0x80000001, +0x80000002, +0x80000003, +0x80000004, +0x80000010, +0x80000011, +0x80000012, +0x80000013, +0x80000014, +0x80000020, +0x80000021, +0x80000022, +0x80000023, +0x80000024, +0x80000100, +0x80000101, +0x80000102, +0x80000103, +0x80000104, +0x80000110, +0x80000111, +0x80000112, +0x80000113, +0x80000114, +0x80000120, +0x80000121, +0x80000122, +0x80000123, +0x80000124, +}; + x23::x23(int argc, const char *argv[]) { PLFLT xmin, xmax, ymin, ymax, ycharacter_scale, yoffset; @@ -243,7 +280,121 @@ /* Page title */ pls->mtex("t", 1.5, 0.5, 0.5, title[page]); } + for (page=11; page<16; page++) { + PLFLT dy = 0.030; + int family_index, style_index, weight_index; + const char*family[] = { + "sans-serif", + "serif", + "monospace", + "script", + "symbol", + }; + const char*style[] = { + "upright", + "italic", + "oblique", + }; + const char*weight[] = { + "medium", + "bold", + }; + /* Must be big enough to contain the prefix strings, the font-changing + * commands, and the "The quick brown..." string. */ + char string[200]; + pls->adv(0); + pls->vpor(0.02, 0.98, 0.02, 0.90); + pls->wind(0.0, 1.0, 0.0, 1.0); + pls->sfci(0); + if(page == 11) { + pls->mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - " + "Set Font with plsfci"); + } + else if(page == 12) { + pls->mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - " + "Set Font with plsfont"); + } + else if(page == 13) { + pls->mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - " + "Set Font with ##<0x8nnnnnnn> construct"); + } + else if(page == 14) { + pls->mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - " + "Set Font with ##<0xmn> constructs"); + } + else if(page == 15) { + pls->mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - " + "Set Font with ##<FCI COMMAND STRING/> constructs"); + } + pls->schr(0., 0.75); + for(i=0; i< FCI_COMBINATIONS; i++) { + family_index = i % 5; + style_index = (i/5) % 3; + weight_index = ((i/5)/3) % 2; + if(page == 11) { + pls->sfci(fci[i]); + sprintf(string, + "Page 12, %s, %s, %s: " + "The quick brown fox jumps over the lazy dog", + family[family_index], + style[style_index], + weight[weight_index]); + } + else if(page == 12) { + pls->sfont(family_index, style_index, weight_index); + sprintf(string, + "Page 13, %s, %s, %s: " + "The quick brown fox jumps over the lazy dog", + family[family_index], + style[style_index], + weight[weight_index]); + } + else if(page == 13) { + sprintf(string, + "Page 14, %s, %s, %s: " + "#<0x%x>" + "The quick brown fox jumps over the lazy dog", + family[family_index], + style[style_index], + weight[weight_index], + fci[i]); + } + else if(page == 14) { + sprintf(string, + "Page 15, %s, %s, %s: " + "#<0x%1x0>#<0x%1x1>#<0x%1x2>" + "The quick brown fox jumps over the lazy dog", + family[family_index], + style[style_index], + weight[weight_index], + family_index, + style_index, + weight_index); + } + else if(page == 15) { + sprintf(string, + "Page 16, %s, %s, %s: " + "#<%s/>#<%s/>#<%s/>" + "The quick brown fox jumps over the lazy dog", + family[family_index], + style[style_index], + weight[weight_index], + family[family_index], + style[style_index], + weight[weight_index]); + } + pls->ptex (0., 1. - (i+0.5)*dy, 1., 0., 0., string); + } + + pls->schr(0., 1.0); + } + /* Restore defaults */ pls->col0(1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-03-13 17:34:11
|
Revision: 8291 http://plplot.svn.sourceforge.net/plplot/?rev=8291&view=rev Author: andrewross Date: 2008-03-13 10:32:12 -0700 (Thu, 13 Mar 2008) Log Message: ----------- Ass plsfont and plgfont to java bindings. Update example 23 to demonstrate font changing methods. Modified Paths: -------------- trunk/bindings/java/PLStream.java trunk/bindings/swig-support/plplotcapi.i trunk/examples/java/x23.java Modified: trunk/bindings/java/PLStream.java =================================================================== --- trunk/bindings/java/PLStream.java 2008-03-13 17:29:04 UTC (rev 8290) +++ trunk/bindings/java/PLStream.java 2008-03-13 17:32:12 UTC (rev 8291) @@ -321,6 +321,11 @@ plplotjavac.plgfnam(fnam); } +public void gfont(int[] family, int[] style, int[] weight) { + if (set_stream() == -1) return; + plplotjavac.plgfont(family, style, weight); +} + public void glevel(int[] p_level) { if (set_stream() == -1) return; plplotjavac.plglevel(p_level); @@ -689,6 +694,11 @@ plplotjavac.plsfnam(fnam); } +public void sfont(int family, int style, int weight) { + if (set_stream() == -1) return; + plplotjavac.plsfont(family, style, weight); +} + public void shades( double[][] a, double xmin, double xmax, double ymin, double ymax, double[] clevel, int fill_width, int cont_color, int cont_width, boolean rectangular, Modified: trunk/bindings/swig-support/plplotcapi.i =================================================================== --- trunk/bindings/swig-support/plplotcapi.i 2008-03-13 17:29:04 UTC (rev 8290) +++ trunk/bindings/swig-support/plplotcapi.i 2008-03-13 17:32:12 UTC (rev 8291) @@ -370,6 +370,10 @@ void plgfnam(char *OUTPUT); +%feature("autodoc", "Get the current font family, style and weight.") plgfont; +void +plgfont(PLINT *OUTPUT, PLINT *OUTPUT, PLINT *OUTPUT); + %feature("autodoc", "Get the (current) run level.") plglevel; void plglevel(PLINT *OUTPUT); @@ -675,6 +679,10 @@ void plsfnam(const char *fnam); +%feature("autodoc", "Set the current font family, style and weight.") plsfont; +void +plsfont(PLINT family, PLINT style, PLINT weight); + %feature("autodoc", "Shade regions with continuous range of colours.") plshades; void plshades( PLFLT **Matrix, PLINT nx, PLINT ny, defined_func df, Modified: trunk/examples/java/x23.java =================================================================== --- trunk/examples/java/x23.java 2008-03-13 17:29:04 UTC (rev 8290) +++ trunk/examples/java/x23.java 2008-03-13 17:32:12 UTC (rev 8291) @@ -167,6 +167,60 @@ 0, 0, }; + +/* 30 possible FCI values. */ + + static int FCI_COMBINATIONS = 30; + + static long fci[] = { + 0x80000000L, + 0x80000001L, + 0x80000002L, + 0x80000003L, + 0x80000004L, + 0x80000010L, + 0x80000011L, + 0x80000012L, + 0x80000013L, + 0x80000014L, + 0x80000020L, + 0x80000021L, + 0x80000022L, + 0x80000023L, + 0x80000024L, + 0x80000100L, + 0x80000101L, + 0x80000102L, + 0x80000103L, + 0x80000104L, + 0x80000110L, + 0x80000111L, + 0x80000112L, + 0x80000113L, + 0x80000114L, + 0x80000120L, + 0x80000121L, + 0x80000122L, + 0x80000123L, + 0x80000124L, + }; + + static String family[] = { + "sans-serif", + "serif", + "monospace", + "script", + "symbol", + }; + static String style[] = { + "upright", + "italic", + "oblique", + }; + static String weight[] = { + "medium", + "bold", + }; public x23(String[] args) { @@ -236,6 +290,98 @@ pls.mtex("t", 1.5, 0.5, 0.5, title[page]); } + // Demonstrate methods of getting the current fonts + long[] fci_old = new long[1]; + int[] ifamily = new int[1]; + int[] istyle = new int[1]; + int[] iweight = new int[1]; + pls.gfci(fci_old); + pls.gfont(ifamily, istyle, iweight); + System.out.println("For example 23 prior to page 12 the FCI is 0x"+Long.toHexString(fci_old[0])); + System.out.println("For example 23 prior to page 12 the family, style and weight are "+family[ifamily[0]]+" "+ style[istyle[0]]+ " "+ weight[iweight[0]]);; + + for (page=11; page<16; page++) { + double dy = 0.030; + int family_index, style_index, weight_index; + // Must be big enough to contain the prefix strings, the + // font-changing commands, and the "The quick brown..." string. + String string = ""; + + pls.adv(0); + pls.vpor(0.02, 0.98, 0.02, 0.90); + pls.wind(0.0, 1.0, 0.0, 1.0); + pls.sfci(0); + if(page == 11) { + pls.mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - "+ + "Set Font with plsfci"); + } + else if(page == 12) { + pls.mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - "+ + "Set Font with plsfont"); + } + else if(page == 13) { + pls.mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - "+ + "Set Font with ##<0x8nnnnnnn> construct"); + } + else if(page == 14) { + pls.mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - "+ + "Set Font with ##<0xmn> constructs"); + } + else if(page == 15) { + pls.mtex("t", 1.5, 0.5, 0.5, + "#<0x10>PLplot Example 23 - "+ + "Set Font with ##<FCI COMMAND STRING/> constructs"); + } + pls.schr(0., 0.75); + for(i=0; i< FCI_COMBINATIONS; i++) { + family_index = i % 5; + style_index = (i/5) % 3; + weight_index = ((i/5)/3) % 2; + if(page == 11) { + pls.sfci(fci[i]); + string = "Page 12, " + family[family_index] + ", " + + style[style_index] + ", " + weight[weight_index] + + ": The quick brown fox jumps over the lazy dog"; + + } + else if(page == 12) { + pls.sfont(family_index, style_index, weight_index); + string = "Page 13, " + family[family_index] + ", " + + style[style_index] + ", " + weight[weight_index] + + ": The quick brown fox jumps over the lazy dog"; + } + else if(page == 13) { + string = "Page 14, " + family[family_index] + ", " + + style[style_index] + ", " + weight[weight_index] + + ": #<0x" + Long.toHexString(fci[i]) + ">" + + "The quick brown fox jumps over the lazy dog"; + } + else if(page == 14) { + string = "Page 15, " + family[family_index] + ", " + + style[style_index]+", "+weight[weight_index]+": "+ + "#<0x" + Integer.toHexString(family_index) + "0>" + + "#<0x" + Integer.toHexString(style_index) + "1>" + + "#<0x" + Integer.toHexString(weight_index) + "2>" + + "The quick brown fox jumps over the lazy dog"; + } + else if(page == 15) { + string = "Page 16, " + family[family_index] + ", " + + style[style_index]+", "+weight[weight_index]+": "+ + "#<" + family[family_index] + "/>" + + "#<" + style[style_index] + "/>" + + "#<" + weight[weight_index] + "/>" + + "The quick brown fox jumps over the lazy dog"; + } + pls.ptex (0., 1. - (i+0.5)*dy, 1., 0., 0., string); + } + + pls.schr(0., 1.0); + } + // Restore defaults pls.col0(1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |