Main Page   Class Hierarchy   Data Structures   File List   Data Fields   Globals  

ps.f

Go to the documentation of this file.
00001 
00002 c
00003 c       Copyright (c) 1986,1987,1988,1989,1990,1991,1992,1993,
00004 c       by Steve McMillan, Drexel University, Philadelphia, PA.
00005 c
00006 c       All rights reserved.
00007 c
00008 c       Redistribution and use in source and binary forms are permitted
00009 c       provided that the above copyright notice and this paragraph are
00010 c       duplicated in all such forms and that any documentation,
00011 c       advertising materials, and other materials related to such
00012 c       distribution and use acknowledge that the software was developed
00013 c       by the author named above.
00014 c
00015 c       THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
00016 c       IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
00017 c       WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00018 c
00019 c
00020 
00021         block data ps setup
00022         save
00023         common /ps color set/ ipscolor
00024         common /ps write/ iwrite
00025         data ipscolor/0/iwrite/0/
00026         end
00027 
00028 
00029         subroutine set ps write
00030         save
00031 c
00032 c       Toggle forced rewriting of long files.
00033 c
00034         common /ps write/ iwrite
00035 
00036         iwrite = 1 - iwrite
00037 
00038         end
00039 
00040 
00041         subroutine ps stroke
00042         save
00043         common /ps strokes/ nstroke,nstrpage,nstroketot
00044 c
00045         if (nstroke.gt.0) then
00046             write(42,'(''stroke'')')
00047             nstroke = 0
00048         end if
00049 c
00050         end
00051 
00052 
00053         subroutine set ps color
00054         save
00055 c
00056 c       Toggle between greyscale and color output.
00057 c
00058         common /ps color set/ ipscolor
00059         common /mcpak_colormap/ ncolors
00060 c
00061         parameter (NXCOLORS = 16)
00062 c
00063         ipscolor = 1 - ipscolor
00064 c
00065         if (ipscolor.eq.0) then
00066 c
00067 c           Greyscale, 256 levels:
00068 c
00069             ncolors = 256
00070 c
00071         else
00072 c
00073 c           Color, NXCOLORS levels:
00074 c
00075             ncolors = NXCOLORS
00076 c
00077         end if
00078 c
00079         return
00080 c
00081         entry get ps color(ipsc)
00082         ipsc = ipscolor
00083 c
00084         end
00085 
00086 
00087         subroutine ps color(icolor)
00088         save
00089         common /ps color set/ ipscolor
00090         common /mcpak_colormap/ ncolors
00091 c
00092 c       Set up PostScript color/grey level.
00093 c
00094 c       The color map mimics the current X-window colors (see "mcdxsubs.c"):
00095 c
00096 c           0 = "white"
00097 c           1 = "black"
00098 c           2 = "blue"
00099 c           3 = "purple"
00100 c           4 = "violet"
00101 c           5 = "magenta"
00102 c           6 = "light blue"
00103 c           7 = "gray"
00104 c           8 = "cyan"
00105 c           9 = "green"
00106 c           10 = "lime green"
00107 c           11 = "yellow"
00108 c           12 = "orange"
00109 c           13 = "brown"
00110 c           14 = "red"
00111 c           15 = "pink"
00112 
00113 c       Note that color 0 is white here, whereas for greyscale, 0 is black!
00114 
00115         parameter (NXCOLORS = 16)
00116         integer red(0:NXCOLORS-1),green(0:NXCOLORS-1),blue(0:NXCOLORS-1)
00117 c
00118         data   red/ 255,   0,   0, 160, 238, 255, 191, 192,   0,   0,
00119      &               50, 255, 255, 165, 255, 255/
00120         data green/ 255,   0,   0,  32, 130,   0, 239, 192, 255, 255,
00121      &              205, 255, 165,  42,   0, 192/
00122         data  blue/ 255,   0, 255, 240, 238, 255, 255, 192, 255,   0,
00123      &               50,   0,   0,  42,   0, 203/
00124 c
00125         call ps stroke
00126 c
00127         if (ipscolor.eq.0) then
00128 c
00129 c           Greyscale:
00130 c
00131             ic = max(0,icolor)
00132             do while (ic.ge.ncolors)
00133                 ic = ic - ncolors
00134             end do
00135 
00136 c           Force 0 and 1 to be black for a large color range.
00137 
00138             if (ncolors.gt.16 .and. ic.eq.1) ic = 0
00139             write(42,'(f5.3,'' setgray'')')ic/(ncolors-1.)
00140 c
00141         else
00142 c
00143 c           Color:
00144 c
00145             ic = max(0,icolor)
00146             do while (ic.ge.ncolors)
00147                 ic = ic - ncolors
00148             end do
00149             write(42,'(3f6.3,'' setrgbcolor'')')
00150      &                   red(ic)/255.,green(ic)/255.,blue(ic)/255.
00151 c
00152         end if
00153 c
00154         end
00155 
00156 
00157         subroutine ps page(iopt)
00158         save
00159         common /ps strokes/ nstroke,nstrpage,nstroketot
00160         common /ps pages/ npage
00161 c
00162         if (nstrpage.eq.0) return
00163         call printid
00164 c       write(42,'(''gsave showpage grestore newpath'')')
00165         write(42,'(''showpage newpath'')')
00166         if(iopt.eq.0)return
00167 c
00168         npage = npage+1
00169         write(42,'(/''%%Page: '',i4)')npage
00170         nstrpage = 0
00171 c
00172         end

Generated at Sun Feb 24 09:57:12 2002 for STARLAB by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001