home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / Converter / PTC-AEAO.LZX / AddOn.lha / POST / GPlot / gplot.txt < prev    next >
Encoding:
Text File  |  1996-07-06  |  19.0 KB  |  442 lines

  1. Announcement of release 4.3 of GPLOT, Halloween '90
  2. Changes since 4.23
  3. ----------------------------------------------
  4. New features:
  5. GUI's (Graphical User Interfaces), GPLOT now includes a MOTIF interface
  6. in addition to the existing DECWindows, Athena Widget Set and Suntool
  7. interfaces. 
  8.  
  9. If the device "psc" (-dpsc or /dev=psc) is selected, GPLOT will produce
  10. full colour PostScript output, using the colorimage operator for 
  11. cell arrays. The "ps" device will use colours for polygon fills but not for
  12. cell arrays (uses a greyscale) or lines (monochrome).
  13.  
  14. GPLOT appears to run quite happily on the new IBM RS6000 series using the
  15. MOTIF or ATHENA interfaces and an XLIB driver, or from the command line 
  16. with the IGL driver.
  17.  
  18. GPLOT now clips as it should, using device capabilities if present 
  19. (PostScript and X) or a particularly stupid fallback algorithm if not.
  20.  
  21. There is now full support for making movies with the Sony LVR video disk
  22. recorder, the device controller module was implemented by Grace Giras and
  23. Anjana Kar and includes the management of an on-disk directory.
  24. New files associated with this are lvr.c, lvr_io.c and lvr_defines.h
  25.  
  26. Any of the X-based interfaces (gplotm, gplotaw, gplotdw) can be loaded with 
  27. either of 2 XLIB drivers; xl.c (default) or xws.c (details in makefile).
  28. There is a complete separation of interface and imaging model, display 
  29. postscript will also be an option soon. The xl driver does not ask for
  30. any colour tables to be loaded, it merely asks the window manager for the
  31. closest possible colours; thus it will co-exist with any other simultaneous
  32. applications. It is a little faster and is appropriate for simple pictures.
  33. The xws driver asks for particular colour tables and is better for
  34. complex pictures requiring precise colours (e.g., scanned images) but
  35. may make other portions of your screen look strange.
  36. Run-time selection should be possible in a future release.
  37.  
  38. Bug fixes:
  39. A strange bug affecting line widths on multiple-page DISSPLA cgm files
  40. has been fixed. A couple of bugs specific to SUN's have been fixed.
  41. I try as hard as possible to produce reasonable output when the 
  42. background colour (via index 0) is changed after the beginning of the 
  43. picture body, but there may still be strange output on some devices.
  44.  
  45. --Phil Andrews
  46.  
  47. (here follows the last release notice, just to embarass me/enlighten you)
  48. Notice for release 4.2
  49. ------------------------------------------------------------------------
  50. Changes since 4.2
  51. ----------------------------------------------
  52.  
  53. New interfaces: gplotdw.c, gplotaw.c and gplot_suntool.c are new
  54. DecWindows, Athena Widget and SunView interfaces respectively.  They
  55. should be considered work in progress and do not yet offer the full
  56. functionality of the command line interface, but they do offer the ease
  57. of "point and click" use.  Check with the makefile to see what you want
  58. to build.  DecWindows will soon become MOTIF and an OPENLOOK interface
  59. should be here soon. gplotaw and gplotdw use the new xl driver, which
  60. is also work in progress, particularly in the areas of colour tables and
  61. cell arrays. The interface to the main routines is wint.c.
  62. gplot_suntool.c uses the sv.c driver. 
  63.  
  64. Bug fixes: there are fixes relating to left handed co-ordinate systems
  65. (MAC CGM's), zero default line widths, real VDC's, binary to clear text
  66. conversion, and others. A bug in the interaction between GPLOT and
  67. CGMGEN which reduced sizes by a factor of 32 has been fixed. If your
  68. favourite bug has not been fixed send mail to kar@b.psc.edu
  69.  
  70. Compatibility with NCAR 3.0: this GPLOT will read NCAR 3.0 files,
  71. though there is an ambiguity there (changing the background colour
  72. after the page begin) which will produce different output on different
  73. devices. Also I have had to disable appended text processing for NCAR
  74. files since NCAR files seem to set (incorrectly) the NOTFINAL flag for 
  75. all text strings.
  76.  
  77. Not yet done: in order to handle both screen displays and publication
  78. quality GPLOT presently uses both raster and vector fonts.  I hope to
  79. replace both of these with Adobe type-1 fonts as soon as possible:
  80. until this is done, text processing is pretty much frozen.  The freeze
  81. includes GTEX which I hope to convert to adobe type-1 also.  There are
  82. still a few emulations missing: mostly ellipses, should be in next
  83. release.  
  84.  
  85. --Phil Andrews
  86.  
  87. (here follows the last release notice)
  88. Notice for release 4.2
  89. ------------------------------------------------------------------------
  90. GPLOT is a CGM (Computer Graphics Metafile) processor. CGM files come
  91. in 3 flavours, Binary (dominant form), Clear Text (human readable), and
  92. Character (more compact than Clear Text, but only 7 bits used per byte)
  93. encodings. GPLOT will interpret and create Binary and Clear Text files,
  94. I have not yet had requests for character encoding.
  95. GTEX is a companion TeX DVI interpreter, it uses the same device
  96. drivers as GPLOT but is much smaller and simpler. 
  97.  
  98. GPLOT and GTEX are entirely in C, and will compile and run under UNIX
  99. (BSD, ULTRIX, UNICOS) or VMS, there is a heavy use of #ifdefs.
  100.  
  101. Where to get files (note new addresses !):
  102.  
  103. There is an anonymous FTP available on CALPE.PSC.EDU (128.182.66.148),
  104. a vaxstation running ULTRIX, with both a tar file and a src directory.
  105. For VMS users there is an anonymous FTP on B.PSC.EDU (128.182.66.102)
  106. and A.PSC.EDU (128.182.66.105), our VAX 8810 front ends.  The source
  107. files are in TEX$ROOT:[GPLOT] with a backup file GPLOT.BAK, block size
  108. 2048 and a full set of .pk fonts (if you want them) are in
  109. TEX$ROOT:[PK...].
  110.  
  111.  
  112. The source files involved are
  113.  
  114. gplot.c        Small controlling module
  115. cgm.c        Binary CGM interpreter
  116. ccgm.c        Clear Text interpreter
  117. io.c        I/O routines
  118. utils.c        Utility routines
  119. devices.c    Interface to device drivers
  120. defs.h        common definitions
  121. ccdefs.h    clear text names, etc.
  122. emul.c        emulation package
  123. gpt_commands.cld     VMS CLI interface command file
  124.  
  125. cgmb.c        Binary CGM driver
  126. cgmc.c        Clear Text driver
  127. ps.c        PostScript driver
  128. tek.c        Tektronix driver (various flavours)
  129. uis.c        DEC windowing system
  130. xws*.c        X11 driver
  131. sundriv.c    SUN CGI driver
  132. peritek.c    Peritek frame buffer driver
  133. qms.c        QMS (QUIC) driver (beta test)
  134. gks.c        DEC VMS GKS driver
  135.  
  136. carray.c     Cell Array utility routines
  137. drvcla.c    Cell Array utility routines
  138.  
  139. tty.c        terminal controller module
  140. dq.c        Diaquest controller
  141.  
  142. pkras.c        TeX .pk format font file decoder
  143. hload.c        Hershey font loading module
  144. hload.h        Hershey font definitions
  145. hfonts.bin    raw Hershey fonts
  146. hfonts.c    produces hload.h
  147. hfonts.h    defines Hershey font order
  148.  
  149. gtex.c        TeX dvi file interpreter
  150. cache.c     Caching for .pk fonts (currently turned off)
  151.  
  152. descrip.mms    VMS mms file
  153. makefile    UNIX makefile, some assembly may be required for your
  154.         specific uses.
  155.         
  156.  
  157. Binary CGM issues:
  158.  
  159. Headers:
  160. Headers are an unfortunate fact of life; many sites have interpreted
  161. the CGM standard to allow an arbitrary record structure and routinely
  162. have a private format header before the CGM file proper. GPLOT knows
  163. about Los Alamos, "Military" and NCAR header formats. Any other format
  164. will probably result in an "unknown header" message and termination.
  165.  
  166. Byte ordering:
  167. This can also be a problem, resulting from network transmission or just
  168. poor coding. GPLOT tries a number of different permutations while
  169. simultaneously looking for a known header or legitimate Begin Metafile
  170. element. 
  171.  
  172. Bad record formats:
  173. I have seen a number of binary CGM files on VMS with CR record
  174. attributes ! On VMS I take care of this by ignoring record attributes,
  175. but if such a file was moved to UNIX it would probably be unreadable. 
  176. This is very poor coding and should be discouraged.
  177.  
  178. Note that on VMS any strange format CGM binary file can be converted
  179. to a generic form (512 fixed record, sequential, no record attributes,
  180. no header) by running thru GPLOT with /dev=cgmb. It can then be moved
  181. thru networks as a binary file.
  182.  
  183. Modifications to GPLOT:
  184.  
  185. GPLOT was designed to be easily modified in two areas, one is at the
  186. driver interface. To add a new device driver, a small addition need
  187. only be made to devices.c and the new device driver linked in. Details
  188. on request (or you can look at CGMB.C and PS.C to see how it's done).
  189. The second place is at the controlling module GPLOT.C. The main body of
  190. GPLOT needs only an open input stream, (possibly) an open output stream
  191. and a command line. This makes it possible to use GPLOT to include
  192. graphics from CGM files in other output, such as TeX files. GTEX.C
  193. includes such an interface, and that interface can be used to drive any
  194. of the GPLOT device drivers, including the Binary and Clear Text CGM
  195. drivers. This is how we add CGM drivers to existing packages at PSC.
  196. If you have to modify/read the command line, do it at the GPLOT.C or
  197. device driver level, it is parsed in UTILS.C and the code there (that
  198. parses both VMS and UNIX style lines) has made strong men cry.
  199.  
  200. Fonts:
  201.  
  202. GPLOT knows about 2 types of fonts, raster-style Metafont created PK
  203. format fonts and Hershey vector fonts.  Raster fonts are handled by
  204. PKRAS.C, these are slow, require the presence of many disk font files,
  205. and may not be rotateable or scaleable.  However, they look good and
  206. will fit nicely with GTEX produced output files which use the same
  207. fonts.  Under VMS PKRAS looks in TEX$PK:[MAG]for the .pk files, where
  208. MAG is the magnification in TeX style units (1000 = ten point font at
  209. 300 pt/in).  Under UNIX it needs to be told where to look with a
  210. compile-time definition, look in the make files.  If you intend to use
  211. .PK files you obviously know enough so that you shouldn't need any help
  212. from me.  GTEX must use .PK files since TeX requires them.  TeX is much
  213. too tightly coupled to a particular font type for its own good.
  214.  
  215. The Hershey fonts are preloaded, are fast and can be easily scaled and
  216. rotated.  HFONTS.BIN is a binary file containing the descriptions for 19
  217. fonts.  HFONTS.C and HFONTS.H are files which extract a subset of these
  218. fonts from HFONTS.BIN and produce HLOAD.H.  When HLOAD.C is compiled it
  219. sucks in HLOAD.H and produces an object file that is linked with GPLOT
  220. to give it a preloaded set of vector fonts, got all that ?  HFONTS.C can
  221. be easily altered to set the number of fonts preloaded and their
  222. default order.  The present setting loads SIMPLEX ROMAN, COMPLEX ROMAN,
  223. TRIPLEX ROMAN and COMPLEX GREEK.  These 4 fonts take up about 20Kb, all
  224. 19 take about 100Kb.  If you're happy with the defaults you don't have
  225. to rerun HFONTS, just take HLOAD as it is. I highly recommend the
  226. Hershey fonts over the .PK fonts, we use the .PK fonts only for
  227. presentation movies. 
  228.  
  229. Installation:
  230.  
  231. The first step is to decide what device drivers you want. DEVICES.C
  232. should be compiled with those turned on so that you don't get a
  233. link-time error. Look at descrip.mms and the makefiles to see how that
  234. is done (e.g., cc devices.c/def="incps" turns on PostScript). You will
  235. probably want the tty controller but not the diaquest one (a controller
  236. allows interaction with an outside agency at, e.g., the end of page).
  237.  
  238. There are several makefiles available, depending whether you are
  239. building this for a SUN, X11 etc. Look thru them.
  240.  
  241. Under VMS GPLOT and GTEX are both installed as symbols, e.g., GPLOT :==
  242. $USR$ROOT:[ANDREWS]GPLOT, the CLI parsing is done internally.
  243.  
  244. Command line:
  245.  
  246. GPLOT and GTEX share the same command line processor, under VMS the
  247. format is GPLOT input_file [options]
  248. the input file extension defaults to .CGM (GPLOT), .CGMC (GPLOT/CLEAR)
  249. or .DVI (GTEX).
  250. Output extension is governed by the device. 
  251.  
  252. Under UNIX it is
  253. gplot [options] input_file output file
  254. output file defaults to stdout, if input_file is "-" then input will
  255. come from stdin.
  256.  
  257.  
  258. the options are described in gplot.hlp and gplot.man
  259. Note that not all options will work on both GPLOT and GTEX, nor with all
  260. output devices.
  261.  
  262. Under VMS GTEX will look for
  263. the logical TEX$OUTPUT if no input file is specified, both GPLOT and
  264. GTEX will point the logical GPT$OUTPUT at the output file. Under UNIX
  265. both input and output can be piped.
  266.  
  267. Documentation:
  268.  
  269. This is most of it. We had other documentation, but it got out of date, I am
  270. rewriting it. It may be ready for the next release. We do have:
  271. GPLOT.HLP a VMS help file which includes UNIX man pages entry and
  272. GPLOT.MAN a standalone GPLOT man page.
  273.  
  274. Example files:
  275. Due to Space limitations example files may not be in the backup and tar
  276. sets. 
  277.  
  278. Example CGM files:
  279.  
  280. smpl07.cgm        DI-3000 file
  281. cgmbin.cgm        DISSPLA file
  282. cgmgen_test.cgm        PSC test file
  283. example_1.cgm        NCAR file
  284. station.cgm        Movie.BYU file
  285.  
  286. Legal Status of code:
  287.  
  288. GPLOT is not public domain or shareware.  Every
  289. module is copyrighted and you are being given free license to do
  290. whatever you want with it at your site, or to redistribute TOTALLY
  291. UNCHANGED AND WITHOUT CHARGE (except for reasonable media cost) to
  292. someone who can't get it any other way.  It is is copyrighted for 3
  293. reasons
  294.  
  295. 1) So that some company can't put their name on it, maybe copyright it and
  296. then sell it. It does happen; it happened to me, it happened to NCAR.
  297. This is annoying.
  298.  
  299. 2) It's policy at the Pittsburgh Supercomputing Center. This is wise.
  300.  
  301. 3) So that I don't spend the rest of my life chasing down bug reports
  302. from redistributed, hacked code, perhaps with spurious version numbers.
  303. Also so that I can make sure everyone has the current version. This is
  304. essential. 
  305.  
  306. If anyone wants to make a complete new device driver and redistribute
  307. it, that's fine since it should have no interaction with the rest of
  308. the system.
  309.  
  310. Bug reports:
  311.  
  312. I want 'em. I am most interested in CGM files that contain elements, or
  313. combinations of elements, that I have never seen and may not be
  314. handling well. I am not interested in people who give me back 20,000
  315. lines of code and say "I've modified it to be better, why don't you use
  316. this", I do want reports that tell me I have a bug in line such and
  317. such, perhaps with a fix. I'm also interested in any new cgm headers, so
  318. long as they can be uniquely identified.
  319.  
  320. -Phil Andrews (andrews@b.psc.edu)
  321.  
  322. With this release, maintenance of GPLOT will be taken over by Anjana
  323. Kar, kar@b.psc.edu. Please send requests/bug reports to her, but be
  324. gentle, she is saving my life here.
  325.  
  326. Changes with Release 4.2 of GPLOT
  327. --------------------------------
  328.  
  329. New Drivers
  330.  
  331. New device drivers are IGL, the Silicon Graphics IRIS GL driver,
  332. EXCL, the ANSII printing language used by the Talaris 1590 laser
  333. printer, the QMS, QUIC programming language used by the original
  334. QMS printers. Note that when there are raster images involved the
  335. QMS800 and QMS1200/QMS2400 require different formats, in that case the
  336. device requested should be explicitly QMS800 or QMS1200.
  337. The TEK4107, Tektronix 4107 colour terminal.
  338.  
  339. New Capabilities
  340.  
  341. There are now general routines for handling direct colour and arbitrary
  342. cell arrays; these allow the UIS and Tektronix drivers much greater
  343. capability. I intend to freeze the UIS driver with this release and
  344. provide a DecWindows driver with the next release.
  345.  
  346. New Options
  347.  
  348. There are presently four types of fonts that may appear in GPLOT
  349. output, 1) fonts that are known to the original graphics packages and
  350. are converted by it into Drawing Primitives. Examples of these are the
  351. vector fonts used by DISSPLA and (optionally) by NCAR. There are also,
  352. 2), hardware or firmware fonts belonging to the output device, 3),
  353. Hershey Vector fonts known to GPLOT and normally loaded with it and 4),
  354. optionally raster fonts in PK format kept on disk. In the output from
  355. a single CGM file there may be mixtures of fonts depending on the
  356. setting of various flags by the CGM file. There is now an option to
  357. override these flags and force the use of a specific font type.
  358. GPLOT/FONT_TYPE=0 (on VMS) or gplot -f0 (UNIX) will force the use of
  359. output device fonts everywhere possible,
  360. GPLOT/FONT_TYPE=1 (on VMS) or gplot -f1 (UNIX) will force the use of
  361. Hershey vector fonts everywhere possible and
  362. GPLOT/FONT_TYPE=2 (on VMS) or gplot -f2 (UNIX) will force the use of
  363. PK raster fonts everywhere possible.  
  364.  
  365. For installers of GPLOT, to use Hershey fonts GPLOT must be linked
  366. with the hload object file and the symbol "inchershey" must be
  367. predefined for the utils source, e.g., CC/DEFINE="inchershey" in VMS
  368. and cc -Dinchershey in UNIX. For the PK raster fonts utils must be
  369. compiled with incpkras defined and gplot limked with the pkras object
  370. file. Both Hershey and PK raster fonts can be linked simultaneously.
  371.  
  372. The size of the fonts is often different from what the user expects
  373. particularly with NCAR CGM files.  This can now be changed at runtime
  374. with GPLOT/TEXT_MAG=1.3 (VMS) or gplot -m1.3 (UNIX), say to magnify the
  375. fonts by 1.3, or any other real number.  This will only have effect if
  376. the fonts were not already converted to graphical primitives by the
  377. orignal graphics pakcage.
  378.  
  379. One thorny problem has been with the Scaling Mode Picture Descriptor
  380. Element. By default pictures are described in an arbitrary space which
  381. GPLOT rescales to fit the dimensions of the output device, the Scaling
  382. Mode element can prevent this by requiring that the output be scaled by
  383. a particular factor, so that it will always be the same size on any
  384. output device. Unfortunately this may prevent the use of some output
  385. devices. Complications arise as every CGM file produced by
  386. DISSPLA requests a definite scaling factor, which is extremely
  387. inconvenient for normal use. Thus in the past I have simply ignored the
  388. Scaling Mode element. However, legitimate uses of this element (e.g.,
  389. engineering drawings) have occurred and as I try to move GPLOT to a
  390. fully conforming interpreter I have now implemented the Scaling Mode
  391. element. To allow normal use of these files it is possible to override
  392. this element at runtime, GPLOT/SCALE (VMS), or gplot -S (UNIX) will
  393. allow gplot to ignore the Scaing Mode element and scale output to fit
  394. the output device dimensions.
  395.  
  396. Indexing CGM files
  397.  
  398. If the GPLOT CGMB driver is used to produce a binary file, index blocks
  399. (on both VMS and UNIX) will be included. Thes follow a format adopted
  400. by the SLATEC graphics subcommitted and allow random access to the
  401. frames in the CGM file.
  402.  
  403. The index blocks are encoded as escape elements (index -64). 
  404.  
  405. The format of an index block is 
  406.  
  407. No. of pages in this block         (n, non-negative decimal integer)}
  408.  
  409. then repeat n times
  410. page number                 (p, decimal integer)}
  411. string length                (q, non-negative decimal integer)}
  412. one space character
  413. page string                (q characters)}
  414. offset to next index block        (decimal integer)}
  415.  
  416. e.g. the string ``2 530 10 first page 1520 11 second page 2048''
  417.  
  418. If the index offset is 0 then this is the last index block.
  419.  
  420. The offset is in bytes from the start of the present index block
  421. command, and can be positive or negative.
  422.  
  423. I lay down the first index block immediately after the begin
  424. metafile and the last one immediately before the end metafile so the
  425. file could be parsed in either direction. Index blocks are up to 512
  426. bytes. I allow a /index qualifier (-I in UNIX) which merely produces a
  427. table of contents and /pages selects sets of pages, e.g.,
  428. /pages=(1,5,20_35).
  429.  
  430. Pages can also be selected by title (if they have one)
  431. gplot/title="Page Title" (VMS) or gplot -T"page Title"  (UNIX) will pick
  432. out only those pages with that string in their title string.
  433.  
  434. It is possible that the index blocks could become unreliable due to
  435. file transport or (heaven forbid !) a software bug. If that has
  436. happened (or you know it will happen) the generation/interpretation of
  437. index blocks can be turned of by gplot/nindex (VMS) or gplot -N (UNIX)
  438.  
  439.  
  440. --Phil Andrews
  441.  
  442.