--------------------------------------------------------------------- ************* WHAT'S NEW IN IDL 3.1 ************ --------------------------------------------------------------------- This file describes the major changes and additions to IDL in version 3.1. For a more detailed list of changes, see the file "rel_note.doc" in the "notes" subdirectory of the IDL distribution. Note that complete documentation for new routines and features can be found in the online help, IDL User's Guide, and/or IDL Reference Guide. --------------------------------------------------------------------- NEW MAJOR FEATURES --------------------------------------------------------------------- CONTOUR IMPROVEMENTS -------------------- Extensive revisions and improvements have been made to the CONTOUR procedure. CONTOUR can now create filled contour plots with a single command. Regions can be filled with either solid color or lines. The orientation and spacing of fill lines can be controlled with the C_ORIENTATION and C_SPACING keywords. Set the FILL keyword to create a filled contour plot. This functionality makes the POLYCONTOUR Users' Library routine obsolete. Also, to make the direction of grade more obvious, perpendicular tick marks can be drawn pointing in the downhill direction by setting the DOWNHILL keyword. The format of the file written by the PATH_FILENAME keyword has been changed slightly. The XY values are now written as the n X values followed by the n Y values. Previously, the XY values were interleaved. The SPLINE keyword has been removed. In its place, use the MIN_CURVE_SURF user library function to smooth relatively small arrays. See the online help for complete documentation on MIN_CURVE_SURF. See the online help or IDL Reference Guide for complete documentation for CONTOUR. !PATH BEHAVIOR CHANGED ---------------------- When IDL encounters a procedure or function call that it doesn't know, it searches the directories specified by the !PATH system variable for a .PRO file with that name. If no .PRO file is found, IDL searches for a .SAV file (an IDL SAVE/RESTORE file) of the same name in the hopes that restoring that file will define the needed routine. This behavior is described in more detail on p. 2-13 of the June 1993 edition of the IDL User's Guide. Note also that a new system function, EXPAND_PATH, can be used to simplify the specification of paths to be searched. !HELP_PATH SYSTEM VARIABLE -------------------------- The new system variable !HELP_PATH lists those directories where IDL should look for online help files. The same rules for syntax used for !PATH apply. Previously, the help subdirectory of the IDL distribution was the sole place searched. This change allows users to have their own help files without having to put them in the IDL distribution. A environment parameter, IDL_HELP_PATH controls the value of !HELP_PATH at startup. Complete documentation for this feature can be found on p. 2-21 of the IDL User's Guide. NESTED CALLS TO EXECUTE ----------------------- The EXECUTE function now allows nested calls to EXECUTE, removing the previous restriction that EXECUTE could not call a routine that used EXECUTE. KEYWORD INHERITANCE ------------------- "Keyword inheritance" allows IDL routines to pass keyword parameters not defined in their declaration on to routines that they call. This feature greatly simplifies writing "wrapper" routines (variations on a system or user-provided routine). If a routine is defined with a formal keyword parameter named " _EXTRA", pairs of unrecognized keywords and values are placed in an anonymous structure. The name of each unrecognized keyword becomes the tag name, and its value is the tag value. A complete description and example of keyword inheritance can be found on p. 10-5 of the IDL User's Guide. WDELETE AND WSHOW AFFECT DRAW WIDGETS ------------------------------------- WDELETE and WSHOW now work with draw widgets on all platforms. If the argument sent to either of these procedures is the Widget ID of a draw widget, the top level base for that widget is either destroyed (WDELETE) or brought to the front of the screen (WSHOW). Previously, this behavior was only seen in IDL for Windows. ISO LATIN 1 FONT ENCODING ------------------------- Added support to the PostScript driver for fonts using the Adobe ISO Latin 1 font encoding. Setting the ISOLATIN1 keyword causes IDL to use this encoding with any font that works with it. Use of the ISOLatin1 encoding allows rendering characters commonly found in Latin languages other than English. Two new user library procedures accompany this new feature: PS_SHOW_FONTS - Display all the PostScript fonts that IDL knows about, with both the StandardAdobe and ISOLatin1 encodings. Each display takes a separate page, and each character in each font is shown with its character index. PSAFM - Converts a standard Adobe AFM file to one more to IDLs liking. The AFM files in the ps subdirectory of the IDL distribution were all generated by PSAFM. OBLIQUE SLICING --------------- The IDL SLICER Widget Library procedure can now render oblique planes (i.e., planes at any angle through the volume). NEW RPC EXAMPLE FILES --------------------- Any machine-specific RPC Makefile dependencies have been put into separate "XXX.def" files which are included in the Makefile (located in the "rpc" subdirectory of the distribution). This makes it easier for users to compile. A new example (idl_client.c in the "examples" subdirectory of the "rpc" subdirectory) shows how to access an RPC server from IDL (i.e., how to use IDL as an RPC client). Also included is an example server (fake_server). SCIENTIFIC DATA FORMAT EXAMPLES ------------------------------- A new subdirectory, called "data_fmt" has been added to the "misc" subdirectory. The "data_fmt" directory contains a number of examples that illustrate the use of the CDF, netCDF, and HDF interfaces. GRAPHICS CAPTURE TO CLIPBOARD IN IDL FOR WINDOWS ------------------------------------------------ IDL graphics can now be captured to the Microsoft Windows clipboard. Access this feature through the edit menu or type Ctrl-G. The palette and bitmap are copied separately. The interface asks the user to double-left-click on the appropriate window. DYNAMIC DATA EXCHANGE CLIENT CAPABILITY IN IDL FOR WINDOWS ---------------------------------------------------------- IDL for Windows now supports DDE *client* capability. This only works for *cold* DDE links. A number of new system calls, described in the IDL for Windows Installation Instructions and Release Notes, have been added to support this feature. --------------------------------------------------------------------- NEW BUILT-IN (SYSTEM) ROUTINES --------------------------------------------------------------------- See the online help and/or IDL Reference Guide for complete documentation on the new system routines listed below. SYSTEM FUNCTIONS FOR ROUNDING ----------------------------- CEIL returns the closest integer greater than or equal to x. FLOOR returns the closest integer less than or equal to x. ROUND returns the closest integer to x. EXPAND_PATH ----------- EXPAND_PATH accepts a path-definition string (a scalar string argument that could be used for the IDL_PATH or IDL_HELP_PATH environment variables), and returns an expanded string, suitable for assignment to the !PATH or !HELP_PATH system variables. GRID3 ----- The GRID3 converts 3-dimensional irregularly-gridded data to a regular grid. --------------------------------------------------------------------- NEW USERS' LIBRARY ROUTINES --------------------------------------------------------------------- See the online documentation (the ? command) for complete documentation on these new Users' Library routines. READ AND WRITE MICROSOFT WINDOWS BITMAP (.BMP) FILES ---------------------------------------------------- READ_BMP and WRITE_BMP allow you to read and write Microsoft Windows device-independent bitmap files (.BMP files). MINIMUM CURVATURE SURFACE ------------------------- The MIN_CURVE_SURF function fits a minimum curvature spline surface to a set of regularly or irregularly-gridded points. When used with the CONTOUR procedure and with low resolution arrays, this function produces more accurate and pleasing results than using the SPLINE keyword to CONTOUR. NEW PULL-DOWN MENU COMPOUND WIDGET --------------------------------- A new Widget Library routine, CW_BSELECTOR, is a compound widget pull-down menu who's button label shows the menu item currently selected, creating a widget similar to an MS-Windows "combo" control. FIND A SPHERE GIVEN 4 POINTS ---------------------------- The SPH_4PNT routine returns the center and radius of a sphere, given 4 points on the sphere's surface. EASY CREATION OF ANONYMOUS STRUCTURES ------------------------------------- The CREATE_STRUCT function creates an anonymous structure given pairs of tagnames and values, and also concatenates structures. Tagname parameters can be either scalar strings or string arrays. FIX FOR ULTRIX XDR FILES FROM V. 3.0.0 -------------------------------------- In IDL 3.0.0 for the Ultrix DecStation, all XDR output of double-precision floating-point data has its least and most significant longwords reversed. This presents no problem as long as such files are only used on these machines. However, XDR files with double precision data cannot be moved between these machines and others without conversion using the new library procedure MIPSEL_DBLFIXUP to correct existing files containng such data. This error exists in version 3.0.0 of IDL only. All other versions of IDL on the DECstation work correctly. This bug was introduced while correcting the similar bug described on 11/12/92. IDL uses XDR for Save/Restore files, and for files opened with the XDR keyword to OPENR, OPENW, and OPENU. --------------------------------------------------------------------- NEW KEYWORDS TO EXISITING ROUTINES --------------------------------------------------------------------- This section lists new keywords for existing built-in routines. See the online help or the IDL Reference Guide for complete documentation of these new keywords. COLOR_QUAN ---------- New keywords allow the use of the same color mapping for a series of images: GET_TRANSLATION TRANSLATION MAP_ALL DEFSYSV ------- Set the EXISTS keyword to sense if the specified system variable has already been created. DEVICE ------ The SET_CHARACTER_SIZE keyword (available to all graphics devices) can be used to set an arbitrary character size. The CURSOR_IMAGE and CURSOR_MASK keywords allow the use of custom cursors with the X Windows DEVICE command. HISTOGRAM --------- The INPUT keyword sends an array to be added to the output of HISTOGRAM. Use this keyword to perform multiple histograms. The REVERSE_INDICES keyword returns a list of lists containing, for each histogram bin, the subscripts of the original array contributing to that bin. IOCTL ----- The following keywords have been added for use with magnetic tape: MT_OFFLINE, MT_REWIN, MT_SKIP_FILE, MT_SKIP_RECORD, MT_WEOF OPEN ---- The NOSTDIO keyword has been added for working with magnetic tape. READU and WRITEU ---------------- The TRANSFER_COUNT keyword returns the number of elements actually transferred by an I/O operation. SHADE_SURF ---------- The MAX_VALUE keyword allows the creation of missing data plots. SPAWN ----- The NOTTYRESET keyword allows the use of spawn on displays that suffer from dropped characters. SURFACE ------- The SHADES keyword allows a multi-colored mesh. WIDGET_CONTROL -------------- The WIDGET_TIMER keyword replaces the background task functionality in XMANAGER. The NO_COPY keyword can be used to set and get uservalues without duplicating memory. The TLB_SET_TITLE keyword allows the title of a top level base to be changed.