1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
|
/***********************************************************************
Module: Notes
Copyright (C) 1996 Harold Youngren, Mark Drela
This library 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; either
version 2 of the License, or (at your option) any later version.
This library 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 this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Report problems to: guppy@maine.com
or drela@mit.edu
***********************************************************************/
Xplot11
C Version 4.46 11/28/01
Released under GNU Library License 8/5/96
Notes:
These routines can be compiled either single or double precision by simply
setting a flag in the Makefile. No source changes.
Two makefiles are supplied, one single precision, one double precision.
Make a link to one to define the Makefile (eg. ln -s Makefile.SP Makefile)
An option exists for the old Versatec compatibility routine SYMBOL (in
plt_old.f) to take an integer or byte argument containing either the string
or an integer specifying a plot symbol. The current arrangement uses
character string arguments and handles plot symbols with the SYMBL routine.
This problem comes up with f77 compilers that do not support the older style
cramming of literal characters into an integer argument. These compilers
add additional length arguments to the argument list for literal character
strings that are flagged as errors by the compiler (this happens for BSD f77
compilers). If you want old-style Versatec SYMBOL calls look at plt_old.f
and make the suggested source changes. You do lose the ability to call
SYMBOL with character variables but you can always use the newer PLCHAR
to plot character strings.
The only known bugs at this time are:
On IBM AIX systems there appears to be a compiler bug with the xlf compiler
that shows up when compiling the library double precision. The polyline
routines are affected, getting every other data point. This was discovered
in July 1996, compiler version unknown. No fix, doesn't affect the single
precision library or other routines in double precision.
Some Xservers have shown problems with the grid routines, this showed up on
OSF 3.2 on the DEC Alpha with the 8 bit X server running on a Mach32 card.
The characteristic is that the masked grid lines show the wrong background
color. This is a server error, complain to your vendor.
Version 4.33 8/30/96
Added logfile for complex plots, fixed xaxis, yaxis to allow non-annotated
but hash-marked axes. Fixes to ps_linepattern to limit to 8 pattern entries.
Note: to make a more versatile library it may be better to break the routines
that make up the library into separate modules to permit linking with routines
of the same name that are user supplied. This will probably be done later but,
if you need to make a split library you can always use the makesplitlib shell
script provided here (crude but it works).
Additional notes 9/5/96
Changes were made to the ps_subs.f and Xwin.c to improve the linepattern
routines, separating the fortran and C code a bit more with a fortran version
of mskbits (bitpat) for the postscript side. The Makefile.DP was changed
to make the DP version of Xplot11 work with xlf90 on the RS6000. This really
should go in the new version (4.34)...HHY
Version 4.34 10/30/96
Changes were made to the bitpat routine in ps_subs.f to replace the iand() and ishft() calls with and() and rshift() calls that are more universal with f77 compilers, in particular f2c which is used on Linux. Note that if you have any trouble with these calls you might replace and(xxx,yyy) with iand(xxx,yyy) and rshift(xxx,n) with ishft(xxx,-n)...HHY
Version 4.35 2/6/97
Fixed logfile to work for plots that replot and then add plot items. Now
the block size is written before each block of log data. Makefiles revised.
Linux makefile added that includes target for shared ELF library. ...HHY
Version 4.36 2/24/97
Updated symbol definitions in sym directory and in the xxx.INC character
font include files.
Version 4.37 6/24/97
Includes MD fix for XAXIS/YAXIS buglet of 5/24/97
Includes HY fix for AXISADJ bug of 4/97
Includes MD fix for gw_curs calling bug of 6/28/97
HY & MD
Version 4.38 3/8/98 HY
Fixed bug for unfilled polylines that do not close and are "closed"
automatically but incorrectly by the Sutherland-Hodgman clipper. These
unfilled polylines are now processed by the regular line clipper by plotting
them as separate line segments.
Added double-buffering by defining pixmap and three new routines to set
graphics destination (screen or buffer) and display buffer contents to screen.
Fixed bug in fortran passing of string colornames to C interface routines
(problem showed up for fortran's that did not terminate strings with nulls).
Fixed buffering bug (initializing counter) for plot primitive overflow file.
Version 4.39 5/3/98 HY
Fixed bug in GETCOLOR index assignments (index hack, off by 1)
Fixed C compiler warning on n = n++ in Xwin.c
More cleanup of gwxcolorname2rgb in Xwin.c, added error message for color name
truncation
Put optional defines for UNDERSCORE to improve portability of fortran to C
interface in Xwin.c for all C routine names.
Added integer declarations for AND to plt_old.f for Absoft f77
Added to documentation a bit...
Version 4.39a 6/12/98
Discovered bug in ancient LINE routine for lines plotted with symbols only.
Version 4.41 7/5/98 HHY
Problems with window resizing on Linux for XROTOR prompted changes to gw_subs.f
and Xwin.c to ensure that a resized window (resized using the PLOTS call)
properly changes size before any plotting is done in it. This is done by
repetitively calling the window status until the resized window actually
changes size.
Version 4.42 12/10/98 HHY
Bug found in ps_subs.f for linepatterns with longer dot patterns. Used
nsegmax rather than nseg for writing pattern to .ps file.
Revised Makefiles.
Version 4.43 6/99 HHY
Bug fixes. Revised Makefiles. No recollection of other changes...
Version 4.44 10/19/00 HHY
Bug fixes. Problem found in plt_color.f for error return value check from
ired in gw_cname2rgb(colorname,ired,igreen,iblue) causing bad color table
mapping for colors with red component=0.
Revised ps_setup.f and plt_base.f to clean up flags for hardcopy processing.
Added capability to specify nunit<0 for separate sequential "plotNNN.ps" files
for each plot. Changed name of plot file for specified unit number to
"plotunitNNN.ps" to keep distinct from separate plot files.
Revised Notes, Doc files. Added Makefile.SP and Makefile.DP to main and
example directories
Version 4.45 01/22/01 HHY
Bug fixes. Problem found in plt_base.f for handling end of postscript plot.
Changed gw_subs.f to put initial cursor warp to middle of window
into initialization code (fix from MD 02/26/01).
Fix to plt_util.f AXISADJ routine to correct ntics value.
New alternate Makefile.SPnew,Makefile.DPnew,config.make make
options that consolidate compiler settings into config.make file.
Version 4.46 10/28/01 HHY
Bug fixes. Problem found in ps_subs.f where Postscript DSC conventions
were not followed on %%Page line in postscript output.
Fix added to properly close each postcript plot before starting
a new plot.
Revised Makefiles.
Revised Notes file.
Version 4.47 12 Nov 07 MD
Bug fixes. Fixed the Postscript output of solid-fill polygons.
Previously these sometimes showed up as unfilled squares.
There's no change in on-screen graphics.
Additions. Added SUBROUTINE VIEWR to plt_3D.f .
This is just a version of SUBROUTINE VIEW, with a different
passed-array indexing convention.
Version 4.50 17 Dec 12 HY
Bug fixes. Fixed the bounding box print to give integers rather than floats.
Additions. Added immediate-mode cursor read capability in subroutines
GETCURSORXYC(x,y,ibtn)
GETCURSORXYABSC(x,y,ibtn)
Changes made to plt_base.f, gw_subs.f and Xwin2.c to support this
functionality. Returns cursor position only when button is down
(ibtn=1), returns button flag ibtn=0 when mouse button is released
|