From: <ai...@us...> - 2007-09-09 19:11:30
|
Revision: 7852 http://plplot.svn.sourceforge.net/plplot/?rev=7852&view=rev Author: airwin Date: 2007-09-09 12:11:33 -0700 (Sun, 09 Sep 2007) Log Message: ----------- Consistent (yellow) colour for first box. Modified Paths: -------------- trunk/bindings/octave/demos/x25c.m trunk/examples/c++/x25.cc trunk/examples/java/x25.java trunk/examples/perl/x25.pl trunk/examples/python/xw25.py Modified: trunk/bindings/octave/demos/x25c.m =================================================================== --- trunk/bindings/octave/demos/x25c.m 2007-09-09 19:09:03 UTC (rev 7851) +++ trunk/bindings/octave/demos/x25c.m 2007-09-09 19:11:33 UTC (rev 7852) @@ -56,6 +56,7 @@ plvsta; plwind(xextreme(i,1), xextreme(i,2), yextreme(i,1), yextreme(i,2)); + plcol0(2) ; plbox("bc", 1.0, 0, "bcnv", 10.0, 0); plcol0(1) ; plpsty(0) ; Modified: trunk/examples/c++/x25.cc =================================================================== --- trunk/examples/c++/x25.cc 2007-09-09 19:09:03 UTC (rev 7851) +++ trunk/examples/c++/x25.cc 2007-09-09 19:11:33 UTC (rev 7852) @@ -122,6 +122,7 @@ pls->vsta(); pls->wind(xextreme[i][0], xextreme[i][1], yextreme[i][0], yextreme[i][1]); + pls->col0(2) ; pls->box("bc", 1.0, 0, "bcnv", 10.0, 0); pls->col0(1) ; pls->psty(0) ; Modified: trunk/examples/java/x25.java =================================================================== --- trunk/examples/java/x25.java 2007-09-09 19:09:03 UTC (rev 7851) +++ trunk/examples/java/x25.java 2007-09-09 19:11:33 UTC (rev 7852) @@ -113,6 +113,7 @@ pls.vsta(); pls.wind(xextreme[i][0], xextreme[i][1], yextreme[i][0], yextreme[i][1]); + pls.col0(2) ; pls.box("bc", 1.0, 0, "bcnv", 10.0, 0); pls.col0(1) ; pls.psty(0) ; Modified: trunk/examples/perl/x25.pl =================================================================== --- trunk/examples/perl/x25.pl 2007-09-09 19:09:03 UTC (rev 7851) +++ trunk/examples/perl/x25.pl 2007-09-09 19:11:33 UTC (rev 7852) @@ -71,6 +71,7 @@ plvsta(); plwind($xextreme->at($i,0), $xextreme->at($i,1), $yextreme->at($i,0), $yextreme->at($i,1)); + plcol0(2) ; plbox(1.0, 0, 10.0, 0, "bc", "bcnv", ); plcol0(1) ; plpsty(0) ; Modified: trunk/examples/python/xw25.py =================================================================== --- trunk/examples/python/xw25.py 2007-09-09 19:09:03 UTC (rev 7851) +++ trunk/examples/python/xw25.py 2007-09-09 19:11:33 UTC (rev 7852) @@ -53,6 +53,7 @@ plvsta() plwind(xextreme[i][0], xextreme[i][1], yextreme[i][0], yextreme[i][1]) + plcol0(2) plbox("bc", 1.0, 0, "bcnv", 10.0, 0) plcol0(1) plpsty(0) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-09-11 20:03:21
|
Revision: 7860 http://plplot.svn.sourceforge.net/plplot/?rev=7860&view=rev Author: airwin Date: 2007-09-11 13:03:25 -0700 (Tue, 11 Sep 2007) Log Message: ----------- Build example 28 in the build tree (for BUILD_TEST=ON) and the install tree and test it in the C test script that is used for both the build tree (ctest) and install tree. Modified Paths: -------------- trunk/examples/c/CMakeLists.txt trunk/examples/c/Makefile.examples.in trunk/test/test_c.sh.in Modified: trunk/examples/c/CMakeLists.txt =================================================================== --- trunk/examples/c/CMakeLists.txt 2007-09-11 19:58:18 UTC (rev 7859) +++ trunk/examples/c/CMakeLists.txt 2007-09-11 20:03:25 UTC (rev 7860) @@ -51,6 +51,7 @@ "25" "26" "27" +"28" ) if(BUILD_TEST) Modified: trunk/examples/c/Makefile.examples.in =================================================================== --- trunk/examples/c/Makefile.examples.in 2007-09-11 19:58:18 UTC (rev 7859) +++ trunk/examples/c/Makefile.examples.in 2007-09-11 20:03:25 UTC (rev 7860) @@ -60,6 +60,7 @@ x25c$(EXEEXT) \ x26c$(EXEEXT) \ x27c$(EXEEXT) \ + x28c$(EXEEXT) \ $(PLPLOTCANVAS_EXECUTABLES_list) all: $(EXECUTABLES_list) Modified: trunk/test/test_c.sh.in =================================================================== --- trunk/test/test_c.sh.in 2007-09-11 19:58:18 UTC (rev 7859) +++ trunk/test/test_c.sh.in 2007-09-11 20:03:25 UTC (rev 7860) @@ -29,7 +29,8 @@ # 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 27; 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 27 28; do $cdir/x${index}c -dev $device -o ${OUTPUT_DIR}/x${index}c.$dsuffix \ $options 2> test.error # Look for any status codes (segfaults, plexit) from the examples themselves. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-09-13 20:15:44
|
Revision: 7865 http://plplot.svn.sourceforge.net/plplot/?rev=7865&view=rev Author: airwin Date: 2007-09-13 13:15:48 -0700 (Thu, 13 Sep 2007) Log Message: ----------- Fix for Debian bug 415303, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=415303 Do not install pstex2eps or its man page unless pstex is enabled (which it is not by default). Modified Paths: -------------- trunk/doc/CMakeLists.txt trunk/scripts/CMakeLists.txt Modified: trunk/doc/CMakeLists.txt =================================================================== --- trunk/doc/CMakeLists.txt 2007-09-13 01:38:39 UTC (rev 7864) +++ trunk/doc/CMakeLists.txt 2007-09-13 20:15:48 UTC (rev 7865) @@ -1,4 +1,9 @@ -set(core_manpages plm2gif.1 plpr.1 pltek.1 pstex2eps.1) +set(core_manpages plm2gif.1 plpr.1 pltek.1) + +if(PLD_pstex) + set(core_manpages ${core_manpages} pstex2eps.1) +endif(PLD_pstex) + if(PLD_plmeta) set(core_manpages ${core_manpages} plrender.1) endif(PLD_plmeta) Modified: trunk/scripts/CMakeLists.txt =================================================================== --- trunk/scripts/CMakeLists.txt 2007-09-13 01:38:39 UTC (rev 7864) +++ trunk/scripts/CMakeLists.txt 2007-09-13 20:15:48 UTC (rev 7865) @@ -22,7 +22,9 @@ set(scripts_SCRIPTS plm2gif plpr -pstex2eps ) +if(PLD_pstex) + set(scripts_SCRIPTS ${scripts_SCRIPTS} pstex2eps) +endif(PLD_pstex) install(PROGRAMS ${scripts_SCRIPTS} DESTINATION ${BIN_DIR}) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-09-22 17:53:51
|
Revision: 7881 http://plplot.svn.sourceforge.net/plplot/?rev=7881&view=rev Author: airwin Date: 2007-09-22 10:53:54 -0700 (Sat, 22 Sep 2007) Log Message: ----------- AWI for Jerry Bauck. Added Ada examples 3 and 5. Modified Paths: -------------- trunk/examples/ada/CMakeLists.txt trunk/test/test_ada.sh.in Added Paths: ----------- trunk/examples/ada/x03a.adb trunk/examples/ada/x05a.adb trunk/examples/ada/xthick03a.adb trunk/examples/ada/xthick05a.adb Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2007-09-22 17:50:20 UTC (rev 7880) +++ trunk/examples/ada/CMakeLists.txt 2007-09-22 17:53:54 UTC (rev 7881) @@ -21,12 +21,16 @@ set(ada_STRING_INDICES "01" "02" +"03" "04" +"05" "10" "12" "thick01" "thick02" +"thick03" "thick04" +"thick05" "thick10" "thick12" ) Added: trunk/examples/ada/x03a.adb =================================================================== --- trunk/examples/ada/x03a.adb (rev 0) +++ trunk/examples/ada/x03a.adb 2007-09-22 17:53:54 UTC (rev 7881) @@ -0,0 +1,105 @@ +-- $Id$ + +-- Polar plot demo. +-- Generates polar plot, with 1-1 scaling. + +-- Copyright (C) 2007 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.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplot_Traditional, + PLplot_Auxiliary; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + 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; + +procedure x03a is + dtr, theta, dx, dy, r : Long_Float; + x0, y0 : Real_Vector(0..360); + x, y : Real_Vector(0..360); + +begin + dtr := pi / 180.0; + for i in x0'range loop + x0(i) := cos(dtr * Long_Float(i)); + y0(i) := sin(dtr * Long_Float(i)); + end loop; + + -- Parse and process command line arguments. + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + + -- Set up viewport and window, but do not draw box. + plenv(-1.3, 1.3, -1.3, 1.3, 1, -2); + for i in 1..10 loop + for j in x'range loop + x(j) := 0.1 * Long_Float(i) * x0(j); + y(j) := 0.1 * Long_Float(i) * y0(j); + end loop; + + -- Draw circles for polar grid. + plline(x, y); + end loop; + + plcol0(2); + for i in 0..11 loop + theta := 30.0 * Long_Float(i); + dx := cos(dtr * theta); + dy := sin(dtr * theta); + + -- Draw radial spokes for polar grid. + pljoin(0.0, 0.0, dx, dy); + + -- Write labels for angle. + -- Slightly off zero to avoid floating point logic flips at 90 and 270 deg + if dx >= -0.00001 then + plptex(dx, dy, dx, dy, -0.15, Trim(Integer'image(Integer(theta)), Left)); + else + plptex(dx, dy, -dx, -dy, 1.15, Trim(Integer'image(Integer(theta)), Left)); + end if; + end loop; + + -- Draw the graph. + for i in x'range loop + r := sin(dtr * Long_Float(5 * i)); + x(i) := x0(i) * r; + y(i) := y0(i) * r; + end loop; + plcol0(3); + plline(x, y); + + plcol0(4); + plmtex("t", 2.0, 0.5, 0.5, "#frPLplot Example 3 - r(#gh)=sin 5#gh"); + + -- Close the plot at end. + plend; +end x03a; Property changes on: trunk/examples/ada/x03a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/examples/ada/x05a.adb =================================================================== --- trunk/examples/ada/x05a.adb (rev 0) +++ trunk/examples/ada/x05a.adb 2007-09-22 17:53:54 UTC (rev 7881) @@ -0,0 +1,62 @@ +-- $Id$ + +-- Histogram demo. +-- Draws a histogram from sample data. + +-- Copyright (C) 2007 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.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot_Traditional, + PLplot_Auxiliary; +use + 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; + +procedure x05a is + NPTS : constant Integer := 2047; + data : Real_Vector(0 .. NPTS - 1); + delt : Long_Float; -- delta is a reserved word in Ada. +begin + -- Parse and process command line arguments + plparseopts(PL_PARSE_FULL); + + -- Initialize plplot + plinit; + + -- Fill up data points + delt := 2.0 * pi / Long_Float(NPTS); + for i in data'range loop + data(i) := sin(Long_Float(i) * delt); + end loop; + + plcol0(1); + plhist(data, -1.1, 1.1, 44, 0); + plcol0(2); + pllab("#frValue", "#frFrequency", + "#frPLplot Example 5 - Probability function of Oscillator"); + plend; +end x05a; Property changes on: trunk/examples/ada/x05a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/examples/ada/xthick03a.adb =================================================================== --- trunk/examples/ada/xthick03a.adb (rev 0) +++ trunk/examples/ada/xthick03a.adb 2007-09-22 17:53:54 UTC (rev 7881) @@ -0,0 +1,105 @@ +-- $Id$ + +-- Polar plot demo. +-- Generates polar plot, with 1-1 scaling. + +-- Copyright (C) 2007 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.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + PLplot, + PLplot_Auxiliary; +use + Ada.Numerics, + Ada.Numerics.Long_Elementary_Functions, + Ada.Strings, + Ada.Strings.Fixed, + 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; + +procedure xthick03a is + dtr, theta, dx, dy, r : Long_Float; + x0, y0 : Real_Vector(0..360); + x, y : Real_Vector(0..360); + +begin + dtr := pi / 180.0; + for i in x0'range loop + x0(i) := cos(dtr * Long_Float(i)); + y0(i) := sin(dtr * Long_Float(i)); + end loop; + + -- Parse and process command line arguments. + Parse_Command_Line_Arguments(Parse_Full); + + -- Initialize plplot + Initialize_PLplot; + + -- Set up viewport and window, but do not draw box. + Set_Environment(-1.3, 1.3, -1.3, 1.3, 1, -2); + for i in 1..10 loop + for j in x'range loop + x(j) := 0.1 * Long_Float(i) * x0(j); + y(j) := 0.1 * Long_Float(i) * y0(j); + end loop; + + -- Draw circles for polar grid. + Draw_Curve(x, y); + end loop; + + Set_Pen_Color(2); + for i in 0..11 loop + theta := 30.0 * Long_Float(i); + dx := cos(dtr * theta); + dy := sin(dtr * theta); + + -- Draw radial spokes for polar grid. + Draw_Line(0.0, 0.0, dx, dy); + + -- Write labels for angle. + -- Slightly off zero to avoid floating point logic flips at 90 and 270 deg + if dx >= -0.00001 then + Write_Text_World(dx, dy, dx, dy, -0.15, Trim(Integer'image(Integer(theta)), Left)); + else + Write_Text_World(dx, dy, -dx, -dy, 1.15, Trim(Integer'image(Integer(theta)), Left)); + end if; + end loop; + + -- Draw the graph. + for i in x'range loop + r := sin(dtr * Long_Float(5 * i)); + x(i) := x0(i) * r; + y(i) := y0(i) * r; + end loop; + Set_Pen_Color(Green); + Draw_Curve(x, y); + + Set_Pen_Color(Aquamarine); + Write_Text_Viewport("t", 2.0, 0.5, 0.5, "#frPLplot Example 3 - r(#gh)=sin 5#gh"); + + -- Close the plot at end. + End_PLplot; +end xthick03a; Property changes on: trunk/examples/ada/xthick03a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/examples/ada/xthick05a.adb =================================================================== --- trunk/examples/ada/xthick05a.adb (rev 0) +++ trunk/examples/ada/xthick05a.adb 2007-09-22 17:53:54 UTC (rev 7881) @@ -0,0 +1,62 @@ +-- $Id$ + +-- Histogram demo. +-- Draws a histogram from sample data. + +-- Copyright (C) 2007 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.Numerics, + Ada.Numerics.Long_Elementary_Functions, + PLplot, + PLplot_Auxiliary; +use + 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; + +procedure xthick05a is + NPTS : constant Integer := 2047; + data : Real_Vector(0 .. NPTS - 1); + delt : Long_Float; -- delta is a reserved word in Ada. +begin + -- Parse and process command line arguments + Parse_Command_Line_Arguments(Parse_Full); + + -- Initialize plplot + Initialize_PLplot; + + -- Fill up data points + delt := 2.0 * pi / Long_Float(NPTS); + for i in data'range loop + data(i) := sin(Long_Float(i) * delt); + end loop; + + Set_Pen_Color(Red); + Histogram_Unbinned(data, -1.1, 1.1, 44, Histogram_Default); + Set_Pen_Color(Yellow); + Write_Labels("#frValue", "#frFrequency", + "#frPLplot Example 5 - Probability function of Oscillator"); + End_PLplot; +end xthick05a; Property changes on: trunk/examples/ada/xthick05a.adb ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Modified: trunk/test/test_ada.sh.in =================================================================== --- trunk/test/test_ada.sh.in 2007-09-22 17:50:20 UTC (rev 7880) +++ trunk/test/test_ada.sh.in 2007-09-22 17:53:54 UTC (rev 7881) @@ -27,7 +27,7 @@ # pushd $adadir; make; popd # Do the standard non-interactive examples. -for index in 01 02 04 10 12 thick01 thick02 thick04 thick10 thick12; do +for index in 01 02 03 04 05 10 12 thick01 thick02 thick03 thick04 thick05 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...> - 2007-09-27 11:32:11
|
Revision: 7891 http://plplot.svn.sourceforge.net/plplot/?rev=7891&view=rev Author: andrewross Date: 2007-09-27 04:32:09 -0700 (Thu, 27 Sep 2007) Log Message: ----------- Add plmtex3 and plptex3 to C++ bindings. Implement example 28 in C++ to demonstrate their use. 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++/x28.cc Modified: trunk/bindings/c++/plstream.cc =================================================================== --- trunk/bindings/c++/plstream.cc 2007-09-26 18:53:39 UTC (rev 7890) +++ trunk/bindings/c++/plstream.cc 2007-09-27 11:32:09 UTC (rev 7891) @@ -994,6 +994,16 @@ plmtex(side,disp,pos,just,text); } +/* Prints out "text" at specified position relative to viewport (3D) */ + +void plstream::mtex3( const char *side, PLFLT disp, PLFLT pos, PLFLT just, + const char *text ) +{ + set_stream(); + + plmtex3(side,disp,pos,just,text); +} + /* Plots a 3-d shaded representation of the function z[x][y]. */ void plstream::surf3d( PLFLT *x, PLFLT *y, PLFLT **z, @@ -1158,6 +1168,16 @@ plptex(x,y,dx,dy,just,text); } +/* Prints out "text" at world cooordinate (x,y). */ + +void plstream::ptex3( PLFLT wx, PLFLT wy, PLFLT wz, PLFLT dx, PLFLT dy, PLFLT dz, + PLFLT sx, PLFLT sy, PLFLT sz, PLFLT just, const char *text) +{ + set_stream(); + + plptex3(wx,wy,wz,dx,dy,dz,sx,sy,sz,just,text); +} + /* Replays contents of plot buffer to current device/file. */ void plstream::replot() Modified: trunk/bindings/c++/plstream.h =================================================================== --- trunk/bindings/c++/plstream.h 2007-09-26 18:53:39 UTC (rev 7890) +++ trunk/bindings/c++/plstream.h 2007-09-27 11:32:09 UTC (rev 7891) @@ -427,6 +427,11 @@ void mtex( const char *side, PLFLT disp, PLFLT pos, PLFLT just, const char *text ); +/* Prints out "text" at specified position relative to viewport (3D) */ + + void mtex3( const char *side, PLFLT disp, PLFLT pos, PLFLT just, + const char *text ); + /* Plots a 3-d representation of the function z[x][y]. */ void plot3d( PLFLT *x, PLFLT *y, PLFLT **z, @@ -495,6 +500,11 @@ void ptex( PLFLT x, PLFLT y, PLFLT dx, PLFLT dy, PLFLT just, const char *text ); +/* Prints out "text" at world cooordinate (x,y,z). */ + + void ptex3(PLFLT wx, PLFLT wy, PLFLT wz, PLFLT dx, PLFLT dy, PLFLT dz, + PLFLT sx, PLFLT sy, PLFLT sz, PLFLT just, const char *text); + /* Replays contents of plot buffer to current device/file. */ void replot(); Modified: trunk/examples/c++/CMakeLists.txt =================================================================== --- trunk/examples/c++/CMakeLists.txt 2007-09-26 18:53:39 UTC (rev 7890) +++ trunk/examples/c++/CMakeLists.txt 2007-09-27 11:32:09 UTC (rev 7891) @@ -51,6 +51,7 @@ "24" "25" "26" +"28" ) if(BUILD_TEST) Added: trunk/examples/c++/x28.cc =================================================================== --- trunk/examples/c++/x28.cc (rev 0) +++ trunk/examples/c++/x28.cc 2007-09-27 11:32:09 UTC (rev 7891) @@ -0,0 +1,393 @@ +// $Id:$ +// +// plmtex3, plptex3 demo. +// + +#include "plc++demos.h" + +#ifdef USE_NAMESPACE +using namespace std; +#endif + +class x28 { +public: + x28(int, char**); + +private: + plstream *pls; + + static const int XPTS; + static const int YPTS; + static const int NREVOLUTION; + static const int NROTATION; + static const int NSHEAR; + +}; + +// Choose these values to correspond to tick marks. +const int x28::XPTS=2; +const int x28::YPTS=2; +const int x28::NREVOLUTION=16; +const int x28::NROTATION=8; +const int x28::NSHEAR=8; + +/*--------------------------------------------------------------------------*\ + * main + * + * Demonstrates plotting text in 3D. +\*--------------------------------------------------------------------------*/ + + +x28::x28(int argc, char *argv[]) +{ + PLFLT *x, *y, **z, + xmin=0., xmax=1.0, xmid = 0.5*(xmax + xmin), xrange = xmax - xmin, + ymin=0., ymax=1.0, ymid = 0.5*(ymax + ymin), yrange = ymax - ymin, + zmin=0., zmax=1.0, zmid = 0.5*(zmax + zmin), zrange = zmax - zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + omega, sin_omega, cos_omega, domega; + int i,j; + PLFLT radius, pitch, xpos, ypos, zpos; + /* p1string must be exactly one character + the null termination + * character. */ + char p1string[] = "O", + *pstring = "The future of our civilization depends on software freedom."; + + pls = new plstream(); + + /* Allocate and define the minimal x, y, and z to insure 3D box */ + x = new PLFLT(XPTS); + y = new PLFLT(YPTS); + + pls->Alloc2dGrid(&z, XPTS, YPTS); + for (i = 0; i < XPTS; i++) { + x[i] = xmin + (double) i * (xmax-xmin)/ (double) (XPTS-1); + } + + for (j = 0; j < YPTS; j++) + y[j] = ymin + (double) j * (ymax-ymin)/ (double) (YPTS-1); + + for (i = 0; i < XPTS; i++) { + for (j = 0; j < YPTS; j++) { + z[i][j] = 0.; + } + } + + /* Parse and process command line arguments */ + + pls->parseopts(&argc, argv, PL_PARSE_FULL); + + pls->init(); + + /* Page 1: Demonstrate inclination and shear capability pattern. */ + + pls->adv(0); + pls->vpor(-0.15, 1.15, -0.05, 1.05); + pls->wind(-1.2, 1.2, -0.8, 1.5); + pls->w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 20., 45.); + + pls->col0(2); + pls->box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + /* z = zmin. */ + pls->schr(0., 1.0); + for (i = 0; i < NREVOLUTION; i++) { + omega = 2.*M_PI*((PLFLT)i/(PLFLT)NREVOLUTION); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_inclination = 0.5*xrange*cos_omega; + y_inclination = 0.5*yrange*sin_omega; + z_inclination = 0.; + x_shear = -0.5*xrange*sin_omega; + y_shear = 0.5*yrange*cos_omega; + z_shear = 0.; + pls->ptex3( + xmid, ymid, zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.0, " revolution"); + } + + /* x = xmax. */ + pls->schr(0., 1.0); + for (i = 0; i < NREVOLUTION; i++) { + omega = 2.*M_PI*((PLFLT)i/(PLFLT)NREVOLUTION); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_inclination = 0.; + y_inclination = -0.5*yrange*cos_omega; + z_inclination = 0.5*zrange*sin_omega; + x_shear = 0.; + y_shear = 0.5*yrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls->ptex3( + xmax, ymid, zmid, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.0, " revolution"); + } + + /* y = ymax. */ + pls->schr(0., 1.0); + for (i = 0; i < NREVOLUTION; i++) { + omega = 2.*M_PI*((PLFLT)i/(PLFLT)NREVOLUTION); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_inclination = 0.5*xrange*cos_omega; + y_inclination = 0.; + z_inclination = 0.5*zrange*sin_omega; + x_shear = -0.5*xrange*sin_omega; + y_shear = 0.; + z_shear = 0.5*zrange*cos_omega; + pls->ptex3( + xmid, ymax, zmid, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.0, " revolution"); + } + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls->mesh(x, y, z, XPTS, YPTS, DRAW_LINEXY); + + /* Page 2: Demonstrate rotation of string around its axis. */ + pls->adv(0); + pls->vpor(-0.15, 1.15, -0.05, 1.05); + pls->wind(-1.2, 1.2, -0.8, 1.5); + pls->w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 20., 45.); + + pls->col0(2); + pls->box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + /* y = ymax. */ + pls->schr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + x_shear = 0.; + for (i = 0; i < NROTATION; i++) { + omega = 2.*M_PI*((PLFLT)i/(PLFLT)NROTATION); + sin_omega = sin(omega); + cos_omega = cos(omega); + y_shear = 0.5*yrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls->ptex3( + xmid, ymax, zmax -(zmax-0.2)*((PLFLT)i/(PLFLT)(NROTATION-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "rotation for y = y#dmax#u"); + } + + /* x = xmax. */ + pls->schr(0., 1.0); + x_inclination = 0.; + y_inclination = -1.; + z_inclination = 0.; + y_shear = 0.; + for (i = 0; i < NROTATION; i++) { + omega = 2.*M_PI*((PLFLT)i/(PLFLT)NROTATION); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_shear = 0.5*xrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls->ptex3( + xmax, ymid, zmax -(zmax-0.2)*((PLFLT)i/(PLFLT)(NROTATION-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "rotation for x = x#dmax#u"); + } + + /* z = zmin. */ + pls->schr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + x_shear = 0.; + for (i = 0; i < NROTATION; i++) { + omega = 2.*M_PI*((PLFLT)i/(PLFLT)NROTATION); + sin_omega = sin(omega); + cos_omega = cos(omega); + y_shear = 0.5*yrange*cos_omega; + z_shear = 0.5*zrange*sin_omega; + pls->ptex3( + xmid, ymax -(ymax-0.2)*((PLFLT)i/(PLFLT)(NROTATION-1)), zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "rotation for z = z#dmin#u"); + } + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls->mesh(x, y, z, XPTS, YPTS, DRAW_LINEXY); + + /* Page 3: Demonstrate shear of string along its axis. */ + /* Work around xcairo and pngcairo (but not pscairo) problems for + * shear vector too close to axis of string. (N.B. no workaround + * would be domega = 0.) */ + domega = 0.05; + pls->adv(0); + pls->vpor(-0.15, 1.15, -0.05, 1.05); + pls->wind(-1.2, 1.2, -0.8, 1.5); + pls->w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 20., 45.); + + pls->col0(2); + pls->box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + /* y = ymax. */ + pls->schr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + y_shear = 0.; + for (i = 0; i < NSHEAR; i++) { + omega = domega + 2.*M_PI*((PLFLT)i/(PLFLT)NSHEAR); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_shear = 0.5*yrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls->ptex3( + xmid, ymax, zmax -(zmax-0.2)*((PLFLT)i/(PLFLT)(NSHEAR-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for y = y#dmax#u"); + } + + /* x = xmax. */ + pls->schr(0., 1.0); + x_inclination = 0.; + y_inclination = -1.; + z_inclination = 0.; + x_shear = 0.; + for (i = 0; i < NSHEAR; i++) { + omega = domega + 2.*M_PI*((PLFLT)i/(PLFLT)NSHEAR); + sin_omega = sin(omega); + cos_omega = cos(omega); + y_shear = -0.5*xrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls->ptex3( + xmax, ymid, zmax -(zmax-0.2)*((PLFLT)i/(PLFLT)(NSHEAR-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for x = x#dmax#u"); + } + + /* z = zmin. */ + pls->schr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + z_shear = 0.; + for (i = 0; i < NSHEAR; i++) { + omega = domega + 2.*M_PI*((PLFLT)i/(PLFLT)NSHEAR); + sin_omega = sin(omega); + cos_omega = cos(omega); + y_shear = 0.5*yrange*cos_omega; + x_shear = 0.5*zrange*sin_omega; + pls->ptex3( + xmid, ymax -(ymax-0.2)*((PLFLT)i/(PLFLT)(NSHEAR-1)), zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for z = z#dmin#u"); + } + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls->mesh(x, y, z, XPTS, YPTS, DRAW_LINEXY); + + /* Page 4: Demonstrate drawing a string on a 3D path. */ + pls->adv(0); + pls->vpor(-0.15, 1.15, -0.05, 1.05); + pls->wind(-1.2, 1.2, -0.8, 1.5); + pls->w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 40., -30.); + + pls->col0(2); + pls->box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + pls->schr(0., 1.2); + /* domega controls the spacing between the various characters of the + * string and also the maximum value of omega for the given number + * of characters in *pstring. */ + domega = 2.*M_PI/strlen(pstring); + omega = 0.; + /* 3D function is a helix of the given radius and pitch */ + radius = 0.5; + pitch = 1./(2.*M_PI); + while(*pstring) { + sin_omega = sin(omega); + cos_omega = cos(omega); + xpos = xmid + radius*sin_omega; + ypos = ymid - radius*cos_omega; + zpos = zmin + pitch*omega; + /* In general, the inclination is proportional to the derivative of + * the position wrt theta. */ + x_inclination = radius*cos_omega;; + y_inclination = radius*sin_omega; + z_inclination = pitch; + /* The shear vector should be perpendicular to the 3D line with Z + * component maximized, but for low pitch a good approximation is + * a constant vector that is parallel to the Z axis. */ + x_shear = 0.; + y_shear = 0.; + z_shear = 1.; + *p1string = *pstring; + pls->ptex3( + xpos, ypos, zpos, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, p1string); + pstring++; + omega += domega; + } + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls->mesh(x, y, z, XPTS, YPTS, DRAW_LINEXY); + + /* Page 5: Demonstrate plmtex3 axis labelling capability */ + pls->adv(0); + pls->vpor(-0.15, 1.15, -0.05, 1.05); + pls->wind(-1.2, 1.2, -0.8, 1.5); + pls->w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 20., 45.); + + pls->col0(2); + pls->box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + pls->schr(0., 1.0); + pls->mtex3("xp", 3.0, 0.5, 0.5, "Arbitrarily displaced"); + pls->mtex3("xp", 4.5, 0.5, 0.5, "primary X-axis label"); + pls->mtex3("xs", -2.5, 0.5, 0.5, "Arbitrarily displaced"); + pls->mtex3("xs", -1.0, 0.5, 0.5, "secondary X-axis label"); + pls->mtex3("yp", 3.0, 0.5, 0.5, "Arbitrarily displaced"); + pls->mtex3("yp", 4.5, 0.5, 0.5, "primary Y-axis label"); + pls->mtex3("ys", -2.5, 0.5, 0.5, "Arbitrarily displaced"); + pls->mtex3("ys", -1.0, 0.5, 0.5, "secondary Y-axis label"); + pls->mtex3("zp", 4.5, 0.5, 0.5, "Arbitrarily displaced"); + pls->mtex3("zp", 3.0, 0.5, 0.5, "primary Z-axis label"); + pls->mtex3("zs", -2.5, 0.5, 0.5, "Arbitrarily displaced"); + pls->mtex3("zs", -1.0, 0.5, 0.5, "secondary Z-axis label"); + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls->mesh(x, y, z, XPTS, YPTS, DRAW_LINEXY); + + /* Clean up. */ + delete x; + delete y; + pls->Free2dGrid(z, XPTS, YPTS); + delete pls; +} + + +int main( int argc, char **argv ) +{ + x28 *x = new x28( argc, argv ); + + delete x; +} + Modified: trunk/test/test_cxx.sh.in =================================================================== --- trunk/test/test_cxx.sh.in 2007-09-26 18:53:39 UTC (rev 7890) +++ trunk/test/test_cxx.sh.in 2007-09-27 11:32:09 UTC (rev 7891) @@ -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; 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; 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...> - 2007-09-27 21:07:10
|
Revision: 7892 http://plplot.svn.sourceforge.net/plplot/?rev=7892&view=rev Author: andrewross Date: 2007-09-27 14:07:12 -0700 (Thu, 27 Sep 2007) Log Message: ----------- Add plmtex3 and plptex3 to java bindings. Implement example 28 in java to demonstrate these functions. Modified Paths: -------------- trunk/bindings/java/PLStream.java trunk/bindings/swig-support/plplotcapi.i trunk/examples/java/CMakeLists.txt trunk/test/test_java.sh.in Added Paths: ----------- trunk/examples/java/x28.java Property Changed: ---------------- trunk/examples/c++/x28.cc Modified: trunk/bindings/java/PLStream.java =================================================================== --- trunk/bindings/java/PLStream.java 2007-09-27 11:32:09 UTC (rev 7891) +++ trunk/bindings/java/PLStream.java 2007-09-27 21:07:12 UTC (rev 7892) @@ -446,6 +446,11 @@ 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); @@ -513,6 +518,11 @@ 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(); Modified: trunk/bindings/swig-support/plplotcapi.i =================================================================== --- trunk/bindings/swig-support/plplotcapi.i 2007-09-27 11:32:09 UTC (rev 7891) +++ trunk/bindings/swig-support/plplotcapi.i 2007-09-27 21:07:12 UTC (rev 7892) @@ -475,6 +475,11 @@ plmtex(const char *side, PLFLT disp, PLFLT pos, PLFLT just, const char *text); +%feature("autodoc", "Print \"text\" at specified position relative to viewport.") plmtex3; +void +plmtex3(const char *side, PLFLT disp, PLFLT pos, PLFLT just, + const char *text); + %feature("autodoc", "Plot a 3-d representation of the function z[x][y].") plot3d; void plot3d(PLFLT *ArrayX, PLFLT *ArrayY, PLFLT **MatrixCk, @@ -535,6 +540,10 @@ void plptex(PLFLT x, PLFLT y, PLFLT dx, PLFLT dy, PLFLT just, const char *text); +%feature("autodoc", "Print \"text\" at world cooordinate (x,y).") plptex3; +void +plptex3(PLFLT x, PLFLT y, PLFLT z, PLFLT dx, PLFLT dy, PLFLT dz, PLFLT sx, PLFLT sy, PLFLT sz, PLFLT just, const char *text); + %feature("autodoc", "Replay contents of plot buffer to current device/file.") plreplot; void plreplot(void); Property changes on: trunk/examples/c++/x28.cc ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Modified: trunk/examples/java/CMakeLists.txt =================================================================== --- trunk/examples/java/CMakeLists.txt 2007-09-27 11:32:09 UTC (rev 7891) +++ trunk/examples/java/CMakeLists.txt 2007-09-27 21:07:12 UTC (rev 7892) @@ -48,6 +48,7 @@ "24" "25" "26" +"28" ) # This information is duplicated from bindings/java/CMakeLists.txt Added: trunk/examples/java/x28.java =================================================================== --- trunk/examples/java/x28.java (rev 0) +++ trunk/examples/java/x28.java 2007-09-27 21:07:12 UTC (rev 7892) @@ -0,0 +1,370 @@ +// $Id:$ +// +// plmtex3, plptex3 demo. +// +// Copyright (C) 2007 Alan W. Irwin +// Copyright (C) 2007 Andrew Ross + +//---------------------------------------------------------------------------// +// Implementation of PLplot example 28 in Java. +//---------------------------------------------------------------------------// + +package plplot.examples; + +import plplot.core.*; + +import java.lang.Math; + +class x28 { + + PLStream pls = new PLStream(); + + static int XPTS = 2; + static int YPTS = 2; + static int NREVOLUTION = 16; + static int NROTATION = 8; + static int NSHEAR = 8; + + x28(String[] args) + { + double xmin=0., xmax=1.0, xmid = 0.5*(xmax + xmin), xrange = xmax - xmin, + ymin=0., ymax=1.0, ymid = 0.5*(ymax + ymin), yrange = ymax - ymin, + zmin=0., zmax=1.0, zmid = 0.5*(zmax + zmin), zrange = zmax - zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + omega, sin_omega, cos_omega, domega; + int i,j; + double radius, pitch, xpos, ypos, zpos; + /* p1string must be exactly one character + the null termination + * character. */ + String pstring = "The future of our civilization depends on software freedom."; + + /* Allocate and define the minimal x, y, and z to insure 3D box */ + double[] x = new double[XPTS]; + double[] y = new double[YPTS]; + double[][] z = new double[XPTS][YPTS]; + + for (i = 0; i < XPTS; i++) { + x[i] = xmin + (double) i * (xmax-xmin)/ (double) (XPTS-1); + } + + for (j = 0; j < YPTS; j++) + y[j] = ymin + (double) j * (ymax-ymin)/ (double) (YPTS-1); + + for (i = 0; i < XPTS; i++) { + for (j = 0; j < YPTS; j++) { + z[i][j] = 0.; + } + } + + /* Parse and process command line arguments */ + + pls.parseopts(args, PLStream.PL_PARSE_FULL | PLStream.PL_PARSE_NOPROGRAM); + + pls.init(); + + /* Page 1: Demonstrate inclination and shear capability pattern. */ + + pls.adv(0); + pls.vpor(-0.15, 1.15, -0.05, 1.05); + pls.wind(-1.2, 1.2, -0.8, 1.5); + pls.w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 20., 45.); + + pls.col0(2); + pls.box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + /* z = zmin. */ + pls.schr(0., 1.0); + for (i = 0; i < NREVOLUTION; i++) { + omega = 2.*Math.PI*((double)i/(double)NREVOLUTION); + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + x_inclination = 0.5*xrange*cos_omega; + y_inclination = 0.5*yrange*sin_omega; + z_inclination = 0.; + x_shear = -0.5*xrange*sin_omega; + y_shear = 0.5*yrange*cos_omega; + z_shear = 0.; + pls.ptex3( + xmid, ymid, zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.0, " revolution"); + } + + /* x = xmax. */ + pls.schr(0., 1.0); + for (i = 0; i < NREVOLUTION; i++) { + omega = 2.*Math.PI*((double)i/(double)NREVOLUTION); + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + x_inclination = 0.; + y_inclination = -0.5*yrange*cos_omega; + z_inclination = 0.5*zrange*sin_omega; + x_shear = 0.; + y_shear = 0.5*yrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls.ptex3( + xmax, ymid, zmid, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.0, " revolution"); + } + + /* y = ymax. */ + pls.schr(0., 1.0); + for (i = 0; i < NREVOLUTION; i++) { + omega = 2.*Math.PI*((double)i/(double)NREVOLUTION); + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + x_inclination = 0.5*xrange*cos_omega; + y_inclination = 0.; + z_inclination = 0.5*zrange*sin_omega; + x_shear = -0.5*xrange*sin_omega; + y_shear = 0.; + z_shear = 0.5*zrange*cos_omega; + pls.ptex3( + xmid, ymax, zmid, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.0, " revolution"); + } + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls.mesh(x, y, z, PLStream.DRAW_LINEXY); + + /* Page 2: Demonstrate rotation of string around its axis. */ + pls.adv(0); + pls.vpor(-0.15, 1.15, -0.05, 1.05); + pls.wind(-1.2, 1.2, -0.8, 1.5); + pls.w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 20., 45.); + + pls.col0(2); + pls.box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + /* y = ymax. */ + pls.schr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + x_shear = 0.; + for (i = 0; i < NROTATION; i++) { + omega = 2.*Math.PI*((double)i/(double)NROTATION); + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + y_shear = 0.5*yrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls.ptex3( + xmid, ymax, zmax -(zmax-0.2)*((double)i/(double)(NROTATION-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "rotation for y = y#dmax#u"); + } + + /* x = xmax. */ + pls.schr(0., 1.0); + x_inclination = 0.; + y_inclination = -1.; + z_inclination = 0.; + y_shear = 0.; + for (i = 0; i < NROTATION; i++) { + omega = 2.*Math.PI*((double)i/(double)NROTATION); + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + x_shear = 0.5*xrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls.ptex3( + xmax, ymid, zmax -(zmax-0.2)*((double)i/(double)(NROTATION-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "rotation for x = x#dmax#u"); + } + + /* z = zmin. */ + pls.schr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + x_shear = 0.; + for (i = 0; i < NROTATION; i++) { + omega = 2.*Math.PI*((double)i/(double)NROTATION); + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + y_shear = 0.5*yrange*cos_omega; + z_shear = 0.5*zrange*sin_omega; + pls.ptex3( + xmid, ymax -(ymax-0.2)*((double)i/(double)(NROTATION-1)), zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "rotation for z = z#dmin#u"); + } + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls.mesh(x, y, z, PLStream.DRAW_LINEXY); + + /* Page 3: Demonstrate shear of string along its axis. */ + /* Work around xcairo and pngcairo (but not pscairo) problems for + * shear vector too close to axis of string. (N.B. no workaround + * would be domega = 0.) */ + domega = 0.05; + pls.adv(0); + pls.vpor(-0.15, 1.15, -0.05, 1.05); + pls.wind(-1.2, 1.2, -0.8, 1.5); + pls.w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 20., 45.); + + pls.col0(2); + pls.box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + /* y = ymax. */ + pls.schr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + y_shear = 0.; + for (i = 0; i < NSHEAR; i++) { + omega = domega + 2.*Math.PI*((double)i/(double)NSHEAR); + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + x_shear = 0.5*yrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls.ptex3( + xmid, ymax, zmax -(zmax-0.2)*((double)i/(double)(NSHEAR-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for y = y#dmax#u"); + } + + /* x = xmax. */ + pls.schr(0., 1.0); + x_inclination = 0.; + y_inclination = -1.; + z_inclination = 0.; + x_shear = 0.; + for (i = 0; i < NSHEAR; i++) { + omega = domega + 2.*Math.PI*((double)i/(double)NSHEAR); + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + y_shear = -0.5*xrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + pls.ptex3( + xmax, ymid, zmax -(zmax-0.2)*((double)i/(double)(NSHEAR-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for x = x#dmax#u"); + } + + /* z = zmin. */ + pls.schr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + z_shear = 0.; + for (i = 0; i < NSHEAR; i++) { + omega = domega + 2.*Math.PI*((double)i/(double)NSHEAR); + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + y_shear = 0.5*yrange*cos_omega; + x_shear = 0.5*zrange*sin_omega; + pls.ptex3( + xmid, ymax -(ymax-0.2)*((double)i/(double)(NSHEAR-1)), zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for z = z#dmin#u"); + } + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls.mesh(x, y, z, PLStream.DRAW_LINEXY); + + /* Page 4: Demonstrate drawing a string on a 3D path. */ + pls.adv(0); + pls.vpor(-0.15, 1.15, -0.05, 1.05); + pls.wind(-1.2, 1.2, -0.8, 1.5); + pls.w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 40., -30.); + + pls.col0(2); + pls.box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + pls.schr(0., 1.2); + /* domega controls the spacing between the various characters of the + * string and also the maximum value of omega for the given number + * of characters in *pstring. */ + domega = 2.*Math.PI/pstring.length(); + omega = 0.; + /* 3D function is a helix of the given radius and pitch */ + radius = 0.5; + pitch = 1./(2.*Math.PI); + for(i=0;i<pstring.length();i++) { + sin_omega = Math.sin(omega); + cos_omega = Math.cos(omega); + xpos = xmid + radius*sin_omega; + ypos = ymid - radius*cos_omega; + zpos = zmin + pitch*omega; + /* In general, the inclination is proportional to the derivative of + * the position wrt theta. */ + x_inclination = radius*cos_omega;; + y_inclination = radius*sin_omega; + z_inclination = pitch; + /* The shear vector should be perpendicular to the 3D line with Z + * component maximized, but for low pitch a good approximation is + * a constant vector that is parallel to the Z axis. */ + x_shear = 0.; + y_shear = 0.; + z_shear = 1.; + pls.ptex3( + xpos, ypos, zpos, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, pstring.substring(i,i+1)); + omega += domega; + } + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls.mesh(x, y, z, PLStream.DRAW_LINEXY); + + /* Page 5: Demonstrate plmtex3 axis labelling capability */ + pls.adv(0); + pls.vpor(-0.15, 1.15, -0.05, 1.05); + pls.wind(-1.2, 1.2, -0.8, 1.5); + pls.w3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, + 20., 45.); + + pls.col0(2); + pls.box3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0); + + pls.schr(0., 1.0); + pls.mtex3("xp", 3.0, 0.5, 0.5, "Arbitrarily displaced"); + pls.mtex3("xp", 4.5, 0.5, 0.5, "primary X-axis label"); + pls.mtex3("xs", -2.5, 0.5, 0.5, "Arbitrarily displaced"); + pls.mtex3("xs", -1.0, 0.5, 0.5, "secondary X-axis label"); + pls.mtex3("yp", 3.0, 0.5, 0.5, "Arbitrarily displaced"); + pls.mtex3("yp", 4.5, 0.5, 0.5, "primary Y-axis label"); + pls.mtex3("ys", -2.5, 0.5, 0.5, "Arbitrarily displaced"); + pls.mtex3("ys", -1.0, 0.5, 0.5, "secondary Y-axis label"); + pls.mtex3("zp", 4.5, 0.5, 0.5, "Arbitrarily displaced"); + pls.mtex3("zp", 3.0, 0.5, 0.5, "primary Z-axis label"); + pls.mtex3("zs", -2.5, 0.5, 0.5, "Arbitrarily displaced"); + pls.mtex3("zs", -1.0, 0.5, 0.5, "secondary Z-axis label"); + /* Draw minimal 3D grid to finish defining the 3D box. */ + pls.mesh(x, y, z, PLStream.DRAW_LINEXY); + + pls.end(); + + } + + + public static void main( String[] args ) + { + new x28( args ); + } + +}; Property changes on: trunk/examples/java/x28.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Modified: trunk/test/test_java.sh.in =================================================================== --- trunk/test/test_java.sh.in 2007-09-27 11:32:09 UTC (rev 7891) +++ trunk/test/test_java.sh.in 2007-09-27 21:07:12 UTC (rev 7892) @@ -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; 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; 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: <ai...@us...> - 2007-09-29 20:03:04
|
Revision: 7903 http://plplot.svn.sourceforge.net/plplot/?rev=7903&view=rev Author: airwin Date: 2007-09-29 13:03:07 -0700 (Sat, 29 Sep 2007) Log Message: ----------- Add python implementation of example 28. Modified Paths: -------------- trunk/examples/python/CMakeLists.txt trunk/test/test_python.sh.in Added Paths: ----------- trunk/examples/python/x28 trunk/examples/python/xw28.py Modified: trunk/examples/python/CMakeLists.txt =================================================================== --- trunk/examples/python/CMakeLists.txt 2007-09-29 17:21:36 UTC (rev 7902) +++ trunk/examples/python/CMakeLists.txt 2007-09-29 20:03:07 UTC (rev 7903) @@ -43,6 +43,7 @@ "24" "25" "26" +"28" ) set(python_SCRIPTS) Added: trunk/examples/python/x28 =================================================================== --- trunk/examples/python/x28 (rev 0) +++ trunk/examples/python/x28 2007-09-29 20:03:07 UTC (rev 7903) @@ -0,0 +1,39 @@ +#!/usr/bin/env python + +# Copyright (C) 2004, 2005, 2006 Alan W. Irwin +# 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 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 xw28 + +# Terminate plplot +plend() Property changes on: trunk/examples/python/x28 ___________________________________________________________________ Name: svn:executable + * Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/examples/python/xw28.py =================================================================== --- trunk/examples/python/xw28.py (rev 0) +++ trunk/examples/python/xw28.py 2007-09-29 20:03:07 UTC (rev 7903) @@ -0,0 +1,328 @@ +# $Id$ + +# plmtex3, plptex3 demo. + +from plplot_py_demos import * + +# Choose these values to correspond to tick marks. +XPTS = 2 +YPTS = 2 + +NREVOLUTION = 16 +NROTATION = 8 +NSHEAR = 8 + +xmin = 0. +xmax = 1.0 +xmid = 0.5*(xmax + xmin) +xrange = xmax - xmin + +ymin = 0. +ymax = 1.0 +ymid = 0.5*(ymax + ymin) +yrange = ymax - ymin + +zmin = 0. +zmax = 1.0 +zmid = 0.5*(zmax + zmin) +zrange = zmax - zmin + +pstring = "The future of our civilization depends on software freedom." +def main(): + + if 1: + x = xmin + (xmax-xmin)*arange(XPTS)/float(XPTS-1) + y = ymin + (ymax-ymin)*arange(YPTS)/float(YPTS-1) + z = reshape(0.+zeros(XPTS*YPTS),[XPTS,YPTS]) + + if 1: + # Page 1: Demonstrate inclination and shear capability pattern. + + pladv(0) + plvpor(-0.15, 1.15, -0.05, 1.05) + plwind(-1.2, 1.2, -0.8, 1.5) + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + + plcol0(2) + plbox3( + "b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0) + + # z = zmin. + plschr(0., 1.0) + for i in range(NREVOLUTION): + omega = 2.*pi*(float(i)/float(NREVOLUTION)) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_inclination = 0.5*xrange*cos_omega + y_inclination = 0.5*yrange*sin_omega + z_inclination = 0. + x_shear = -0.5*xrange*sin_omega + y_shear = 0.5*yrange*cos_omega + z_shear = 0. + plptex3( + xmid, ymid, zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.0, " revolution") + + # x = xmax. + plschr(0., 1.0) + for i in range(NREVOLUTION): + omega = 2.*pi*(float(i)/float(NREVOLUTION)) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_inclination = 0. + y_inclination = -0.5*yrange*cos_omega + z_inclination = 0.5*zrange*sin_omega + x_shear = 0. + y_shear = 0.5*yrange*sin_omega + z_shear = 0.5*zrange*cos_omega + plptex3( + xmax, ymid, zmid, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.0, " revolution") + + # y = ymax. + plschr(0., 1.0) + for i in range(NREVOLUTION): + omega = 2.*pi*(float(i)/float(NREVOLUTION)) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_inclination = 0.5*xrange*cos_omega + y_inclination = 0. + z_inclination = 0.5*zrange*sin_omega + x_shear = -0.5*xrange*sin_omega + y_shear = 0. + z_shear = 0.5*zrange*cos_omega + plptex3( + xmid, ymax, zmid, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.0, " revolution") + # Draw minimal 3D grid to finish defining the 3D box. + plmesh(x, y, z, DRAW_LINEXY) + + # Page 2: Demonstrate rotation of string around its axis. + + pladv(0) + plvpor(-0.15, 1.15, -0.05, 1.05) + plwind(-1.2, 1.2, -0.8, 1.5) + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + + plcol0(2) + plbox3( + "b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0) + + # y = ymax. + plschr(0., 1.0) + x_inclination = 1. + y_inclination = 0. + z_inclination = 0. + x_shear = 0. + for i in range(NROTATION): + omega = 2.*pi*(float(i)/float(NROTATION)) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = 0.5*yrange*sin_omega + z_shear = 0.5*zrange*cos_omega + plptex3( + xmid, ymax, zmax -(zmax-0.2)*(float(i)/float(NROTATION-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "rotation for y = y#dmax#u") + + # x = xmax. + plschr(0., 1.0) + x_inclination = 0. + y_inclination = -1. + z_inclination = 0. + y_shear = 0. + for i in range(NROTATION): + omega = 2.*pi*(float(i)/float(NROTATION)) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_shear = 0.5*xrange*sin_omega + z_shear = 0.5*zrange*cos_omega + plptex3( + xmax, ymid, zmax -(zmax-0.2)*(float(i)/float(NROTATION-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "rotation for x = x#dmax#u") + + # z = zmin. + plschr(0., 1.0) + x_inclination = 1. + y_inclination = 0. + z_inclination = 0. + x_shear = 0. + for i in range(NROTATION): + omega = 2.*pi*(float(i)/float(NROTATION)) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = 0.5*yrange*cos_omega + z_shear = 0.5*zrange*sin_omega + plptex3( + xmid, ymax -(ymax-0.2)*(float(i)/float(NROTATION-1)), zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "rotation for z = z#dmin#u") + + # Draw minimal 3D grid to finish defining the 3D box. + plmesh(x, y, z, DRAW_LINEXY) + + # Page 3: Demonstrate shear of string along its axis. + + # Work around xcairo and pngcairo (but not pscairo) problems for + # shear vector too close to axis of string. (N.B. no workaround + # would be domega = 0.) + domega = 0.05 + pladv(0) + plvpor(-0.15, 1.15, -0.05, 1.05) + plwind(-1.2, 1.2, -0.8, 1.5) + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + + plcol0(2) + plbox3( + "b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0) + + # y = ymax. + plschr(0., 1.0) + x_inclination = 1. + y_inclination = 0. + z_inclination = 0. + y_shear = 0. + for i in range(NSHEAR): + omega = domega + 2.*pi*(float(i)/float(NSHEAR)) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_shear = 0.5*xrange*sin_omega + z_shear = 0.5*zrange*cos_omega + plptex3( + xmid, ymax, zmax -(zmax-0.2)*(float(i)/float(NSHEAR-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for y = y#dmax#u") + + # x = xmax. + plschr(0., 1.0) + x_inclination = 0. + y_inclination = -1. + z_inclination = 0. + x_shear = 0. + for i in range(NSHEAR): + omega = domega + 2.*pi*(float(i)/float(NSHEAR)) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = -0.5*yrange*sin_omega + z_shear = 0.5*zrange*cos_omega + plptex3( + xmax, ymid, zmax -(zmax-0.2)*(float(i)/float(NSHEAR-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for x = x#dmax#u") + + # z = zmin. + plschr(0., 1.0) + x_inclination = 1. + y_inclination = 0. + z_inclination = 0. + z_shear = 0. + for i in range(NSHEAR): + omega = domega + 2.*pi*(float(i)/float(NSHEAR)) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = 0.5*yrange*cos_omega + x_shear = 0.5*xrange*sin_omega + plptex3( + xmid, ymax -(ymax-0.2)*(float(i)/float(NSHEAR-1)), zmin, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for z = z#dmin#u") + + # Draw minimal 3D grid to finish defining the 3D box. + plmesh(x, y, z, DRAW_LINEXY) + + # Page 4: Demonstrate drawing a string on a 3D path. + pladv(0) + plvpor(-0.15, 1.15, -0.05, 1.05) + plwind(-1.2, 1.2, -0.8, 1.5) + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 40., -30.) + + plcol0(2) + plbox3( + "b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0) + + plschr(0., 1.2) + # domega controls the spacing between the various characters of the + # string and also the maximum value of omega for the given number + # of characters in *pstring. + domega = 2.*pi/len(pstring) + omega = 0. + # 3D function is a helix of the given radius and pitch + radius = 0.5 + pitch = 1./(2.*pi) + for character in pstring: + sin_omega = sin(omega) + cos_omega = cos(omega) + xpos = xmid + radius*sin_omega + ypos = ymid - radius*cos_omega + zpos = zmin + pitch*omega + # In general, the inclination is proportional to the derivative of + # the position wrt theta. + x_inclination = radius*cos_omega + y_inclination = radius*sin_omega + z_inclination = pitch + # The shear vector should be perpendicular to the 3D line with Z + # component maximized, but for low pitch a good approximation is + # a constant vector that is parallel to the Z axis. + x_shear = 0. + y_shear = 0. + z_shear = 1. + plptex3( + xpos, ypos, zpos, + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, character) + omega += domega + + # Draw minimal 3D grid to finish defining the 3D box. + plmesh(x, y, z, DRAW_LINEXY) + + # Page 5: Demonstrate plmtex3 axis labelling capability. + pladv(0) + plvpor(-0.15, 1.15, -0.05, 1.05) + plwind(-1.2, 1.2, -0.8, 1.5) + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + + plcol0(2) + plbox3( + "b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0) + + plschr(0., 1.0) + plmtex3("xp", 3.0, 0.5, 0.5, "Arbitrarily displaced") + plmtex3("xp", 4.5, 0.5, 0.5, "primary X-axis label") + plmtex3("xs", -2.5, 0.5, 0.5, "Arbitrarily displaced") + plmtex3("xs", -1.0, 0.5, 0.5, "secondary X-axis label") + plmtex3("yp", 3.0, 0.5, 0.5, "Arbitrarily displaced") + plmtex3("yp", 4.5, 0.5, 0.5, "primary Y-axis label") + plmtex3("ys", -2.5, 0.5, 0.5, "Arbitrarily displaced") + plmtex3("ys", -1.0, 0.5, 0.5, "secondary Y-axis label") + plmtex3("zp", 4.5, 0.5, 0.5, "Arbitrarily displaced") + plmtex3("zp", 3.0, 0.5, 0.5, "primary Z-axis label") + plmtex3("zs", -2.5, 0.5, 0.5, "Arbitrarily displaced") + plmtex3("zs", -1.0, 0.5, 0.5, "secondary Z-axis label") + # Draw minimal 3D grid to finish defining the 3D box. + plmesh(x, y, z, DRAW_LINEXY) + +main() Property changes on: trunk/examples/python/xw28.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 2007-09-29 17:21:36 UTC (rev 7902) +++ trunk/test/test_python.sh.in 2007-09-29 20:03:07 UTC (rev 7903) @@ -30,7 +30,8 @@ # Skip 20 because it is not (yet) implemented. # 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 @NUMPY_EXAMPLES@ ; do +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 @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: <ai...@us...> - 2007-09-30 21:00:37
|
Revision: 7911 http://plplot.svn.sourceforge.net/plplot/?rev=7911&view=rev Author: airwin Date: 2007-09-30 14:00:40 -0700 (Sun, 30 Sep 2007) Log Message: ----------- Add Fortran 77 implementation of example 28. Modified Paths: -------------- trunk/examples/f77/CMakeLists.txt trunk/examples/f77/Makefile.examples.in trunk/test/test_f77.sh.in Added Paths: ----------- trunk/examples/f77/x28f.fm4 Modified: trunk/examples/f77/CMakeLists.txt =================================================================== --- trunk/examples/f77/CMakeLists.txt 2007-09-30 20:59:00 UTC (rev 7910) +++ trunk/examples/f77/CMakeLists.txt 2007-09-30 21:00:40 UTC (rev 7911) @@ -43,6 +43,7 @@ "19" "22" "23" +"28" ) foreach(STRING_INDEX ${f77_STRING_INDICES}) Modified: trunk/examples/f77/Makefile.examples.in =================================================================== --- trunk/examples/f77/Makefile.examples.in 2007-09-30 20:59:00 UTC (rev 7910) +++ trunk/examples/f77/Makefile.examples.in 2007-09-30 21:00:40 UTC (rev 7911) @@ -28,11 +28,6 @@ @pkg_config_true@PKG_CONFIG_ENV = @PKG_CONFIG_ENV@ @pkg_config_true@RPATHCMD = @RPATHCMD@ -# x19f excluded from this list because the plmap and plmeridians fortran -# API is not implemented as part of the common API (and probably won't be -# for a long time because of having to work around the mapform type of -# argument for these functions). - EXECUTABLES_list = \ x01f$(EXEEXT) \ x02f$(EXEEXT) \ @@ -55,7 +50,8 @@ x18f$(EXEEXT) \ x19f$(EXEEXT) \ x22f$(EXEEXT) \ - x23f$(EXEEXT) + x23f$(EXEEXT) \ + x28f$(EXEEXT) all: $(EXECUTABLES_list) Added: trunk/examples/f77/x28f.fm4 =================================================================== --- trunk/examples/f77/x28f.fm4 (rev 0) +++ trunk/examples/f77/x28f.fm4 2007-09-30 21:00:40 UTC (rev 7911) @@ -0,0 +1,403 @@ +C $Id$ +C +C Demonstrates plotting text in 3D (plmtex3, plptex3) +C +C Copyright (C) 2007 Alan W. Irwin +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 x28f + + implicit none + + integer XPTS, YPTS, NREVOLUTION, NROTATION, NSHEAR + parameter(XPTS = 2) + parameter(YPTS = 2) + parameter(NREVOLUTION = 16) + parameter(NROTATION = 8) + parameter(NSHEAR = 8) + real*8 x(XPTS), y(YPTS), z(XPTS,YPTS) + real*8 PI + parameter (PI = 3.1415926535897932384d0) + real*8 xmin, xmax, xmid, xrange + parameter(xmin = 0.d0) + parameter(xmax = 1.d0) + parameter(xmid = 0.5d0*(xmax+xmin)) + parameter(xrange = xmax-xmin) + real*8 ymin, ymax, ymid, yrange + parameter(ymin = 0.d0) + parameter(ymax = 1.d0) + parameter(ymid = 0.5d0*(ymax+ymin)) + parameter(yrange = ymax-ymin) + real*8 zmin, zmax, zmid, zrange + parameter(zmin = 0.d0) + parameter(zmax = 1.d0) + parameter(zmid = 0.5d0*(zmax+zmin)) + parameter(zrange = zmax-zmin) + + + real*8 x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & omega, sin_omega, cos_omega, domega + integer i, j + real*8 radius, pitch, xpos, ypos, zpos + integer lnblnk + integer PL_PARSE_FULL + parameter(PL_PARSE_FULL = 1) + integer DRAW_LINEXY + parameter(DRAW_LINEXY = 3) + + character*80 pstring + pstring = + & "The future of our civilization depends on software freedom." + + do i = 1,XPTS + x(i) = xmin + dble(i-1)*(xmax-xmin)/dble(XPTS-1) + enddo + + do j = 1,YPTS + y(j) = ymin + dble(j-1)*(ymax-ymin)/dble(YPTS-1) + enddo + + do j = 1,YPTS + do i = 1,XPTS + z(i,j) = 0.d0 + enddo + enddo + +C Parse and process command line arguments + + call plparseopts(PL_PARSE_FULL) + + call plinit() + +C Page 1: Demonstrate inclination and shear capability pattern. + + call pladv(0) + call plvpor(-0.15d0, 1.15d0, -0.05d0, 1.05d0) + call plwind(-1.2d0, 1.2d0, -0.8d0, 1.5d0) + call plw3d(1.0d0, 1.0d0, 1.0d0, + & xmin, xmax, ymin, ymax, zmin, zmax, + & 20.d0, 45.d0) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, + & "b", "", ymax-ymin, 0, + & "bcd", "", zmax-zmin, 0) + +C z = zmin. + call plschr(0.d0, 1.0d0) + do i = 1,NREVOLUTION + omega = 2.d0*PI*(dble(i-1)/dble(NREVOLUTION)) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_inclination = 0.5d0*xrange*cos_omega + y_inclination = 0.5d0*yrange*sin_omega + z_inclination = 0.d0 + x_shear = -0.5d0*xrange*sin_omega + y_shear = 0.5d0*yrange*cos_omega + z_shear = 0.d0 + call plptex3( + & xmid, ymid, zmin, + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.0d0, " revolution") + enddo + +C x = xmax. + call plschr(0.d0, 1.0d0) + do i = 1,NREVOLUTION + omega = 2.d0*PI*(dble(i-1)/dble(NREVOLUTION)) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_inclination = 0.d0 + y_inclination = -0.5d0*yrange*cos_omega + z_inclination = 0.5d0*zrange*sin_omega + x_shear = 0.d0 + y_shear = 0.5d0*yrange*sin_omega + z_shear = 0.5d0*zrange*cos_omega + call plptex3( + & xmax, ymid, zmid, + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.0d0, " revolution") + enddo + +C y = ymax. + call plschr(0.d0, 1.0d0) + do i = 1,NREVOLUTION + omega = 2.d0*PI*(dble(i-1)/dble(NREVOLUTION)) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_inclination = 0.5d0*xrange*cos_omega + y_inclination = 0.d0 + z_inclination = 0.5d0*zrange*sin_omega + x_shear = -0.5d0*xrange*sin_omega + y_shear = 0.d0 + z_shear = 0.5d0*zrange*cos_omega + call plptex3( + & xmid, ymax, zmid, + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.0d0, " revolution") + enddo +C Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY, XPTS) + +C Page 2: Demonstrate rotation of string around its axis. + call pladv(0) + call plvpor(-0.15d0, 1.15d0, -0.05d0, 1.05d0) + call plwind(-1.2d0, 1.2d0, -0.8d0, 1.5d0) + call plw3d(1.0d0, 1.0d0, 1.0d0, + & xmin, xmax, ymin, ymax, zmin, zmax, + & 20.d0, 45.d0) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, + & "b", "", ymax-ymin, 0, + & "bcd", "", zmax-zmin, 0) + +C y = ymax. + call plschr(0.d0, 1.0d0) + x_inclination = 1.d0 + y_inclination = 0.d0 + z_inclination = 0.d0 + x_shear = 0.d0 + do i = 1,NROTATION + omega = 2.d0*PI*dble(i-1)/dble(NROTATION) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = 0.5d0*yrange*sin_omega + z_shear = 0.5d0*zrange*cos_omega + call plptex3( + & xmid, + & ymax, + & zmax -(zmax-0.2d0)*(dble(i-1)/dble(NROTATION-1)), + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.5d0, "rotation for y = y#dmax#u") + enddo + +C x = xmax. + call plschr(0.d0, 1.0d0) + x_inclination = 0.d0 + y_inclination = -1.d0 + z_inclination = 0.d0 + y_shear = 0.d0 + do i = 1,NROTATION + omega = 2.d0*PI*dble(i-1)/dble(NROTATION) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_shear = 0.5d0*xrange*sin_omega + z_shear = 0.5d0*zrange*cos_omega + call plptex3( + & xmax, + & ymid, + & zmax -(zmax-0.2d0)*(dble(i-1)/dble(NROTATION-1)), + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.5d0, "rotation for x = x#dmax#u") + enddo + +C z = zmin. + call plschr(0.d0, 1.0d0) + x_inclination = 1.d0 + y_inclination = 0.d0 + z_inclination = 0.d0 + x_shear = 0.d0 + do i = 1,NROTATION + omega = 2.d0*PI*dble(i-1)/dble(NROTATION) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = 0.5d0*yrange*cos_omega + z_shear = 0.5d0*zrange*sin_omega + call plptex3( + & xmid, + & ymax -(zmax-0.2d0)*(dble(i-1)/dble(NROTATION-1)), + & zmin, + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.5d0, "rotation for z = z#dmin#u") + enddo +C Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY, XPTS) + +C Page 3: Demonstrate shear of string along its axis. +C Work around xcairo and pngcairo (but not pscairo) problems for +C shear vector too close to axis of string. (N.B. no workaround +C would be domega = 0.d0.) + domega = 0.05d0 + call pladv(0) + call plvpor(-0.15d0, 1.15d0, -0.05d0, 1.05d0) + call plwind(-1.2d0, 1.2d0, -0.8d0, 1.5d0) + call plw3d(1.0d0, 1.0d0, 1.0d0, + & xmin, xmax, ymin, ymax, zmin, zmax, + & 20.d0, 45.d0) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, + & "b", "", ymax-ymin, 0, + & "bcd", "", zmax-zmin, 0) + +C y = ymax. + call plschr(0.d0, 1.0d0) + x_inclination = 1.d0 + y_inclination = 0.d0 + z_inclination = 0.d0 + y_shear = 0.d0 + do i = 1,NSHEAR + omega = domega + 2.d0*PI*dble(i-1)/dble(NSHEAR) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_shear = 0.5d0*xrange*sin_omega + z_shear = 0.5d0*zrange*cos_omega + call plptex3( + & xmid, + & ymax, + & zmax -(zmax-0.2d0)*(dble(i-1)/dble(NSHEAR-1)), + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.5d0, "shear for y = y#dmax#u") + enddo + +C x = xmax. + call plschr(0.d0, 1.0d0) + x_inclination = 0.d0 + y_inclination = -1.d0 + z_inclination = 0.d0 + x_shear = 0.d0 + do i = 1,NSHEAR + omega = domega + 2.d0*PI*dble(i-1)/dble(NSHEAR) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = -0.5d0*yrange*sin_omega + z_shear = 0.5d0*zrange*cos_omega + call plptex3( + & xmax, + & ymid, + & zmax -(zmax-0.2d0)*(dble(i-1)/dble(NSHEAR-1)), + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.5d0, "shear for x = x#dmax#u") + enddo + +C z = zmin. + call plschr(0.d0, 1.0d0) + x_inclination = 1.d0 + y_inclination = 0.d0 + z_inclination = 0.d0 + z_shear = 0.d0 + do i = 1,NSHEAR + omega = domega + 2.d0*PI*dble(i-1)/dble(NSHEAR) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = 0.5d0*yrange*cos_omega + x_shear = 0.5d0*xrange*sin_omega + call plptex3( + & xmid, + & ymax -(ymax-0.2d0)*(dble(i-1)/dble(NSHEAR-1)), + & zmin, + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.5d0, "shear for z = z#dmin#u") + enddo + +C Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY, XPTS) + +C Page 4: Demonstrate drawing a string on a 3D path. + call pladv(0) + call plvpor(-0.15d0, 1.15d0, -0.05d0, 1.05d0) + call plwind(-1.2d0, 1.2d0, -0.8d0, 1.5d0) + call plw3d(1.0d0, 1.0d0, 1.0d0, + & xmin, xmax, ymin, ymax, zmin, zmax, + & 40.d0, -30.d0) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, + & "b", "", ymax-ymin, 0, + & "bcd", "", zmax-zmin, 0) + + call plschr(0.d0, 1.2d0) +C domega controls the spacing between the various characters of the +C string and also the maximum value of omega for the given number +C of characters in pstring. + domega = 2.d0*PI/lnblnk(pstring) + omega = 0.d0 +C 3D function is a helix of the given radius and pitch + radius = 0.5d0 + pitch = 1.d0/(2.d0*PI) + do i = 1,lnblnk(pstring) + sin_omega = sin(omega) + cos_omega = cos(omega) + xpos = xmid + radius*sin_omega + ypos = ymid - radius*cos_omega + zpos = zmin + pitch*omega +C In general, the inclination is proportional to the derivative of +C the position wrt theta. + x_inclination = radius*cos_omega + y_inclination = radius*sin_omega + z_inclination = pitch +C The shear vector should be perpendicular to the 3D line with Z +C component maximized, but for low pitch a good approximation is +C a constant vector that is parallel to the Z axis. + x_shear = 0.d0 + y_shear = 0.d0 + z_shear = 1.d0 + call plptex3( + & xpos, ypos, zpos, + & x_inclination, y_inclination, z_inclination, + & x_shear, y_shear, z_shear, + & 0.5d0, pstring(i:i)) + omega = omega + domega + enddo +C Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY, XPTS) + +C Page 5: Demonstrate plmtex3 axis labelling capability + call pladv(0) + call plvpor(-0.15d0, 1.15d0, -0.05d0, 1.05d0) + call plwind(-1.2d0, 1.2d0, -0.8d0, 1.5d0) + call plw3d(1.0d0, 1.0d0, 1.0d0, + & xmin, xmax, ymin, ymax, zmin, zmax, + & 20.d0, 45.d0) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, + & "b", "", ymax-ymin, 0, + & "bcd", "", zmax-zmin, 0) + + call plschr(0.d0, 1.0d0) + call plmtex3("xp", 3.0d0, 0.5d0, 0.5d0, "Arbitrarily displaced") + call plmtex3("xp", 4.5d0, 0.5d0, 0.5d0, "primary X-axis label") + call plmtex3("xs", -2.5d0, 0.5d0, 0.5d0, "Arbitrarily displaced") + call plmtex3("xs", -1.0d0, 0.5d0, 0.5d0, "secondary X-axis label") + call plmtex3("yp", 3.0d0, 0.5d0, 0.5d0, "Arbitrarily displaced") + call plmtex3("yp", 4.5d0, 0.5d0, 0.5d0, "primary Y-axis label") + call plmtex3("ys", -2.5d0, 0.5d0, 0.5d0, "Arbitrarily displaced") + call plmtex3("ys", -1.0d0, 0.5d0, 0.5d0, "secondary Y-axis label") + call plmtex3("zp", 4.5d0, 0.5d0, 0.5d0, "Arbitrarily displaced") + call plmtex3("zp", 3.0d0, 0.5d0, 0.5d0, "primary Z-axis label") + call plmtex3("zs", -2.5d0, 0.5d0, 0.5d0, "Arbitrarily displaced") + call plmtex3("zs", -1.0d0, 0.5d0, 0.5d0, "secondary Z-axis label") +C Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY, XPTS) + + call plend() + stop + end Property changes on: trunk/examples/f77/x28f.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 2007-09-30 20:59:00 UTC (rev 7910) +++ trunk/test/test_f77.sh.in 2007-09-30 21:00:40 UTC (rev 7911) @@ -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; do + for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28; 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; do + for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28; 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: <ai...@us...> - 2007-09-30 21:03:02
|
Revision: 7913 http://plplot.svn.sourceforge.net/plplot/?rev=7913&view=rev Author: airwin Date: 2007-09-30 14:03:04 -0700 (Sun, 30 Sep 2007) Log Message: ----------- Add fortran 95 example 28 to build tree and install tree examples. Modified Paths: -------------- trunk/examples/f95/CMakeLists.txt trunk/examples/f95/Makefile.examples.in trunk/test/test_f95.sh.in Modified: trunk/examples/f95/CMakeLists.txt =================================================================== --- trunk/examples/f95/CMakeLists.txt 2007-09-30 21:02:02 UTC (rev 7912) +++ trunk/examples/f95/CMakeLists.txt 2007-09-30 21:03:04 UTC (rev 7913) @@ -43,6 +43,7 @@ "19" "22" "23" +"28" ) if(BUILD_TEST) Modified: trunk/examples/f95/Makefile.examples.in =================================================================== --- trunk/examples/f95/Makefile.examples.in 2007-09-30 21:02:02 UTC (rev 7912) +++ trunk/examples/f95/Makefile.examples.in 2007-09-30 21:03:04 UTC (rev 7913) @@ -28,11 +28,6 @@ @pkg_config_true@PKG_CONFIG_ENV = @PKG_CONFIG_ENV@ @pkg_config_true@RPATHCMD = @RPATHCMD@ -# x19f excluded from this list because the plmap and plmeridians fortran -# API is not implemented as part of the common API (and probably won't be -# for a long time because of having to work around the mapform type of -# argument for these functions). - EXECUTABLES_list = \ x01f$(EXEEXT) \ x02f$(EXEEXT) \ @@ -55,7 +50,8 @@ x18f$(EXEEXT) \ x19f$(EXEEXT) \ x22f$(EXEEXT) \ - x23f$(EXEEXT) + x23f$(EXEEXT) \ + x28f$(EXEEXT) all: $(EXECUTABLES_list) Modified: trunk/test/test_f95.sh.in =================================================================== --- trunk/test/test_f95.sh.in 2007-09-30 21:02:02 UTC (rev 7912) +++ trunk/test/test_f95.sh.in 2007-09-30 21:03:04 UTC (rev 7913) @@ -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; do + for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28; 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; do + for index in 01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 22 23 28; 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...> - 2007-10-14 15:31:35
|
Revision: 7928 http://plplot.svn.sourceforge.net/plplot/?rev=7928&view=rev Author: airwin Date: 2007-10-14 08:31:09 -0700 (Sun, 14 Oct 2007) Log Message: ----------- Make all source files for the Ada bindings configurable using the CMake variables Ada_Is_2007_With_and_Use_Numerics and Ada_Is_Not_2007_Vector_Matrix_Declarations. cmake/modules/ada.cmake defines the variables depending on an option set by the user. bindings/ada/*.ad? are the configured files whose configured results end up in the equivalent directory in the build tree. bindings/ada/CMakeLists.txt does the actual configuration of the source files for the Ada bindings. examples/ada/CMakeLists.txt is adjusted for the new location of the (configured) source files for the bindings. Modified Paths: -------------- trunk/bindings/ada/CMakeLists.txt trunk/bindings/ada/plplot.adb trunk/bindings/ada/plplot.ads trunk/bindings/ada/plplot_auxiliary.ads trunk/bindings/ada/plplot_thin.ads trunk/bindings/ada/plplot_traditional.adb trunk/bindings/ada/plplot_traditional.ads trunk/cmake/modules/ada.cmake trunk/examples/ada/CMakeLists.txt Modified: trunk/bindings/ada/CMakeLists.txt =================================================================== --- trunk/bindings/ada/CMakeLists.txt 2007-10-12 13:43:19 UTC (rev 7927) +++ trunk/bindings/ada/CMakeLists.txt 2007-10-14 15:31:09 UTC (rev 7928) @@ -20,17 +20,29 @@ if(ENABLE_ada) - set(plplotada${LIB_TAG}_LIB_SRCS - ${CMAKE_CURRENT_SOURCE_DIR}/plplot.adb - ${CMAKE_CURRENT_SOURCE_DIR}/plplot.ads - ${CMAKE_CURRENT_SOURCE_DIR}/plplot_thin.adb - ${CMAKE_CURRENT_SOURCE_DIR}/plplot_thin.ads - ${CMAKE_CURRENT_SOURCE_DIR}/plplot_traditional.adb - ${CMAKE_CURRENT_SOURCE_DIR}/plplot_traditional.ads - ${CMAKE_CURRENT_SOURCE_DIR}/plplot_auxiliary.adb - ${CMAKE_CURRENT_SOURCE_DIR}/plplot_auxiliary.ads + set(SOURCE_LIST + plplot.adb + plplot.ads + plplot_thin.adb + plplot_thin.ads + plplot_traditional.adb + plplot_traditional.ads + plplot_auxiliary.adb + plplot_auxiliary.ads ) + set(plplotada${LIB_TAG}_LIB_SRCS) + foreach(SOURCE_FILE ${SOURCE_LIST}) + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE} + ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} + ) + set(plplotada${LIB_TAG}_LIB_SRCS + ${plplotada${LIB_TAG}_LIB_SRCS} + ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_FILE} + ) + endforeach(SOURCE_FILE ${SOURCE_LIST}) + add_library(plplotada${LIB_TAG} ${plplotada${LIB_TAG}_LIB_SRCS}) target_link_libraries(plplotada${LIB_TAG} Modified: trunk/bindings/ada/plplot.adb =================================================================== --- trunk/bindings/ada/plplot.adb 2007-10-12 13:43:19 UTC (rev 7927) +++ trunk/bindings/ada/plplot.adb 2007-10-14 15:31:09 UTC (rev 7928) @@ -44,6 +44,7 @@ -- 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@ package body PLplot is Modified: trunk/bindings/ada/plplot.ads =================================================================== --- trunk/bindings/ada/plplot.ads 2007-10-12 13:43:19 UTC (rev 7927) +++ trunk/bindings/ada/plplot.ads 2007-10-14 15:31:09 UTC (rev 7928) @@ -35,6 +35,7 @@ -- 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@ package PLplot is Modified: trunk/bindings/ada/plplot_auxiliary.ads =================================================================== --- trunk/bindings/ada/plplot_auxiliary.ads 2007-10-12 13:43:19 UTC (rev 7927) +++ trunk/bindings/ada/plplot_auxiliary.ads 2007-10-14 15:31:09 UTC (rev 7928) @@ -34,6 +34,7 @@ -- 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@ -------------------------------------------------------------------------------- -- Utility type declarations used by the bindings -- @@ -47,8 +48,9 @@ -- ALSO, YOU WILL NEED TO MAKE A SINGLE-LINE EDIT TO THESE BINDING FILES: -- plplot.ads, plplot.adb, plplot_traditional.ads, plplot_traditional.adb, -- and plplot_thin.ads. - type Real_Vector is array (Integer range <>) of Long_Float; - type Real_Matrix is array (Integer range <>, Integer range <>) of Long_Float; +-- type Real_Vector is array (Integer range <>) of Long_Float; +-- type Real_Matrix is array (Integer range <>, Integer range <>) of Long_Float; +@Ada_Is_Not_2007_Vector_Matrix_Declarations@ -- Other array types for the bindings. type Boolean_Array_1D is array (Integer range <>) of Boolean; @@ -91,4 +93,4 @@ new Ada.Strings.Bounded.Generic_Bounded_Length(80); subtype String_80 is Bounded_String_80.Bounded_String; -end PLplot_Auxiliary; \ No newline at end of file +end PLplot_Auxiliary; Modified: trunk/bindings/ada/plplot_thin.ads =================================================================== --- trunk/bindings/ada/plplot_thin.ads 2007-10-12 13:43:19 UTC (rev 7927) +++ trunk/bindings/ada/plplot_thin.ads 2007-10-14 15:31:09 UTC (rev 7928) @@ -50,6 +50,7 @@ -- 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@ package PLplot_Thin is subtype PLINT is Integer; Modified: trunk/bindings/ada/plplot_traditional.adb =================================================================== --- trunk/bindings/ada/plplot_traditional.adb 2007-10-12 13:43:19 UTC (rev 7927) +++ trunk/bindings/ada/plplot_traditional.adb 2007-10-14 15:31:09 UTC (rev 7928) @@ -43,6 +43,7 @@ -- 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@ package body PLplot_Traditional is Modified: trunk/bindings/ada/plplot_traditional.ads =================================================================== --- trunk/bindings/ada/plplot_traditional.ads 2007-10-12 13:43:19 UTC (rev 7927) +++ trunk/bindings/ada/plplot_traditional.ads 2007-10-14 15:31:09 UTC (rev 7928) @@ -35,6 +35,7 @@ -- 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@ package PLplot_Traditional is Modified: trunk/cmake/modules/ada.cmake =================================================================== --- trunk/cmake/modules/ada.cmake 2007-10-12 13:43:19 UTC (rev 7927) +++ trunk/cmake/modules/ada.cmake 2007-10-14 15:31:09 UTC (rev 7928) @@ -39,3 +39,15 @@ if(ENABLE_ada) enable_language(Ada) endif(ENABLE_ada) + + + +# New stuff by Jerry for source modifications for Ada 2007 or not Ada 2007. +option(HAVE_ADA_2007 "Ada 2007?" OFF) + +if(HAVE_ADA_2007) + set(Ada_Is_2007_With_and_Use_Numerics " with Ada.Numerics.Long_Real_Arrays; use Ada.Numerics.Long_Real_Arrays;") +else(HAVE_ADA_2007) + # Is there some way to put a line ending after the first semicolon in the quoted string? Not essential. + set(Ada_Is_Not_2007_Vector_Matrix_Declarations " type Real_Vector is array (Integer range <>) of Long_Float; type Real_Matrix is array (Integer range <>, Integer range <>) of Long_Float;") +endif(HAVE_ADA_2007) Modified: trunk/examples/ada/CMakeLists.txt =================================================================== --- trunk/examples/ada/CMakeLists.txt 2007-10-12 13:43:19 UTC (rev 7927) +++ trunk/examples/ada/CMakeLists.txt 2007-10-14 15:31:09 UTC (rev 7928) @@ -39,7 +39,7 @@ remove_definitions("-DHAVE_CONFIG_H") include_directories( ${CMAKE_SOURCE_DIR}/examples/ada - ${CMAKE_SOURCE_DIR}/bindings/ada + ${CMAKE_BINARY_DIR}/bindings/ada ) endif(BUILD_TEST) foreach(STRING_INDEX ${ada_STRING_INDICES}) @@ -71,7 +71,7 @@ set_target_properties(x${STRING_INDEX}a PROPERTIES LINK_FLAGS - "-aI${CMAKE_SOURCE_DIR}/examples/ada -aI${CMAKE_SOURCE_DIR}/bindings/ada -aL${CMAKE_BINARY_DIR}/bindings/ada/CMakeFiles/plplotada${LIB_TAG}.dir" + "-aI${CMAKE_SOURCE_DIR}/examples/ada -aI${CMAKE_BINARY_DIR}/bindings/ada -aL${CMAKE_BINARY_DIR}/bindings/ada/CMakeFiles/plplotada${LIB_TAG}.dir" ) target_link_libraries(x${STRING_INDEX}a plplotada${LIB_TAG}) endif(BUILD_TEST) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2007-10-15 11:57:40
|
Revision: 7933 http://plplot.svn.sourceforge.net/plplot/?rev=7933&view=rev Author: andrewross Date: 2007-10-15 04:57:39 -0700 (Mon, 15 Oct 2007) Log Message: ----------- Add octave implementation of example 28. Produces identical results to C version. Modified Paths: -------------- trunk/bindings/octave/demos/CMakeLists.txt trunk/test/test_octave.sh.in Added Paths: ----------- trunk/bindings/octave/demos/x28c.m Modified: trunk/bindings/octave/demos/CMakeLists.txt =================================================================== --- trunk/bindings/octave/demos/CMakeLists.txt 2007-10-15 11:56:37 UTC (rev 7932) +++ trunk/bindings/octave/demos/CMakeLists.txt 2007-10-15 11:57:39 UTC (rev 7933) @@ -69,6 +69,7 @@ x24c.m x25c.m x26c.m +x28c.m lena.img ) Added: trunk/bindings/octave/demos/x28c.m =================================================================== --- trunk/bindings/octave/demos/x28c.m (rev 0) +++ trunk/bindings/octave/demos/x28c.m 2007-10-15 11:57:39 UTC (rev 7933) @@ -0,0 +1,363 @@ +## $Id:$ +## +## plmtex3, plptex3 demo +## +## Copyright (C) 2007 Alan Irwin +## 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 +## + +1; + +## Demonstrate plotting text in 3D + +function ix28c + +## Choose these values to correspond to tick marks + XPTS = 2; + YPTS = 2; + NREVOLUTION = 16; + NROTATION = 8; + NSHEAR = 8; + + ## PLplot constants used in this example + DRAW_LINEXY = 3; + + xmin = 0.0; + xmax = 1.0; + xmid = 0.5*(xmin+xmax); + xrange = xmax-xmin; + + ymin = 0.0; + ymax = 1.0; + ymid = 0.5*(ymin+ymax); + yrange = ymax-ymin; + + zmin = 0.0; + zmax = 1.0; + zmid = 0.5*(zmin+zmax); + zrange = zmax-zmin; + + pstring = "The future of our civilization depends on software freedom."; + + x = xmin + (0:(XPTS-1))*xrange/(XPTS-1); + y = ymin + (0:(XPTS-1))*yrange/(YPTS-1); + + z = zeros(XPTS,YPTS); + + ## Parse and process command line arguments + + ## (void) plparseopts(&argc, argv, PL_PARSE_FULL); + + plinit(); + + ## Page 1: Demonstrate inclination and shear capability pattern. + + pladv(0); + plvpor(-0.15, 1.15, -0.05, 1.05); + plwind(-1.2, 1.2, -0.8, 1.5); + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.); + + plcol0(2); + plbox3("b", "", xrange, 0, \ + "b", "", yrange, 0, \ + "bcd", "", zrange, 0); + + ## z = zmin. + plschr(0., 1.0); + for i = 0:NREVOLUTION-1 + omega = 2.*pi*(i/NREVOLUTION); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_inclination = 0.5*xrange*cos_omega; + y_inclination = 0.5*yrange*sin_omega; + z_inclination = 0.; + x_shear = -0.5*xrange*sin_omega; + y_shear = 0.5*yrange*cos_omega; + z_shear = 0.; + plptex3(xmid, ymid, zmin, \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.0, " revolution"); + endfor + ## x = xmax. + plschr(0., 1.0); + for i=0:NREVOLUTION-1 + omega = 2.*pi*(i/NREVOLUTION); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_inclination = 0.; + y_inclination = -0.5*yrange*cos_omega; + z_inclination = 0.5*zrange*sin_omega; + x_shear = 0.; + y_shear = 0.5*yrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + plptex3(xmax, ymid, zmid, \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.0, " revolution"); + endfor + + ## y = ymax. + plschr(0., 1.0); + for i = 0:NREVOLUTION-1 + omega = 2.*pi*(i/NREVOLUTION); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_inclination = 0.5*xrange*cos_omega; + y_inclination = 0.; + z_inclination = 0.5*zrange*sin_omega; + x_shear = -0.5*xrange*sin_omega; + y_shear = 0.; + z_shear = 0.5*zrange*cos_omega; + plptex3( \ + xmid, ymax, zmid, \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.0, " revolution"); + endfor + ## Draw minimal 3D grid to finish defining the 3D box. + plmesh(x', y', z', DRAW_LINEXY); + + ## Page 2: Demonstrate rotation of string around its axis. + pladv(0); + plvpor(-0.15, 1.15, -0.05, 1.05); + plwind(-1.2, 1.2, -0.8, 1.5); + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.); + + plcol0(2); + plbox3("b", "", xrange, 0, \ + "b", "", yrange, 0, \ + "bcd", "", zrange, 0); + + ## y = ymax. + plschr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + x_shear = 0.; + for i = 0:NROTATION-1 + omega = 2.*pi*(i/NROTATION); + sin_omega = sin(omega); + cos_omega = cos(omega); + y_shear = 0.5*yrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + plptex3( \ + xmid, ymax, zmax -(zmax-0.2)*(i/(NROTATION-1)), \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.5, "rotation for y = y#dmax#u"); + endfor + + ## x = xmax. + plschr(0., 1.0); + x_inclination = 0.; + y_inclination = -1.; + z_inclination = 0.; + y_shear = 0.; + for i = 0:NROTATION-1 + omega = 2.*pi*(i/NROTATION); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_shear = 0.5*xrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + plptex3( \ + xmax, ymid, zmax -(zmax-0.2)*(i/(NROTATION-1)), \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.5, "rotation for x = x#dmax#u"); + endfor + + ## z = zmin. + plschr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + x_shear = 0.; + for i = 0:NROTATION-1 + omega = 2.*pi*(i/NROTATION); + sin_omega = sin(omega); + cos_omega = cos(omega); + y_shear = 0.5*yrange*cos_omega; + z_shear = 0.5*zrange*sin_omega; + plptex3( \ + xmid, ymax -(ymax-0.2)*(i/(NROTATION-1)), zmin, \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.5, "rotation for z = z#dmin#u"); + endfor + ## Draw minimal 3D grid to finish defining the 3D box. + plmesh(x', y', z', DRAW_LINEXY); + + ## Page 3: Demonstrate shear of string along its axis. + ## Work around xcairo and pngcairo (but not pscairo) problems for + ## shear vector too close to axis of string. (N.B. no workaround + ## would be domega = 0.) + domega = 0.05; + pladv(0); + plvpor(-0.15, 1.15, -0.05, 1.05); + plwind(-1.2, 1.2, -0.8, 1.5); + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.); + + plcol0(2); + plbox3("b", "", xrange, 0, \ + "b", "", yrange, 0, \ + "bcd", "", zrange, 0); + + ## y = ymax. + plschr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + y_shear = 0.; + for i = 0:NSHEAR-1 + omega = domega + 2.*pi*(i/NSHEAR); + sin_omega = sin(omega); + cos_omega = cos(omega); + x_shear = 0.5*xrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + plptex3( \ + xmid, ymax, zmax -(zmax-0.2)*(i/(NSHEAR-1)), \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.5, "shear for y = y#dmax#u"); + endfor + + ## x = xmax. + plschr(0., 1.0); + x_inclination = 0.; + y_inclination = -1.; + z_inclination = 0.; + x_shear = 0.; + for i = 0:NSHEAR-1 + omega = domega + 2.*pi*(i/NSHEAR); + sin_omega = sin(omega); + cos_omega = cos(omega); + y_shear = -0.5*yrange*sin_omega; + z_shear = 0.5*zrange*cos_omega; + plptex3( \ + xmax, ymid, zmax -(zmax-0.2)*(i/(NSHEAR-1)), \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.5, "shear for x = x#dmax#u"); + endfor + + ## z = zmin. + plschr(0., 1.0); + x_inclination = 1.; + y_inclination = 0.; + z_inclination = 0.; + z_shear = 0.; + for i = 0:NSHEAR-1 + omega = domega + 2.*pi*(i/NSHEAR); + sin_omega = sin(omega); + cos_omega = cos(omega); + y_shear = 0.5*yrange*cos_omega; + x_shear = 0.5*xrange*sin_omega; + plptex3( \ + xmid, ymax -(ymax-0.2)*(i/(NSHEAR-1)), zmin, \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.5, "shear for z = z#dmin#u"); + endfor + ## Draw minimal 3D grid to finish defining the 3D box. + plmesh(x', y', z', DRAW_LINEXY); + + ## Page 4: Demonstrate drawing a string on a 3D path. + pladv(0); + plvpor(-0.15, 1.15, -0.05, 1.05); + plwind(-1.2, 1.2, -0.8, 1.5); + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 40., -30.); + + plcol0(2); + plbox3("b", "", xrange, 0, \ + "b", "", yrange, 0, \ + "bcd", "", zrange, 0); + + plschr(0., 1.2); + ## domega controls the spacing between the various characters of the + ## string and also the maximum value of omega for the given number + ## of characters in pstring. + domega = 2.*pi/length(pstring); + omega = 0.; + ## 3D function is a helix of the given radius and pitch + radius = 0.5; + pitch = 1./(2.*pi); + for i=1:length(pstring) + sin_omega = sin(omega); + cos_omega = cos(omega); + xpos = xmid + radius*sin_omega; + ypos = ymid - radius*cos_omega; + zpos = zmin + pitch*omega; + ## In general, the inclination is proportional to the derivative of + ## the position wrt theta. + x_inclination = radius*cos_omega; + y_inclination = radius*sin_omega; + z_inclination = pitch; + ## The shear vector should be perpendicular to the 3D line with Z + ## component maximized, but for low pitch a good approximation is + ## a constant vector that is parallel to the Z axis. + x_shear = 0.; + y_shear = 0.; + z_shear = 1.; + p1string = pstring(i:i); + plptex3( \ + xpos, ypos, zpos, \ + x_inclination, y_inclination, z_inclination, \ + x_shear, y_shear, z_shear, \ + 0.5, p1string); + omega += domega; + endfor + ## Draw minimal 3D grid to finish defining the 3D box. + plmesh(x', y', z', DRAW_LINEXY); + + ## Page 5: Demonstrate plmtex3 axis labelling capability + pladv(0); + plvpor(-0.15, 1.15, -0.05, 1.05); + plwind(-1.2, 1.2, -0.8, 1.5); + plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.); + + plcol0(2); + plbox3("b", "", xrange, 0, \ + "b", "", yrange, 0, \ + "bcd", "", zrange, 0); + + plschr(0., 1.0); + plmtex3("xp", 3.0, 0.5, 0.5, "Arbitrarily displaced"); + plmtex3("xp", 4.5, 0.5, 0.5, "primary X-axis label"); + plmtex3("xs", -2.5, 0.5, 0.5, "Arbitrarily displaced"); + plmtex3("xs", -1.0, 0.5, 0.5, "secondary X-axis label"); + plmtex3("yp", 3.0, 0.5, 0.5, "Arbitrarily displaced"); + plmtex3("yp", 4.5, 0.5, 0.5, "primary Y-axis label"); + plmtex3("ys", -2.5, 0.5, 0.5, "Arbitrarily displaced"); + plmtex3("ys", -1.0, 0.5, 0.5, "secondary Y-axis label"); + plmtex3("zp", 4.5, 0.5, 0.5, "Arbitrarily displaced"); + plmtex3("zp", 3.0, 0.5, 0.5, "primary Z-axis label"); + plmtex3("zs", -2.5, 0.5, 0.5, "Arbitrarily displaced"); + plmtex3("zs", -1.0, 0.5, 0.5, "secondary Z-axis label"); + ## Draw minimal 3D grid to finish defining the 3D box. + plmesh(x', y', z', DRAW_LINEXY); + + ## Clean up. + + plend1(); + +endfunction + +ix28c \ No newline at end of file Modified: trunk/test/test_octave.sh.in =================================================================== --- trunk/test/test_octave.sh.in 2007-10-15 11:56:37 UTC (rev 7932) +++ trunk/test/test_octave.sh.in 2007-10-15 11:57:39 UTC (rev 7933) @@ -55,7 +55,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 ]; +for i=[1:13 15 16 18 20:26 28 ]; 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...> - 2007-10-27 06:29:51
|
Revision: 7980 http://plplot.svn.sourceforge.net/plplot/?rev=7980&view=rev Author: airwin Date: 2007-10-26 23:29:52 -0700 (Fri, 26 Oct 2007) Log Message: ----------- Make plGetDrvDir an external function so that get-drv-info.c can use it. Modified Paths: -------------- trunk/include/plplotP.h trunk/src/plcore.c Modified: trunk/include/plplotP.h =================================================================== --- trunk/include/plplotP.h 2007-10-26 12:39:20 UTC (rev 7979) +++ trunk/include/plplotP.h 2007-10-27 06:29:52 UTC (rev 7980) @@ -1010,6 +1010,13 @@ void plio_fgets(char *, int, FILE *); + +/* get drivers directory */ + +#ifdef ENABLE_DYNDRIVERS +char* +plGetDrvDir (void); +#endif #ifdef __cplusplus } Modified: trunk/src/plcore.c =================================================================== --- trunk/src/plcore.c 2007-10-26 12:39:20 UTC (rev 7979) +++ trunk/src/plcore.c 2007-10-27 06:29:52 UTC (rev 7980) @@ -2130,7 +2130,7 @@ #ifdef ENABLE_DYNDRIVERS -static char* +char* plGetDrvDir () { char* drvdir; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arj...@us...> - 2007-11-01 20:47:57
|
Revision: 8002 http://plplot.svn.sourceforge.net/plplot/?rev=8002&view=rev Author: arjenmarkus Date: 2007-11-01 13:47:59 -0700 (Thu, 01 Nov 2007) Log Message: ----------- Changes for the Cygwin platform to the generation of the package configuration files for F77 and F95 Modified Paths: -------------- trunk/bindings/f77/CMakeLists.txt trunk/bindings/f95/CMakeLists.txt trunk/cmake/modules/instdirs.cmake trunk/pkgcfg/plplot-template.pc.cmake Modified: trunk/bindings/f77/CMakeLists.txt =================================================================== --- trunk/bindings/f77/CMakeLists.txt 2007-11-01 08:11:12 UTC (rev 8001) +++ trunk/bindings/f77/CMakeLists.txt 2007-11-01 20:47:59 UTC (rev 8002) @@ -104,6 +104,15 @@ ) endif(USE_RPATH) +# Set the path and the suffix for the (shared) libraries +if(CYGWIN) + if(BUILD_SHARED_LIBS) + set(SHLIB_DIR "${BIN_DIR}") + endif(BUILD_SHARED_LIBS) + set(VERSION_SUFFIX "-${plplotf77_VERSION}") +else(CYGWIN) + set(VERSION_SUFFIX "") +endif(CYGWIN) install(TARGETS plplotf77c${LIB_TAG} ARCHIVE DESTINATION ${LIB_DIR} @@ -166,7 +175,7 @@ # Also used to determine PC_LINK_FLAGS and # PC_COMPILE_FLAGS used in *.pc Libs: and Cflags: # fields. - set(PC_DATA "f77:F77:F77 bindings, :plplotf77${LIB_TAG}") + set(PC_DATA "f77:F77:F77 bindings, :plplotf77${LIB_TAG}${VERSION_SUFFIX}") string(REGEX REPLACE "^(.*):.*:.*:.*$" "\\1" BINDING ${PC_DATA}) set(PC_FILE_SUFFIX "-${BINDING}") @@ -177,7 +186,7 @@ set(PC_LINK_FLAGS "${lib${PC_LIBRARY_NAME}_LINK_FLAGS}") set(PC_COMPILE_FLAGS "${lib${PC_LIBRARY_NAME}_COMPILE_FLAGS}") set(PC_LINK_FLAGS - "-l${PC_LIBRARY_NAME} -lplplotf77c${LIB_TAG} ${PC_LINK_FLAGS}" + "-l${PC_LIBRARY_NAME} -lplplotf77c${LIB_TAG}${VERSION_SUFFIX} ${PC_LINK_FLAGS}" ) set(PC_CONFIGURED_FILE ${CMAKE_BINARY_DIR}/pkgcfg/plplot${LIB_TAG}${PC_FILE_SUFFIX}.pc Modified: trunk/bindings/f95/CMakeLists.txt =================================================================== --- trunk/bindings/f95/CMakeLists.txt 2007-11-01 08:11:12 UTC (rev 8001) +++ trunk/bindings/f95/CMakeLists.txt 2007-11-01 20:47:59 UTC (rev 8002) @@ -119,6 +119,16 @@ ) endif(USE_RPATH) +# Set the path and the suffix for the (shared) libraries +if(CYGWIN) + if(BUILD_SHARED_LIBS) + set(SHLIB_DIR "${BIN_DIR}") + endif(BUILD_SHARED_LIBS) + set(VERSION_SUFFIX "-${plplotf95_VERSION}") +else(CYGWIN) + set(VERSION_SUFFIX "") +endif(CYGWIN) + install(TARGETS plplotf95${LIB_TAG} ARCHIVE DESTINATION ${LIB_DIR} LIBRARY DESTINATION ${LIB_DIR} @@ -155,7 +165,7 @@ # Also used to determine PC_LINK_FLAGS and # PC_COMPILE_FLAGS used in *.pc Libs: and Cflags: # fields. - set(PC_DATA "f95:F95:F95 bindings, :plplotf95${LIB_TAG}") + set(PC_DATA "f95:F95:F95 bindings, :plplotf95${LIB_TAG}${VERSION_SUFFIX}") string(REGEX REPLACE "^(.*):.*:.*:.*$" "\\1" BINDING ${PC_DATA}) set(PC_FILE_SUFFIX "-${BINDING}") @@ -166,7 +176,7 @@ set(PC_LINK_FLAGS "${lib${PC_LIBRARY_NAME}_LINK_FLAGS}") set(PC_COMPILE_FLAGS "${lib${PC_LIBRARY_NAME}_COMPILE_FLAGS}") set(PC_LINK_FLAGS - "-l${PC_LIBRARY_NAME} -lplplotf95c${LIB_TAG} ${PC_LINK_FLAGS}" + "-l${PC_LIBRARY_NAME} -lplplotf95c${LIB_TAG}${VERSION_SUFFIX} ${PC_LINK_FLAGS}" ) set(PC_COMPILE_FLAGS "-I${F95_MOD_DIR} ${PC_COMPILE_FLAGS}") set(PC_CONFIGURED_FILE Modified: trunk/cmake/modules/instdirs.cmake =================================================================== --- trunk/cmake/modules/instdirs.cmake 2007-11-01 08:11:12 UTC (rev 8001) +++ trunk/cmake/modules/instdirs.cmake 2007-11-01 20:47:59 UTC (rev 8002) @@ -30,7 +30,7 @@ # install locations). set( -CMAKE_INSTALL_EXEC_PREFIX +CMAKE_INSTALL_EXEC_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "install location for architecture-dependent files" ) @@ -86,6 +86,9 @@ # Binaries. set(BIN_DIR ${CMAKE_INSTALL_BINDIR}) +# Shared library path. +set(SHLIB_DIR ${CMAKE_INSTALL_LIBDIR}) + # Tcl files. set(TCL_DIR ${CMAKE_INSTALL_DATADIR}/${PACKAGE}${VERSION}/tcl) @@ -106,7 +109,7 @@ # Absolute path of top-level build directory. set(BUILD_DIR ${CMAKE_BINARY_DIR}) -# The following *_CMD variables are needed in +# The following *_CMD variables are needed in # examples/*/Makefile.examples.cmake set(LIB_DIR_CMD "-L${LIB_DIR}") Modified: trunk/pkgcfg/plplot-template.pc.cmake =================================================================== --- trunk/pkgcfg/plplot-template.pc.cmake 2007-11-01 08:11:12 UTC (rev 8001) +++ trunk/pkgcfg/plplot-template.pc.cmake 2007-11-01 20:47:59 UTC (rev 8002) @@ -1,4 +1,4 @@ -libdir=@LIB_DIR@ +libdir=@SHLIB_DIR@ includedir=@INCLUDE_DIR@ drvdir=@LIB_DIR@/plplot@VERSION@/drivers@LIB_TAG@ @@ -7,4 +7,4 @@ Requires: @PC_REQUIRES@ Version: @VERSION@ Libs: -L${libdir} @PC_LINK_FLAGS@ -Cflags: -I${includedir} @PC_COMPILE_FLAGS@ +Cflags: -I${includedir} @PC_COMPILE_FLAGS@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hba...@us...> - 2007-11-18 19:32:37
|
Revision: 8029 http://plplot.svn.sourceforge.net/plplot/?rev=8029&view=rev Author: hbabcock Date: 2007-11-18 11:32:41 -0800 (Sun, 18 Nov 2007) Log Message: ----------- Updated for the 5.8.0 final release. Modified Paths: -------------- trunk/README.release trunk/cmake/modules/plplot_version.cmake trunk/configure.ac Modified: trunk/README.release =================================================================== --- trunk/README.release 2007-11-16 19:44:39 UTC (rev 8028) +++ trunk/README.release 2007-11-18 19:32:41 UTC (rev 8029) @@ -28,9 +28,14 @@ no longer contain this directory. Hence you should switch to the new build system described below. -Note for gfortran users of our f95 bindings: gfortran version 4.1.2 or later +Note for gfortran users of our f95 bindings: gfortran version 4.2.1 or later is a requirement, see fortran 95 bindings remarks below. +Note for OS-X users: +The Octave bindings no longer work for Octave 2.1.73. Work is ongoing to +try and solve this problem. + + INDEX 1. Changes relative to PLplot 5.7.4 @@ -98,7 +103,7 @@ Equivalance statements in our F95 bindings were causing problems for one fortran 95 compiler so we have dropped those equivalence statements and use the transfer intrinsic instead. However, for gfortran that - intrinsic was only implemented for version 4.1.2 so that is the + intrinsic was only implemented for version 4.2.1 so that is the minimum version requirement for gfortran now if you attempt to build the f95 bindings. Note, earlier versions of gfortran build the f77 bindings with no problems. Modified: trunk/cmake/modules/plplot_version.cmake =================================================================== --- trunk/cmake/modules/plplot_version.cmake 2007-11-16 19:44:39 UTC (rev 8028) +++ trunk/cmake/modules/plplot_version.cmake 2007-11-18 19:32:41 UTC (rev 8029) @@ -1,10 +1,10 @@ # For now, must set this by hand before each release. This value affects # at least the documentation build and perhaps other parts of the release. -set(RELEASE_DATE "2007-10-21") +set(RELEASE_DATE "2007-11-18") # Version data that need review and possible modification for each release. -set(VERSION 5.8.0-RC1) +set(VERSION 5.8.0) # CPack version numbers for release tarball name. set(CPACK_PACKAGE_VERSION_MAJOR 5) Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2007-11-16 19:44:39 UTC (rev 8028) +++ trunk/configure.ac 2007-11-18 19:32:41 UTC (rev 8029) @@ -41,7 +41,7 @@ dnl bootstrap.sh script. By the way, the line below can be changed using dnl options --version and --date-version of that script. ] -AC_INIT(plplot, 5.8.0-RC1, plp...@li...) +AC_INIT(plplot, 5.8.0, plp...@li...) AC_PREREQ(2.50) AC_REVISION($Revision$) @@ -49,7 +49,7 @@ dnl is by specifying one of the option --version of --date-version to dnl bootstrap.sh -RELEASE_DATE=2007-10-21 +RELEASE_DATE=2007-11-18 AC_SUBST(RELEASE_DATE) dnl Check if we are in the right directory (this used to be done by This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2007-11-23 15:28:06
|
Revision: 8033 http://plplot.svn.sourceforge.net/plplot/?rev=8033&view=rev Author: andrewross Date: 2007-11-23 07:28:09 -0800 (Fri, 23 Nov 2007) Log Message: ----------- Large round of changes to make the use of char * / const char * more consistent in the API. Externally this affects the C and C++ language bindings. Internally there are also changes to f77, f95 and swig generated bindings. Now the only uses of char * in plplot.h are for functions which genuinely return or modify a string. This is not strictly a binary API change as the const modifier in API calls is just telling the compiler that the function won't modify the string. This will have no impact on the user code. As such I have only upped the minor version number in the library SOVERSION for plplot and plplotcxx. I have tested on Linux and programs compiled with the old version link and run fine with the new version. Please test on other platforms. This patch also includes some internal tidying up to make things consistent with the updated API. All C and C++ examples have also been modified consistent with these changes. Modified Paths: -------------- trunk/bindings/c++/plstream.cc trunk/bindings/c++/plstream.h trunk/bindings/f77/sccont.c trunk/bindings/f77/scstubs.c trunk/bindings/f95/sccont.c trunk/bindings/f95/scstubs.c trunk/bindings/swig-support/plplotcapi.i trunk/cmake/modules/plplot_version.cmake trunk/drivers/aqt.c trunk/drivers/cairo.c trunk/drivers/cgm.c trunk/drivers/dg300.c trunk/drivers/gcw.c trunk/drivers/gd.c trunk/drivers/gnome.c trunk/drivers/hpgl.c trunk/drivers/impress.c trunk/drivers/linuxvga.c trunk/drivers/ljii.c trunk/drivers/ljiip.c trunk/drivers/mem.c trunk/drivers/ntk.c trunk/drivers/null.c trunk/drivers/pbm.c trunk/drivers/pdf.c trunk/drivers/plmeta.c trunk/drivers/ps.c trunk/drivers/pstex.c trunk/drivers/psttf.cc trunk/drivers/svg.c trunk/drivers/tek.c trunk/drivers/tk.c trunk/drivers/tkwin.c trunk/drivers/wingcc.c trunk/drivers/wxwidgets.cpp trunk/drivers/xfig.c trunk/drivers/xwin.c trunk/drivers/xwinttf.c trunk/examples/c/x01c.c trunk/examples/c/x02c.c trunk/examples/c/x03c.c trunk/examples/c/x04c.c trunk/examples/c/x05c.c trunk/examples/c/x06c.c trunk/examples/c/x07c.c trunk/examples/c/x08c.c trunk/examples/c/x09c.c trunk/examples/c/x10c.c trunk/examples/c/x11c.c trunk/examples/c/x12c.c trunk/examples/c/x13c.c trunk/examples/c/x14c.c trunk/examples/c/x15c.c trunk/examples/c/x16c.c trunk/examples/c/x17c.c trunk/examples/c/x18c.c trunk/examples/c/x19c.c trunk/examples/c/x20c.c trunk/examples/c/x21c.c trunk/examples/c/x22c.c trunk/examples/c/x23c.c trunk/examples/c/x24c.c trunk/examples/c/x25c.c trunk/examples/c/x26c.c trunk/examples/c/x27c.c trunk/examples/c/x28c.c trunk/examples/c++/x01.cc trunk/examples/c++/x01cc.cc trunk/examples/c++/x02.cc trunk/examples/c++/x03.cc trunk/examples/c++/x04.cc trunk/examples/c++/x05.cc trunk/examples/c++/x06.cc trunk/examples/c++/x07.cc trunk/examples/c++/x08.cc trunk/examples/c++/x09.cc trunk/examples/c++/x10.cc trunk/examples/c++/x11.cc trunk/examples/c++/x12.cc trunk/examples/c++/x13.cc trunk/examples/c++/x14.cc trunk/examples/c++/x15.cc trunk/examples/c++/x16.cc trunk/examples/c++/x17.cc trunk/examples/c++/x18.cc trunk/examples/c++/x19.cc trunk/examples/c++/x20.cc trunk/examples/c++/x21.cc trunk/examples/c++/x22.cc trunk/examples/c++/x23.cc trunk/examples/c++/x24.cc trunk/examples/c++/x25.cc trunk/examples/c++/x26.cc trunk/examples/c++/x28.cc trunk/include/pdf.h trunk/include/plplot.h trunk/include/plplotP.h trunk/include/plstrm.h trunk/src/pdfutils.c trunk/src/plargs.c trunk/src/plctrl.c trunk/src/pldeprecated.c trunk/src/plmap.c trunk/src/plstripc.c Modified: trunk/bindings/c++/plstream.cc =================================================================== --- trunk/bindings/c++/plstream.cc 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/bindings/c++/plstream.cc 2007-11-23 15:28:09 UTC (rev 8033) @@ -934,7 +934,7 @@ /* plot continental outline in world coordinates */ -void plstream::map( void (*mapform)(PLINT, PLFLT *, PLFLT *), char *type, +void plstream::map( void (*mapform)(PLINT, PLFLT *, PLFLT *), const char *type, PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat ) { set_stream(); @@ -1075,7 +1075,7 @@ /* Process options list using current options info. */ -int plstream::parseopts( int *p_argc, char **argv, PLINT mode ) +int plstream::parseopts( int *p_argc, const char **argv, PLINT mode ) { set_stream(); @@ -1785,13 +1785,13 @@ /* Create 1d stripchart */ -void plstream::stripc(PLINT *id, char *xspec, char *yspec, +void plstream::stripc(PLINT *id, const char *xspec, const char *yspec, PLFLT xmin, PLFLT xmax, PLFLT xjump, PLFLT ymin, PLFLT ymax, PLFLT xlpos, PLFLT ylpos, bool y_ascl, bool acc, PLINT colbox, PLINT collab, - PLINT colline[], PLINT styline[], char *legline[], - char *labx, char *laby, char *labtop) + PLINT colline[], PLINT styline[], const char *legline[], + const char *labx, const char *laby, const char *labtop) { set_stream(); @@ -1802,13 +1802,13 @@ // Deprecated version using PLINT not bool -void plstream::stripc(PLINT *id, char *xspec, char *yspec, +void plstream::stripc(PLINT *id, const char *xspec, const char *yspec, PLFLT xmin, PLFLT xmax, PLFLT xjump, PLFLT ymin, PLFLT ymax, PLFLT xlpos, PLFLT ylpos, PLINT y_ascl, PLINT acc, PLINT colbox, PLINT collab, - PLINT colline[], PLINT styline[], char *legline[], - char *labx, char *laby, char *labtop) + PLINT colline[], PLINT styline[], const char *legline[], + const char *labx, const char *laby, const char *labtop) { set_stream(); @@ -2046,7 +2046,7 @@ /* Sets an optional user exit handler. */ -void plstream::sexit( int (*handler) (char *) ) +void plstream::sexit( int (*handler) (const char *) ) { set_stream(); @@ -2172,7 +2172,7 @@ /* Merge user option table into internal info structure. */ -int plstream::MergeOpts( PLOptionTable *options, char *name, char **notes ) +int plstream::MergeOpts( PLOptionTable *options, const char *name, const char **notes ) { set_stream(); @@ -2190,7 +2190,7 @@ /* Process input strings, treating them as an option and argument pair. */ -int plstream::SetOpt( char *opt, char *optarg ) +int plstream::SetOpt( const char *opt, const char *optarg ) { set_stream(); @@ -2199,7 +2199,7 @@ /* Process options list using current options info. */ -int plstream::ParseOpts( int *p_argc, char **argv, PLINT mode ) +int plstream::ParseOpts( int *p_argc, const char **argv, PLINT mode ) { set_stream(); Modified: trunk/bindings/c++/plstream.h =================================================================== --- trunk/bindings/c++/plstream.h 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/bindings/c++/plstream.h 2007-11-23 15:28:09 UTC (rev 8033) @@ -399,7 +399,7 @@ /* plot continental outline in world coordinates */ - void map( void (*mapform)(PLINT, PLFLT *, PLFLT *), char *type, + void map( void (*mapform)(PLINT, PLFLT *, PLFLT *), const char *type, PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat ); /* Plot the latitudes and longitudes on the background. */ @@ -469,7 +469,7 @@ /* Process options list using current options info. */ - int parseopts( int *p_argc, char **argv, PLINT mode ); + int parseopts( int *p_argc, const char **argv, PLINT mode ); /* Set fill pattern directly. */ @@ -718,13 +718,13 @@ /* Create 1d stripchart */ - void stripc(PLINT *id, char *xspec, char *yspec, + void stripc(PLINT *id, const char *xspec, const char *yspec, PLFLT xmin, PLFLT xmax, PLFLT xjump, PLFLT ymin, PLFLT ymax, PLFLT xlpos, PLFLT ylpos, bool y_ascl, bool acc, PLINT colbox, PLINT collab, - PLINT colline[], PLINT styline[], char *legline[], - char *labx, char *laby, char *labtop); + PLINT colline[], PLINT styline[], const char *legline[], + const char *labx, const char *laby, const char *labtop); /* Add a point to a stripchart. */ @@ -833,7 +833,7 @@ /* Sets an optional user exit handler. */ - void sexit( int (*handler) (char *) ); + void sexit( int (*handler) (const char *) ); /* Transformation routines */ @@ -899,7 +899,7 @@ /* Merge user option table into internal info structure. */ - int MergeOpts( PLOptionTable *options, char *name, char **notes ); + int MergeOpts( PLOptionTable *options, const char *name, const char **notes ); /* Set the strings used in usage and syntax messages. */ @@ -907,11 +907,11 @@ /* Process input strings, treating them as an option and argument pair. */ - int SetOpt( char *opt, char *optarg ); + int SetOpt( const char *opt, const char *optarg ); /* Process options list using current options info. */ - int ParseOpts( int *p_argc, char **argv, PLINT mode ); + int ParseOpts( int *p_argc, const char **argv, PLINT mode ); /* Print usage & syntax message. */ @@ -1044,13 +1044,13 @@ void spause( PLINT pause ); - void stripc(PLINT *id, char *xspec, char *yspec, + void stripc(PLINT *id, const char *xspec, const char *yspec, PLFLT xmin, PLFLT xmax, PLFLT xjump, PLFLT ymin, PLFLT ymax, PLFLT xlpos, PLFLT ylpos, PLINT y_ascl, PLINT acc, PLINT colbox, PLINT collab, - PLINT colline[], PLINT styline[], char *legline[], - char *labx, char *laby, char *labtop); + PLINT colline[], PLINT styline[], const char *legline[], + const char *labx, const char *laby, const char *labtop); void xormod(PLINT mode, PLINT *status); }; Modified: trunk/bindings/f77/sccont.c =================================================================== --- trunk/bindings/f77/sccont.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/bindings/f77/sccont.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -438,7 +438,7 @@ \*----------------------------------------------------------------------*/ void -PLSHADE07(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADE07(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *shade_min, PLFLT *shade_max, PLINT *sh_cmap, PLFLT *sh_color, PLINT *sh_width, @@ -472,7 +472,7 @@ /* 1-d transformation */ void -PLSHADE17(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADE17(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *shade_min, PLFLT *shade_max, PLINT *sh_cmap, PLFLT *sh_color, PLINT *sh_width, @@ -511,7 +511,7 @@ /* 2-d transformation */ void -PLSHADE27(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADE27(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *shade_min, PLFLT *shade_max, PLINT *sh_cmap, PLFLT *sh_color, PLINT *sh_width, @@ -553,7 +553,7 @@ } void -PLSHADE7(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADE7(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *shade_min, PLFLT *shade_max, PLINT *sh_cmap, PLFLT *sh_color, PLINT *sh_width, @@ -594,7 +594,7 @@ \*----------------------------------------------------------------------*/ void -PLSHADES07(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADES07(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *clevel, PLINT *nlevel, PLINT *fill_width, PLINT *cont_color, PLINT *cont_width, PLINT *lx) @@ -622,7 +622,7 @@ } void -PLSHADES17(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADES17(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *clevel, PLINT *nlevel, PLINT *fill_width, PLINT *cont_color, PLINT *cont_width, @@ -657,7 +657,7 @@ } void -PLSHADES27(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADES27(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *clevel, PLINT *nlevel, PLINT *fill_width, PLINT *cont_color, PLINT *cont_width, @@ -695,7 +695,7 @@ } void -PLSHADES7(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADES7(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *clevel, PLINT *nlevel, PLINT *fill_width, PLINT *cont_color, PLINT *cont_width, PLFLT *ftr, PLINT *lx) Modified: trunk/bindings/f77/scstubs.c =================================================================== --- trunk/bindings/f77/scstubs.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/bindings/f77/scstubs.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -63,8 +63,8 @@ } void -PLAXES7(PLFLT *x0, PLFLT *y0, char *xopt, PLFLT *xtick, - PLINT *nxsub, char *yopt, PLFLT *ytick, PLINT *nysub) +PLAXES7(PLFLT *x0, PLFLT *y0, const char *xopt, PLFLT *xtick, + PLINT *nxsub, const char *yopt, PLFLT *ytick, PLINT *nysub) { c_plaxes(*x0, *y0, xopt, *xtick, *nxsub, yopt, *ytick, *nysub); } @@ -82,16 +82,16 @@ } void -PLBOX7(char *xopt, PLFLT *xtick, PLINT *nxsub, - char *yopt, PLFLT *ytick, PLINT *nysub) +PLBOX7(const char *xopt, PLFLT *xtick, PLINT *nxsub, + const char *yopt, PLFLT *ytick, PLINT *nysub) { c_plbox(xopt, *xtick, *nxsub, yopt, *ytick, *nysub); } void -PLBOX37(char *xopt, char *xlabel, PLFLT *xtick, PLINT *nxsub, - char *yopt, char *ylabel, PLFLT *ytick, PLINT *nysub, - char *zopt, char *zlabel, PLFLT *ztick, PLINT *nzsub) +PLBOX37(const char *xopt, const char *xlabel, PLFLT *xtick, PLINT *nxsub, + const char *yopt, const char *ylabel, PLFLT *ytick, PLINT *nysub, + const char *zopt, const char *zlabel, PLFLT *ztick, PLINT *nzsub) { c_plbox3(xopt, xlabel, *xtick, *nxsub, yopt, ylabel, *ytick, *nysub, @@ -384,7 +384,7 @@ } void -PLLAB7(char *xlab, char *ylab, char *title) +PLLAB7(const char *xlab, const char *ylab, const char *title) { c_pllab(xlab, ylab, title); } @@ -420,7 +420,7 @@ } void -PLMAPC( char *type, +PLMAPC( const char *type, PLFLT *minlong, PLFLT *maxlong, PLFLT *minlat, PLFLT *maxlat ) { @@ -442,24 +442,24 @@ } void -PLMTEX7(char *side, PLFLT *disp, PLFLT *pos, PLFLT *just, char *text) +PLMTEX7(const char *side, PLFLT *disp, PLFLT *pos, PLFLT *just, const char *text) { c_plmtex(side, *disp, *pos, *just, text); } void -PLMTEX37(char *side, PLFLT *disp, PLFLT *pos, PLFLT *just, char *text) +PLMTEX37(const char *side, PLFLT *disp, PLFLT *pos, PLFLT *just, const char *text) { c_plmtex3(side, *disp, *pos, *just, text); } void -PLPARSEOPTS7(int *numargs, char *iargs, PLINT *mode, PLINT *maxindex) +PLPARSEOPTS7(int *numargs, const char *iargs, PLINT *mode, PLINT *maxindex) { /* Same as in plparseopts fortran subroutine that calls this one. */ #define MAXARGS 20 if(*numargs <= MAXARGS) { - char *argv[MAXARGS]; + const char *argv[MAXARGS]; int i; for(i = 0; i < *numargs; i++) { argv[i] = iargs + (i* *maxindex); @@ -507,7 +507,7 @@ } void -PLPTEX7(PLFLT *x, PLFLT *y, PLFLT *dx, PLFLT *dy, PLFLT *just, char *text) +PLPTEX7(PLFLT *x, PLFLT *y, PLFLT *dx, PLFLT *dy, PLFLT *just, const char *text) { c_plptex(*x, *y, *dx, *dy, *just, text); } @@ -517,7 +517,7 @@ PLFLT *x, PLFLT *y, PLFLT *z, PLFLT *dx, PLFLT *dy, PLFLT *dz, PLFLT *sx, PLFLT *sy, PLFLT *sz, - PLFLT *just, char *text) + PLFLT *just, const char *text) { c_plptex3(*x, *y, *z, *dx, *dy, *dz, *sx, *sy, *sz, *just, text); } @@ -608,7 +608,7 @@ } void -PLSDEV7(char *dev) +PLSDEV7(const char *dev) { c_plsdev(dev); } @@ -658,7 +658,7 @@ } void -PLSETOPT7(char *opt, char *optarg) +PLSETOPT7(const char *opt, const char *optarg) { c_plsetopt(opt, optarg); } @@ -670,7 +670,7 @@ } void -PLSFNAM7(char *fnam) +PLSFNAM7(const char *fnam) { c_plsfnam(fnam); } @@ -737,7 +737,7 @@ } void -PLSTART7(char *devname, PLINT *nx, PLINT *ny) +PLSTART7(const char *devname, PLINT *nx, PLINT *ny) { c_plstart(devname, *nx, *ny); } @@ -749,16 +749,17 @@ } void -PLSTRIPC7(PLINT *id, char *xspec, char *yspec, +PLSTRIPC7(PLINT *id, const char *xspec, const char *yspec, PLFLT *xmin, PLFLT *xmax, PLFLT *xjump, PLFLT *ymin, PLFLT *ymax, PLFLT *xlpos, PLFLT *ylpos, PLBOOL *y_ascl, PLBOOL *acc, PLINT *colbox, PLINT *collab, PLINT *colline, PLINT *styline, - char *legline0, char *legline1, char *legline2, char *legline3, - char *labx, char *laby, char *labtop) + const char *legline0, const char *legline1, + const char *legline2, const char *legline3, + const char *labx, const char *laby, const char *labtop) { - char* legline[4]; + const char* legline[4]; legline[0] = legline0; legline[1] = legline1; legline[2] = legline2; Modified: trunk/bindings/f95/sccont.c =================================================================== --- trunk/bindings/f95/sccont.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/bindings/f95/sccont.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -438,7 +438,7 @@ \*----------------------------------------------------------------------*/ void -PLSHADE07(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADE07(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *shade_min, PLFLT *shade_max, PLINT *sh_cmap, PLFLT *sh_color, PLINT *sh_width, @@ -472,7 +472,7 @@ /* 1-d transformation */ void -PLSHADE17(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADE17(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *shade_min, PLFLT *shade_max, PLINT *sh_cmap, PLFLT *sh_color, PLINT *sh_width, @@ -511,7 +511,7 @@ /* 2-d transformation */ void -PLSHADE27(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADE27(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *shade_min, PLFLT *shade_max, PLINT *sh_cmap, PLFLT *sh_color, PLINT *sh_width, @@ -553,7 +553,7 @@ } void -PLSHADE7(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADE7(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *shade_min, PLFLT *shade_max, PLINT *sh_cmap, PLFLT *sh_color, PLINT *sh_width, @@ -594,7 +594,7 @@ \*----------------------------------------------------------------------*/ void -PLSHADES07(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADES07(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *clevel, PLINT *nlevel, PLINT *fill_width, PLINT *cont_color, PLINT *cont_width, PLINT *lx) @@ -622,7 +622,7 @@ } void -PLSHADES17(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADES17(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *clevel, PLINT *nlevel, PLINT *fill_width, PLINT *cont_color, PLINT *cont_width, @@ -657,7 +657,7 @@ } void -PLSHADES27(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADES27(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *clevel, PLINT *nlevel, PLINT *fill_width, PLINT *cont_color, PLINT *cont_width, @@ -695,7 +695,7 @@ } void -PLSHADES7(PLFLT *z, PLINT *nx, PLINT *ny, char *defined, +PLSHADES7(PLFLT *z, PLINT *nx, PLINT *ny, const char *defined, PLFLT *xmin, PLFLT *xmax, PLFLT *ymin, PLFLT *ymax, PLFLT *clevel, PLINT *nlevel, PLINT *fill_width, PLINT *cont_color, PLINT *cont_width, PLFLT *ftr, PLINT *lx) Modified: trunk/bindings/f95/scstubs.c =================================================================== --- trunk/bindings/f95/scstubs.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/bindings/f95/scstubs.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -63,8 +63,8 @@ } void -PLAXES7(PLFLT *x0, PLFLT *y0, char *xopt, PLFLT *xtick, - PLINT *nxsub, char *yopt, PLFLT *ytick, PLINT *nysub) +PLAXES7(PLFLT *x0, PLFLT *y0, const char *xopt, PLFLT *xtick, + PLINT *nxsub, const char *yopt, PLFLT *ytick, PLINT *nysub) { c_plaxes(*x0, *y0, xopt, *xtick, *nxsub, yopt, *ytick, *nysub); } @@ -82,16 +82,16 @@ } void -PLBOX7(char *xopt, PLFLT *xtick, PLINT *nxsub, - char *yopt, PLFLT *ytick, PLINT *nysub) +PLBOX7(const char *xopt, PLFLT *xtick, PLINT *nxsub, + const char *yopt, PLFLT *ytick, PLINT *nysub) { c_plbox(xopt, *xtick, *nxsub, yopt, *ytick, *nysub); } void -PLBOX37(char *xopt, char *xlabel, PLFLT *xtick, PLINT *nxsub, - char *yopt, char *ylabel, PLFLT *ytick, PLINT *nysub, - char *zopt, char *zlabel, PLFLT *ztick, PLINT *nzsub) +PLBOX37(const char *xopt, const char *xlabel, PLFLT *xtick, PLINT *nxsub, + const char *yopt, const char *ylabel, PLFLT *ytick, PLINT *nysub, + const char *zopt, const char *zlabel, PLFLT *ztick, PLINT *nzsub) { c_plbox3(xopt, xlabel, *xtick, *nxsub, yopt, ylabel, *ytick, *nysub, @@ -386,7 +386,7 @@ } void -PLLAB7(char *xlab, char *ylab, char *title) +PLLAB7(const char *xlab, const char *ylab, const char *title) { c_pllab(xlab, ylab, title); } @@ -422,7 +422,7 @@ } void -PLMAPC( char *type, +PLMAPC( const char *type, PLFLT *minlong, PLFLT *maxlong, PLFLT *minlat, PLFLT *maxlat ) { @@ -444,24 +444,24 @@ } void -PLMTEX7(char *side, PLFLT *disp, PLFLT *pos, PLFLT *just, char *text) +PLMTEX7(const char *side, PLFLT *disp, PLFLT *pos, PLFLT *just, const char *text) { c_plmtex(side, *disp, *pos, *just, text); } void -PLMTEX37(char *side, PLFLT *disp, PLFLT *pos, PLFLT *just, char *text) +PLMTEX37(const char *side, PLFLT *disp, PLFLT *pos, PLFLT *just, const char *text) { c_plmtex3(side, *disp, *pos, *just, text); } void -PLPARSEOPTS7(int *numargs, char *iargs, PLINT *mode, PLINT *maxindex) +PLPARSEOPTS7(int *numargs, const char *iargs, PLINT *mode, PLINT *maxindex) { /* Same as in plparseopts fortran subroutine that calls this one. */ #define MAXARGS 20 if(*numargs <= MAXARGS) { - char *argv[MAXARGS]; + const char *argv[MAXARGS]; int i; for(i = 0; i < *numargs; i++) { argv[i] = iargs + (i* *maxindex); @@ -509,7 +509,7 @@ } void -PLPTEX7(PLFLT *x, PLFLT *y, PLFLT *dx, PLFLT *dy, PLFLT *just, char *text) +PLPTEX7(PLFLT *x, PLFLT *y, PLFLT *dx, PLFLT *dy, PLFLT *just, const char *text) { c_plptex(*x, *y, *dx, *dy, *just, text); } @@ -519,7 +519,7 @@ PLFLT *x, PLFLT *y, PLFLT *z, PLFLT *dx, PLFLT *dy, PLFLT *dz, PLFLT *sx, PLFLT *sy, PLFLT *sz, - PLFLT *just, char *text) + PLFLT *just, const char *text) { c_plptex3(*x, *y, *z, *dx, *dy, *dz, *sx, *sy, *sz, *just, text); } @@ -617,7 +617,7 @@ } void -PLSDEV7(char *dev) +PLSDEV7(const char *dev) { c_plsdev(dev); } @@ -667,7 +667,7 @@ } void -PLSETOPT7(char *opt, char *optarg) +PLSETOPT7(const char *opt, const char *optarg) { c_plsetopt(opt, optarg); } @@ -679,7 +679,7 @@ } void -PLSFNAM7(char *fnam) +PLSFNAM7(const char *fnam) { c_plsfnam(fnam); } @@ -746,7 +746,7 @@ } void -PLSTART7(char *devname, PLINT *nx, PLINT *ny) +PLSTART7(const char *devname, PLINT *nx, PLINT *ny) { c_plstart(devname, *nx, *ny); } @@ -758,16 +758,17 @@ } void -PLSTRIPC(PLINT *id, char *xspec, char *yspec, +PLSTRIPC(PLINT *id, const char *xspec, const char *yspec, PLFLT *xmin, PLFLT *xmax, PLFLT *xjump, PLFLT *ymin, PLFLT *ymax, PLFLT *xlpos, PLFLT *ylpos, PLBOOL *y_ascl, PLBOOL *acc, PLINT *colbox, PLINT *collab, PLINT *colline, PLINT *styline, - char *legline0, char *legline1, char *legline2, char *legline3, - char *labx, char *laby, char *labtop) + const char *legline0, const char *legline1, + const char *legline2, const char *legline3, + const char *labx, const char *laby, const char *labtop) { - char* legline[4]; + const char* legline[4]; legline[0] = legline0; legline[1] = legline1; legline[2] = legline2; Modified: trunk/bindings/swig-support/plplotcapi.i =================================================================== --- trunk/bindings/swig-support/plplotcapi.i 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/bindings/swig-support/plplotcapi.i 2007-11-23 15:28:09 UTC (rev 8033) @@ -509,7 +509,7 @@ %feature("autodoc", "Process options list using current options info.") plparseopts; PLINT -plparseopts(int *p_argc, char **argv, PLINT mode); +plparseopts(int *p_argc, const char **argv, PLINT mode); %feature("autodoc", "Set fill pattern directly.") plpat; void @@ -626,7 +626,7 @@ %feature("autodoc", "Process input strings, treating them as an option and argument pair. The first is for the external API, the second the work routine declared here for backward compatibilty.") plsetopt; PLINT -plsetopt(char *opt, char *optarg); +plsetopt(const char *opt, const char *optarg); %feature("autodoc", "Set family file parameters.") plsfam; void @@ -709,13 +709,13 @@ %feature("autodoc", "Create 1d stripchart.") plstripc; void -plstripc(PLINT *OUTPUT, char *xspec, char *yspec, +plstripc(PLINT *OUTPUT, const char *xspec, const char *yspec, PLFLT xmin, PLFLT xmax, PLFLT xjump, PLFLT ymin, PLFLT ymax, PLFLT xlpos, PLFLT ylpos, PLBOOL y_ascl, PLBOOL acc, PLINT colbox, PLINT collab, - PLINT *Array, PLINT *ArrayCk, char *legline[4], - char *labx, char *laby, char *labtop); + PLINT *Array, PLINT *ArrayCk, const char *legline[4], + const char *labx, const char *laby, const char *labtop); %feature("autodoc", "Deletes and releases memory used by a stripchart.") plstripd; void @@ -842,7 +842,7 @@ /* plot continental outline in world coordinates */ void -plmap( void (*mapform)(PLINT, PLFLT *, PLFLT *), char *type, +plmap( void (*mapform)(PLINT, PLFLT *, PLFLT *), const char *type, PLFLT minlong, PLFLT maxlong, PLFLT minlat, PLFLT maxlat ); /* Plot the latitudes and longitudes on the background. */ @@ -921,7 +921,7 @@ /* Sets an optional user exit handler. */ #if 0 void -plsexit(PLINT (*handler) (char *)); +plsexit(PLINT (*handler) (const char *)); /* Transformation routines */ #endif @@ -980,17 +980,17 @@ /* Merge user option table into internal info structure. */ #if 0 PLINT -plMergeOpts(PLOptionTable *options, char *name, char **notes); +plMergeOpts(PLOptionTable *options, const char *name, const char **notes); #endif /* Set the strings used in usage and syntax messages. */ void -plSetUsage(char *program_string, char *usage_string); +plSetUsage(const char *program_string, const char *usage_string); #if 0 /* This is wrapped by common API plsetopt so ignore. */ PLINT -plSetOpt(char *opt, char *optarg); +plSetOpt(const char *opt, const char *optarg); #endif /* Print usage & syntax message. */ @@ -1028,23 +1028,23 @@ /* Looks for the specified executable file according to usual search path. */ char * -plFindCommand(char *fn); +plFindCommand(const char *fn); /* Gets search name for file by concatenating the dir, subdir, and file */ /* name, allocating memory as needed. */ void -plGetName(char *dir, char *subdir, char *filename, char **filespec); +plGetName(const char *dir, const char *subdir, const char *filename, char **filespec); /* Prompts human to input an integer in response to given message. */ PLINT -plGetInt(char *s); +plGetInt(const char *s); /* Prompts human to input a float in response to given message. */ PLFLT -plGetFlt(char *s); +plGetFlt(const char *s); /* Nice way to allocate space for a vectored 2d grid */ Modified: trunk/cmake/modules/plplot_version.cmake =================================================================== --- trunk/cmake/modules/plplot_version.cmake 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/cmake/modules/plplot_version.cmake 2007-11-23 15:28:09 UTC (rev 8033) @@ -34,10 +34,10 @@ set(csironn_VERSION ${csironn_SOVERSION}.0.1) set(plplot_SOVERSION 9) -set(plplot_VERSION ${plplot_SOVERSION}.3.0) +set(plplot_VERSION ${plplot_SOVERSION}.4.0) set(plplotcxx_SOVERSION 9) -set(plplotcxx_VERSION ${plplotcxx_SOVERSION}.2.1) +set(plplotcxx_VERSION ${plplotcxx_SOVERSION}.3.0) set(plplotf77_SOVERSION 9) set(plplotf77_VERSION ${plplotf77_SOVERSION}.1.1) Modified: trunk/drivers/aqt.c =================================================================== --- trunk/drivers/aqt.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/aqt.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -51,7 +51,7 @@ static NSAutoreleasePool *arpool; // Objective-C autorelease pool static id adapter; // Adapter object -char* plD_DEVICE_INFO_aqt = "aqt:AquaTerm (Mac OS X):1:aqt:50:aqt"; +const char* plD_DEVICE_INFO_aqt = "aqt:AquaTerm (Mac OS X):1:aqt:50:aqt"; static int currentPlot = 0; static int maxWindows = 30; Modified: trunk/drivers/cairo.c =================================================================== --- trunk/drivers/cairo.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/cairo.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -95,7 +95,7 @@ #endif } PLCairo; -char* plD_DEVICE_INFO_cairo = +const char* plD_DEVICE_INFO_cairo = #if defined(PLD_xcairo) "xcairo:Cairo X Windows Driver:1:cairo:59:xcairo\n" #endif Modified: trunk/drivers/cgm.c =================================================================== --- trunk/drivers/cgm.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/cgm.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -81,7 +81,7 @@ #include <cd.h> /* Device info */ -char* plD_DEVICE_INFO_cgm = "cgm:CGM file:0:cgm:44:cgm"; +const char* plD_DEVICE_INFO_cgm = "cgm:CGM file:0:cgm:44:cgm"; /* Prototypes for functions in this file. */ Modified: trunk/drivers/dg300.c =================================================================== --- trunk/drivers/dg300.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/dg300.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -10,7 +10,7 @@ #include "drivers.h" /* Device info */ -char* plD_DEVICE_INFO_dg300 = "dg300:DG300 Terminal:0:dg300:25:dg300"; +const char* plD_DEVICE_INFO_dg300 = "dg300:DG300 Terminal:0:dg300:25:dg300"; void plD_dispatch_init_dg ( PLDispatchTable *pdt ); Modified: trunk/drivers/gcw.c =================================================================== --- trunk/drivers/gcw.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/gcw.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -90,7 +90,7 @@ /* Device info */ -char* plD_DEVICE_INFO_gcw = "gcw:Gnome Canvas Widget:1:gcw:10:gcw"; +const char* plD_DEVICE_INFO_gcw = "gcw:Gnome Canvas Widget:1:gcw:10:gcw"; /* Global driver options */ Modified: trunk/drivers/gd.c =================================================================== --- trunk/drivers/gd.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/gd.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -132,7 +132,7 @@ * and finally one of each. */ -char* plD_DEVICE_INFO_gd = +const char* plD_DEVICE_INFO_gd = #if defined(PLD_png) "png:PNG file:0:gd:39:png\n" #endif Modified: trunk/drivers/gnome.c =================================================================== --- trunk/drivers/gnome.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/gnome.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -39,7 +39,7 @@ #include <unistd.h> /* Device info */ -char* plD_DEVICE_INFO_gnome = "gnome:Gnome Canvas:1:gnome:6:gnome"; +const char* plD_DEVICE_INFO_gnome = "gnome:Gnome Canvas:1:gnome:6:gnome"; /*#undef DEBUG*/ #define DEBUG Modified: trunk/drivers/hpgl.c =================================================================== --- trunk/drivers/hpgl.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/hpgl.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -37,7 +37,7 @@ #include "drivers.h" /* Device info */ -char* plD_DEVICE_INFO_hpgl = +const char* plD_DEVICE_INFO_hpgl = #if defined(PLD_hp7470) "hp7470:HP 7470 Plotter File (HPGL Cartridge, Small Plotter):0:hpgl:34:hp7470\n" #endif Modified: trunk/drivers/impress.c =================================================================== --- trunk/drivers/impress.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/impress.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -10,7 +10,7 @@ #include "drivers.h" /* Device info */ -char* plD_DEVICE_INFO_impress = "imp:Impress File:0:impress:37:imp"; +const char* plD_DEVICE_INFO_impress = "imp:Impress File:0:impress:37:imp"; /* Function prototypes */ Modified: trunk/drivers/linuxvga.c =================================================================== --- trunk/drivers/linuxvga.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/linuxvga.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -18,7 +18,7 @@ #include <vga.h> /* Device info */ -char* plD_DEVICE_INFO_linuxvga = "linuxvga:Linux VGA driver:0:linuxvga:8:vga"; +const char* plD_DEVICE_INFO_linuxvga = "linuxvga:Linux VGA driver:0:linuxvga:8:vga"; /* Function prototypes */ Modified: trunk/drivers/ljii.c =================================================================== --- trunk/drivers/ljii.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/ljii.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -22,7 +22,7 @@ #endif /* Device info */ -char* plD_DEVICE_INFO_ljii = +const char* plD_DEVICE_INFO_ljii = "ljii:LaserJet II Bitmap File (150 dpi):0:ljii:33:ljii"; /* Function prototypes */ Modified: trunk/drivers/ljiip.c =================================================================== --- trunk/drivers/ljiip.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/ljiip.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -27,7 +27,7 @@ #endif /* Device info */ -char* plD_DEVICE_INFO_ljiip = +const char* plD_DEVICE_INFO_ljiip = "ljiip:LaserJet IIp/deskjet compressed graphics:0:ljiip:32:ljiip"; /* Function prototypes */ Modified: trunk/drivers/mem.c =================================================================== --- trunk/drivers/mem.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/mem.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -21,7 +21,7 @@ #include "drivers.h" /* Device info */ -char* plD_DEVICE_INFO_mem = "mem:User-supplied memory device:-1:mem:46:mem"; +const char* plD_DEVICE_INFO_mem = "mem:User-supplied memory device:-1:mem:46:mem"; void plD_dispatch_init_mem ( PLDispatchTable *pdt ); Modified: trunk/drivers/ntk.c =================================================================== --- trunk/drivers/ntk.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/ntk.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -34,7 +34,7 @@ #include <tk.h> /* Device info */ -char* plD_DEVICE_INFO_ntk = "ntk:New tk driver:1:ntk:43:ntk"; +const char* plD_DEVICE_INFO_ntk = "ntk:New tk driver:1:ntk:43:ntk"; void plD_dispatch_init_ntk ( PLDispatchTable *pdt ); Modified: trunk/drivers/null.c =================================================================== --- trunk/drivers/null.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/null.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -10,7 +10,7 @@ #include "drivers.h" /* Device info */ -char* plD_DEVICE_INFO_null = "null:Null device:-1:null:42:null"; +const char* plD_DEVICE_INFO_null = "null:Null device:-1:null:42:null"; void plD_dispatch_init_null ( PLDispatchTable *pdt ); Modified: trunk/drivers/pbm.c =================================================================== --- trunk/drivers/pbm.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/pbm.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -14,7 +14,7 @@ #include "drivers.h" /* Device info */ -char* plD_DEVICE_INFO_pbm = "pbm:PDB (PPM) Driver:0:pbm:38:pbm"; +const char* plD_DEVICE_INFO_pbm = "pbm:PDB (PPM) Driver:0:pbm:38:pbm"; void plD_dispatch_init_pbm ( PLDispatchTable *pdt ); Modified: trunk/drivers/pdf.c =================================================================== --- trunk/drivers/pdf.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/pdf.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -55,7 +55,7 @@ } pdfdev; /* local variables */ -char* plD_DEVICE_INFO_pdf = "pdf:Portable Document Format PDF:1:pdf:58:pdf"; +const char* plD_DEVICE_INFO_pdf = "pdf:Portable Document Format PDF:1:pdf:58:pdf"; static jmp_buf env; //----------------------------------------------- Modified: trunk/drivers/plmeta.c =================================================================== --- trunk/drivers/plmeta.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/plmeta.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -37,7 +37,7 @@ #include <string.h> /* Device info */ -char* plD_DEVICE_INFO_plmeta = "plmeta:PLplot Native Meta-File:0:plmeta:26:plm"; +const char* plD_DEVICE_INFO_plmeta = "plmeta:PLplot Native Meta-File:0:plmeta:26:plm"; void plD_dispatch_init_plm ( PLDispatchTable *pdt ); Modified: trunk/drivers/ps.c =================================================================== --- trunk/drivers/ps.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/ps.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -49,7 +49,7 @@ /* Device info */ -char* plD_DEVICE_INFO_ps = +const char* plD_DEVICE_INFO_ps = "ps:PostScript File (monochrome):0:ps:29:psm\n" "psc:PostScript File (color):0:ps:30:psc"; Modified: trunk/drivers/pstex.c =================================================================== --- trunk/drivers/pstex.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/pstex.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -12,7 +12,7 @@ #include "ps.h" /* Device info */ -char* plD_DEVICE_INFO_pstex = +const char* plD_DEVICE_INFO_pstex = "pstex:Combined Postscript/LaTeX files:0:pstex:41:pstex"; /*--------------------------------------------------------------------------*\ Modified: trunk/drivers/psttf.cc =================================================================== --- trunk/drivers/psttf.cc 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/psttf.cc 2007-11-23 15:28:09 UTC (rev 8033) @@ -56,7 +56,7 @@ /* Device info */ -char* plD_DEVICE_INFO_psttf = +const char* plD_DEVICE_INFO_psttf = "psttf:PostScript File (monochrome):0:psttf:55:psttfm\n" "psttfc:PostScript File (color):0:psttf:56:psttfc"; @@ -121,7 +121,7 @@ static void psttf_dispatch_init_helper( PLDispatchTable *pdt, - char *menustr, char *devnam, + const char *menustr, const char *devnam, int type, int seq, plD_init_fp init ) { #ifndef ENABLE_DYNDRIVERS Modified: trunk/drivers/svg.c =================================================================== --- trunk/drivers/svg.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/svg.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -48,7 +48,7 @@ /* local variables */ -char* plD_DEVICE_INFO_svg = "svg:Scalable Vector Graphics (SVG 1.1):1:svg:57:svg"; +const char* plD_DEVICE_INFO_svg = "svg:Scalable Vector Graphics (SVG 1.1):1:svg:57:svg"; static int canvasXSize = 0; static int canvasYSize = 0; Modified: trunk/drivers/tek.c =================================================================== --- trunk/drivers/tek.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/tek.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -23,7 +23,7 @@ /* Device info */ -char* plD_DEVICE_INFO_tek = +const char* plD_DEVICE_INFO_tek = #if defined(PLD_conex) "conex:Conex vt320/tek emulator:1:tek:24:conex\n" #endif Modified: trunk/drivers/tk.c =================================================================== --- trunk/drivers/tk.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/tk.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -63,7 +63,7 @@ #endif /* Device info */ -char* plD_DEVICE_INFO_tk = "tk:Tcl/TK Window:1:tk:7:tk"; +const char* plD_DEVICE_INFO_tk = "tk:Tcl/TK Window:1:tk:7:tk"; /* Number of instructions to skip between updates */ @@ -1108,7 +1108,7 @@ launch_server(PLStream *pls) { TkDev *dev = (TkDev *) pls->dev; - char *argv[20], *plserver_exec=NULL, *ptr, *tmp=NULL; + char * argv[20], *plserver_exec=NULL, *ptr, *tmp=NULL; int i; dbug_enter("launch_server"); @@ -1174,7 +1174,7 @@ *t = '\0'; /* and keep only the base name */ } else { argv[i++] = "-name"; /* plserver name */ - argv[i++] = pls->program; + argv[i++] = (char *) pls->program; } if (pls->auto_path != NULL) { @@ -1392,7 +1392,7 @@ static void set_windowname(PLStream *pls) { - char *pname; + const char *pname; int i; /* Set to "plclient" if not initialized via plargs or otherwise */ Modified: trunk/drivers/tkwin.c =================================================================== --- trunk/drivers/tkwin.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/tkwin.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -80,7 +80,7 @@ #endif /* Device info */ -char* plD_DEVICE_INFO_tkwin = "tkwin:New tk driver:1:tkwin:45:tkwin"; +const char* plD_DEVICE_INFO_tkwin = "tkwin:New tk driver:1:tkwin:45:tkwin"; void * ckcalloc(size_t nmemb, size_t size); Modified: trunk/drivers/wingcc.c =================================================================== --- trunk/drivers/wingcc.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/wingcc.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -62,7 +62,7 @@ /* Device info */ -char* plD_DEVICE_INFO_wingcc = "wingcc:Win32 (GCC):1:wingcc:9:wingcc"; +const char* plD_DEVICE_INFO_wingcc = "wingcc:Win32 (GCC):1:wingcc:9:wingcc"; /* Struct to hold device-specific info. */ Modified: trunk/drivers/wxwidgets.cpp =================================================================== --- trunk/drivers/wxwidgets.cpp 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/wxwidgets.cpp 2007-11-23 15:28:09 UTC (rev 8033) @@ -133,7 +133,7 @@ /* Application icon as XPM */ /* This free icon was taken from http://2pt3.com/news/twotone-icons-for-free/ */ -static char *graph[] = { +static const char *graph[] = { /* columns rows colors chars-per-pixel */ "16 16 4 2", " c black", @@ -330,7 +330,7 @@ wxPLplotFrame( const wxString& title, PLStream* pls ); void OnMenu( wxCommandEvent& event ); void OnClose( wxCloseEvent& event ); - bool SavePlot( char* filename, char* devname, int width, int height ); + bool SavePlot( const char* filename, const char* devname, int width, int height ); void SetRefreshFlag( bool flag=true ) { m_window->SetRefreshFlag( flag ); }; bool GetRefreshFlag( void ) { return m_window->GetRefreshFlag(); }; @@ -379,7 +379,7 @@ \*----------------------------------------------------------------------*/ /* Device info */ -char* plD_DEVICE_INFO_wxwidgets = "wxwidgets:wxWidgets DC:1:wxwidgets:51:wxwidgets"; +const char* plD_DEVICE_INFO_wxwidgets = "wxwidgets:wxWidgets DC:1:wxwidgets:51:wxwidgets"; void plD_init_wxwidgets (PLStream *); void plD_line_wxwidgets (PLStream *, short, short, short, short); @@ -1777,7 +1777,7 @@ * device (devname) with given width and height. There is no test if * the device really exists. \*----------------------------------------------------------------------*/ -bool wxPLplotFrame::SavePlot( char* filename, char* devname, int width, int height ) +bool wxPLplotFrame::SavePlot( const char* filename, const char* devname, int width, int height ) { int pls, pls_save; FILE *sfile; Modified: trunk/drivers/xfig.c =================================================================== --- trunk/drivers/xfig.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/xfig.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -10,7 +10,7 @@ #include "drivers.h" /* Device info */ -char* plD_DEVICE_INFO_xfig = "xfig:Fig file:0:xfig:31:xfig"; +const char* plD_DEVICE_INFO_xfig = "xfig:Fig file:0:xfig:31:xfig"; /* Function prototypes */ Modified: trunk/drivers/xwin.c =================================================================== --- trunk/drivers/xwin.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/xwin.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -45,7 +45,7 @@ #endif /* Device info */ -char* plD_DEVICE_INFO_xwin = "xwin:X-Window (Xlib):1:xwin:5:xw"; +const char* plD_DEVICE_INFO_xwin = "xwin:X-Window (Xlib):1:xwin:5:xw"; static int synchronize = 0; /* change to 1 for X synchronized operation */ /* Use "-drvopt sync" cmd line option to set. */ Modified: trunk/drivers/xwinttf.c =================================================================== --- trunk/drivers/xwinttf.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/drivers/xwinttf.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -57,7 +57,7 @@ /* local variables */ -char* plD_DEVICE_INFO_xwinttf = "xwinttf:TrueType X Windows Driver:1:xwinttf:59:xwinttf"; +const char* plD_DEVICE_INFO_xwinttf = "xwinttf:TrueType X Windows Driver:1:xwinttf:59:xwinttf"; static int currentPage = -1; static int XScreen; Modified: trunk/examples/c/x01c.c =================================================================== --- trunk/examples/c/x01c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x01c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -84,7 +84,7 @@ NULL } /* long syntax */ }; -char *notes[] = {"Make sure you get it right!", NULL}; +const char *notes[] = {"Make sure you get it right!", NULL}; /* Function prototypes */ @@ -105,7 +105,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { PLINT digmax, cur_strm, new_strm; char ver[80]; Modified: trunk/examples/c/x02c.c =================================================================== --- trunk/examples/c/x02c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x02c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -17,7 +17,7 @@ void draw_windows(int nw, int cmap0_offset); int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { /* Parse and process command line arguments */ (void) plparseopts(&argc, argv, PL_PARSE_FULL); Modified: trunk/examples/c/x03c.c =================================================================== --- trunk/examples/c/x03c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x03c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -12,7 +12,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i, j; PLFLT dtr, theta, dx, dy, r; Modified: trunk/examples/c/x04c.c =================================================================== --- trunk/examples/c/x04c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x04c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -14,7 +14,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { /* Parse and process command line arguments */ Modified: trunk/examples/c/x05c.c =================================================================== --- trunk/examples/c/x05c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x05c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -14,7 +14,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i; PLFLT data[NPTS], delta; Modified: trunk/examples/c/x06c.c =================================================================== --- trunk/examples/c/x06c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x06c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -12,7 +12,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { char text[10]; int i, j, k; Modified: trunk/examples/c/x07c.c =================================================================== --- trunk/examples/c/x07c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x07c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -20,7 +20,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { char text[10]; int i, j, k, l; Modified: trunk/examples/c/x08c.c =================================================================== --- trunk/examples/c/x08c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x08c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -113,7 +113,7 @@ #define LEVELS 10 int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i, j, k; PLFLT *x, *y, **z; Modified: trunk/examples/c/x09c.c =================================================================== --- trunk/examples/c/x09c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x09c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -273,7 +273,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i, j; PLFLT xx, yy, argx, argy, distort; Modified: trunk/examples/c/x10c.c =================================================================== --- trunk/examples/c/x10c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x10c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -12,7 +12,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { /* Parse and process command line arguments */ Modified: trunk/examples/c/x11c.c =================================================================== --- trunk/examples/c/x11c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x11c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -67,7 +67,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i, j, k; PLFLT *x, *y, **z; Modified: trunk/examples/c/x12c.c =================================================================== --- trunk/examples/c/x12c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x12c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -16,7 +16,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i; char string[20]; Modified: trunk/examples/c/x13c.c =================================================================== --- trunk/examples/c/x13c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x13c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -21,7 +21,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i, j, dthet, theta0, theta1, theta; PLFLT just, dx, dy; Modified: trunk/examples/c/x14c.c =================================================================== --- trunk/examples/c/x14c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x14c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -47,7 +47,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int digmax; Modified: trunk/examples/c/x15c.c =================================================================== --- trunk/examples/c/x15c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x15c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -29,7 +29,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i, j; PLFLT xx, yy; Modified: trunk/examples/c/x16c.c =================================================================== --- trunk/examples/c/x16c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x16c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -83,7 +83,7 @@ NULL } /* long syntax */ }; -static char *notes[] = { +static const char *notes[] = { "To get smoother color variation, increase ns, nx, and ny. To get faster", "response (especially on a serial link), decrease them. A decent but quick", "test results from ns around 5 and nx, ny around 25.", @@ -106,7 +106,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i, j; PLFLT x, y, argx, argy, distort, r, t; Modified: trunk/examples/c/x17c.c =================================================================== --- trunk/examples/c/x17c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x17c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -25,13 +25,13 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { PLINT id1, n, autoy, acc, nsteps = 1000; PLFLT y1, y2, y3, y4, ymin, ymax, xlab, ylab; PLFLT t, tmin, tmax, tjump, dt, noise; PLINT colbox, collab, colline[4], styline[4]; - char *legline[4]; + const char *legline[4]; /* plplot initialization */ /* Parse and process command line arguments */ Modified: trunk/examples/c/x18c.c =================================================================== --- trunk/examples/c/x18c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x18c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -21,7 +21,7 @@ #define NPTS 1000 int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i, k; PLFLT *x, *y, *z; Modified: trunk/examples/c/x19c.c =================================================================== --- trunk/examples/c/x19c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x19c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -35,7 +35,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char **argv) +main(int argc, const char **argv) { PLFLT minx, maxx, miny, maxy; Modified: trunk/examples/c/x20c.c =================================================================== --- trunk/examples/c/x20c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x20c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -66,7 +66,7 @@ }; int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { PLFLT x[XDIM], y[YDIM], **z, **r; PLFLT xi, yi, xe, ye; Modified: trunk/examples/c/x21c.c =================================================================== --- trunk/examples/c/x21c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x21c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -151,7 +151,7 @@ PLFLT xm, xM, ym, yM; int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { PLFLT *x, *y, *z, *clev; PLFLT *xg, *yg, **zg; Modified: trunk/examples/c/x22c.c =================================================================== --- trunk/examples/c/x22c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x22c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -292,7 +292,7 @@ } int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { PLINT narr, fill; Modified: trunk/examples/c/x23c.c =================================================================== --- trunk/examples/c/x23c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x23c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -161,7 +161,7 @@ }; int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { PLFLT xmin, xmax, ymin, ymax, ycharacter_scale, yoffset; PLFLT chardef, charht, deltax, deltay, x, y; Modified: trunk/examples/c/x24c.c =================================================================== --- trunk/examples/c/x24c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x24c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -111,7 +111,7 @@ }; int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i, j; Modified: trunk/examples/c/x25c.c =================================================================== --- trunk/examples/c/x25c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x25c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -12,7 +12,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i; int j; Modified: trunk/examples/c/x26c.c =================================================================== --- trunk/examples/c/x26c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x26c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -104,7 +104,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { int i; /* Parse and process command line arguments */ Modified: trunk/examples/c/x27c.c =================================================================== --- trunk/examples/c/x27c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x27c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -38,7 +38,7 @@ \*--------------------------------------------------------------------------*/ int -main(int argc, char *argv[]) +main(int argc, const char *argv[]) { /* R, r, p, N */ PLFLT params[9][4] = { Modified: trunk/examples/c/x28c.c =================================================================== --- trunk/examples/c/x28c.c 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c/x28c.c 2007-11-23 15:28:09 UTC (rev 8033) @@ -37,7 +37,7 @@ \*--------------------------------------------------------------------------*/ -int main(int argc, char *argv[]) +int main(int argc, const char *argv[]) { PLFLT *x, *y, **z, xmin=0., xmax=1.0, xmid = 0.5*(xmax + xmin), xrange = xmax - xmin, Modified: trunk/examples/c++/x01.cc =================================================================== --- trunk/examples/c++/x01.cc 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c++/x01.cc 2007-11-23 15:28:09 UTC (rev 8033) @@ -46,7 +46,7 @@ static int fontset; static char *f_name; -static char *notes[] = {"Make sure you get it right!", ""}; +static const char *notes[] = {"Make sure you get it right!", ""}; /* Options data structure definition. */ static PLOptionTable options[] = { @@ -96,7 +96,7 @@ class x01 { public: - x01(int, char **); + x01(int, const char **); void plot1(int); void plot2(); @@ -112,7 +112,7 @@ }; -x01::x01( int argc, char ** argv ) { +x01::x01( int argc, const char ** argv ) { char ver[80]; @@ -377,7 +377,7 @@ delete[] y; } -int main( int argc, char ** argv ) { +int main( int argc, const char ** argv ) { x01 *x = new x01( argc, argv ); delete x; Modified: trunk/examples/c++/x01cc.cc =================================================================== --- trunk/examples/c++/x01cc.cc 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c++/x01cc.cc 2007-11-23 15:28:09 UTC (rev 8033) @@ -150,7 +150,7 @@ class x01cc { public: - x01cc(int, char**); + x01cc(int, const char**); void plot1(); void plot2(); @@ -344,7 +344,7 @@ pls->line( 65, x, y ); } -x01cc::x01cc( int argc, char **argv ) { +x01cc::x01cc( int argc, const char **argv ) { pls = new plstream(); @@ -364,7 +364,7 @@ // Finally! //---------------------------------------------------------------------------// -int main( int argc, char **argv ) +int main( int argc, const char **argv ) { x01cc *x = new x01cc( argc, argv ); Modified: trunk/examples/c++/x02.cc =================================================================== --- trunk/examples/c++/x02.cc 2007-11-18 20:41:16 UTC (rev 8032) +++ trunk/examples/c++/x02.cc 2007-11-23 15:28:09 UTC (rev 8033) @@ -35,7 +35,7 @@ class x02 { public: - x02(int, char **); + x02(int, const char **); private: void demo1(); @@ -162,7 +162,7 @@ } } -x02::x02( int argc, char ** argv ) { +x02::x02( int argc, const char ** argv ) { // plplot initialization @@ -183,7 +183,7 @@ } -int main( int argc... [truncated message content] |
From: <ai...@us...> - 2007-11-24 18:28:27
|
Revision: 8035 http://plplot.svn.sourceforge.net/plplot/?rev=8035&view=rev Author: airwin Date: 2007-11-24 10:28:31 -0800 (Sat, 24 Nov 2007) Log Message: ----------- This CVS-related script is no longer used, but it might be of historical interest so we keep it in the old directory for now. Added Paths: ----------- trunk/old/rm-cvs-tarball-tags.pl Removed Paths: ------------- trunk/scripts/rm-cvs-tarball-tags.pl Copied: trunk/old/rm-cvs-tarball-tags.pl (from rev 8033, trunk/scripts/rm-cvs-tarball-tags.pl) =================================================================== --- trunk/old/rm-cvs-tarball-tags.pl (rev 0) +++ trunk/old/rm-cvs-tarball-tags.pl 2007-11-24 18:28:31 UTC (rev 8035) @@ -0,0 +1,31 @@ +#!/usr/bin/perl -w + +# This script removes all cvs-tarball-* tags from the repository +# Run it from the top_srcdir + +# Written by Rafael Laboissiere, on Sun Feb 27 01:27:51 CET 2005 + +my $cf = "configure.ac"; +my $tag_pattern = 'cvs-tarball_\d\d\d\d-\d\d-\d\d-\d\d-\d\d-\d\d'; + +sub remove_tag { + my $tag = shift; + print "Removing tag $tag\n"; + system "cvs rtag -d $_ plplot"; +} + +-f $cf + or die "E: $cf not found. Are you at the PLplot top_srcdir?\n"; + +(my $ac_init = `grep "AC_INIT(plplot" $cf`) =~ /plplot/ + or die "E: Current directory does not seem to have the PLplot sources.\n"; + +open (LOG, "cvs -f log $cf |"); + +remove_tag ($_) + foreach map { + /($tag_pattern)/; + $1; + } grep { + /^\s*($tag_pattern):/; + } <LOG>; Deleted: trunk/scripts/rm-cvs-tarball-tags.pl =================================================================== --- trunk/scripts/rm-cvs-tarball-tags.pl 2007-11-24 18:15:13 UTC (rev 8034) +++ trunk/scripts/rm-cvs-tarball-tags.pl 2007-11-24 18:28:31 UTC (rev 8035) @@ -1,31 +0,0 @@ -#!/usr/bin/perl -w - -# This script removes all cvs-tarball-* tags from the repository -# Run it from the top_srcdir - -# Written by Rafael Laboissiere, on Sun Feb 27 01:27:51 CET 2005 - -my $cf = "configure.ac"; -my $tag_pattern = 'cvs-tarball_\d\d\d\d-\d\d-\d\d-\d\d-\d\d-\d\d'; - -sub remove_tag { - my $tag = shift; - print "Removing tag $tag\n"; - system "cvs rtag -d $_ plplot"; -} - --f $cf - or die "E: $cf not found. Are you at the PLplot top_srcdir?\n"; - -(my $ac_init = `grep "AC_INIT(plplot" $cf`) =~ /plplot/ - or die "E: Current directory does not seem to have the PLplot sources.\n"; - -open (LOG, "cvs -f log $cf |"); - -remove_tag ($_) - foreach map { - /($tag_pattern)/; - $1; - } grep { - /^\s*($tag_pattern):/; - } <LOG>; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-11-24 22:28:04
|
Revision: 8038 http://plplot.svn.sourceforge.net/plplot/?rev=8038&view=rev Author: airwin Date: 2007-11-24 14:28:00 -0800 (Sat, 24 Nov 2007) Log Message: ----------- This autotools-related script is no longer used, but it might be of historical interest so move it to the old directory. Added Paths: ----------- trunk/old/get-dependency-libs.sh Removed Paths: ------------- trunk/scripts/get-dependency-libs.sh Copied: trunk/old/get-dependency-libs.sh (from rev 8033, trunk/scripts/get-dependency-libs.sh) =================================================================== --- trunk/old/get-dependency-libs.sh (rev 0) +++ trunk/old/get-dependency-libs.sh 2007-11-24 22:28:00 UTC (rev 8038) @@ -0,0 +1,53 @@ +#!/bin/sh +# +# $Id$ +# Generate appropriate LIBS line for pkg-config by parsing libtool *.la files +# +# Copyright (C) 2004 Rafael Laboissiere +# +# 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 + + +if test $# != 1 ; then + echo 2>1 "Usage: $0 path/to/libfoo.la" + exit 1 +fi + +result= + +for lib in `grep ^dependency_libs= $1 \ + | sed 's/^dependency_libs=//' | sed "s/'//g"` ; do + + case $lib in + + -l* | -L* ) + result="$result $lib" + ;; + + *.la) + path=`echo $lib | sed 's:/*lib[^/]*.la::'` + libname=`echo $lib | sed 's:^.*/lib::' | sed 's/\.la//'` + result="$result -L$path" + test -d $path/.libs && result="$result -L$path/.libs" + result="$result -l$libname" + ;; + + esac + +done + +echo $result Deleted: trunk/scripts/get-dependency-libs.sh =================================================================== --- trunk/scripts/get-dependency-libs.sh 2007-11-24 22:16:56 UTC (rev 8037) +++ trunk/scripts/get-dependency-libs.sh 2007-11-24 22:28:00 UTC (rev 8038) @@ -1,53 +0,0 @@ -#!/bin/sh -# -# $Id$ -# Generate appropriate LIBS line for pkg-config by parsing libtool *.la files -# -# Copyright (C) 2004 Rafael Laboissiere -# -# 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 - - -if test $# != 1 ; then - echo 2>1 "Usage: $0 path/to/libfoo.la" - exit 1 -fi - -result= - -for lib in `grep ^dependency_libs= $1 \ - | sed 's/^dependency_libs=//' | sed "s/'//g"` ; do - - case $lib in - - -l* | -L* ) - result="$result $lib" - ;; - - *.la) - path=`echo $lib | sed 's:/*lib[^/]*.la::'` - libname=`echo $lib | sed 's:^.*/lib::' | sed 's/\.la//'` - result="$result -L$path" - test -d $path/.libs && result="$result -L$path/.libs" - result="$result -l$libname" - ;; - - esac - -done - -echo $result This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-11-24 22:30:21
|
Revision: 8039 http://plplot.svn.sourceforge.net/plplot/?rev=8039&view=rev Author: airwin Date: 2007-11-24 14:30:26 -0800 (Sat, 24 Nov 2007) Log Message: ----------- PLplot no-longer uses the autotools-based build method so remove all autotools-related files. Removed Paths: ------------- trunk/Makefile.am trunk/bindings/Makefile.am trunk/bindings/c++/Makefile.am trunk/bindings/f77/Makefile.am trunk/bindings/f77/configurable.f.in trunk/bindings/f95/Makefile.am trunk/bindings/gnome2/Makefile.am trunk/bindings/gnome2/lib/Makefile.am trunk/bindings/gnome2/python/Makefile.am trunk/bindings/java/Makefile.am trunk/bindings/octave/Makefile.am trunk/bindings/octave/PLplot/Makefile.am trunk/bindings/octave/PLplot/support/Makefile.am trunk/bindings/octave/demos/Makefile.am trunk/bindings/octave/misc/Makefile.am trunk/bindings/python/Makefile.am trunk/bindings/tcl/Makefile.am trunk/bindings/tk/Makefile.am trunk/cf/ trunk/configure.ac trunk/data/Makefile.am trunk/doc/Makefile.am trunk/doc/docbook/Makefile.am trunk/doc/docbook/cnf/ trunk/doc/docbook/src/Makefile.am trunk/drivers/Makefile.am trunk/examples/Makefile.am trunk/examples/c/Makefile.am trunk/examples/c++/Makefile.am trunk/examples/f77/Makefile.am trunk/examples/f95/Makefile.am trunk/examples/java/Makefile.am trunk/examples/perl/Makefile.am trunk/examples/python/Makefile.am trunk/examples/python/plplot_python_start.py.in trunk/examples/tcl/Makefile.am trunk/examples/tk/Makefile.am trunk/fonts/Makefile.am trunk/include/Makefile.am trunk/include/plConfig.h.in trunk/include/plDevs.h.in trunk/lib/Makefile.am trunk/lib/csa/Makefile.am trunk/lib/nn/Makefile.am trunk/pkgcfg/Makefile.am trunk/pkgcfg/gen-pc-files.pl.in trunk/scripts/Makefile.am trunk/scripts/plplot-config.in trunk/src/Makefile.am trunk/test/Makefile.am trunk/test/plplot-test.sh.in trunk/utils/Makefile.am Deleted: trunk/Makefile.am =================================================================== --- trunk/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,89 +0,0 @@ -# Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003, 2004 Alan W. Irwin -# Copyright (C) 2003 Joao Cardoso -# Copyright (C) 2003, 2004 Rafael Laboissiere -# Copyright (C) 2005 Thomas J. Duck -# -# 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 PLplot; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -# This flag only required for top-level Makefile.am. -# It insures you only have to run cf/bootstrap.sh once on the first -# clean install. After that, aclocal (and automake, autoconf, and -# ./configure) called automatically whenever required by a change to -# configure.ac or any file in the cf subdirectory. - -ACLOCAL_AMFLAGS = -I cf 2>&1 | grep -v underquoted -# The above is an inspired hack which may not work indefinitely. -# Return to simpler more reliable form below as soon as -# automake-1.8 underquoted warning messages quit being such an annoyance. -#ACLOCAL_AMFLAGS = -I cf - -src_dirs = fonts lib include src data bindings -other_dirs = examples utils test scripts doc pkgcfg cf - -if enable_dyndrivers - SUBDIRS = -if !with_ltdlsystem - SUBDIRS += libltdl -endif - SUBDIRS += $(src_dirs) drivers -else - SUBDIRS = drivers $(src_dirs) -endif - -SUBDIRS += $(other_dirs) - -DIST_SUBDIRS = libltdl $(src_dirs) drivers $(other_dirs) - -bin_SCRIPTS = plplot_libtool - -plplot_libtool: libtool - cp libtool plplot_libtool - -docdir = $(datadir)/doc/plplot - -doc_DATA = \ - AUTHORS \ - COPYING.LIB \ - ChangeLog \ - Copyright \ - FAQ \ - NEWS \ - PROBLEMS \ - README \ - README.release - -CLEANFILES = plplot_libtool jadeout.log config.summary - -EXTRA_DIST = \ - rpm \ - sys \ - Copyright \ - FAQ \ - PROBLEMS \ - README.developers \ - README.release \ - OLD-README.release \ - README.Release_Manager_Cookbook \ - SERVICE \ - TODO.AM-LT \ - ToDo - -dist-hook: - rm -rf `find $(distdir) -name CVS -o -name .cvsignore` Deleted: trunk/bindings/Makefile.am =================================================================== --- trunk/bindings/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,58 +0,0 @@ -# bindings/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003 Alan W. Irwin -# Copyright (C) 2003, 2004 Rafael Laboissiere -# -# 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 - -SUBDIRS = c++ f77 f95 python tcl tk octave java gnome2 - -abovedatadir = $(DATA_DIR) - -if enable_tcl - index_tcl = tcl/pkgIndex.tcl -endif - -if enable_tk - index_tk = tk/pkgIndex.tcl -endif - -if enable_tkwin - index_tkwin = tk-x-plat/pkgIndex.tcl -endif - -index = $(index_tcl) $(index_tk) $(index_tkwin) - -if enable_tcl -abovedata_DATA = pkgIndex.tcl - -pkgIndex.tcl: $(index) - cat $(index) > pkgIndex.tcl - -endif -CLEANFILES = pkgIndex.tcl -DISTCLEANFILES = $(index) - -### FIXME: Brute force inclusion in dist tarball. The files below may -### be treated in a different way for installation [RL, 2003-03-06] -EXTRA_DIST = \ - tk-x-plat \ - swig-support - -dist-hook: - rm -rf $(distdir)/tk-x-plat/pkgIndex.tcl Deleted: trunk/bindings/c++/Makefile.am =================================================================== --- trunk/bindings/c++/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/c++/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,40 +0,0 @@ -# bindings/c++/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003, 2004 Rafael Laboissiere -# Copyright (C) 2002 Alan W. Irwin -# -# This file is part of PLplot. -# -# This file 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. -# -# This file 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; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -libplplot = $(top_builddir)/src/libplplot$(LIB_TAG).la - -if enable_cxx - -pkginclude_HEADERS = plstream.h - -lib_LTLIBRARIES = libplplotcxx@LIB_TAG@.la - -endif - -AM_CPPFLAGS = -I$(top_srcdir)/include $(INCLTDL) -version = -version-info $(CPP_SOVERSION) - -sources = plstream.cc - -libplplotcxx@LIB_TAG@_la_SOURCES = $(sources) -libplplotcxx@LIB_TAG@_la_LDFLAGS = $(version) $(RPATH) -no-undefined $(libplplot) - Deleted: trunk/bindings/f77/Makefile.am =================================================================== --- trunk/bindings/f77/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/f77/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,84 +0,0 @@ -# bindings/f77/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003, 2004 Rafael Laboissiere -# Copyright (C) 2002, 2004 Alan W. Irwin -# -# 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 - -libplplot = $(top_builddir)/src/libplplot$(LIB_TAG).la - -if enable_f77 -# order is important here since libplplotf77c@LIB_TAG@.la must be -# created first (since libplplotf77@LIB_TAG@.la depends upon it). -lib_LTLIBRARIES = libplplotf77c@LIB_TAG@.la libplplotf77@LIB_TAG@.la -endif - -AM_CPPFLAGS = -I$(top_srcdir)/include $(INCLTDL) -AM_FFLAGS = -I$(srcdir) - -version = -version-info $(F77_SOVERSION) - -# Keep Fortran and C libraries completely separate so libplplot will know how -# to link them without relying on poorly known (for most platforms) -# FLIBS information detailing how to combine C and fortran source in the -# same library. - -fortran_sources = \ - strutil.f \ - sfstubs.h - -generated_fortran_sources = \ - sfstubs.f \ - configurable.f - -c_sources = \ - plstubs.h \ - sc3d.c \ - sccont.c \ - scstubs.c - -# This creates the fortran source part of the fortran interface to libplplot. -# It wraps calls to libplplotf77c@LIB_TAG@.la -libplplotf77@LIB_TAG@_la_SOURCES = $(fortran_sources) -nodist_libplplotf77@LIB_TAG@_la_SOURCES = $(generated_fortran_sources) -libplplotf77@LIB_TAG@_la_LDFLAGS = $(version) $(RPATH) -no-undefined libplplotf77c@LIB_TAG@.la - -# This creates the C source part of the fortran interface to libplplot. -# libplplotf77@LIB_TAG@.la wraps libplplotf77c@LIB_TAG@.la which wraps -# libplplot. Thus, these two libraries together provide -# a fortran wrapper for the "common" API part of libplplot. -libplplotf77c@LIB_TAG@_la_SOURCES = $(c_sources) -libplplotf77c@LIB_TAG@_la_LDFLAGS = $(version) $(RPATH) -no-undefined $(libplplot) - -# Must be explicit here with dependencies. -sfstubs.lo: sfstubs.h - -# cp for the double-precision case, convert with sed for the -# single-precision case. -if with_double -.fm4.f: - cp $< $*.f -else -.fm4.f: - sed -f $(srcdir)/double2single.sed $< > $*.f -endif - -EXTRA_DIST = sfstubs.fm4 double2single.sed README.f77API -CLEANFILES = sfstubs.f - -SUFFIXES = .fm4 Deleted: trunk/bindings/f77/configurable.f.in =================================================================== --- trunk/bindings/f77/configurable.f.in 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/f77/configurable.f.in 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,50 +0,0 @@ -C $Id$ -C -C Copyright (C) 2004 Alan W. Irwin -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 - - subroutine plparseopts(mode) - implicit none - include 'sfstubs.h' - integer mode - integer maxargs, iargs, numargs, index, maxindex, iargc, islen - parameter(maxindex = maxlen/4) - parameter (maxargs=20) - character*(maxlen) arg - integer*4 iargsarr(maxindex, maxargs) -@HAVE_F77PARSE_CL_FALSE@ write(0,'(a)') 'plparseopts not implemented on this fortran'// -@HAVE_F77PARSE_CL_FALSE@ & ' platform because iargc or getarg are not available' -@HAVE_F77PARSE_CL_TRUE@ numargs = iargc() -@HAVE_F77PARSE_CL_TRUE@ if(numargs.lt.0) then -@HAVE_F77PARSE_CL_TRUE@C This actually happened on badly linked Cygwin platform. -@HAVE_F77PARSE_CL_TRUE@ write(0,'(a)') 'plparseopts: negative number of arguments' -@HAVE_F77PARSE_CL_TRUE@ return -@HAVE_F77PARSE_CL_TRUE@ endif -@HAVE_F77PARSE_CL_TRUE@ if(numargs+1.gt.maxargs) then -@HAVE_F77PARSE_CL_TRUE@ write(0,'(a)') 'plparseopts: too many arguments' -@HAVE_F77PARSE_CL_TRUE@ return -@HAVE_F77PARSE_CL_TRUE@ endif -@HAVE_F77PARSE_CL_TRUE@ do 10 iargs = 0, numargs -@HAVE_F77PARSE_CL_TRUE@ call getarg(iargs, arg) -@HAVE_F77PARSE_CL_TRUE@ call plstrf2c(arg(:islen(arg)), string1, maxlen) -@HAVE_F77PARSE_CL_TRUE@ do 5 index = 1, maxindex -@HAVE_F77PARSE_CL_TRUE@ iargsarr(index, iargs+1) = s1(index) -@HAVE_F77PARSE_CL_TRUE@ 5 continue -@HAVE_F77PARSE_CL_TRUE@ 10 continue -@HAVE_F77PARSE_CL_TRUE@ call plparseopts7(numargs+1, iargsarr, mode, maxindex*4) - end Deleted: trunk/bindings/f95/Makefile.am =================================================================== --- trunk/bindings/f95/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/f95/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,94 +0,0 @@ -# bindings/f95/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003, 2004 Rafael Laboissiere -# Copyright (C) 2002, 2004 Alan W. Irwin -# -# 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 - -libplplot = $(top_builddir)/src/libplplot$(LIB_TAG).la - -if enable_f95 -# Location to install fortran 95 "module" files (which allows users of -# fortran libraries to access library-define modules with the "use" statement). -# This location picked using fairly generic advice from the LFHS mailing list. -plplotmoduledir = $(libdir)/fortran/modules/plplot - -# order is important here since libplplotf95c@LIB_TAG@.la must be -# created first (since libplplotf95@LIB_TAG@.la depends upon it). -lib_LTLIBRARIES = libplplotf95c@LIB_TAG@.la libplplotf95@LIB_TAG@.la - -plplotmodule_DATA = \ - plplot.mod \ - plplotp.mod \ - plplot_flt.mod - -endif - -AM_CPPFLAGS = -I$(top_srcdir)/include $(INCLTDL) -# -I. flag needed so that for separate build tree the fortran compiler -# can find the plflt.inc that is generated in the build tree. -AM_FCFLAGS = -I$(srcdir) -I. - -version = -version-info $(F95_SOVERSION) - -# Keep Fortran and C libraries completely separate so libplplot will know how -# to link them without relying on poorly known (for most platforms) -# FLIBS information detailing how to combine C and fortran source in the -# same library. - -fortran_sources = \ - strutil.f90 \ - configurable.f90 \ - sfstubsf95.f90 \ - sfstubs.h - -generated_fortran_sources = plflt.inc - -c_sources = \ - plstubs.h \ - sc3d.c \ - sccont.c \ - scstubs.c - -# This creates the fortran source part of the fortran interface to libplplot. -# It wraps calls to libplplotf95c@LIB_TAG@.la -libplplotf95@LIB_TAG@_la_SOURCES = $(fortran_sources) -nodist_libplplotf95@LIB_TAG@_la_SOURCES = $(generated_fortran_sources) -libplplotf95@LIB_TAG@_la_LDFLAGS = $(version) $(RPATH) -no-undefined libplplotf95c@LIB_TAG@.la - -# This creates the C source part of the fortran interface to libplplot. -# libplplotf95@LIB_TAG@.la wraps libplplotf95c@LIB_TAG@.la which wraps -# libplplot. Thus, these two libraries together provide -# a fortran wrapper for the "common" API part of libplplot. -libplplotf95c@LIB_TAG@_la_SOURCES = $(c_sources) -libplplotf95c@LIB_TAG@_la_LDFLAGS = $(version) $(RPATH) -no-undefined $(libplplot) - -# Must be explicit here with dependencies. -sfstubsf95.lo: plflt.inc sfstubs.f90 sfstubs.h - -EXTRA_DIST = readme_f95.txt sfstubs.f90 - -BUILT_SOURCES = $(generated_fortran_sources) -CLEANFILES = $(generated_fortran_sources) $(plplotmodule_DATA) - -noinst_PROGRAMS = plflt -plflt_SOURCES = plflt.c -plflt_CFLAGS = -I../../include - -plflt.inc: plflt$(EXEEXT) - ./plflt$(EXEEXT) Deleted: trunk/bindings/gnome2/Makefile.am =================================================================== --- trunk/bindings/gnome2/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/gnome2/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,24 +0,0 @@ -# bindings/gnome2/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003 Alan W. Irwin -# Copyright (C) 2003, 2004 Rafael Laboissiere -# -# 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 - -# Order is important here; lib has to be built before python. -SUBDIRS = lib python Deleted: trunk/bindings/gnome2/lib/Makefile.am =================================================================== --- trunk/bindings/gnome2/lib/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/gnome2/lib/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,33 +0,0 @@ -# bindings/gnome2/lib/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2005 Alan W. Irwin -# -# 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 - -AM_CPPFLAGS = -I$(top_srcdir)/include - -libplplot = $(top_builddir)/src/libplplot$(LIB_TAG).la -if enable_gcw -lib_LTLIBRARIES = libplplotgnome2@LIB_TAG@.la -libplplotgnome2@LIB_TAG@_la_SOURCES = \ - plplotcanvas.c \ - gcw-lib.c -libplplotgnome2@LIB_TAG@_la_LDFLAGS = \ - -version-info $(PLPLOTGNOME_SOVERSION) $(RPATH) -no-undefined \ - $(libplplot) $(GCW_LIBS) $(lmflag) -endif Deleted: trunk/bindings/gnome2/python/Makefile.am =================================================================== --- trunk/bindings/gnome2/python/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/gnome2/python/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,127 +0,0 @@ -# bindings/gnome2/python/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003, 2004 Alan W. Irwin -# Copyright (C) 2003, 2004 Rafael Laboissiere -# Copyright (C) 2005 Thomas J. Duck -# -# This file is part of PLplot. -# -# This file 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. -# -# This file 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; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -# N.B. This treatment probably will need changes or else a complete -# replacement to work cross-platform as indicated by ?cross-platform? -# comment below, but it works quite nicely on Linux. - -### FIXME: Brute force inclusion in dist tarball. The files below may -### be treated in a different way for installation [RL, 2003-03-06] -EXTRA_DIST = \ - README \ - gcwmodule.c \ - plplotcanvas.py \ - cplplotcanvasmodule.c \ - cplplotcanvas.override \ - gcw.override \ - $(MAINTAINERCLEANFILES) - - -# Must have "exec" in the name. -ourexecpythondir = $(pythondir) - -libplplot = $(top_builddir)/src/libplplot$(LIB_TAG).la - -libplplotgnome2 = $(top_builddir)/bindings/gnome2/lib/libplplotgnome2$(LIB_TAG).la - - -# NUMERICINCCMD only required until we quit supporting python 1.5 -# X_CFLAGS required (on some platforms, e.g., netbsd) by plplot_widgetmodule.c -AM_CPPFLAGS = -I$(top_srcdir)/include $(INCLTDL) $(PYTHONINCCMD) $(NUMERICINCCMD) $(X_CFLAGS) - -# For Mac OS X/fink we have found that dropping -no-undefined $(PYTHON_LDFLAGS) -# solves an unknown linking problem that causes python to be unable to import -# the extension module, but this hack is not necessary on other platforms. -# and it causes errors for Cygwin. We also hope this hack -# won't be necessary in the future when we have better versions of -# libtool/Mac OS X/fink. -if darwin_os -extra_ldflags = -else -# -no-undefined should work on all (other) platforms here since symbols should -# all be resolved by $(PYTHON_LDFLAGS) and libplplot -extra_ldflags = -no-undefined $(PYTHON_LDFLAGS) -endif - -UNDERSCORE_plplotcmodule_la_LDFLAGS = \ - -rpath $(ourexecpythondir) \ - -module \ - -avoid-version \ - $(extra_ldflags) \ - $(libplplot) - -PYGTK_DEFS=`pkg-config --variable=defsdir pygtk-2.0` - -cplplotcanvas.c: plplotcanvas.defs cplplotcanvas.override - pygtk-codegen-2.0 --prefix cplplotcanvas \ - --register $(PYGTK_DEFS)/gdk.defs \ - --register $(PYGTK_DEFS)/gtk.defs \ - --register $(PYGTK_DEFS)/gnome.defs \ - --register $(PYGTK_DEFS)/canvas.defs \ - --override cplplotcanvas.override \ - plplotcanvas.defs > $@ - -# Use sed to rename PLINT and PLFLT so that h2def.py knows what to do -plplotcanvas.defs: - /usr/share/pygtk/2.0/codegen/h2def.py \ - $(top_srcdir)/include/plplotcanvas.h \ - | sed -e s/PLINT/gint32/ -e s/PLFLT/double/ > $@ - -# Use sed to remove the gcw_ prefix from functions -gcw.c: gcw.defs gcw.override - pygtk-codegen-2.0 --prefix gcw --override gcw.override gcw.defs \ - | sed -e s/\"gcw_/\"/ > $@ - -# Use sed to rename PLINT and PLFLT so that h2def.py knows what to do -gcw.defs: - /usr/share/pygtk/2.0/codegen/h2def.py \ - $(top_srcdir)/include/gcw.h \ - | sed -e s/PLINT/gint32/ -e s/PLFLT/double/ > $@ - -gcwmodule_la_SOURCES = gcw.c gcwmodule.c -gcwmodule_la_CFLAGS = $(GCW_CFLAGS) $(PYGCW_CFLAGS) -gcwmodule_la_LDFLAGS = $(UNDERSCORE_plplotcmodule_la_LDFLAGS) \ - $(libplplotgnome2) $(GCW_LIBS) $(PYGCW_LIBS) -cplplotcanvasmodule_la_SOURCES = cplplotcanvas.c cplplotcanvasmodule.c -cplplotcanvasmodule_la_CFLAGS = $(GCW_CFLAGS) $(PYGCW_CFLAGS) -cplplotcanvasmodule_la_LDFLAGS = $(UNDERSCORE_plplotcmodule_la_LDFLAGS) \ - $(libplplotgnome2) $(GCW_LIBS) $(PYGCW_LIBS) -if enable_python -if enable_pygcw - -gcwmoduleexecpython_LTLIBRARIES = gcwmodule.la -gcwmoduleexecpythondir = $(pythondir) - -cplplotcanvasmoduleexecpython_LTLIBRARIES = cplplotcanvasmodule.la -cplplotcanvasmoduleexecpythondir = $(pythondir) -cplplotcanvasmoduleexecpython_DATA = plplotcanvas.py - - -endif -endif - -MAINTAINERCLEANFILES = \ - cplplotcanvas.c \ - plplotcanvas.defs \ - gcw.c \ - gcw.defs Deleted: trunk/bindings/java/Makefile.am =================================================================== --- trunk/bindings/java/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/java/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,124 +0,0 @@ -# bindings/java/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003, 2004 Alan W. Irwin -# Copyright (C) 2003, 2004 Rafael Laboissiere -# -# This file is part of PLplot. -# -# This file 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. -# -# This file 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; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -SWIG_SUPPORT_DIR = $(top_srcdir)/bindings/swig-support -PLPLOTCAPI_I = $(SWIG_SUPPORT_DIR)/plplotcapi.i -SWIG_JAVA_DIR = $(top_srcdir)/bindings/java - -SWIG_CMD = $(SWIG) -I$(SWIG_SUPPORT_DIR) -I$(SWIG_JAVA_DIR) -DPL_DOUBLE -DSWIG_JAVA -java - -swigjavafiles = \ - plplotjavacJNI.java \ - PLGraphicsIn.java \ - plplotjavac.java - -# This required for swig-1.3.21, but not for swig-1.3.17 -swigjavafiles += plplotjavacConstants.java - -swigcfiles = plplotjavac_wrap.c - -swiggenfiles = $(swigjavafiles) $(swigcfiles) - -javafiles = \ - $(top_srcdir)/bindings/java/PLStream.java \ - config.java \ - $(swigjavafiles) - -# Note : the order of these is important since there is no formal -# dependency checking. -javaclasses = \ - config.class \ - plplotjavacJNI.class \ - PLGraphicsIn.class \ - plplotjavacConstants.class \ - plplotjavac.class \ - PLStream.class - -### FIXME: Brute force inclusion in dist tarball. The files below may -### be treated in a different way for installation [RL, 2003-03-06] -EXTRA_DIST = \ - PLStream.java \ - README.javaAPI \ - plplotjavac.i \ - $(swiggenfiles) - -$(swiggenfiles): $(PLPLOTJAVAC_I) plplotjavac.i $(PLPLOTCAPI_I) - $(SWIG_CMD) -package plplot.core plplotjavac.i - -# Must have "exec" in the name. -execjavawrapperdir = $(JAVAWRAPPER_DIR) - -libplplot = $(top_builddir)/src/libplplot$(LIB_TAG).la - -AM_CPPFLAGS = -I$(top_srcdir)/include $(INCLTDL) $(JAVAINCCMD) - -nodist_plplotjavac_wrap_la_SOURCES = plplotjavac_wrap.c - -# no-undefined should work on all platforms here since libplplot should -# resolve all symbols. -plplotjavac_wrap_la_LDFLAGS = \ - -rpath $(execjavawrapperdir) \ - -module \ - -avoid-version \ - -no-undefined \ - $(libplplot) - -if enable_java - -# Use javaJAVA for gcj support once gcc-3.2 use becomes -# widespread. - -# Can't use java support for now since jikes doesn't handle dependencies -# properly - instead do it using DATA and with an explicit rule. -#noinst_JAVA = $(javafiles) - -.java.class: - $(JAVAC) $(AM_JAVACFLAGS) $(JAVACFLAGS) $< -d . -classpath . - cp plplot/core/$@ . - -noinst_DATA = jar-stamp - -jar-stamp: $(javaclasses) $(javafiles) $(top_srcdir)/bindings/java/README.javaAPI - $(mkdir_p) plplot/core - $(mkdir_p) plplot/core/src - cp $(top_srcdir)/bindings/java/README.javaAPI plplot/core - cp $(javafiles) plplot/core/src - touch jar-stamp - -execjavawrapper_LTLIBRARIES = plplotjavac_wrap.la - -# if enable_java -endif - -# Remove unneeded *.a *.la files that are installed by Libtool -install-exec-hook: -if enable_java - ( cd $(DESTDIR)$(execjavawrapperdir) ; \ - rm -f *.a *.la ) -endif - -clean-local: - rm -rf plplot - -CLEANFILES = $(javaclasses) jar-stamp - -MAINTAINERCLEANFILES = $(swiggenfiles) Deleted: trunk/bindings/octave/Makefile.am =================================================================== --- trunk/bindings/octave/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/octave/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,143 +0,0 @@ -# bindings/octave/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003, 2004 Alan W. Irwin -# Copyright (C) 2002, 2003, 2004 Joao Cardoso -# Copyright (C) 2003, 2004 Rafael Laboissiere -# -# 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 - -SUBDIRS = PLplot demos misc - -docdir = $(DOC_DIR) - -docfiles = \ - BUGS \ - FGA \ - INSTALL \ - README \ - ToDo \ - USAGE - -EXTRA_DIST = \ - $(docfiles) \ - globals-in-scripts \ - massage.c \ - plplot_octave_rej.h \ - plplot_octave_def \ - etc \ - matwrap \ - doc-stamp \ - plplot_octave_txt \ - .octaverc - -doc-stamp plplot_octave_txt: etc/plplot.doc \ - $(top_srcdir)/doc/docbook/bin/api2text.pl \ - $(top_srcdir)/doc/docbook/src/plplotdoc.xml.in \ - $(top_srcdir)/doc/docbook/src/api.xml - mkdir -p plplot_octave_txt - cp $(srcdir)/etc/plplot.doc plplot_octave_txt/plplot.doc -if has_xml_pm - ( cd plplot_octave_txt ; \ - $(PERL) ../$(top_srcdir)/doc/docbook/bin/api2text.pl \ - ../$(top_srcdir)/doc/docbook/src/plplotdoc.xml.in \ - ../$(top_srcdir)/doc/docbook/src/api.xml ) \ - && touch doc-stamp -else - @echo "Perl modules not available: cannot generate full online help for plplot_octave" \ - && touch doc-stamp -endif - - -if enable_octave - -octave_libs = -L$(top_builddir)/src/.libs -lplplot$(LIB_TAG) - -deplibs = `$(top_srcdir)/scripts/get-dependency-libs.sh \ - $(top_builddir)/src/.libs/libplplot$(LIB_TAG).la` - -# Extra sed step is a correction to allow gcc 3.2 to compile. This correction -# also still works on gcc 2.95 -plplot_octave.cc tmp_stub: plplot_octave.h - $(PERL) $(MATWRAP) -language octave -o plplot_octave.cc -stub tmp_stub \ - -cpp_ignore $(srcdir) -cpp_ignore plplot_octave_rej.h -cpp $(CC) \ - -D__builtin_va_list=void -E -I$(srcdir) -C plplot_octave.h - mv -f plplot_octave.cc tmp_plplot_octave.cc - sed 's/ string / std::string /' tmp_plplot_octave.cc > plplot_octave.cc - -if with_csa -LDRPATH_CSA = :$(top_builddir)/lib/csa/.libs -endif -if with_qhull -LDRPATH_NN = :$(top_builddir)/lib/nn/.libs -endif -SET_LDRPATH = LD_RUN_PATH=$(top_builddir)/src/.libs$(LDRPATH_CSA)$(LDRPATH_NN) - -plplot_octave.oct plplot_octave.o: plplot_octave.cc - $(SET_LDRPATH) $(MKOCTFILE_VARS) \ - $(MKOCTFILE) -v -I. -I$(srcdir) plplot_octave.cc $(octave_libs) $(deplibs) - -if with_rpath -SET_LDRPATH_LIBDIR = LD_RUN_PATH=$(libdir) -endif - -plplot_octave-libdir.oct: plplot_octave.o - $(SET_LDRPATH_LIBDIR) $(MKOCTFILE_VARS) \ - $(MKOCTFILE) -v -I. plplot_octave.o \ - -o plplot_octave-libdir.oct $(octave_libs) $(deplibs) - -install-data-hook: plplot_octave-libdir.oct - $(mkinstalldirs) $(DESTDIR)$(octavesharedir) - $(INSTALL) plplot_octave-libdir.oct \ - $(DESTDIR)$(octavesharedir)/plplot_octave.oct - $(mkinstalldirs) $(DESTDIR)$(docdir) - for i in $(docfiles) ; do \ - $(INSTALL) $(srcdir)/$$i $(DESTDIR)$(docdir)/$$i.octave ; \ - done - -octavesharedir = $(OCTAVE_OCT_DIR) -octaveshare_SCRIPTS = plplot_octave.oct - -noinst_PROGRAMS = massage -massage_SOURCES = massage.c - -plplot_stub.m: doc-stamp tmp_stub massage$(EXEEXT) - @head -5 tmp_stub > plplot_stub.m - @echo "# It was also massaged to add online documentation" >> plplot_stub.m - @echo "# extracted from some PLplot distribution files" >> plplot_stub.m - @echo >> plplot_stub.m - @echo "1;" >> plplot_stub.m - @echo >> plplot_stub.m - @cat $(srcdir)/plplot_octave_def >> plplot_stub.m - @echo >> plplot_stub.m - ./massage$(EXEEXT) >> plplot_stub.m 2> missing_help - -plplot_octavedir = $(PLPLOT_OCTAVE_DIR) -plplot_octave_DATA = plplot_stub.m - -else - -install-data-hook: - -#enable_octave -endif - -CLEANFILES = tmp_plplot_octave.cc \ - plplot_octave.cc plplot_octave.o tmp_stub plplot_octave*.oct \ - plplot_stub.m missing_help - -MAINTAINERCLEANFILES = doc-stamp plplot_octave_txt/* Deleted: trunk/bindings/octave/PLplot/Makefile.am =================================================================== --- trunk/bindings/octave/PLplot/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/octave/PLplot/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,136 +0,0 @@ -# bindings/octave/PLplot/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002 Alan W. Irwin -# Copyright (C) 2002, 2003 Joao Cardoso -# Copyright (C) 2003 Rafael Laboissiere -# -#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 - -SUBDIRS = support - -binding_m_files = \ - arrow.m \ - arrows.m \ - autostyle.m \ - axis.m \ - axis_set.m \ - bgr.m \ - blue.m \ - bone.m \ - bottom_title.m \ - clip.m \ - closeallfig.m \ - closefig.m \ - colormap.m \ - comet.m \ - contour.m \ - cool.m \ - copper.m \ - drawnow.m \ - fig.m \ - fig_raise.m \ - fig_state.m \ - figure.m \ - fill.m \ - free_fig.m \ - ginput.m \ - green.m \ - grid.m \ - griddata.m \ - gtext.m \ - hls2rgb.m \ - hot.m \ - hsv.m \ - label_plot.m \ - legend.m \ - loglog.m \ - lp_setup.m \ - mesh.m \ - meshc.m \ - meshz.m \ - mplot.m \ - multiplot.m \ - oneplot.m \ - peaks.m \ - pink.m \ - plclearplot.m \ - plclg.m \ - plcolormap.m \ - pldef.m \ - plimage.m \ - plot.m \ - plot3.m \ - plot_border.m \ - plot_margin.m \ - plrb.m \ - plsetopt.m \ - polar.m \ - prism.m \ - red.m \ - rgb2hls.m \ - rgbplot.m \ - save_fig.m \ - semilogx.m \ - semilogy.m \ - set_view.m \ - shade.m \ - shading.m \ - shg.m \ - stopdraw.m \ - stripc.m \ - stripc_add.m \ - stripc_del.m \ - struct_contains.m \ - subplot.m \ - subwindow.m \ - surf.m \ - surfc.m \ - surfl.m \ - tdeblank.m \ - text.m \ - title.m \ - top_title.m \ - xlabel.m \ - xticks.m \ - ylabel.m \ - yticks.m \ - zlabel.m \ - zoom.m - -user_m_files = \ - use_plplot.m \ - plplot_octave_path.m \ - toggle_plplot_use.m - -EXTRA_DIST = \ - $(binding_m_files) \ - struct_contains.m \ - use_plplot.m \ - toggle_plplot_use.m - -if enable_octave - -plplot_octavedir = $(PLPLOT_OCTAVE_DIR) -plplot_octave_DATA = $(binding_m_files) - -octave_mdir = $(OCTAVE_M_DIR)/PLplot -octave_m_DATA = $(user_m_files) - -endif - - Deleted: trunk/bindings/octave/PLplot/support/Makefile.am =================================================================== --- trunk/bindings/octave/PLplot/support/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/octave/PLplot/support/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,62 +0,0 @@ -# bindings/octave/PLplot/support/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002 Alan W. Irwin -# Copyright (C) 2002, 2003 Joao Cardoso -# Copyright (C) 2003 Rafael Laboissiere -# -#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 - -m_files = \ - __comet.m \ - __pl_contour.m \ - __pl_draw_legend.m \ - __pl_fill.m \ - __pl_init.m \ - __pl_logplotit.m \ - __pl_matstr.m \ - __pl_mesh.m \ - __pl_meshplotit.m \ - __pl_opt.m \ - __pl_plenv.m \ - __pl_plot3.m \ - __pl_plotit.m \ - __pl_pltext.m \ - __pl_polargrid.m \ - __pl_store.m \ - __plr1__.m \ - __plr2__.m \ - __plr__.m \ - __plt1__.m \ - __plt2__.m \ - __plt2mm__.m \ - __plt2mv__.m \ - __plt2ss__.m \ - __plt2vm__.m \ - __plt2vv__.m \ - __plt__.m \ - is_strmatrix.m \ - is_strvector.m - -EXTRA_DIST = $(m_files) - -if enable_octave - -plplot_octave_supportdir = $(PLPLOT_OCTAVE_DIR)/support -plplot_octave_support_DATA = $(m_files) - -endif Deleted: trunk/bindings/octave/demos/Makefile.am =================================================================== --- trunk/bindings/octave/demos/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/octave/demos/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,76 +0,0 @@ -# bindings/octave/demos/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002 Alan W. Irwin -# Copyright (C) 2002, 2003 Joao Cardoso -# Copyright (C) 2003, 2004 Rafael Laboissiere -# -# 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 - -examples_octave = \ - p1.m \ - p10.m \ - p11.m \ - p12.m \ - p13.m \ - p14.m \ - p15.m \ - p16.m \ - p17.m \ - p18.m \ - p19.m \ - p2.m \ - p20.m \ - p21.m \ - p3.m \ - p4.m \ - p5.m \ - p6.m \ - p7.m \ - p8.m \ - p9.m \ - plplot_octave_demo.m \ - x01c.m \ - x02c.m \ - x03c.m \ - x04c.m \ - x05c.m \ - x06c.m \ - x07c.m \ - x08c.m \ - x09c.m \ - x10c.m \ - x11c.m \ - x12c.m \ - x13c.m \ - x14c.m \ - x15c.m \ - x16c.m \ - x17c.m \ - x18c.m \ - x19c.m \ - x22c.m \ - lena.img - -EXTRA_DIST = $(examples_octave) - -if enable_octave - -examples_octavedir = $(DATA_DIR)/examples/octave -examples_octave_DATA = $(examples_octave) - -endif Deleted: trunk/bindings/octave/misc/Makefile.am =================================================================== --- trunk/bindings/octave/misc/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/octave/misc/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,36 +0,0 @@ -# bindings/octave/demos/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002 Alan W. Irwin -# Copyright (C) 2002 Joao Cardoso -# Copyright (C) 2003, 2004 Rafael Laboissiere -# -# 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 - -examples = \ - diffn.m \ - gradn.m \ - rosenbrock.m - -EXTRA_DIST = $(examples) - -if enable_octave - -examples_octavedir = $(DATA_DIR)/examples/octave -examples_octave_DATA = $(examples) - -endif Deleted: trunk/bindings/python/Makefile.am =================================================================== --- trunk/bindings/python/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/python/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,156 +0,0 @@ -# examples/python/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003, 2004 Alan W. Irwin -# Copyright (C) 2003, 2004 Rafael Laboissiere -# -# This file is part of PLplot. -# -# This file 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. -# -# This file 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; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -# N.B. This treatment probably will need changes or else a complete -# replacement to work cross-platform as indicated by ?cross-platform? -# comment below, but it works quite nicely on Linux. - -SWIG_SUPPORT_DIR = $(top_srcdir)/bindings/swig-support -PLPLOTCAPI_I = $(SWIG_SUPPORT_DIR)/plplotcapi.i -SWIG_PYTHON_DIR = $(top_srcdir)/bindings/python -MAKEDOCSTRINGS_PY = $(SWIG_PYTHON_DIR)/makedocstrings.py - -SWIG_CMD = $(SWIG) -I$(SWIG_SUPPORT_DIR) -I$(SWIG_PYTHON_DIR) -DSWIG_PYTHON -python - -### FIXME: Brute force inclusion in dist tarball. The files below may -### be treated in a different way for installation [RL, 2003-03-06] -EXTRA_DIST = \ - 1.4b3 \ - fragments.i \ - plplotcmodule.i \ - makedocstrings.py \ - plplot_widgetmodule.c \ - plplot.py \ - Plframe.py \ - README.pythonbuild \ - TclSup.py \ - $(MAINTAINERCLEANFILES) - -### Only swig version 1.3.21 (and above?) will work here. -### Ordinarily this detail only matters for CVS users because the tarball -### version of PLplot always has both plplotcmodule_double.c and -### plplotcmodule_single.c pre-generated. -### Note plplotc.py is generated in both cases as well, but that file -### contents are independent of the single-double question and the -### following logic depends on that. -plplotcmodule_double.c plplotc.py: plplotcmodule.i $(PLPLOTCAPI_I) - $(SWIG_CMD) -DPL_DOUBLE -o plplotcmodule_double.c plplotcmodule.i - -# swig-1.3.21+ does handle documentation strings properly so do not run this -# script to make documentation strings. -#plplotcmodule_double.c: plplotcmodule_p_double.c $(MAKEDOCSTRINGS_PY) -# $(PYTHON) $(MAKEDOCSTRINGS_PY) plplotcmodule_p_double.c plplotcmodule_double.c - -### Note plplotc.py generated here as well, but it is identical to the -### one generated above and we cannot mention it as a duplicate target here. -plplotcmodule_single.c: plplotcmodule.i $(PLPLOTCAPI_I) - $(SWIG_CMD) -o plplotcmodule_single.c plplotcmodule.i - -#plplotcmodule_single.c: plplotcmodule_p_single.c $(MAKEDOCSTRINGS_PY) -# $(PYTHON) $(MAKEDOCSTRINGS_PY) plplotcmodule_p_single.c plplotcmodule_single.c - -EXTRA_DIST += plplotcmodule_double.c plplotcmodule_single.c - -# Must have "exec" in the name. -ourexecpythondir = $(pythondir) - -libplplot = $(top_builddir)/src/libplplot$(LIB_TAG).la - -# NUMERICINCCMD only required until we quit supporting python 1.5 -# X_CFLAGS required (on some platforms, e.g., netbsd) by plplot_widgetmodule.c -AM_CPPFLAGS = -I$(top_srcdir)/include $(INCLTDL) $(PYTHONINCCMD) $(NUMERICINCCMD) $(X_CFLAGS) - -# For Mac OS X/fink we have found that dropping -no-undefined $(PYTHON_LDFLAGS) -# solves an unknown linking problem that causes python to be unable to import -# the extension module, but this hack is not necessary on other platforms. -# and it causes errors for Cygwin. We also hope this hack -# won't be necessary in the future when we have better versions of -# libtool/Mac OS X/fink. -if darwin_os -extra_ldflags = -else -# -no-undefined should work on all (other) platforms here since symbols should -# all be resolved by $(PYTHON_LDFLAGS) and libplplot -extra_ldflags = -no-undefined $(PYTHON_LDFLAGS) -endif - -UNDERSCORE_plplotcmodule_la_LDFLAGS = \ - -rpath $(ourexecpythondir) \ - -module \ - -avoid-version \ - $(extra_ldflags) \ - $(libplplot) - -plplot_widgetmodule_la_SOURCES = plplot_widgetmodule.c -plplot_widgetmodule_la_LDFLAGS = $(UNDERSCORE_plplotcmodule_la_LDFLAGS) - -if enable_python - -if with_double -UNDERSCORE_plplotcmodule_la_SOURCES = plplotcmodule_double.c -else -UNDERSCORE_plplotcmodule_la_SOURCES = plplotcmodule_single.c -endif - -# plplot.py is our hand-crafted user-friendly interface wrapper to plplotc.py -# (generated by swig) which in turn is a wrapper to the extension module. -ourexecpython_DATA = plplot.py plplotc.py -ourexecpython_LTLIBRARIES = UNDERSCORE_plplotcmodule.la plplot_widgetmodule.la - -### Do a similar job as install-exec-hook in the .libs directory, but -### also removing "module" from the file names. This regards make -### check. - -check_DATA = .libs/check-stamp -.libs/check-stamp: - ( cd .libs ; \ - for f in UNDERSCORE_plplot* ; do \ - cp $$f `echo $$f | sed s/UNDERSCORE// | sed s/module//` ; \ - done ; \ - touch check-stamp ) - -# enable_python -endif - -### Use UNDERSCORE_plplotcmodule above to beat a potential problem with -### cross-platform make programmes. But need the "_" version of the -### name installed. Use install-hook to do this. Also, remove the -### unneeded (by python) *.a and *.la files - -install-exec-hook: -if enable_python - ( cd $(DESTDIR)$(ourexecpythondir) ; \ - rm -f *plplot*.a *plplot*.la; \ - for file in UNDERSCORE_plplot* ; do \ - mv $$file `echo $$file | sed s/UNDERSCORE//`; \ - done ) -endif - -CLEANFILES = \ - plplotcmodule_double.c \ - plplotcmodule_single.c \ - *.pyc - -MAINTAINERCLEANFILES = \ - plplotc.py \ - plplotcmodule_double.c \ - plplotcmodule_single.c Deleted: trunk/bindings/tcl/Makefile.am =================================================================== --- trunk/bindings/tcl/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/tcl/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,118 +0,0 @@ -# bindings/tcl/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002, 2003, 2004 Alan W. Irwin -# Copyright (C) 2003, 2004 Rafael Laboissiere -# -# 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 PLplot; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -tcldir = $(TCL_DIR) - -libplplot = $(top_builddir)/src/libplplot$(LIB_TAG).la -libmatrix = libtclmatrix$(LIB_TAG).la - - -if enable_tcl -generated_scripts = plplot.tcl -tcl_DATA = $(generated_scripts) tclIndex - -if enable_itcl -mkindex = $(top_srcdir)/scripts/mktclIndex -itcl -else -mkindex = $(top_srcdir)/scripts/mktclIndex -tcl -endif - -lib_LTLIBRARIES = libtclmatrix@LIB_TAG@.la libplplottcltk@LIB_TAG@.la - -endif - -plplot.tcl: $(top_srcdir)/bindings/tk/plplot.tcl - rm -f plplot.tcl - cp $(top_srcdir)/bindings/tk/plplot.tcl plplot.tcl - -tclIndex: $(generated_scripts) - $(mkindex) - -pkginclude_HEADERS = pltcl.h tclMatrix.h - -tclgenfiles = tclgen.h tclgen_s.h tclgen.c - -PLTCLGEN = $(top_srcdir)/bindings/tcl/pltclgen -$(tclgenfiles): $(PLTCLGEN) plapi.tpl tclcmd.tpl - $(PERL) $(PLTCLGEN) $(top_srcdir)/bindings/tcl - -# Build these files first to sort out dependency issues: -$(top_srcdir)/bindings/tcl/tclAPI.c: $(tclgenfiles) - -# uninstalled header files that should be distributed -noinst_HEADERS = $(tclgenfiles) - -# ITKINCCMD same as TCLINCCMD so not defined in top-level configure.in -AM_CPPFLAGS = -I$(top_srcdir)/include $(INCLTDL) $(TCLINCCMD) $(ITCLINCCMD) $(TKINCCMD) -version = -version-info $(SOVERSION) - -libtclmatrix@LIB_TAG@_la_SOURCES = \ - tclMatrix.c \ - matrixInit.c - -libtclmatrix@LIB_TAG@_la_LDFLAGS = $(version) $(RPATH) -no-undefined \ - $(TCLLIBCMD) -lm - -if enable_tcl -tclsources = \ - $(top_srcdir)/bindings/tcl/tclAPI.c \ - $(top_srcdir)/bindings/tcl/tclMain.c -endif - -if enable_tk -tksources = \ - $(top_srcdir)/bindings/tk/Pltk_Init.c \ - $(top_srcdir)/bindings/tk/plframe.c \ - $(top_srcdir)/bindings/tk/plr.c \ - $(top_srcdir)/bindings/tk/tcpip.c \ - $(top_srcdir)/bindings/tk/tkMain.c -endif - -## This library should probably be broken up further into at least a tcl -## and tk component. - -libplplottcltk@LIB_TAG@_la_SOURCES = $(tclsources) $(tksources) - -## library ordering is important here -libplplottcltk@LIB_TAG@_la_LDFLAGS = \ - $(version) \ - $(RPATH) \ - -no-undefined \ - $(libplplot) \ - $(libmatrix) \ - $(ITKLIBCMD) \ - $(TKLIBCMD) \ - $(ITCLLIBCMD) \ - $(TCLLIBCMD) \ - $(X_LIBS) -lX11 -lm - -CLEANFILES = $(generated_scripts) tclIndex -MAINTAINERCLEANFILES = $(tclgenfiles) - -### FIXME: Brute force inclusion in dist tarball. The files below may -### be treated in a different way for installation [RL, 2003-03-06] -EXTRA_DIST = \ - pltclgen \ - plapi.tpl \ - tclcmd.tpl \ - README.tclAPI \ - plitclgen Deleted: trunk/bindings/tk/Makefile.am =================================================================== --- trunk/bindings/tk/Makefile.am 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/bindings/tk/Makefile.am 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,101 +0,0 @@ -# bindings/tk/Makefile.am for PLplot -### -### Process this file with automake to produce Makefile.in -### -# Copyright (C) 2002 Alan W. Irwin -# Copyright (C) 2003, 2004 Rafael Laboissiere -# -# This file is part of PLplot. -# -# This file 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. -# -# This file 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; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -tcldir = $(TCL_DIR) - -libplplottcltk = $(top_builddir)/bindings/tcl/libplplottcltk$(LIB_TAG).la -libplplot = $(top_builddir)/src/libplplot$(LIB_TAG).la - -tcldata = \ - FileSelector.tcl \ - Pltkwin.tcl \ - about.tcl \ - help_gui.tcl \ - help_keys.tcl \ - help_tcltk.tcl \ - plclient.tcl \ - plcolor.tcl \ - plconfig.tcl \ - pldefaults.tcl \ - plplot.tcl \ - plserver.tcl \ - pltools.tcl \ - plwidget.tcl - -itkdata = \ - PLWin.itk \ - PLXWin.itk - -paldata = \ - cmap0a.pal \ - cmap1a.pal \ - cmap1a1.pal \ - cmap1b.pal \ - cmap1c.pal \ - cmap1d.pal - -if enable_tk - -# ITKINCCMD same as TCLINCCMD so not defined in top-level configure.in -AM_CPPFLAGS = \ - -I$(top_srcdir)/include \ - -I$(top_srcdir)/bindings/tcl/ \ - $(INCLTDL) \ - $(TCLINCCMD) \ - $(TKINCCMD) - -pkginclude_HEADERS = pltk.h -bin_PROGRAMS = plserver -plserver_SOURCES = plserver.c -plserver_LDFLAGS = $(RPATH) -no-undefined -plserver_LDADD = $(libplplot) $(libplplottcltk) - -if enable_itcl -mkindex = ../../scripts/mktclIndex -itcl -else -mkindex = ../../scripts/mktclIndex -tcl -endif - -$(top_srcdir)/bindings/tk/tclIndex: $(tcldata) $(itkdata) - cd $(top_srcdir)/bindings/tk ; \ - $(mkindex) - -nodist_tcl_DATA = $(top_srcdir)/bindings/tk/tclIndex -tcl_DATA = $(tcldata) $(itkdata) $(paldata) - -endif - -CLEANFILES = $(top_srcdir)/bindings/tk/tclIndex - -### FIXME: Brute force inclusion in dist tarball. The files below may -### be treated in a different way for installation [RL, 2003-03-06] -EXTRA_DIST = \ - pltk.h \ - pltkd.h \ - plserver.h \ - tcpip.h \ - tkshell.c \ - stupidtk.c \ - app-defaults \ - $(tcldata) \ - $(itkdata) \ - $(paldata) Deleted: trunk/configure.ac =================================================================== --- trunk/configure.ac 2007-11-24 22:28:00 UTC (rev 8038) +++ trunk/configure.ac 2007-11-24 22:30:26 UTC (rev 8039) @@ -1,317 +0,0 @@ -dnl configure.ac for PLplot -*- autoconf -*- -dnl -dnl Process this file with autoconf to produce a configure script. -dnl -dnl Copyright (C) 1994, 2004 Maurice LeBrun -dnl Copyright (C) 2002, 2003, 2004 Rafael Laboissiere -dnl Copyright (C) 2002, 2003, 2004 Alan W. Irwin -dnl Copyright (C) 2003, 2004 Joao Cardoso -dnl Copyright (C) 2004 Andrew Roach -dnl Copyright (C) 2005 Thomas J. Duck -dnl Copyright (C) 2006 Andrew Ross -dnl -dnl This file is part of PLplot. -dnl -dnl PLplot is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU Library General Public License as published -dnl by the Free Software Foundation; version 2 of the License. -dnl -dnl PLplot is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU Library General Public License for more details. -dnl -dnl You should have received a copy of the GNU Library General Public License -dnl along with the file PLplot; if not, write to the Free Software -dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -dnl Note: to recover legacy behavior as regards (site-specific) defaults -dnl files, configure using: -dnl -dnl $ CONFIG_SITE=~/config/cf_plplot.in ./configure - - -dnl ======================================================================= -dnl Autoconf/automake initializations -dnl ======================================================================= - -dnl Package version number -dnl [ If changing the line below by hand, please keep the format up to and -dnl including the version number, otherwise it will fool up the -dnl bootstrap.sh script. By the way, the line below can be changed using -dnl options --version and --date-version of that script. ] - -AC_INIT(plplot, 5.8.0, plp...@li...) -AC_PREREQ(2.50) -AC_REVISION($Revision$) - -dnl Date of release. This can be set by hand, but the prefered method -dnl is by specifying one of the option --version of --date-version to -dnl bootstrap.sh - -RELEASE_DATE=2007-11-18 -AC_SUBST(RELEASE_DATE) - -dnl Check if we are in the right directory (this used to be done by -dnl AC_INIT) - -AC_CONFIG_SRCDIR(src/plcore.c) - -dnl Use cf dir instead of the top dir for all autotools-related files - -AC_CONFIG_AUX_DIR(cf) -AC_CONFIG_MACRO_DIR(cf) - -dnl Configuration headers - -AC_CONFIG_HEADERS([config.h include/plConfig.h include/plDevs.h]) - -dnl Automake initialization - -AM_INIT_AUTOMAKE(1.8.2) - -dnl Default installation prefix - -AC_PREFIX_DEFAULT(/usr/local) -test "$prefix" = NONE && prefix=$ac_default_prefix -test "$exec_prefix" = NONE && exec_prefix=$prefix - - -dnl ======================================================================= -dnl PLplot library sonames and soversions -dnl ======================================================================= - -dnl Version numbers for the shared C libraries. - -SOVERSION=11:1:0 -AC_SUBST(SOVERSION) - -dnl Version number for the shared C++ library. After version 5.2.1 was -dnl released, the C++ bindings were changed and backward incompatibilities -dnl were introduced. Hence the different strings for SOVERSION and -dnl CPP_SOVERSION. - -CPP_SOVERSION=11:0:2 -AC_SUBST(CPP_SOVERSION) - -dnl Version number for the shared F77 library. Starting with release 5.3.1 -dnl of PLplot, the Fortran shared library will have a separate SOVERSION -dnl than that of the C PLplot library. This is necessary because there is a -dnl specialized Fortran API. - -F77_SOVERSION=10:0:1 -AC_SUBST(F77_SOVERSION) - -dnl Version number for the shared F95 library. - -F95_SOVERSION=0:0:0 -AC_SUBST(F95_SOVERSION) - -dnl Version number for the CSIRO libraries distributed in lib/csa and -dnl lib/nn. This information was buried into lib/{csa,nn}/Makefile.am and it -dnl is made explicit below. It may happen that, in the future, we will need -dnl separate soversions for libcsirocsa and libcsironn, but let us keep an -dnl unique soversion for now. - -CSIRO_SOVERSION=0:1:0 -AC_SUBST(CSIRO_SOVERSION) - -dnl Version number for the libplplotgnome* library distributed in drivers/. - -PLPLOTGNOME_SOVERSION=0:0:0 -AC_SUBST(PLPLOTGNOME_SOVERSION) - -dnl According to man package, PLPLOT_TCL_VERSION (used in the various -dnl pkgIndex.tcl scripts) should be strictly numbers alternativing with -dnl decimal points with the first number (the major number) signifying -dnl incompatible changes in the scripts. To keep our life simple, let us -dnl use the major number from the package version for now. -dnl N.B. both LIBRARY_VERSION and PLPLOT_TCL_VERSION are used for separate -dnl purposes in the various configured pkgIndex.tcl scripts. - -PLPLOT_TCL_VERSION=5 -AC_SUBST(PLPLOT_TCL_VERSION) - - -dnl ======================================================================= -dnl Check for programs -dnl ======================================================================= - -dnl Require C compile - -AC_PROG_CC -AM_PROG_CC_C_O -AM_CONDITIONAL(cc_is_gcc, [test "$GCC" = yes]) - -dnl ======================================================================= -dnl Compilation and build options (PLFLT, rpath, install locations) -dnl Note, must come before cf/java.ac since that depends on, e.g., LIB_DIR. -d... [truncated message content] |
From: <and...@us...> - 2007-12-03 17:08:47
|
Revision: 8057 http://plplot.svn.sourceforge.net/plplot/?rev=8057&view=rev Author: andrewross Date: 2007-12-03 09:08:51 -0800 (Mon, 03 Dec 2007) Log Message: ----------- First crack at support for date / time formatting on axis. This introduces a new API function pltimefmt which allows you to specify the way dates and times will be formatted. Formatting is all done using strftime - see the documentation for a full list of supported formats on your platform. In calls to plbox, use the "d" option (for date) to enable the date / time labelling. The data will be interpreted as seconds since the epoch, as used by the gmtime routine. Example 29 demonstrates some of the new capabilities. Modified Paths: -------------- trunk/examples/c/CMakeLists.txt trunk/include/plplot.h trunk/include/plplotP.h trunk/include/plstrm.h trunk/src/plbox.c trunk/src/plcore.c trunk/test/test_c.sh.in Added Paths: ----------- trunk/examples/c/x29c.c Modified: trunk/examples/c/CMakeLists.txt =================================================================== --- trunk/examples/c/CMakeLists.txt 2007-12-03 12:43:20 UTC (rev 8056) +++ trunk/examples/c/CMakeLists.txt 2007-12-03 17:08:51 UTC (rev 8057) @@ -52,6 +52,7 @@ "26" "27" "28" +"29" ) if(BUILD_TEST) Added: trunk/examples/c/x29c.c =================================================================== --- trunk/examples/c/x29c.c (rev 0) +++ trunk/examples/c/x29c.c 2007-12-03 17:08:51 UTC (rev 8057) @@ -0,0 +1,156 @@ +/* $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 "plcdemos.h" + +#include <time.h> + +static PLFLT x[365], y[365]; + +/* Function prototypes */ + +void plot1(); +void plot2(); + +/*--------------------------------------------------------------------------*\ + * 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). + * +\*--------------------------------------------------------------------------*/ + +int +main(int argc, const char *argv[]) +{ + + /* Parese command line arguments */ + plparseopts(&argc, argv, PL_PARSE_FULL); + + /* Initialize plplot */ + plinit(); + + plot1(); + + plot2(); + + /* Don't forget to call plend() to finish off! */ + plend(); + exit(0); +} + +/* Plot a model diurnal cycle of temperature */ +void +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); + printf("%d %f\n",i,x[i]); + y[i] = 15.0 - 5.0*cos( 2*M_PI*((PLFLT) i / (PLFLT) 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); + pltimefmt("%H:%M"); + plbox("bcnstd", 3.0*60.0*60.0,3, "bcnstv", 1, 5); + + plcol(3); + pllab("Time (hours:mins)", "Temperature (degC)", "#frPLplot Example 29 - Daily temperature"); + + plcol(4); + + plline(npts, x, y); +} + +/* Plot the number of hours of daylight as a function of day for a year */ +void +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; + } + + pladv(0); + + plvsta(); + plwind(xmin, xmax, ymin, ymax); + + /* Draw a box with ticks spaced every 56 days in X and 3 hours in Y. */ + plcol0(1); + pltimefmt("%d %b"); + plbox("bcnstd", 56.0*24.0*60.0*60.0,8, "bcnstv", 3, 3); + + plcol(3); + pllab("Date", "Hours of daylight", "#frPLplot Example 29 - Hours of daylight at 51.5N"); + + plcol(4); + + plline(npts, x, y); + +} Modified: trunk/include/plplot.h =================================================================== --- trunk/include/plplot.h 2007-12-03 12:43:20 UTC (rev 8056) +++ trunk/include/plplot.h 2007-12-03 17:08:51 UTC (rev 8057) @@ -596,6 +596,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 @@ -1460,6 +1461,11 @@ PLDLLIMPEXP void c_pltext(void); +/* Set the format for date / time labels */ + +PLDLLIMPEXP void +c_pltimefmt(const char *); + /* Sets the edges of the viewport with the given aspect ratio, leaving */ /* room for labels. */ Modified: trunk/include/plplotP.h =================================================================== --- trunk/include/plplotP.h 2007-12-03 12:43:20 UTC (rev 8056) +++ trunk/include/plplotP.h 2007-12-03 17:08:51 UTC (rev 8057) @@ -112,6 +112,7 @@ #include <string.h> #include <limits.h> #include <float.h> +#include <time.h> #if defined(PLPLOT_WINTK) #elif defined(WIN32) &! defined (__GNUC__) /* Redefine tmpfile()! (AM)*/ @@ -699,6 +700,11 @@ void plP_gprec(PLINT *p_setp, PLINT *p_prec); +/* Get the date / time format for numeric labels */ + +const char * +plP_gtimefmt(); + /* Computes the length of a string in mm, including escape sequences. */ PLFLT Modified: trunk/include/plstrm.h =================================================================== --- trunk/include/plstrm.h 2007-12-03 12:43:20 UTC (rev 8056) +++ trunk/include/plstrm.h 2007-12-03 17:08:51 UTC (rev 8057) @@ -396,6 +396,7 @@ * precis User-specified precision * xdigmax.. Allowed #digits in axes labels * xdigits.. Actual field widths (returned) + * timefmt Format string (for strftime) * *************************************************************************** * @@ -644,6 +645,7 @@ PLINT setpre, precis; PLINT xdigmax, ydigmax, zdigmax; PLINT xdigits, ydigits, zdigits; + char *timefmt; /* Variables governing physical coordinate system */ Modified: trunk/src/plbox.c =================================================================== --- trunk/src/plbox.c 2007-12-03 12:43:20 UTC (rev 8056) +++ trunk/src/plbox.c 2007-12-03 17:08:51 UTC (rev 8057) @@ -90,6 +90,7 @@ * a: Draw axis (X is horizontal line Y=0, Y is vertical line X=0) * b: Draw bottom (X) or left (Y) edge of frame * c: Draw top (X) or right (Y) edge of frame + * d: Interpret axis as a date/time when writing labels * f: Always use fixed point numeric labels * g: Draws a grid at the major tick interval * h: Draws a grid at the minor tick interval @@ -113,8 +114,8 @@ const char *xopt, PLFLT xtick, PLINT nxsub, const char *yopt, PLFLT ytick, PLINT nysub) { - PLINT lax, lbx, lcx, lgx, lix, llx, lsx, ltx; - PLINT lay, lby, lcy, lgy, liy, lly, lsy, lty; + PLINT lax, lbx, lcx, ldx, lgx, lix, llx, lsx, ltx; + PLINT lay, lby, lcy, ldy, lgy, liy, lly, lsy, lty; PLINT xmajor, xminor, ymajor, yminor; PLINT i, i1x, i2x, i3x, i4x, i1y, i2y, i3y, i4y; PLINT nxsub1, nysub1; @@ -151,6 +152,7 @@ lax = plP_stsearch(xopt, 'a'); lbx = plP_stsearch(xopt, 'b'); lcx = plP_stsearch(xopt, 'c'); + ldx = plP_stsearch(xopt, 'd'); lgx = plP_stsearch(xopt, 'g'); lix = plP_stsearch(xopt, 'i'); llx = plP_stsearch(xopt, 'l'); @@ -160,6 +162,7 @@ lay = plP_stsearch(yopt, 'a'); lby = plP_stsearch(yopt, 'b'); lcy = plP_stsearch(yopt, 'c'); + ldy = plP_stsearch(yopt, 'd'); lgy = plP_stsearch(yopt, 'g'); liy = plP_stsearch(yopt, 'i'); lly = plP_stsearch(yopt, 'l'); @@ -1166,14 +1169,18 @@ label_box(const char *xopt, PLFLT xtick1, const char *yopt, PLFLT ytick1) { static char string[40]; - PLINT lfx, lix, llx, lmx, lnx, ltx; - PLINT lfy, liy, lly, lmy, lny, lty, lvy; + PLINT ldx, lfx, lix, llx, lmx, lnx, ltx; + PLINT ldy, lfy, liy, lly, lmy, lny, lty, lvy; PLFLT vpwxmi, vpwxma, vpwymi, vpwyma; PLFLT vpwxmin, vpwxmax, vpwymin, vpwymax; PLFLT pos, tn, tp, offset, height; + const char *timefmt; + struct tm *tm; + time_t t; /* Set plot options from input */ + ldx = plP_stsearch(xopt, 'd'); lfx = plP_stsearch(xopt, 'f'); lix = plP_stsearch(xopt, 'i'); llx = plP_stsearch(xopt, 'l'); @@ -1181,6 +1188,7 @@ lnx = plP_stsearch(xopt, 'n'); ltx = plP_stsearch(xopt, 't'); + ldy = plP_stsearch(yopt, 'd'); lfy = plP_stsearch(yopt, 'f'); liy = plP_stsearch(yopt, 'i'); lly = plP_stsearch(yopt, 'l'); @@ -1204,10 +1212,19 @@ plgxax(&xdigmax, &xdigits); pldprec(vpwxmi, vpwxma, xtick1, lfx, &xmode, &xprec, xdigmax, &xscale); + timefmt = plP_gtimefmt(); tp = xtick1 * (1. + floor(vpwxmi / xtick1)); for (tn = tp; BETW(tn, vpwxmi, vpwxma); tn += xtick1) { - plform(tn, xscale, xprec, string, llx, lfx); + if (ldx) { + t = (time_t) tn; + tm = gmtime(&t); + fprintf(stderr,"%f %d %d\n",tn,tm->tm_hour,tm->tm_min); + strftime(string, 40, timefmt, tm); + } + else { + plform(tn, xscale, xprec, string, llx, lfx); + } height = lix ? 1.75 : 1.5; pos = (vpwxmax > vpwxmin)? (tn - vpwxmi) / (vpwxma - vpwxmi): @@ -1222,7 +1239,7 @@ /* Write separate exponential label if mode = 1. */ - if (!llx && xmode) { + if (!llx && !ldx && xmode) { pos = 1.0; height = 3.2; sprintf(string, "(x10#u%d#d)", (int) xscale); @@ -1244,7 +1261,14 @@ ydigits = 0; tp = ytick1 * (1. + floor(vpwymi / ytick1)); for (tn = tp; BETW(tn, vpwymi, vpwyma); tn += ytick1) { - plform(tn, yscale, yprec, string, lly, lfy); + if (ldy) { + t = (time_t) tn; + tm = gmtime(&t); + strftime(string, 40, timefmt, tm); + } + else { + plform(tn, yscale, yprec, string, lly, lfy); + } pos = (vpwymax > vpwymin)? (tn - vpwymi) / (vpwyma - vpwymi): (vpwyma - tn) / (vpwyma - vpwymi); @@ -1275,7 +1299,7 @@ /* Write separate exponential label if mode = 1. */ - if (!lly && ymode) { + if (!lly && !ldy && ymode) { sprintf(string, "(x10#u%d#d)", (int) yscale); offset = 0.02; height = 2.0; Modified: trunk/src/plcore.c =================================================================== --- trunk/src/plcore.c 2007-12-03 12:43:20 UTC (rev 8056) +++ trunk/src/plcore.c 2007-12-03 17:08:51 UTC (rev 8057) @@ -1700,6 +1700,9 @@ if (plsc->zdigmax == 0) plsc->zdigmax = 3; + if (plsc->timefmt == NULL) + pltimefmt("%c"); + /* Switch to graphics mode and set color and arrow style*/ plgra(); @@ -1830,6 +1833,8 @@ if (plsc->arrow_x) free_mem(plsc->arrow_x); if (plsc->arrow_y) free_mem(plsc->arrow_y); + if (plsc->timefmt) free_mem(plsc->timefmt); + /* Free malloc'ed stream if not in initial stream, else clear it out */ if (ipls > 0) { @@ -2932,6 +2937,23 @@ *p_prec = plsc->precis; } +void +c_pltimefmt(const char *fmt) +{ + if (plsc->timefmt) + free_mem(plsc->timefmt); + + plsc->timefmt = (char *) malloc((size_t) (strlen(fmt)+1)); + strcpy(plsc->timefmt, fmt); + +} + +const char * +plP_gtimefmt() +{ + return (const char *) plsc->timefmt; +} + /* * Set the escape character for text strings. * From C you can pass as a character, from Fortran it needs to be the decimal Modified: trunk/test/test_c.sh.in =================================================================== --- trunk/test/test_c.sh.in 2007-12-03 12:43:20 UTC (rev 8056) +++ trunk/test/test_c.sh.in 2007-12-03 17:08:51 UTC (rev 8057) @@ -30,7 +30,7 @@ # 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 27 28; do + 21 22 23 24 25 26 27 28 29; do $cdir/x${index}c -dev $device -o ${OUTPUT_DIR}/x${index}c.$dsuffix \ $options 2> test.error # Look for any status codes (segfaults, plexit) from the examples themselves. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2007-12-12 15:44:13
|
Revision: 8082 http://plplot.svn.sourceforge.net/plplot/?rev=8082&view=rev Author: andrewross Date: 2007-12-12 07:44:17 -0800 (Wed, 12 Dec 2007) Log Message: ----------- Update date / time formatting code to be more intelligent about where to put ticks and labels. Modified Paths: -------------- trunk/examples/c/x29c.c trunk/include/plplotP.h trunk/src/plbox.c trunk/src/pldtik.c trunk/src/plot3d.c trunk/src/plsym.c Modified: trunk/examples/c/x29c.c =================================================================== --- trunk/examples/c/x29c.c 2007-12-10 22:22:16 UTC (rev 8081) +++ trunk/examples/c/x29c.c 2007-12-12 15:44:17 UTC (rev 8082) @@ -98,7 +98,7 @@ /* Draw a box with ticks spaced every 3 hour in X and 1 degree C in Y. */ plcol0(1); pltimefmt("%H:%M"); - plbox("bcnstd", 3.0*60.0*60.0,3, "bcnstv", 1, 5); + plbox("bcnstd", 3.0*60*60, 3, "bcnstv", 1, 5); plcol(3); pllab("Time (hours:mins)", "Temperature (degC)", "#frPLplot Example 29 - Daily temperature"); @@ -146,7 +146,7 @@ /* Draw a box with ticks spaced every 56 days in X and 3 hours in Y. */ plcol0(1); pltimefmt("%d %b"); - plbox("bcnstd", 56.0*24.0*60.0*60.0,8, "bcnstv", 3, 3); + plbox("bcnstd", 0.0, 0, "bcnstv", 3, 3); plcol(3); pllab("Date", "Hours of daylight", "#frPLplot Example 29 - Hours of daylight at 51.5N"); @@ -162,13 +162,21 @@ { int i, npts; PLFLT xmin, xmax, ymin, ymax; - time_t tstart; + 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, 6 = July */ - tm.tm_mday = 0; /* 0 = 1st of month */ + tm.tm_mday = 1; /* 0 = 1st of month */ tm.tm_hour = 0; tm.tm_min = 0; tm.tm_sec = 0; @@ -177,7 +185,7 @@ npts = 62; - xmin = tstart; + xmin = (PLFLT) tstart + toff; xmax = xmin + npts*60.0*60.0*24.0; ymin = 0.0; ymax = 5.0; Modified: trunk/include/plplotP.h =================================================================== --- trunk/include/plplotP.h 2007-12-10 22:22:16 UTC (rev 8081) +++ trunk/include/plplotP.h 2007-12-12 15:44:17 UTC (rev 8082) @@ -404,8 +404,14 @@ /* Determines interval between numeric labels */ void -pldtik(PLFLT vmin, PLFLT vmax, PLFLT *tick, PLINT *nsubt); +pldtik(PLFLT vmin, PLFLT vmax, PLFLT *tick, PLINT *nsubt, PLBOOL ld); +/* Determine factor to convert date / time in seconds to more natural + * units */ + +void +pldtfac(PLFLT vmin, PLFLT vmax, PLFLT *factor, PLFLT *tstart); + /* Determines precision of box labels */ void @@ -722,7 +728,7 @@ /* Searches string str for character chr (case insensitive). */ -PLINT +PLBOOL plP_stsearch(const char *str, int chr); /* Conversion functions */ Modified: trunk/src/plbox.c =================================================================== --- trunk/src/plbox.c 2007-12-10 22:22:16 UTC (rev 8081) +++ trunk/src/plbox.c 2007-12-12 15:44:17 UTC (rev 8082) @@ -114,8 +114,8 @@ const char *xopt, PLFLT xtick, PLINT nxsub, const char *yopt, PLFLT ytick, PLINT nysub) { - PLINT lax, lbx, lcx, ldx, lgx, lix, llx, lsx, ltx; - PLINT lay, lby, lcy, ldy, lgy, liy, lly, lsy, lty; + PLBOOL lax, lbx, lcx, ldx, lgx, lix, llx, lsx, ltx; + PLBOOL lay, lby, lcy, ldy, lgy, liy, lly, lsy, lty; PLINT xmajor, xminor, ymajor, yminor; PLINT i, i1x, i2x, i3x, i4x, i1y, i2y, i3y, i4y; PLINT nxsub1, nysub1; @@ -125,6 +125,7 @@ PLFLT xtick1, ytick1, vpwxmi, vpwxma, vpwymi, vpwyma; PLFLT vpwxmin, vpwxmax, vpwymin, vpwymax; PLFLT xp0, yp0, tn, tp, temp; + PLFLT factor, tstart; if (plsc->level < 3) { plabort("plbox: Please set up window first"); @@ -195,10 +196,10 @@ /* Calculate tick spacing */ if (ltx || lgx) - pldtik(vpwxmi, vpwxma, &xtick1, &nxsub1); + pldtik(vpwxmi, vpwxma, &xtick1, &nxsub1, ldx); if (lty || lgy) - pldtik(vpwymi, vpwyma, &ytick1, &nysub1); + pldtik(vpwymi, vpwyma, &ytick1, &nysub1, ldy); /* n.b. large change; xtick1, nxsub1, ytick1, nysub1 always positive. */ /* Set up tick variables */ @@ -234,7 +235,12 @@ if (lbx) { plP_movphy(vppxmi, vppymi); if (ltx) { - tp = xtick1 * floor(vpwxmi / xtick1); + if (ldx) { + pldtfac(vpwxmi, vpwxma, &factor, &tstart); + tp = xtick1 * (floor((vpwxmi-tstart) / xtick1)) + tstart; + } + else + tp = xtick1 * floor(vpwxmi / xtick1); for (;;) { tn = tp + xtick1; if (lsx) { @@ -267,7 +273,12 @@ if (lcy) { plP_movphy(vppxma, vppymi); if (lty) { - tp = ytick1 * floor(vpwymi / ytick1); + if (ldy) { + pldtfac(vpwymi, vpwyma, &factor, &tstart); + tp = ytick1 * (floor((vpwymi-tstart) / ytick1)) + tstart; + } + else + tp = ytick1 * floor(vpwymi / ytick1); for (;;) { tn = tp + ytick1; if (lsy) { @@ -300,7 +311,12 @@ if (lcx) { plP_movphy(vppxma, vppyma); if (ltx) { - tp = xtick1 * (floor(vpwxma / xtick1) + 1); + if (ldx) { + pldtfac(vpwxmi, vpwxma, &factor, &tstart); + tp = xtick1 * (floor((vpwxma-tstart) / xtick1) + 1) + tstart; + } + else + tp = xtick1 * (floor(vpwxma / xtick1) + 1); for (;;) { tn = tp - xtick1; if (lsx) { @@ -333,7 +349,12 @@ if (lby) { plP_movphy(vppxmi, vppyma); if (lty) { - tp = ytick1 * (floor(vpwyma / ytick1) + 1); + if (ldy) { + pldtfac(vpwymi, vpwyma, &factor, &tstart); + tp = ytick1 * (floor((vpwymi-tstart) / ytick1)+1) + tstart; + } + else + tp = ytick1 * (floor(vpwyma / ytick1) + 1); for (;;) { tn = tp - ytick1; if (lsy) { @@ -635,7 +656,7 @@ PLFLT tick, PLINT nsub, PLINT nolast, PLINT *digits) { static char string[40]; - PLINT lb, lf, li, ll, ln, ls, lt, lu; + PLINT lb, ld, lf, li, ll, ln, ls, lt, lu; PLINT major, minor, mode, prec, scale; PLINT i, i1, i2, i3, i4; PLINT nsub1; @@ -659,6 +680,7 @@ nsub1 = nsub; lb = plP_stsearch(opt, 'b'); + ld = plP_stsearch(opt, 'd'); lf = plP_stsearch(opt, 'f'); li = plP_stsearch(opt, 'i'); ll = plP_stsearch(opt, 'l'); @@ -675,7 +697,7 @@ if (ll) tick1 = (vmax > vmin) ? 1.0 : -1.0 ; if (lt) - pldtik(vmin, vmax, &tick1, &nsub1); + pldtik(vmin, vmax, &tick1, &nsub1, ld); if (li) { i1 = minor; @@ -845,7 +867,7 @@ PLFLT tick, PLINT nsub, PLINT *digits) { static char string[40]; - PLINT lb, lc, lf, li, ll, lm, ln, ls, lt, lu, lv; + PLINT lb, lc, ld, lf, li, ll, lm, ln, ls, lt, lu, lv; PLINT i, mode, prec, scale; PLINT nsub1, lstring; PLFLT pos, tn, tp, temp, height, tick1; @@ -867,6 +889,7 @@ lb = plP_stsearch(opt, 'b'); lc = plP_stsearch(opt, 'c'); + ld = plP_stsearch(opt, 'd'); lf = plP_stsearch(opt, 'f'); li = plP_stsearch(opt, 'i'); ll = plP_stsearch(opt, 'l'); @@ -893,7 +916,7 @@ tick1 = 1.0; if (lt) - pldtik(vmin, vmax, &tick1, &nsub1); + pldtik(vmin, vmax, &tick1, &nsub1, ld); if ((li && !right) || (!li && right)) { minor = -minor; @@ -1169,11 +1192,12 @@ label_box(const char *xopt, PLFLT xtick1, const char *yopt, PLFLT ytick1) { static char string[40]; - PLINT ldx, lfx, lix, llx, lmx, lnx, ltx; - PLINT ldy, lfy, liy, lly, lmy, lny, lty, lvy; + PLBOOL ldx, lfx, lix, llx, lmx, lnx, ltx; + PLBOOL ldy, lfy, liy, lly, lmy, lny, lty, lvy; PLFLT vpwxmi, vpwxma, vpwymi, vpwyma; PLFLT vpwxmin, vpwxmax, vpwymin, vpwymax; PLFLT pos, tn, tp, offset, height; + PLFLT factor, tstart; const char *timefmt; struct tm *tm; time_t t; @@ -1214,7 +1238,12 @@ pldprec(vpwxmi, vpwxma, xtick1, lfx, &xmode, &xprec, xdigmax, &xscale); timefmt = plP_gtimefmt(); - tp = xtick1 * (1. + floor(vpwxmi / xtick1)); + if (ldx) { + pldtfac(vpwxmi, vpwxma, &factor, &tstart); + tp = xtick1 * (1. + floor((vpwxmi-tstart) / xtick1)) + tstart; + } + else + tp = xtick1 * (1. + floor(vpwxmi / xtick1)); for (tn = tp; BETW(tn, vpwxmi, vpwxma); tn += xtick1) { if (ldx) { t = (time_t) tn; @@ -1258,7 +1287,12 @@ pldprec(vpwymi, vpwyma, ytick1, lfy, &ymode, &yprec, ydigmax, &yscale); ydigits = 0; - tp = ytick1 * (1. + floor(vpwymi / ytick1)); + if (ldy) { + pldtfac(vpwymi, vpwyma, &factor, &tstart); + tp = ytick1 * (1. + floor((vpwymi-tstart) / ytick1)) + tstart; + } + else + tp = ytick1 * (1. + floor(vpwymi / ytick1)); for (tn = tp; BETW(tn, vpwymi, vpwyma); tn += ytick1) { if (ldy) { t = (time_t) tn; Modified: trunk/src/pldtik.c =================================================================== --- trunk/src/pldtik.c 2007-12-10 22:22:16 UTC (rev 8081) +++ trunk/src/pldtik.c 2007-12-12 15:44:17 UTC (rev 8082) @@ -35,11 +35,22 @@ \*----------------------------------------------------------------------*/ void -pldtik(PLFLT vmin, PLFLT vmax, PLFLT *tick, PLINT *nsubt) +pldtik(PLFLT vmin, PLFLT vmax, PLFLT *tick, PLINT *nsubt, PLBOOL ld) { PLFLT t1, t2, tick_reasonable; PLINT np, ns; + PLFLT diff, factor; + + if (ld) { + /* Check suitable units for tick spacing */ + pldtfac(vmin, vmax, &factor, NULL); + + *tick = *tick / factor; + vmin = vmin / factor; + vmax = vmax / factor; + } + /* Magnitude of min/max difference to get tick spacing */ t1 = (PLFLT) log10(ABS(vmax - vmin)); @@ -84,8 +95,107 @@ *nsubt = ns; *nsubt = ABS(*nsubt); + + if (ld) { + *tick = *tick*factor; + } } +/*----------------------------------------------------------------------*\ + * PLFLT pldtfac() + * + * Calculate factor to convert a date/time interval in seconds + * into a more natural units (minutes, hours, days, week, years). + * Also optionally calculate the sensible start time for counting ticks + * from (e.g. beginning of day, beginning of year). + * Used to calculate sensible tick and label spacings. +\*----------------------------------------------------------------------*/ +void +pldtfac(PLFLT vmin, PLFLT vmax, PLFLT *factor, PLFLT *start) { + PLFLT diff, tdiff; + time_t t, t2; + struct tm tm; + + diff = vmax - vmin; + + if (start != NULL) { + t = (time_t) vmin; + tm = *gmtime(&t); + t2 = mktime(&tm); + /* Arg! This is because mktime is in local time and we need to + correct for the offset. C time handling really is broken... */ + tdiff = difftime(t,t2); + + } + + if (diff < 3.0*60.0) { + /* Seconds */ + *factor = 1.0; + if (start != NULL) { + tm.tm_sec = 0; + t = mktime(&tm); + *start = (PLFLT)t+tdiff; + } + } + else if (diff < 3.0*60.0*60.0) { + /* Minutes */ + *factor = 60.0; + if (start != NULL) { + tm.tm_sec = 0; + tm.tm_min = 0; + t = mktime(&tm); + *start = (PLFLT)t+tdiff; + } + } + else if (diff < 3.0*60.0*60.0*24.0) { + /* Hours */ + *factor = 60.0*60.0; + if (start != NULL) { + tm.tm_sec = 0; + tm.tm_min = 0; + tm.tm_hour = 0; + t = mktime(&tm); + *start = (PLFLT)t+tdiff; + } + } + else if (diff < 3.0*60.0*60.0*24.0*7.0) { + /* Days */ + *factor = 60.0*60.0*24.0; + if (start != NULL) { + tm.tm_sec = 0; + tm.tm_min = 0; + tm.tm_hour = 0; + t = mktime(&tm); + *start = (PLFLT)t+tdiff; + } + } + else if (diff < 3.0*60.0*60.0*24.0*365) { + /* Weeks */ + *factor = 60.0*60.0*24.0*7.0; + if (start != NULL) { + tm.tm_sec = 0; + tm.tm_min = 0; + tm.tm_hour = 0; + t = mktime(&tm); + *start = (PLFLT)t+tdiff; + } + } + else { + /* Years */ + *factor = 60.0*60.0*24.0*365.25; + if (start != NULL) { + tm.tm_sec = 0; + tm.tm_min = 0; + tm.tm_hour = 0; + tm.tm_mday = 1; + tm.tm_mon = 0; + t = mktime(&tm); + *start = (PLFLT)t+tdiff; + } + } + +} + /*----------------------------------------------------------------------*\ * void pldprec() * Modified: trunk/src/plot3d.c =================================================================== --- trunk/src/plot3d.c 2007-12-10 22:22:16 UTC (rev 8081) +++ trunk/src/plot3d.c 2007-12-12 15:44:17 UTC (rev 8082) @@ -448,7 +448,7 @@ PLINT nsub=0; /* get the tick spacing */ - pldtik(zmin, zmax, &tick, &nsub); + pldtik(zmin, zmax, &tick, &nsub, FALSE); /* determine the vertices for the background grid line */ bx[0] = (ixOrigin!=ixmin && ixFast==0) || ixFast > 0 ? xmax : xmin; @@ -1537,7 +1537,7 @@ zmin = (zmax_in > zmin_in) ? zmin_in: zmax_in; zmax = (zmax_in > zmin_in) ? zmax_in: zmin_in; - pldtik(zmin, zmax, &tick, &nsub); + pldtik(zmin, zmax, &tick, &nsub, FALSE); tp = tick * floor(zmin / tick) + tick; pl3upv = 0; Modified: trunk/src/plsym.c =================================================================== --- trunk/src/plsym.c 2007-12-10 22:22:16 UTC (rev 8081) +++ trunk/src/plsym.c 2007-12-12 15:44:17 UTC (rev 8082) @@ -982,20 +982,20 @@ } /*--------------------------------------------------------------------------*\ - * PLINT plP_stsearch() + * PLBOOL plP_stsearch() * * Searches string str for character chr (case insensitive). \*--------------------------------------------------------------------------*/ -PLINT +PLBOOL plP_stsearch(const char *str, int chr) { if (strchr(str, chr)) - return (PLINT) 1; + return TRUE; else if (strchr(str, toupper(chr))) - return (PLINT) 1; + return TRUE; else - return (PLINT) 0; + return FALSE; } /*--------------------------------------------------------------------------*\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2007-12-12 18:28:43
|
Revision: 8084 http://plplot.svn.sourceforge.net/plplot/?rev=8084&view=rev Author: andrewross Date: 2007-12-12 08:20:14 -0800 (Wed, 12 Dec 2007) Log Message: ----------- Update plenv to allow use with date/time formatted labels. Example 29 now demostrates this. Date / time labels are mutually exclusive with logarithmic ticks. Hard to see why you would want to apply both. Modified Paths: -------------- trunk/examples/c/x29c.c trunk/src/plvpor.c Modified: trunk/examples/c/x29c.c =================================================================== --- trunk/examples/c/x29c.c 2007-12-12 15:46:57 UTC (rev 8083) +++ trunk/examples/c/x29c.c 2007-12-12 16:20:14 UTC (rev 8084) @@ -138,16 +138,11 @@ y[j] = d; } - pladv(0); - - plvsta(); - plwind(xmin, xmax, ymin, ymax); - - /* Draw a box with ticks spaced every 56 days in X and 3 hours in Y. */ plcol0(1); pltimefmt("%d %b"); - plbox("bcnstd", 0.0, 0, "bcnstv", 3, 3); + plenv(xmin, xmax, ymin, ymax, 0, 40); + plcol(3); pllab("Date", "Hours of daylight", "#frPLplot Example 29 - Hours of daylight at 51.5N"); Modified: trunk/src/plvpor.c =================================================================== --- trunk/src/plvpor.c 2007-12-12 15:46:57 UTC (rev 8083) +++ trunk/src/plvpor.c 2007-12-12 16:20:14 UTC (rev 8084) @@ -69,6 +69,18 @@ * axis=32 : Same as 2 except Logarithmic X,Y tick marks. (The X,Y data have * to be converted to logarithms separately.) * axis=33 : Same as 32, but the grid will be also at the minor ticks. + * axis=40 : Same as 0 except date / time X tick marks. + * axis=41 : Same as 1 except date / time X tick marks. + * axis=42 : Same as 2 except date / time X tick marks. + * axis=43 : Same as 42, but the grid will be also at the minor ticks. + * axis=50 : Same as 0 except date / time Y tick marks. + * axis=51 : Same as 1 except date / time Y tick marks. + * axis=52 : Same as 2 except date / time Y tick marks. + * axis=53 : Same as 52, but the grid will be also at the minor ticks. + * axis=60 : Same as 0 except date / time X,Y tick marks. + * axis=61 : Same as 1 except date / time X,Y tick marks. + * axis=62 : Same as 2 except date / time X,Y tick marks. + * axis=63 : Same as 62, but the grid will be also at the minor ticks. \*--------------------------------------------------------------------------*/ void @@ -221,6 +233,42 @@ case 33: plbox("abcglnsth", (PLFLT) 0.0, 0, "abcglnstvh", (PLFLT) 0.0, 0); break; + case 40: + plbox("bcdnst", (PLFLT) 0.0, 0, "bcnstv", (PLFLT) 0.0, 0); + break; + case 41: + plbox("abcdnst", (PLFLT) 0.0, 0, "abcnstv", (PLFLT) 0.0, 0); + break; + case 42: + plbox("abcgdnst", (PLFLT) 0.0, 0, "abcgnstv", (PLFLT) 0.0, 0); + break; + case 43: + plbox("abcgdnsth", (PLFLT) 0.0, 0, "abcgnstvh", (PLFLT) 0.0, 0); + break; + case 50: + plbox("bcnst", (PLFLT) 0.0, 0, "bcdnstv", (PLFLT) 0.0, 0); + break; + case 51: + plbox("abcnst", (PLFLT) 0.0, 0, "abcdnstv", (PLFLT) 0.0, 0); + break; + case 52: + plbox("abcgnst", (PLFLT) 0.0, 0, "abcgdnstv", (PLFLT) 0.0, 0); + break; + case 53: + plbox("abcgnsth", (PLFLT) 0.0, 0, "abcgdnstvh", (PLFLT) 0.0, 0); + break; + case 60: + plbox("bcdnst", (PLFLT) 0.0, 0, "bcdnstv", (PLFLT) 0.0, 0); + break; + case 61: + plbox("abcdnst", (PLFLT) 0.0, 0, "abcdnstv", (PLFLT) 0.0, 0); + break; + case 62: + plbox("abcgdnst", (PLFLT) 0.0, 0, "abcgdnstv", (PLFLT) 0.0, 0); + break; + case 63: + plbox("abcgdnsth", (PLFLT) 0.0, 0, "abcgdnstvh", (PLFLT) 0.0, 0); + break; default: plwarn("plenv: Invalid axis argument"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-12-15 01:19:35
|
Revision: 8106 http://plplot.svn.sourceforge.net/plplot/?rev=8106&view=rev Author: airwin Date: 2007-12-14 17:19:39 -0800 (Fri, 14 Dec 2007) Log Message: ----------- Workaround (by adding extra dependencies that may not be intuitive) CMake 2-level recursive make issues that were screwing up parallel builds. Modified Paths: -------------- trunk/bindings/tk/CMakeLists.txt trunk/drivers/CMakeLists.txt trunk/examples/java/CMakeLists.txt trunk/examples/tcl/CMakeLists.txt Modified: trunk/bindings/tk/CMakeLists.txt =================================================================== --- trunk/bindings/tk/CMakeLists.txt 2007-12-14 13:51:03 UTC (rev 8105) +++ trunk/bindings/tk/CMakeLists.txt 2007-12-15 01:19:39 UTC (rev 8106) @@ -108,10 +108,6 @@ install(TARGETS plserver DESTINATION ${BIN_DIR}) -add_custom_target(tclIndex_tk ALL - DEPENDS ${tclIndex_DEPENDS} ${CMAKE_CURRENT_BINARY_DIR}/tclIndex -) - add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/tclIndex COMMAND ${TCL_TCLSH} ${MKTCLINDEX} ${MKTCLINDEX_ARGS} @@ -119,6 +115,19 @@ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) +add_custom_target(tclIndex_tk ALL + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/tclIndex +) + +# The tcl_files dependency is required to +# work around CMake 2-level make recursion issue where independent +# file dependency chains that refer to the same files must have +# target dependencies between them in order to work for parallel +# builds (and possibly some visual studio builds). +if(NOT CMAKE_CURRENT_BINARY_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + add_dependencies(tclIndex_tk tcl_files) +endif(NOT CMAKE_CURRENT_BINARY_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/tclIndex DESTINATION ${TCL_DIR} Modified: trunk/drivers/CMakeLists.txt =================================================================== --- trunk/drivers/CMakeLists.txt 2007-12-14 13:51:03 UTC (rev 8105) +++ trunk/drivers/CMakeLists.txt 2007-12-15 01:19:39 UTC (rev 8106) @@ -133,6 +133,8 @@ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE_ROOT_NAME}.rc ) + # Workaround CMake 2-level make recursion issue for parallel builds. + add_dependencies(${SOURCE_ROOT_NAME}_CHECK ${SOURCE_ROOT_NAME}) install(TARGETS ${SOURCE_ROOT_NAME} DESTINATION ${DRV_DIR}) install( Modified: trunk/examples/java/CMakeLists.txt =================================================================== --- trunk/examples/java/CMakeLists.txt 2007-12-14 13:51:03 UTC (rev 8105) +++ trunk/examples/java/CMakeLists.txt 2007-12-15 01:19:39 UTC (rev 8106) @@ -95,9 +95,16 @@ ) -add_custom_target( plplot_jar ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/plplot.jar ) -add_dependencies( plplot_jar plplot_core plplot_examples ) +add_custom_target(plplot_jar ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/plplot.jar) +# The plplot_examples dependency is required to +# work around CMake 2-level make recursion issue where independent +# file dependency chains that refer to the same files must have +# target dependencies between them in order to work for parallel +# builds (and possibly some visual studio builds). + +add_dependencies(plplot_jar plplot_core plplot_examples) + set(JAVAC ${CMAKE_Java_COMPILER}) set(JAVADATA_HARDDIR ${JAR_DIR}) configure_file( Modified: trunk/examples/tcl/CMakeLists.txt =================================================================== --- trunk/examples/tcl/CMakeLists.txt 2007-12-14 13:51:03 UTC (rev 8105) +++ trunk/examples/tcl/CMakeLists.txt 2007-12-15 01:19:39 UTC (rev 8106) @@ -100,3 +100,11 @@ add_custom_target(tclIndex_examples_tcl ALL DEPENDS ${tclIndex_DEPENDS} ${CMAKE_CURRENT_BINARY_DIR}/tclIndex ) + +# Workaround CMake 2-level make recursion issue where independent +# file dependency chains that refer to the same files must have +# target dependencies between them in order to work for parallel +# builds (and possibly some visual studio builds). +if(NOT CMAKE_CURRENT_BINARY_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") + add_dependencies(tclIndex_examples_tcl tcl_examples) +endif(NOT CMAKE_CURRENT_BINARY_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hba...@us...> - 2008-01-06 20:22:26
|
Revision: 8119 http://plplot.svn.sourceforge.net/plplot/?rev=8119&view=rev Author: hbabcock Date: 2008-01-06 12:22:31 -0800 (Sun, 06 Jan 2008) Log Message: ----------- Added alpha color value handling to plplot core. (1) The PLColor structure was modified to include a alpha value. (2) An API was added so that the alpha values of color table 0 could be changed from their default which is 1.0. These functions are have the same name as their non-alpha aware counterparts with an additional a on the end (plscol0 <-> plscol0a) and they all take an additional alpha argument (float between 0.0 and 1.0). Modified Paths: -------------- trunk/include/plplot.h trunk/src/plctrl.c Modified: trunk/include/plplot.h =================================================================== --- trunk/include/plplot.h 2007-12-24 22:16:33 UTC (rev 8118) +++ trunk/include/plplot.h 2008-01-06 20:22:31 UTC (rev 8119) @@ -381,6 +381,7 @@ unsigned char r; /* red */ unsigned char g; /* green */ unsigned char b; /* blue */ + PLFLT a; /* alpha (or transparency) */ const char *name; } PLColor; @@ -495,6 +496,8 @@ #define plgchr c_plgchr #define plgcol0 c_plgcol0 #define plgcolbg c_plgcolbg +#define plgcol0a c_plgcol0a +#define plgcolbga c_plgcolbga #define plgcompression c_plgcompression #define plgdev c_plgdev #define plgdidev c_plgdidev @@ -550,11 +553,13 @@ #define plrgbhls c_plrgbhls #define plschr c_plschr #define plscmap0 c_plscmap0 +#define plscmap0a c_plscmap0a #define plscmap0n c_plscmap0n #define plscmap1 c_plscmap1 #define plscmap1l c_plscmap1l #define plscmap1n c_plscmap1n #define plscol0 c_plscol0 +#define plscol0a c_plscol0a #define plscolbg c_plscolbg #define plscolor c_plscolor #define plscompression c_plscompression @@ -844,11 +849,21 @@ PLDLLIMPEXP void c_plgcol0(PLINT icol0, PLINT *r, PLINT *g, PLINT *b); +/* Returns 8 bit RGB values for given color from color map 0 and alpha value */ + +PLDLLIMPEXP void +c_plgcol0a(PLINT icol0, PLINT *r, PLINT *g, PLINT *b, PLFLT *a); + /* Returns the background color by 8 bit RGB value */ PLDLLIMPEXP void c_plgcolbg(PLINT *r, PLINT *g, PLINT *b); +/* Returns the background color by 8 bit RGB value and alpha value */ + +PLDLLIMPEXP void +c_plgcolbg(PLINT *r, PLINT *g, PLINT *b); + /* Returns the current compression setting */ PLDLLIMPEXP void @@ -1181,6 +1196,11 @@ PLDLLIMPEXP void c_plscmap0(PLINT *r, PLINT *g, PLINT *b, PLINT ncol0); +/* Set color map 0 colors by 8 bit RGB values and alpha values */ + +PLDLLIMPEXP void +c_plscmap0a(PLINT *r, PLINT *g, PLINT *b, PLFLT *a, PLINT ncol0); + /* Set number of colors in cmap 0 */ PLDLLIMPEXP void @@ -1208,11 +1228,21 @@ PLDLLIMPEXP void c_plscol0(PLINT icol0, PLINT r, PLINT g, PLINT b); +/* Set a given color from color map 0 by 8 bit RGB value */ + +PLDLLIMPEXP void +c_plscol0a(PLINT icol0, PLINT r, PLINT g, PLINT b, PLFLT a); + /* Set the background color by 8 bit RGB value */ PLDLLIMPEXP void c_plscolbg(PLINT r, PLINT g, PLINT b); +/* Set the background color by 8 bit RGB value and alpha value*/ + +PLDLLIMPEXP void +c_plscolbga(PLINT r, PLINT g, PLINT b, PLFLT a); + /* Used to globally turn color output on/off */ PLDLLIMPEXP void Modified: trunk/src/plctrl.c =================================================================== --- trunk/src/plctrl.c 2007-12-24 22:16:33 UTC (rev 8118) +++ trunk/src/plctrl.c 2008-01-06 20:22:31 UTC (rev 8119) @@ -6,6 +6,7 @@ Copyright (C) 2004 Joao Cardoso Copyright (C) 2004 Rafael Laboissiere + Copyright (C) 2008 Hazen Babcock This file is part of PLplot. @@ -55,7 +56,7 @@ char PLDLLIMPEXP * plplotLibDir = 0; static void -color_set(PLINT i, U_CHAR r, U_CHAR g, U_CHAR b, char *name ); +color_set(PLINT i, U_CHAR r, U_CHAR g, U_CHAR b, PLFLT a, char *name ); static void strcat_delim(char *dirspec); @@ -126,6 +127,7 @@ plsc->curcolor.r = plsc->cmap0[icol0].r; plsc->curcolor.g = plsc->cmap0[icol0].g; plsc->curcolor.b = plsc->cmap0[icol0].b; + plsc->curcolor.a = plsc->cmap0[icol0].a; plsc->curcmap = 0; plP_state(PLSTATE_COLOR0); @@ -160,6 +162,7 @@ plsc->curcolor.r = plsc->cmap1[plsc->icol1].r; plsc->curcolor.g = plsc->cmap1[plsc->icol1].g; plsc->curcolor.b = plsc->cmap1[plsc->icol1].b; + plsc->curcolor.a = plsc->cmap1[plsc->icol1].a; plsc->curcmap = 1; plP_state(PLSTATE_COLOR1); @@ -178,6 +181,18 @@ } /*--------------------------------------------------------------------------*\ + * plscolbga() + * + * Set the background color (cmap0[0]) by 8 bit RGB value and alpha value +\*--------------------------------------------------------------------------*/ + +void +c_plscolbga(PLINT r, PLINT g, PLINT b, PLFLT a) +{ + plscol0a(0, r, g, b, a); +} + +/*--------------------------------------------------------------------------*\ * plgcolbg() * * Returns the background color (cmap0[0]) by 8 bit RGB value @@ -190,6 +205,18 @@ } /*--------------------------------------------------------------------------*\ + * plgcolbga() + * + * Returns the background color (cmap0[0]) by 8 bit RGB value and alpha value +\*--------------------------------------------------------------------------*/ + +void +c_plgcolbga(PLINT *r, PLINT *g, PLINT *b, PLFLT *a) +{ + plgcol0a(0, r, g, b, a); +} + +/*--------------------------------------------------------------------------*\ * plscol0() * * Set a given color from color map 0 by 8 bit RGB value @@ -199,19 +226,32 @@ void c_plscol0(PLINT icol0, PLINT r, PLINT g, PLINT b) { + plscol0a(icol0, r, g, b, 1.0); +} + +/*--------------------------------------------------------------------------*\ + * plscol0a() + * + * Set a given color from color map 0 by 8 bit RGB value and alpha value. + * Does not result in any additional cells to be allocated. +\*--------------------------------------------------------------------------*/ + +void +c_plscol0a(PLINT icol0, PLINT r, PLINT g, PLINT b, PLFLT a) +{ if (plsc->cmap0 == NULL) plscmap0n(0); if (icol0 < 0 || icol0 >= plsc->ncol0) { char buffer[256]; - sprintf(buffer, "plscol0: Illegal color table value: %d", (int) icol0); + sprintf(buffer, "plscol0a: Illegal color table value: %d", (int) icol0); plabort(buffer); return; } - if ((r < 0 || r > 255) || (g < 0 || g > 255) || (b < 0 || b > 255)) { + if ((r < 0 || r > 255) || (g < 0 || g > 255) || (b < 0 || b > 255) || (a < 0 || a > 1.0)) { char buffer[256]; - sprintf(buffer, "plscol0: Invalid RGB color: %d, %d, %d", - (int) r, (int) g, (int) b); + sprintf(buffer, "plscol0a: Invalid RGB color: %d, %d, %d, %f", + (int) r, (int) g, (int) b, (double) a); plabort(buffer); return; } @@ -219,6 +259,7 @@ plsc->cmap0[icol0].r = r; plsc->cmap0[icol0].g = g; plsc->cmap0[icol0].b = b; + plsc->cmap0[icol0].a = a; if (plsc->level > 0) plP_state(PLSTATE_CMAP0); @@ -256,6 +297,39 @@ } /*--------------------------------------------------------------------------*\ + * plgcol0a() + * + * Returns 8 bit RGB values for given color from color map 0 and alpha value + * Values are negative if an invalid color id is given +\*--------------------------------------------------------------------------*/ + +void +c_plgcol0a(PLINT icol0, PLINT *r, PLINT *g, PLINT *b, PLFLT *a) +{ + if (plsc->cmap0 == NULL) + plscmap0n(0); + + *r = -1; + *g = -1; + *b = -1; + *a = -1.0; + + if (icol0 < 0 || icol0 > plsc->ncol0) { + char buffer[256]; + sprintf(buffer, "plgcol0: Invalid color index: %d", (int) icol0); + plabort(buffer); + return; + } + + *r = plsc->cmap0[icol0].r; + *g = plsc->cmap0[icol0].g; + *b = plsc->cmap0[icol0].b; + *a = plsc->cmap0[icol0].a; + + return; +} + +/*--------------------------------------------------------------------------*\ * plscmap0() * * Set color map 0 colors by 8 bit RGB values. This sets the entire color @@ -291,6 +365,43 @@ } /*--------------------------------------------------------------------------*\ + * plscmap0a() + * + * Set color map 0 colors by 8 bit RGB values. This sets the entire color + * map -- only as many colors as specified will be allocated. +\*--------------------------------------------------------------------------*/ + +void +c_plscmap0a(PLINT *r, PLINT *g, PLINT *b, PLFLT *a, PLINT ncol0) +{ + int i; + + plscmap0n(ncol0); + + for (i = 0; i < plsc->ncol0; i++) { + if ((r[i] < 0 || r[i] > 255) || + (g[i] < 0 || g[i] > 255) || + (b[i] < 0 || b[i] > 255) || + (a[i] < 0.0 || a[i] > 1.0)) { + + char buffer[256]; + sprintf(buffer, "plscmap0a: Invalid RGB color: %d, %d, %d, %f", + (int) r[i], (int) g[i], (int) b[i], (double) a[i]); + plabort(buffer); + return; + } + + plsc->cmap0[i].r = r[i]; + plsc->cmap0[i].g = g[i]; + plsc->cmap0[i].b = b[i]; + plsc->cmap0[i].a = a[i]; + } + + if (plsc->level > 0) + plP_state(PLSTATE_CMAP0); +} + +/*--------------------------------------------------------------------------*\ * plscmap1() * * Set color map 1 colors by 8 bit RGB values @@ -318,6 +429,7 @@ plsc->cmap1[i].r = r[i]; plsc->cmap1[i].g = g[i]; plsc->cmap1[i].b = b[i]; + plsc->cmap1[i].a = 1.0; } if (plsc->level > 0) @@ -499,6 +611,7 @@ plsc->cmap1[i].r = MAX(0, MIN(255, (int) (256. * r))); plsc->cmap1[i].g = MAX(0, MIN(255, (int) (256. * g))); plsc->cmap1[i].b = MAX(0, MIN(255, (int) (256. * b))); + plsc->cmap1[i].a = 1.0; } } @@ -628,11 +741,12 @@ \*--------------------------------------------------------------------------*/ static void -color_set(PLINT i, U_CHAR r, U_CHAR g, U_CHAR b, char *name ) +color_set(PLINT i, U_CHAR r, U_CHAR g, U_CHAR b, PLFLT a, char *name ) { plsc->cmap0[i].r = r; plsc->cmap0[i].g = g; plsc->cmap0[i].b = b; + plsc->cmap0[i].a = a; plsc->cmap0[i].name = name; } @@ -647,30 +761,30 @@ * all systems. \*--------------------------------------------------------------------------*/ -#define color_def(i, r, g, b, n) \ -if (i >= imin && i <= imax) color_set(i, r, g, b, n); +#define color_def(i, r, g, b, a, n) \ + if (i >= imin && i <= imax) color_set(i, r, g, b, a, n); static void plcmap0_def(int imin, int imax) { int i; - color_def(0, 0, 0, 0, "black" ); /* black */ - color_def(1, 255, 0, 0, "red"); /* red */ - color_def(2, 255, 255, 0, "yellow" ); /* yellow */ - color_def(3, 0, 255, 0, "green" ); /* green */ - color_def(4, 127, 255, 212, "aquamarine" ); /* aquamarine */ - color_def(5, 255, 192, 203, "pink" ); /* pink */ - color_def(6, 245, 222, 179, "wheat" ); /* wheat */ - color_def(7, 190, 190, 190, "grey" ); /* grey */ - color_def(8, 165, 42, 42, "brown" ); /* brown */ - color_def(9, 0, 0, 255, "blue" ); /* blue */ - color_def(10, 138, 43, 226, "BlueViolet" ); /* Blue Violet */ - color_def(11, 0, 255, 255, "cyan" ); /* cyan */ - color_def(12, 64, 224, 208, "turquoise" ); /* turquoise */ - color_def(13, 255, 0, 255, "magenta" ); /* magenta */ - color_def(14, 250, 128, 114, "salmon" ); /* salmon */ - color_def(15, 255, 255, 255, "white" ); /* white */ + color_def(0, 0, 0, 0, 1.0, "black" ); /* black */ + color_def(1, 255, 0, 0, 1.0, "red"); /* red */ + color_def(2, 255, 255, 0, 1.0, "yellow" ); /* yellow */ + color_def(3, 0, 255, 0, 1.0, "green" ); /* green */ + color_def(4, 127, 255, 212, 1.0, "aquamarine" ); /* aquamarine */ + color_def(5, 255, 192, 203, 1.0, "pink" ); /* pink */ + color_def(6, 245, 222, 179, 1.0, "wheat" ); /* wheat */ + color_def(7, 190, 190, 190, 1.0, "grey" ); /* grey */ + color_def(8, 165, 42, 42, 1.0, "brown" ); /* brown */ + color_def(9, 0, 0, 255, 1.0, "blue" ); /* blue */ + color_def(10, 138, 43, 226, 1.0, "BlueViolet" ); /* Blue Violet */ + color_def(11, 0, 255, 255, 1.0, "cyan" ); /* cyan */ + color_def(12, 64, 224, 208, 1.0, "turquoise" ); /* turquoise */ + color_def(13, 255, 0, 255, 1.0, "magenta" ); /* magenta */ + color_def(14, 250, 128, 114, 1.0, "salmon" ); /* salmon */ + color_def(15, 255, 255, 255, 1.0, "white" ); /* white */ /* color_def(0, 255, 255, 255, "white" ); /\* white *\/ */ /* color_def(1, 0, 0, 0, "black" ); /\* black *\/ */ @@ -692,7 +806,7 @@ /* Any others are just arbitrarily set */ for (i = 16; i <= imax; i++) - color_def(i, 255, 0, 0, "red"); /* red */ + color_def(i, 255, 0, 0, 1.0, "red"); /* red */ } /*--------------------------------------------------------------------------*\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-01-08 23:39:13
|
Revision: 8126 http://plplot.svn.sourceforge.net/plplot/?rev=8126&view=rev Author: airwin Date: 2008-01-08 15:39:12 -0800 (Tue, 08 Jan 2008) Log Message: ----------- Add support for Tcl/Tk 8.5. Modified Paths: -------------- trunk/bindings/tcl/tclMain.c trunk/bindings/tk/tkMain.c trunk/cmake/modules/tcl-related.cmake trunk/config.h.cmake Modified: trunk/bindings/tcl/tclMain.c =================================================================== --- trunk/bindings/tcl/tclMain.c 2008-01-08 23:38:02 UTC (rev 8125) +++ trunk/bindings/tcl/tclMain.c 2008-01-08 23:39:12 UTC (rev 8126) @@ -53,10 +53,17 @@ #define MAKINGPLDLL #include "pldll.h" -/* From tclIntDecls.h */ +#ifdef HAVE_TCL_GT_84 +/* From (private) tclInt.h in tcl8.5 */ +#define TclFormatInt(buf, n) sprintf((buf), "%ld", (long)(n)) +#else +/* From (private) tclIntDecls.h in tcl8.4 and before*/ +EXTERN int TclFormatInt _ANSI_ARGS_((char * buffer, long n)); +#endif -EXTERN int TclFormatInt _ANSI_ARGS_((char * buffer, long n)); +#ifndef TclObjCommandComplete_TCL_DECLARED EXTERN int TclObjCommandComplete _ANSI_ARGS_((Tcl_Obj * cmdPtr)); +#endif # undef TCL_STORAGE_CLASS # define TCL_STORAGE_CLASS DLLEXPORT Modified: trunk/bindings/tk/tkMain.c =================================================================== --- trunk/bindings/tk/tkMain.c 2008-01-08 23:38:02 UTC (rev 8125) +++ trunk/bindings/tk/tkMain.c 2008-01-08 23:39:12 UTC (rev 8126) @@ -85,12 +85,16 @@ /* From tclIntDecls.h */ +#ifndef Tcl_Import_TCL_DECLARED EXTERN int Tcl_Import _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Namespace * nsPtr, char * pattern, int allowOverwrite)); +#endif +#ifndef Tcl_GetGlobalNamespace_TCL_DECLARE EXTERN Tcl_Namespace * Tcl_GetGlobalNamespace _ANSI_ARGS_(( Tcl_Interp * interp)); +#endif /* * Declarations for various library procedures and variables (don't want Modified: trunk/cmake/modules/tcl-related.cmake =================================================================== --- trunk/cmake/modules/tcl-related.cmake 2008-01-08 23:38:02 UTC (rev 8125) +++ trunk/cmake/modules/tcl-related.cmake 2008-01-08 23:39:12 UTC (rev 8126) @@ -59,6 +59,7 @@ find_package(TCL) # Supplement those results with iTcl and iTk include paths and libraries. if(TCL_FOUND) + option(HAVE_TCL_GT_84 "if Tcl version is greater than 8.4" OFF) message(STATUS "Looking for include paths and libraries for Tcl/Tk - found" ) Modified: trunk/config.h.cmake =================================================================== --- trunk/config.h.cmake 2008-01-08 23:38:02 UTC (rev 8125) +++ trunk/config.h.cmake 2008-01-08 23:39:12 UTC (rev 8126) @@ -73,6 +73,9 @@ /* Define if Tk is available */ #cmakedefine ENABLE_tk +/* Define if Tcl version is greater than 8.4 */ +#cmakedefine HAVE_TCL_GT_84 + /* Define if [incr], [Tk] is available */ #cmakedefine HAVE_ITK This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hba...@us...> - 2008-01-16 03:56:06
|
Revision: 8136 http://plplot.svn.sourceforge.net/plplot/?rev=8136&view=rev Author: hbabcock Date: 2008-01-15 19:56:11 -0800 (Tue, 15 Jan 2008) Log Message: ----------- Added color table 1 alpha value support. Modified Paths: -------------- trunk/examples/c/x30c.c trunk/include/plplot.h trunk/src/plctrl.c Modified: trunk/examples/c/x30c.c =================================================================== --- trunk/examples/c/x30c.c 2008-01-15 19:56:27 UTC (rev 8135) +++ trunk/examples/c/x30c.c 2008-01-16 03:56:11 UTC (rev 8136) @@ -34,25 +34,34 @@ static PLFLT px[] = {0.1, 0.5, 0.5, 0.1}; static PLFLT py[] = {0.1, 0.1, 0.5, 0.5}; +static PLFLT pos[] = {0.0, 1.0}; +static PLFLT rcoord[] = {1.0, 1.0}; +static PLFLT gcoord[] = {0.0, 0.0}; +static PLFLT bcoord[] = {0.0, 0.0}; +static PLFLT acoord[] = {0.0, 1.0}; +static PLBOOL rev[] = {0, 0}; + int main(int argc, const char *argv[]) { int i, j, icol, r, g, b; - double a; + PLFLT a; + PLFLT clevel[101]; + PLFLT **z; plparseopts (&argc, argv, PL_PARSE_FULL); plinit (); + plscmap0n (4); + plscmap0a (red, green, blue, alpha, 4); + /* page 1 */ 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); - plscmap0n (4); - plscmap0a (red, green, blue, alpha, 4); - for (i = 0; i < 9; i++) { icol = i%3 + 1; plgcol0a (icol, &r, &g, &b, &a); @@ -65,6 +74,43 @@ } } + /* page 2 */ + plAlloc2dGrid(&z, 2, 2); + z[0][0] = 0.0; + z[1][0] = 0.0; + z[0][1] = 1.0; + z[1][1] = 1.0; + + pladv(0); + plvpor(0.1, 0.9, 0.1, 0.9); + plwind(0.0, 1.0, 0.0, 1.0); + + for(i = 0; i < 5; i++){ + px[0] = 0.05 + 0.2 * i; + px[1] = px[0] + 0.1; + px[2] = px[1]; + px[3] = px[0]; + icol = i%3 + 1; + plgcol0a (icol, &r, &g, &b, &a); + plscol0a (icol, r, g, b, 1.0); + plcol0 (icol); + for(j = 0; j < 5; j++){ + py[0] = 0.05 + 0.2 * j; + py[1] = py[0]; + py[2] = py[0] + 0.1; + py[3] = py[2]; + plfill(4, px, py); + } + } + + plscmap1n(128); + plscmap1la(1, 2, pos, rcoord, gcoord, bcoord, acoord, rev); + + for(i=0;i<101;i++){ + clevel[i] = 0.01 * (PLFLT)i; + } + plshades(z, 2, 2, NULL, 0.0, 1.0, 0.0, 1.0, clevel, 101, 10, -1, 2, plfill, 1, NULL, NULL); + plend(); exit(0); } Modified: trunk/include/plplot.h =================================================================== --- trunk/include/plplot.h 2008-01-15 19:56:27 UTC (rev 8135) +++ trunk/include/plplot.h 2008-01-16 03:56:11 UTC (rev 8136) @@ -392,6 +392,7 @@ PLFLT l; /* lightness */ PLFLT s; /* saturation */ PLFLT p; /* position */ + PLFLT a; /* alpha (or transparency) */ int rev; /* if set, interpolate through h=0 */ } PLControlPt; @@ -556,7 +557,9 @@ #define plscmap0a c_plscmap0a #define plscmap0n c_plscmap0n #define plscmap1 c_plscmap1 +#define plscmap1a c_plscmap1a #define plscmap1l c_plscmap1l +#define plscmap1la c_plscmap1la #define plscmap1n c_plscmap1n #define plscol0 c_plscol0 #define plscol0a c_plscol0a @@ -1211,6 +1214,11 @@ PLDLLIMPEXP void c_plscmap1(PLINT *r, PLINT *g, PLINT *b, PLINT ncol1); +/* Set color map 1 colors by 8 bit RGB and alpha values */ + +PLDLLIMPEXP void +c_plscmap1a(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. */ @@ -1218,6 +1226,14 @@ c_plscmap1l(PLBOOL itype, PLINT npts, PLFLT *intensity, PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, PLBOOL *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. */ +/* Will also linear interpolate alpha values. */ + +PLDLLIMPEXP void +c_plscmap1la(PLBOOL itype, PLINT npts, PLFLT *intensity, + PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, PLFLT *a, PLBOOL *rev); + /* Set number of colors in cmap 1 */ PLDLLIMPEXP void Modified: trunk/src/plctrl.c =================================================================== --- trunk/src/plctrl.c 2008-01-15 19:56:27 UTC (rev 8135) +++ trunk/src/plctrl.c 2008-01-16 03:56:11 UTC (rev 8136) @@ -226,6 +226,22 @@ void c_plscol0(PLINT icol0, PLINT r, PLINT g, PLINT b) { + if (plsc->cmap0 == NULL) + plscmap0n(0); + if (icol0 < 0 || icol0 >= plsc->ncol0) { + char buffer[256]; + sprintf(buffer, "plscol0: Illegal color table value: %d", (int) icol0); + plabort(buffer); + return; + } + if ((r < 0 || r > 255) || (g < 0 || g > 255) || (b < 0 || b > 255)) { + char buffer[256]; + sprintf(buffer, "plscol0: Invalid RGB color: %d, %d, %d", + (int) r, (int) g, (int) b); + plabort(buffer); + return; + } + plscol0a(icol0, r, g, b, 1.0); } @@ -241,7 +257,6 @@ { if (plsc->cmap0 == NULL) plscmap0n(0); - if (icol0 < 0 || icol0 >= plsc->ncol0) { char buffer[256]; sprintf(buffer, "plscol0a: Illegal color table value: %d", (int) icol0); @@ -367,8 +382,8 @@ /*--------------------------------------------------------------------------*\ * plscmap0a() * - * Set color map 0 colors by 8 bit RGB values. This sets the entire color - * map -- only as many colors as specified will be allocated. + * Set color map 0 colors by 8 bit RGB and alpha value. This sets the + * entire color map -- only as many colors as specified will be allocated. \*--------------------------------------------------------------------------*/ void @@ -437,6 +452,42 @@ } /*--------------------------------------------------------------------------*\ + * plscmap1a() + * + * Set color map 1 colors by 8 bit RGB and alpha values + * This also sets the number of colors. +\*--------------------------------------------------------------------------*/ + +void +c_plscmap1a(PLINT *r, PLINT *g, PLINT *b, PLFLT *a, PLINT ncol1) +{ + int i; + + plscmap1n(ncol1); + + for (i = 0; i < plsc->ncol1; i++) { + if ((r[i] < 0 || r[i] > 255) || + (g[i] < 0 || g[i] > 255) || + (b[i] < 0 || b[i] > 255) || + (a[i] < 0.0 || a[i] > 1.0)) { + + char buffer[256]; + sprintf(buffer, "plscmap1a: Invalid RGB color: %d, %d, %d, %f", + (int) r[i], (int) g[i], (int) b[i], (double) a[i]); + plabort(buffer); + return; + } + plsc->cmap1[i].r = r[i]; + plsc->cmap1[i].g = g[i]; + plsc->cmap1[i].b = b[i]; + plsc->cmap1[i].a = a[i]; + } + + if (plsc->level > 0) + plP_state(PLSTATE_CMAP1); +} + +/*--------------------------------------------------------------------------*\ * plscmap1l() * * Set color map 1 colors using a piece-wise linear relationship between @@ -536,6 +587,7 @@ plsc->cmap1cp[n].l = l; plsc->cmap1cp[n].s = s; plsc->cmap1cp[n].p = pos[n]; + plsc->cmap1cp[n].a = 1.0; if (rev == NULL) plsc->cmap1cp[n].rev = 0; @@ -549,6 +601,75 @@ } /*--------------------------------------------------------------------------*\ + * plscmap1la() + * + * This is the same as plscmap1l, but also allows alpha value interpolation. + * + \*-------------------------------------------------------------------------*/ + +void +c_plscmap1la(PLINT itype, PLINT npts, PLFLT *pos, + PLFLT *coord1, PLFLT *coord2, PLFLT *coord3, PLFLT *a, PLINT *rev) +{ + int n; + PLFLT h, l, s, r, g, b; + + if (npts < 2) { + plabort("plscmap1la: Must specify at least two control points"); + return; + } + + if ( (pos[0] != 0) || (pos[npts-1] != 1)) { + plabort("plscmap1la: First, last control points must lie on boundary"); + return; + } + + if ( npts > PL_MAX_CMAP1CP ) { + plabort("plscmap1la: exceeded maximum number of control points"); + return; + } + +/* Allocate if not done yet */ + + if (plsc->cmap1 == NULL) + plscmap1n(0); + +/* Save control points */ + + plsc->ncp1 = npts; + + for (n = 0; n < npts; n++) { + + if (itype == 0) { + h = coord1[n]; + l = coord2[n]; + s = coord3[n]; + } + else { + r = coord1[n]; + g = coord2[n]; + b = coord3[n]; + c_plrgbhls(r, g, b, &h, &l, &s); + } + + plsc->cmap1cp[n].h = h; + plsc->cmap1cp[n].l = l; + plsc->cmap1cp[n].s = s; + plsc->cmap1cp[n].p = pos[n]; + plsc->cmap1cp[n].a = a[n]; + + if (rev == NULL) + plsc->cmap1cp[n].rev = 0; + else + plsc->cmap1cp[n].rev = rev[n]; + } + +/* Calculate and set color map */ + + plcmap1_calc(); +} + +/*--------------------------------------------------------------------------*\ * plcmap1_calc() * * Bin up cmap 1 space and assign colors to make inverse mapping easy. @@ -559,8 +680,8 @@ plcmap1_calc(void) { int i, n; - PLFLT delta, dp, dh, dl, ds; - PLFLT h, l, s, p, r, g, b; + PLFLT delta, dp, dh, dl, ds, da; + PLFLT h, l, s, p, r, g, b, a; /* Loop over all control point pairs */ @@ -575,6 +696,7 @@ dh = plsc->cmap1cp[n+1].h - plsc->cmap1cp[n].h; dl = plsc->cmap1cp[n+1].l - plsc->cmap1cp[n].l; ds = plsc->cmap1cp[n+1].s - plsc->cmap1cp[n].s; + da = plsc->cmap1cp[n+1].a - plsc->cmap1cp[n].a; /* Adjust dh if we are to go around "the back side" */ @@ -599,6 +721,7 @@ h = plsc->cmap1cp[n].h + dh * delta; l = plsc->cmap1cp[n].l + dl * delta; s = plsc->cmap1cp[n].s + ds * delta; + a = plsc->cmap1cp[n].a + da * delta; while (h >= 360.) h -= 360.; @@ -611,7 +734,7 @@ plsc->cmap1[i].r = MAX(0, MIN(255, (int) (256. * r))); plsc->cmap1[i].g = MAX(0, MIN(255, (int) (256. * g))); plsc->cmap1[i].b = MAX(0, MIN(255, (int) (256. * b))); - plsc->cmap1[i].a = 1.0; + plsc->cmap1[i].a = a; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |