Table of Contents
IDL Wavelet Toolkit User's Guide
Introduction to the IDL Wavelet Toolkit
What is the IDL Wavelet Toolkit?
IDL Wavelet Toolkit Architecture
File Organization
Structure
Using the IDL Wavelet Toolkit
Starting the Toolkit
Menu Description
Preferences
Dataset Viewer
Importing Data
ASCII Files
Binary Files
Image Files
WAV Audio Files
IDL Command Line
Wavelet Viewer
Wavelet Power Spectrum
Multiresolution Analysis
Denoise Tool
Adding User Tools
Theory and Examples
Wavelet Transform
Wavelet Power Spectrum
Denoise
Multiresolution Analysis
Bibliography
IDL Wavelet Toolkit Reference
List of Commands by Functionality
WV_APPLET
WV_CW_WAVELET
WV_CWT
WV_DENOISE
WV_DWT
WV_FN_COIFLET
WV_FN_DAUBECHIES
WV_FN_GAUSSIAN
WV_FN_HAAR
WV_FN_MORLET
WV_FN_PAUL
WV_FN_SYMLET
WV_IMPORT_DATA
WV_IMPORT_WAVELET
WV_PLOT3D_WPS
WV_PLOT_MULTIRES
WV_PWT
WV_TOOL_DENOISE
IDL DataMiner Guide
DataMiner Overview
Introduction to IDL DataMiner and ODBC
What Is IDL DataMiner?
What Is ODBC?
About the DataMiner ODBC Drivers
About This Volume
Audience
Organization
Terminology
Where to Find Additional Information
ODBC Conformance Levels
API Conformance Levels
SQL Conformance Levels
Network Access Requirements
Installation on UNIX Systems
Using the IDL DataMiner
Components
Using the DB_EXISTS Function
Creating a Database Object
Finding Available Databases
Finding a Specific Database
Connecting to a Database
Finding Tables
Finding Available Tables
Finding Specific Tables
Connecting to a Table
Working with Table Data
Moving Through a Recordset
Example
ODBC SQL Syntax Notes
Reserved ODBC SQL Words
Date, Time, and Timestamp Data
Scalar Functions
LIKE Predicate Escape Characters
Outer Joins
Procedure Calls
Data Type Mappings
Error Messages
IDL DataMiner API
How to Use This Chapter
Creating Database Objects
Destroying Database Objects
DIALOG_DBCONNECT
DB_EXISTS
IDLdbDatabase
IDLdbDatabase Properties
IDLdbDatabase::Connect
IDLdbDatabase::ExecuteSQL
IDLdbDatabase::GetDatasources
IDLdbDatabase::GetProperty
IDLdbDatabase::GetTables
IDLdbDatabase::SetProperty
IDLdbRecordset
IDLdbRecordset Properties
IDLdbRecordset::AddRecord
IDLdbRecordset::CurrentRecord
IDLdbRecordset::DeleteRecord
IDLdbRecordset::GetField
IDLdbRecordset::GetProperty
IDLdbRecordset::GetRecord
IDLdbRecordset::MoveCursor
IDLdbRecordset::NFields
IDLdbRecordset::SetField
ODBC Configuration on UNIX Systems
Overview of ODBC Configuration
ODBC Initialization File Format
ODBC Data Sources
Data Source Specification
Default Data Source Specification
ODBC Options
ODBC Initialization File Example
Medical Imaging in IDL
Expanded DICOM Support in IDL
Expanded DICOM Functionality in IDL
Using DICOM Network Services
Reading and Writing DICOM Files
Platform Support and Licensing
Supported Platforms
Licensing Requirements
Compliance with the DICOM Standard
Using IDL DICOM Network Services
Overview of DICOM Network Services
Network Performance and Virus Protection Software
Determining Configuration Parameters
Determining the IP Address
Determining TPC/IP Port Numbers
Starting the Network Services Utility
Local Versus System Configuration
Starting the DICOM Network Services Utility in Local Mode
Starting the DICOM Network Services Utility in System Mode
Completing Required Setup Tasks
Configuring Your System to Receive Files
Configuring an Application Entity
Default Application Entities
Defining a New Application Entity
Modifying an Application Entity
Deleting an Application Entity
Defining a Machine to Be Queried
Querying a Remote Machine
Configure Query SCU Service Properties
Query the Remote Node
Build or Modify a Custom Query
Retrieve Files from a Remote Node
Troubleshooting a Retrieval Operation
Sending Files to a Remote Destination
Defining the Remote Storage SCP Node
Sending Files to a Remote Machine
Troubleshooting a Send Operation
Returning Connection Status with Echo
Troubleshooting Echo Errors
About the Storage SCP Service
Storage SCP Service Permissions
Storage SCP Service Log Files
Managing the Storage SCP Service
Starting and Stopping the Service Outside the Utility
DICOM Network Services User Interface
System Mode Interface
Local Mode Interface
IDL DICOM Reference
DICOMEX_GETCONFIGFILEPATH
DICOMEX_GETSTORSCPDIR
DICOMEX_NET
IDLffDicomEx
Properties List
IDLffDicomEx Overview
File Compression and Transfer Syntax Support
IDLffDicomEx Properties
IDLffDicomEx::AddGroup
IDLffDicomEx::AddPrivateGroup
IDLffDicomEx::AddPrivateSequence
IDLffDicomEx::AddSequence
IDLffDicomEx::ChangeTransferSyntax
IDLffDicomEx::Cleanup
IDLffDicomEx::Commit
IDLffDicomEx::CopyTags
IDLffDicomEx::EnumerateTags
IDLffDicomEx::GetDescription
IDLffDicomEx::GetPixelData
IDLffDicomEx::GetPrivateValue
IDLffDicomEx::GetPrivateValueCount
IDLffDicomEx::GetPrivateValueLength
IDLffDicomEx::GetPrivateVR
IDLffDicomEx::GetProperty
IDLffDicomEx::GetValue
IDLffDicomEx::GetValueCount
IDLffDicomEx::GetValueLength
IDLffDicomEx::GetVR
IDLffDicomEx::Init
IDLffDicomEx::QueryPrivateValue
IDLffDicomEx::QueryValue
IDLffDicomEx::SetPixelData
IDLffDicomEx::SetPrivateValue
IDLffDicomEx::SetProperty
IDLffDicomEx::SetValue
DICOM Resources
DICOM Attributes
Value Representations
ION Script User's Guide
Configuring ION Script
Configuring ION Script for Windows
The Images Tab
The URLs Tab
The Files Tab
The Format Tab
The Debug Tab
Configuring ION Script for UNIX
Manually Configuring Your UNIX Web Server
ION Script Configuration Options
Images
URLs
Files
Format
Debug
Overview of ION Script
ION Script and ION Java
ION Script
ION Java
Which Product Should I Use?
What Is ION Script?
ION Script Pages
ION Script Applications
Anatomy of an ION Script Application
Example
Requesting an ION Script Page
Where to Store Your Files
How HTML Files Are Normally Requested
ION Script Files
Keeping .ion and .html Files in the Same Place
IDL Files
Running the ION Script Examples
Variables, Expressions & Operators
Variables
Declaring & Assigning Values
Variable Types
Assigning String Literals to ION Script Variables
Determining Variable Type
Null Strings Versus Undefined Strings
Variable Names
Variable Scope
Variable Persistence
ION System Variables
$Browser
$Document
$Form
$FormURL
$ION
$Mouse
Expressions
Values
Expression Types
Operators
Mathematical Operators
String Operators
Comparison Operators
Logical Operators
Operator Precedence
Creating ION Script Applications
Specifying URLs
HTTP URLs
HTTPS URLs
File URLs
ION URLs
Absolute Paths vs. the ION Search Path
HTML Forms vs. ION Script Forms
Passing Name/Value Pairs in a URL
Passing ION Script Variables in a URL
Passing Multiple Values With the Same Name
Handling Multiple Selections in a SELECT Element
Parsing the $Form Variable in an <IDL> Block
Parsing the $Form Variable in a <SCRIPT> Block
Passing IDL Variables to ION Script
Using Frames with ION Script
Overview of Fixed Framesets
Loading ION Script Pages in Frames
Floating Frames
Targeting Different Frames
Accommodating All Browsers
Using JavaScript and VBScript
Graphics in ION Script
Direct Graphics
Object Graphics
Bandwidth Issues
Output Formats
Using Special and International Characters
Example: Creating a Complete Application
Step 1: Displaying an IDL-Generated Image
Step 2: Declaring and Displaying Variables
Step 3: Adding Interactivity
Step 4: Validating Form Data
Step 5: Creating Reusable Pages
Step 6: Creating Interactive Images for Data Picking
Step 7: Displaying IDL-Generated Data
A Note On Using the Back Button
Application Variations
ION Script Tag Reference
ION Syntax Conventions
Elements of Syntax
Case Sensitivity
Using Quotation Marks
Variable Substitution in Attribute Values
HTML Mappings
The HTML Comment Tag
Alphabetical Listing of ION Script Tags
EVENT_DECL
EVENTS
IDL
IDL Tag Limitations
Using ION_EVALUTE and ION_VARIABLE Tags in an IDL Block
Single vs. Double Quotation Marks
Commenting IDL Code
Using the $ Symbol in an IDL Block
INPUT
ION_BODY
ION_BUTTON
ION_CHECKBOX
ION_DATA_OUT
ION_EVALUATE
ION_FORM
Forms Containing a Single Text Field
ION_HEADER
Metadata Tags
Events and Variables
ION_IF, ION_ELSEIF, ION_ELSE
ION_IMAGE
Notes About Using ION_IMAGE
ION_INCLUDE
ION_LINK
ION_OBJECT
ION_PARAM
ION_RADIO
ION_SCRIPT
ION_VARIABLE
VARIABLE_DECL
VARIABLES
Troubleshooting ION Script
Web Server Problems
If You Are Using Microsoft IIS
"Connection Failed" Errors
"Not Found" Errors
"No Event or Page" Errors
Licensing Errors
ION Script Syntax Errors
IDL Errors
Variables
Images Not Displaying
Frames
ION Java User's Guide
Configuring ION Java
Starting and Configuring the ION Daemon
Configuring ION Java for Windows
The ION Java Properties Dialog
Checking Status with the ION Java Status Utility
Windows Command Line Installation of the ION Daemon
Using Windows Services Manager to Start the ION Daemon
Configuring ION Java for UNIX
Starting the ION Daemon on UNIX
Starting the ION Daemon at Boot Time
Checking the Status of the ION Daemon
Shutting Down the ION Daemon
Manually Configuring Your Web Server
Command Security
Security Command Files
Client Verification
Connection Limit
Overview of ION Java
ION Script and ION Java
ION Script
ION Java
Which Product Should I Use?
What Is ION Java?
Recommended Skills
ION Java Architecture
ION Server
ION Daemon
Pre-Built ION Client Applets
ION Component Classes
ION Low-Level Classes
ION Java Limitations
IDL Limitations
ION Java Performance Considerations
Tips for Increasing Execution Speed in ION Java
Bandwidth Issues
Running the ION Java Examples
Where to Place HTML and Class Files
Testing ION Applications Locally
Publishing ION Applications on Your Web Server
Where to Locate the ION Class Files
What Are the Required Class Files?
Overview of the ION Java Classes
The ION Java Class Hierarchy
ION Low-Level Classes
ION Component Classes
ION Pre-Built Applets
Using the Component Classes
Setting Values
Getting and Setting Properties
Drawing
AWT vs. Swing
Using ION's Pre-Built Applets
The <APPLET> Tag
Attributes
Supporting Java-Incapable Browsers
Parameters Specified via <PARAM> Tags
Connecting to the ION Server
Behavior Parameters
IONGraphicApplet
IONContourApplet
IONMapApplet
IONPlotApplet
IONSurfaceApplet
Building ION Applets and Applications
Direct Graphics in ION
The ION Device
Keywords Accepted by the ION Device
Object Graphics in ION
Using Object References
Compiling .java Files
Error Handling and ION Exceptions
Debug Mode
Debugging Your Application
Converting Between IDL and Java Bytes
Considerations Specific to ION Applets
Including Applets in HTML Pages
Supporting Java Archive Files
Browser Support of ION Class Library Versions
Supporting Multiple Browser Types
Simple Applet Example
Further Examples
ION Applets and Scripting Languages
Tips and Tricks
ION Java Class and Method Reference
How to Use this Chapter
Syntax
Arguments
Exceptions
Example
IONCallableClient Class
IONCallableClient()
addIONCommandDoneListener()
addIONDisconnectListener()
addIONOutputListener()
connect()
disconnect()
executeIDLCommand()
getClientVersion()
getConnectionType()
getIDLVariable()
removeIONCommandDoneListener()
removeIONDisconnectListener()
removeIONOutputListener()
sendIDLCommand()
setConnectionMethod()
setConnectionTimeout()
setIDLVariable()
IONCanvas / IONJCanvas Class
IONCanvas() / IONJCanvas()
addIONMouseListener()
getDownButtons()
getImage()
getIONGraphics()
getMousePos()
removeIONMouseListener()
IONCommandDoneListener Interface
IONCommandComplete()
IONComplex Class
IONComplex()
doubleValue()
floatValue()
getDImaginary()
getImaginary()
intValue()
longValue()
toString()
IONContour / IONJContour Class
IONContour() / IONJContour()
draw()
getProperty()
setNoErase()
setProperty()
setXValue()
setYValue()
setZValue()
IONDComplex Class
IONDComplex()
doubleValue()
floatValue()
getDImaginary()
getImaginary()
intValue()
longValue()
toString()
IONDisconnectListener Interface
IONDisconnection()
IONDrawable Interface
createImage()
getImage()
getIONGraphics()
IONGraphicsClient Class
IONGraphicsClient()
addIONDrawable()
connect()
copyArea()
getCurrentIndex()
getIONDrawableIndices()
getNumIndices()
readImage()
removeIONDrawable()
setIONDrawable()
IONGraphicConnection Interface
IONGrConnection / IONJGrConnection Class
IONGrConnection()
addDrawable()
connect()
debugMode()
disconnect()
executeIDLCommand()
getIDLVariable()
removeDrawable()
sendIDLCommand()
setDrawable()
setIDLVariable()
IONGrContour Class
IONGrContour()
draw()
getProperty()
setProperty()
setNoErase()
setXValue()
setYValue()
setZValue()
IONGrDrawable / IONJGrDrawable Class
IONGrDrawable() / IONJGrDrawable()
addGraphic()
debugMode()
draw()
executeIDLCommand()
getConnection()
isConnected()
removeGraphic()
resetMulti()
sendIDLCommand()
setConnection()
setMulti()
setNoErase()
IONGrGraphic Class
IONGrGraphic()
draw()
getProperty()
getPropertyNames()
getPropertyString()
registerProperty()
setNoErase()
setProperty()
IONGrMap Class
IONGrMap()
draw()
getProperty()
setLat(), setLon()
setProperty()
setRotation()
IONGrMapContinents Class
IONGrMapContinents()
draw()
getProperty()
setProperty()
IONGrMapGrid Class
IONGrMapGrid()
draw()
getProperty()
setProperty()
IONGrMapImage Class
IONGrMapImage()
draw()
getProperty()
setImage()
setProperty()
setStart()
IONGrPlot Class
IONGrPlot()
draw()
getProperty()
setNoErase()
setProperty()
setXValue()
setYValue()
IONGrSurface Class
IONGrSurface()
draw()
getProperty()
setNoErase()
setProperty()
setXValue()
setYValue()
setZValue()
IONMap / IONJMap Class
IONMap() / IONJMap()
draw()
getProperty()
setLat(), setLon()
setProperty()
setRotation()
IONMouseListener Interface
mouseMoved()
mousePressed()
mouseReleased()
IONOffScreen Class
IONOffScreen()
createImage()
getImage()
getIONGraphics()
IONOutputListener Interface
IONOutputText()
IONPlot / IONJPlot Class
IONPlot() / IONJPlot()
draw()
getProperty()
setProperty()
setXValue()
setYValue()
IONSurface / IONJSurface Class
IONSurface() / IONJSurface()
draw()
getProperty()
setNoErase()
setProperty()
setXValue()
setYValue()
setZValue()
IONVariable Class
IONVariable()
arrayDimensions()
getByte()
getByteArray()
getComplexArray()
getDComplexArray()
getDImaginary()
getDimensionedByteArray()
getDimensionedDoubleArray()
getDimensionedFloatArray()
getDimensionedIntArray()
getDimensionedShortArray()
getDouble()
getDoubleArray()
getFloat()
getFloatArray()
getImaginary()
getInt()
getIntArray()
getShort()
getShortArray()
getString()
getStringArray()
isArray()
toString()
type()
IONWindowingClient Class
IONWindowingClient()
connect()
createWindow()
deleteWindow()
showWindow()
Troubleshooting ION Java
Avoiding Conflicting ION Installations
Checking Web Server Communication
Troubleshooting ION Service Problems
Troubleshooting Applets that Fail to Display
Troubleshooting "Not Found" Errors
Troubleshooting Licensing Errors
Setting the IDL Path
Troubleshooting Security Errors
Encountering Browser Timeouts with Java Errors
ION Server Timeout
JDK 1.2 Required for Clients
Introduction
Contacting RSI
System Requirements
IDL 6.2
ION 6.2
IDL-Java Bridge
Licensing Methods
IDL Virtual Machine
Demonstration Mode
Evaluation License
Personal Use License
Node-Locked License
Floating License
Running IDL in Demonstration Mode
Installing and Running on Windows
Installing and Running on UNIX
Installing and Running on Macintosh
Running the IDL Demo Applications
Windows
UNIX
Macintosh
Installing and Licensing IDL 6.2 for Windows
Introduction
Before You Begin
Recommended Steps for Installing and Licensing IDL for Windows
Installing IDL for Windows
System Requirements
Running the IDL Installer
Installing IDL Silently and Unattended
Licensing IDL for Windows
Requesting a License
Evaluation Licensing
Personal Use Licensing
Node-Locked Licensing
Floating Licensing
Saving the License File in an Alternative Location
Upgrading the Network License Server from a Previous Installation
Running IDL under Windows
Running the IDL Virtual Machine under Windows
Running IDL Runtime Programs under Windows
Installing and Licensing IDL 6.2 for UNIX
Introduction
Before You Begin
Recommended Steps for Installing and Licensing IDL for UNIX
Installing IDL for UNIX
System Requirements
Mount the IDL CD-ROM on Your System
Run the IDL Installer
Unmount the IDL CD-ROM from Your System
Licensing IDL for UNIX
Setting Up Your Environment
Requesting a License
Preparing a License Request
Manually Sending a License Request
Evaluation Licensing
Personal Use Licensing
Node-Locked or Floating Licensing
Modifying the License File
Upgrading the Network License Server from a Previous Installation
Working with the License Server
Multiple Applications That Use the Same License Manager
Troubleshooting
Setting Up the IDL Environment
Define IDL Environment Variables and Aliases
Define ION Environment Variables and Aliases
Define the Path to the License File or License Server
Running IDL under UNIX
Running the IDL Virtual Machine under UNIX
Running IDL Runtime Applications under UNIX
Installing and Licensing IDL 6.2 for Macintosh
Introduction
Recommended Steps for Installing and Licensing IDL for Mac OS X
Installing IDL for Macintosh
System Requirements
Run the IDL Installer
Licensing IDL for Macintosh
Setting Up Your Environment
Requesting a License
Preparing a License Request
Manually Sending a License Request
Evaluation Licensing
Personal Use Licensing
Node-Locked or Floating Licensing
Modifying the License File
Upgrading the License Server from a Previous Installation
Working with the License Server
Multiple Applications That Use the Same License Server
Setting Up the IDL Environment
Running IDL for Macintosh
Running IDL from Applescript
Running IDL from the Command Line
Running the IDL Virtual Machine under Macintosh
Running IDL Runtime Applications under Macintosh
Removing IDL for Macintosh
Troubleshooting Licensing
General Information
Other Resources
For Further Help
Evaluation Licenses
The License Information Does Not Pass the Checksum Test
The File Already Exists
The File Cannot Be Written
Personal Use Licenses
Check the License Format
Files Needed for Initialization of the Licensing Program Could Not Be Found
License File Does Not Support This Version
IDL Cannot Find License
Node-Locked Licenses (Windows)
Check the License Format
The Hostid of This System Does Not Match the Hostid
The License File Does Not Support This Version
Cannot Find License
Licenses Requiring a License Server
All Platforms
UNIX and Macintosh
License Manager Startup
Running Older Versions of IDL
Running Older Versions of IDL Concurrently with IDL 6.2
Start the Latest Version of the License Manager
Using IDL Version 5.x with the IDL Version 6.2 License Manager
Customizing Your Floating Licenses
Creating an Options File
Options File Keywords
Sample Options Files
IDL Reference Guide
Overview of IDL Syntax
IDL Syntax
Elements of Syntax
Procedures
Functions
Arguments
Keywords
Running the Example Code
Part I: IDL Command Reference
Functional List of IDL Routines
3D Visualization
3D Transformations & Scene Setup
Polygonal Mesh Routines
Surfaces and Contours
Tetrahedral Mesh Routines
Vector Field Visualization
Volume Visualization
Animation
Array Creation
Array Manipulation
Color Table Manipulation
Date and Time
Debugging
Dialog Routines
Direct Graphics
Error Handling
Executive Commands
External Linking
Font Manipulation
Help Routines
Image Processing
Contrast Enhancement and Filtering
Feature Extraction/Image Segmentation
Image Display
Image Geometry Transformations
Morphological Image Operators
Regions of Interest
Input/Output
General File Access
Image Data Formats
Scientific Data Formats
Other Data Formats
General Input/Output
Language Catalogs
Mapping
Mathematics
Complex Numbers
Correlation Analysis
Curve and Surface Fitting
Differentiation and Integration
Eigenvalues and Eigenvectors
Gridding and Interpolation
Hypothesis Testing
LAPACK Routines
Linear Systems
Mathematical Error Assessment
Miscellaneous Math Routines
Multivariate Analysis
Nonlinear Equations
Optimization
Probability
Sparse Arrays
Special Math Functions
Statistical Fitting
Statistical Tools
Time-Series Analysis
Transcendental Functions
Transforms
Object Class Library
Analysis Objects
File Format Objects
Graphic Objects-Destination
Graphic Objects-Display
Graphic Objects-Visualization
iTools System Objects
Miscellaneous Objects
Operating System Access
Performance Testing
Plotting
Programming and IDL Control
Query Routines
Saving/Restoring a Session
Scientific Data Formats
Scope Functions
Signal Processing
Statements
Compound Statements
Conditional Statements
Loop Statements
Jump Statements
Functions and Procedures
Variable Scope
String Processing
Structures
Type Conversion
Utilities
Wavelet Toolkit
Widget Commands and Visualization Tools
Wavelet Transform
Wavelet Functions
Widget Routines
Widget Routines, Compound
Animation
Color Manipulation
Data Entry and Display
Image/Data Manipulation
Orientation
User Interface
Window Routines
Dot Commands
.COMPILE
.CONTINUE
.EDIT
.FULL_RESET_SESSION
.GO
.OUT
.RESET_SESSION
.RETURN
.RNEW
.RUN
.SKIP
.STEP
.STEPOVER
.TRACE
Procedures and Functions
A_CORRELATE
ABS
ACOS
ADAPT_HIST_EQUAL
ALOG
ALOG10
AMOEBA
ANNOTATE
APP_USER_DIR
APP_USER_DIR_QUERY
ARG_PRESENT
ARRAY_EQUAL
ARRAY_INDICES
ARROW
ASCII_TEMPLATE
ASIN
ASSOC
ATAN
AXIS
BAR_PLOT
BEGIN...END
BESELI
BESELJ
BESELK
BESELY
BETA
BILINEAR
BIN_DATE
BINARY_TEMPLATE
BINDGEN
BINOMIAL
BIT_FFS
BIT_POPULATION
BLAS_AXPY
BLK_CON
BOX_CURSOR
BREAK
BREAKPOINT
BROYDEN
BYTARR
BYTE
BYTEORDER
BYTSCL
C_CORRELATE
CALDAT
CALENDAR
CALL_EXTERNAL
CALL_FUNCTION
CALL_METHOD
CALL_PROCEDURE
CASE
CATCH
CD
CDF Routines
CEIL
CHEBYSHEV
CHECK_MATH
CHISQR_CVF
CHISQR_PDF
CHOLDC
CHOLSOL
CINDGEN
CIR_3PNT
CLOSE
CLUST_WTS
CLUSTER
CLUSTER_TREE
CMYK_CONVERT
COLOR_CONVERT
COLOR_QUAN
COLORMAP_APPLICABLE
COMFIT
COMMAND_LINE_ARGS
COMMON
COMPILE_OPT
COMPLEX
COMPLEXARR
COMPLEXROUND
COMPUTE_MESH_NORMALS
COND
CONGRID
CONJ
CONSTRAINED_MIN
CONTINUE
CONTOUR
CONVERT_COORD
CONVOL
COORD2TO3
COPY_LUN
CORRELATE
COS
COSH
CPU
CRAMER
CREATE_CURSOR
CREATE_STRUCT
CREATE_VIEW
CROSSP
CRVLENGTH
CT_LUMINANCE
CTI_TEST
CURSOR
CURVEFIT
CV_COORD
CVTTOBM
CW_ANIMATE
CW_ANIMATE_GETP
CW_ANIMATE_LOAD
CW_ANIMATE_RUN
CW_ARCBALL
CW_BGROUP
CW_CLR_INDEX
CW_COLORSEL
CW_DEFROI
CW_FIELD
CW_FILESEL
CW_FORM
CW_FSLIDER
CW_LIGHT_EDITOR
CW_LIGHT_EDITOR_GET
CW_LIGHT_EDITOR_SET
CW_ORIENT
CW_PALETTE_EDITOR
CW_PALETTE_EDITOR_GET
CW_PALETTE_EDITOR_SET
CW_PDMENU
CW_RGBSLIDER
CW_TMPL
CW_ZOOM
DataMiner Routines
DBLARR
DCINDGEN
DCOMPLEX
DCOMPLEXARR
DEFINE_KEY
DEFINE_MSGBLK
DEFINE_MSGBLK_FROM_FILE
DEFROI
DEFSYSV
DELVAR
DENDRO_PLOT
DENDROGRAM
DERIV
DERIVSIG
DETERM
DEVICE
DFPMIN
DIAG_MATRIX
DIALOG_MESSAGE
DIALOG_PICKFILE
DIALOG_PRINTERSETUP
DIALOG_PRINTJOB
DIALOG_READ_IMAGE
DIALOG_WRITE_IMAGE
DIGITAL_FILTER
DILATE
DINDGEN
DISSOLVE
DIST
DISTANCE_MEASURE
DLM_LOAD
DLM_REGISTER
DOC_LIBRARY
DOUBLE
DRAW_ROI
EFONT
EIGENQL
EIGENVEC
ELMHES
EMPTY
ENABLE_SYSRTN
EOF
EOS_* Routines
ERASE
ERF
ERFC
ERFCX
ERODE
ERRPLOT
EXECUTE
EXIT
EXP
EXPAND
EXPAND_PATH
EXPINT
EXTRAC
EXTRACT_SLICE
F_CVF
F_PDF
FACTORIAL
FFT
FILE_BASENAME
FILE_CHMOD
FILE_COPY
FILE_DELETE
FILE_DIRNAME
FILE_EXPAND_PATH
FILE_INFO
FILE_LINES
FILE_LINK
FILE_MKDIR
FILE_MOVE
FILE_POLL_INPUT
FILE_READLINK
FILE_SAME
FILE_SEARCH
FILE_TEST
FILE_WHICH
FILEPATH
FINDGEN
FINITE
FIX
FLICK
FLOAT
FLOOR
FLOW3
FLTARR
FLUSH
FOR
FORMAT_AXIS_VALUES
FORWARD_FUNCTION
FREE_LUN
FSTAT
FULSTR
FUNCT
FUNCTION
FV_TEST
FX_ROOT
FZ_ROOTS
GAMMA
GAMMA_CT
GAUSS_CVF
GAUSS_PDF
GAUSS2DFIT
GAUSSFIT
GAUSSINT
GET_DRIVE_LIST
GET_KBRD
GET_LUN
GET_SCREEN_SIZE
GETENV
GOTO
GRID_INPUT
GRID_TPS
GRID3
GRIDDATA
GS_ITER
H_EQ_CT
H_EQ_INT
H5_* Routines
H5_BROWSER
HANNING
HDF_* Routines
HDF_BROWSER
HDF_READ
HEAP_FREE
HEAP_GC
HEAP_NOSAVE
HEAP_SAVE
HELP
HILBERT
HIST_2D
HIST_EQUAL
HISTOGRAM
HLS
HOUGH
HQR
HSV
IBETA
ICONTOUR
IDENTITY
IDL_VALIDNAME
IDLITSYS_CREATETOOL
IF...THEN...ELSE
IGAMMA
IIMAGE
IMAGE_CONT
IMAGE_STATISTICS
IMAGINARY
IMAP
INDGEN
INT_2D
INT_3D
INT_TABULATED
INTARR
INTERPOL
INTERPOLATE
INTERVAL_VOLUME
INVERT
IOCTL
IPLOT
ISHFT
ISOCONTOUR
ISOSURFACE
ISURFACE
ITCURRENT
ITDELETE
ITGETCURRENT
ITREGISTER
ITRESET
ITRESOLVE
IVOLUME
JOURNAL
JULDAY
KEYWORD_SET
KRIG2D
KURTOSIS
KW_TEST
L64INDGEN
LA_CHOLDC
LA_CHOLMPROVE
LA_CHOLSOL
LA_DETERM
LA_EIGENPROBLEM
LA_EIGENQL
LA_EIGENVEC
LA_ELMHES
LA_GM_LINEAR_MODEL
LA_HQR
LA_INVERT
LA_LEAST_SQUARE_EQUALITY
LA_LEAST_SQUARES
LA_LINEAR_EQUATION
LA_LUDC
LA_LUMPROVE
LA_LUSOL
LA_SVD
LA_TRIDC
LA_TRIMPROVE
LA_TRIQL
LA_TRIRED
LA_TRISOL
LABEL_DATE
LABEL_REGION
LADFIT
LAGUERRE
LEEFILT
LEGENDRE
LINBCG
LINDGEN
LINFIT
LINKIMAGE
LL_ARC_DISTANCE
LMFIT
LMGR
LNGAMMA
LNP_TEST
LOADCT
LOCALE_GET
LOGICAL_AND
LOGICAL_OR
LOGICAL_TRUE
LON64ARR
LONARR
LONG
LONG64
LSODE
LU_COMPLEX
LUDC
LUMPROVE
LUSOL
M_CORRELATE
MACHAR
MAKE_ARRAY
MAKE_DLL
MAP_2POINTS
MAP_CONTINENTS
MAP_GRID
MAP_IMAGE
MAP_PATCH
MAP_PROJ_FORWARD
MAP_PROJ_IMAGE
MAP_PROJ_INFO
MAP_PROJ_INIT
MAP_PROJ_INVERSE
MAP_SET
MATRIX_MULTIPLY
MATRIX_POWER
MAX
MD_TEST
MEAN
MEANABSDEV
MEDIAN
MEMORY
MESH_CLIP
MESH_DECIMATE
MESH_ISSOLID
MESH_MERGE
MESH_NUMTRIANGLES
MESH_OBJ
MESH_SMOOTH
MESH_SURFACEAREA
MESH_VALIDATE
MESH_VOLUME
MESSAGE
MIN
MIN_CURVE_SURF
MK_HTML_HELP
MODIFYCT
MOMENT
MORPH_CLOSE
MORPH_DISTANCE
MORPH_GRADIENT
MORPH_HITORMISS
MORPH_OPEN
MORPH_THIN
MORPH_TOPHAT
MPEG_CLOSE
MPEG_OPEN
MPEG_PUT
MPEG_SAVE
MULTI
N_ELEMENTS
N_PARAMS
N_TAGS
NCDF_* Routines
NEWTON
NORM
OBJ_CLASS
OBJ_DESTROY
OBJ_ISA
OBJ_NEW
OBJ_VALID
OBJARR
ON_ERROR
ON_IOERROR
ONLINE_HELP
OPENR/OPENU/OPENW
OPLOT
OPLOTERR
P_CORRELATE
PARTICLE_TRACE
PATH_CACHE
PATH_SEP
PCOMP
PLOT
PLOT_3DBOX
PLOT_FIELD
PLOTERR
PLOTS
PNT_LINE
POINT_LUN
POLAR_CONTOUR
POLAR_SURFACE
POLY
POLY_2D
POLY_AREA
POLY_FIT
POLYFILL
POLYFILLV
POLYSHADE
POLYWARP
POPD
POWELL
PREF_COMMIT
PREF_GET
PREF_MIGRATE
PREF_SET
PRIMES
PRINT/PRINTF
PRINTD
PRO
PRODUCT
PROFILE
PROFILER
PROFILES
PROJECT_VOL
PS_SHOW_FONTS
PSAFM
PSEUDO
PTR_FREE
PTR_NEW
PTR_VALID
PTRARR
PUSHD
QGRID3
QHULL
QROMB
QROMO
QSIMP
QUERY_* Routines
QUERY_ASCII
QUERY_BMP
QUERY_DICOM
QUERY_GIF
QUERY_IMAGE
QUERY_JPEG
QUERY_JPEG2000
QUERY_MRSID
QUERY_PICT
QUERY_PNG
QUERY_PPM
QUERY_SRF
QUERY_TIFF
QUERY_WAV
R_CORRELATE
R_TEST
RADON
RANDOMN
RANDOMU
RANKS
RDPIX
READ/READF
READ_ASCII
READ_BINARY
READ_BMP
READ_DICOM
READ_GIF
READ_IMAGE
READ_INTERFILE
READ_JPEG
READ_JPEG2000
READ_MRSID
READ_PICT
READ_PNG
READ_PPM
READ_SPR
READ_SRF
READ_SYLK
READ_TIFF
READ_WAV
READ_WAVE
READ_X11_BITMAP
READ_XWD
READS
READU
REAL_PART
REBIN
RECALL_COMMANDS
RECON3
REDUCE_COLORS
REFORM
REGION_GROW
REGISTER_CURSOR
REGRESS
REPEAT...UNTIL
REPLICATE
REPLICATE_INPLACE
RESOLVE_ALL
RESOLVE_ROUTINE
RESTORE
RETALL
RETURN
REVERSE
RK4
ROBERTS
ROT
ROTATE
ROUND
ROUTINE_INFO
RS_TEST
S_TEST
SAVE
SAVGOL
SCALE3
SCALE3D
SCOPE_LEVEL
SCOPE_TRACEBACK
SCOPE_VARFETCH
SCOPE_VARNAME
SEARCH2D
SEARCH3D
SET_PLOT
SET_SHADING
SETENV
SFIT
SHADE_SURF
SHADE_SURF_IRR
SHADE_VOLUME
SHIFT
SHMDEBUG
SHMMAP
SHMUNMAP
SHMVAR
SHOW3
SHOWFONT
SIMPLEX
SIN
SINDGEN
SINH
SIZE
SKEWNESS
SKIP_LUN
SLICER3
SLIDE_IMAGE
SMOOTH
SOBEL
SOCKET
SORT
SPAWN
SPH_4PNT
SPH_SCAT
SPHER_HARM
SPL_INIT
SPL_INTERP
SPLINE
SPLINE_P
SPRSAB
SPRSAX
SPRSIN
SPRSTP
SQRT
STANDARDIZE
STDDEV
STOP
STRARR
STRCMP
STRCOMPRESS
STREAMLINE
STREGEX
STRETCH
STRING
STRJOIN
STRLEN
STRLOWCASE
STRMATCH
STRMESSAGE
STRMID
STRPOS
STRPUT
STRSPLIT
STRTRIM
STRUCT_ASSIGN
STRUCT_HIDE
STRUPCASE
SURFACE
SURFR
SVDC
SVDFIT
SVSOL
SWAP_ENDIAN
SWAP_ENDIAN_INPLACE
SWITCH
SYSTIME
T_CVF
T_PDF
T3D
TAG_NAMES
TAN
TANH
TEK_COLOR
TEMPORARY
TETRA_CLIP
TETRA_SURFACE
TETRA_VOLUME
THIN
THREED
TIME_TEST2
TIMEGEN
TM_TEST
TOTAL
TRACE
TRANSPOSE
TRI_SURF
TRIANGULATE
TRIGRID
TRIQL
TRIRED
TRISOL
TRUNCATE_LUN
TS_COEF
TS_DIFF
TS_FCAST
TS_SMOOTH
TV
TVCRS
TVLCT
TVRD
TVSCL
UINDGEN
UINT
UINTARR
UL64INDGEN
ULINDGEN
ULON64ARR
ULONARR
ULONG
ULONG64
UNIQ
UNSHARP_MASK
USERSYM
VALUE_LOCATE
VARIANCE
VECTOR_FIELD
VEL
VELOVECT
VERT_T3D
VOIGT
VORONOI
VOXEL_PROJ
WAIT
WARP_TRI
WATERSHED
Wavelet Toolkit
WDELETE
WF_DRAW
WHERE
WHILE...DO
WIDGET_ACTIVEX
WIDGET_BASE
WIDGET_BUTTON
WIDGET_COMBOBOX
WIDGET_CONTROL
WIDGET_DISPLAYCONTEXTMENU
WIDGET_DRAW
WIDGET_DROPLIST
WIDGET_EVENT
WIDGET_INFO
WIDGET_LABEL
WIDGET_LIST
WIDGET_PROPERTYSHEET
WIDGET_SLIDER
WIDGET_TAB
WIDGET_TABLE
WIDGET_TEXT
WIDGET_TREE
WINDOW
WRITE_BMP
WRITE_GIF
WRITE_IMAGE
WRITE_JPEG
WRITE_JPEG2000
WRITE_NRIF
WRITE_PICT
WRITE_PNG
WRITE_PPM
WRITE_SPR
WRITE_SRF
WRITE_SYLK
WRITE_TIFF
WRITE_WAV
WRITE_WAVE
WRITEU
WSET
WSHOW
WTN
WV_* Routines
XBM_EDIT
XDISPLAYFILE
XDXF
XFONT
XINTERANIMATE
XLOADCT
XMANAGER
XMNG_TMPL
XMTOOL
XOBJVIEW
XOBJVIEW_ROTATE
XOBJVIEW_WRITE_IMAGE
XPALETTE
XPCOLOR
XPLOT3D
XREGISTERED
XROI
XSQ_TEST
XSURFACE
XVAREDIT
XVOLUME
XVOLUME_ROTATE
XVOLUME_WRITE_IMAGE
XYOUTS
ZOOM
ZOOM_24
Part II: Object Class and Method Reference
IDL Object Class Overview
Using the Class Reference
Object Method Syntax
Arguments
Creating Objects from the Class Library
Object Properties
Properties and the Property Sheet Interface
Setting Properties at Initialization
Setting Properties of Existing Objects
Retrieving Property Settings
About Object Property Descriptions
Registered Properties
Registering a Property
Registering All Available Properties
Registered Property Data Types
User Defined Property Types
Undocumented Object Classes
Analysis Object Classes
IDLanROI
IDLanROI Properties
IDLanROI::AppendData
IDLanROI::Cleanup
IDLanROI::ComputeGeometry
IDLanROI::ComputeMask
IDLanROI::ContainsPoints
IDLanROI::GetProperty
IDLanROI::Init
IDLanROI::RemoveData
IDLanROI::ReplaceData
IDLanROI::Rotate
IDLanROI::Scale
IDLanROI::SetProperty
IDLanROI::Translate
IDLanROIGroup
IDLanROIGroup Properties
IDLanROIGroup::Add
IDLanROIGroup::Cleanup
IDLanROIGroup::ComputeMask
IDLanROIGroup::ComputeMesh
IDLanROIGroup::ContainsPoints
IDLanROIGroup::GetProperty
IDLanROIGroup::Init
IDLanROIGroup::Rotate
IDLanROIGroup::Scale
IDLanROIGroup::Translate
File Format Object Classes
IDLffDICOM
IDLffDICOM Object DICOM Conformance Summary
IDLffDICOM Properties
IDLffDICOM::Cleanup
IDLffDICOM::DumpElements
IDLffDICOM::GetChildren
IDLffDICOM::GetDescription
IDLffDICOM::GetElement
IDLffDICOM::GetGroup
IDLffDICOM::GetLength
IDLffDICOM::GetParent
IDLffDICOM::GetPreamble
IDLffDICOM::GetReference
IDLffDICOM::GetValue
IDLffDICOM::GetVR
IDLffDICOM::Init
IDLffDICOM::Read
IDLffDICOM::Reset
IDLffDXF
IDLffDXF Properties
IDLffDXF::Cleanup
IDLffDXF::GetContents
IDLffDXF::GetEntity
Fields Common to All Structures
Structure Formats
IDLffDXF::GetPalette
IDLffDXF::Init
IDLffDXF::PutEntity
IDLffDXF::Read
IDLffDXF::RemoveEntity
IDLffDXF::Reset
IDLffDXF::SetPalette
IDLffDXF::Write
IDLffJPEG2000
Overview of IDL and JPEG2000
Saving and Restoring IDLffJPEG2000 Objects
IDLffJPEG2000 Properties
IDLffJPEG2000::Cleanup
IDLffJPEG2000::GetData
IDLffJPEG2000::GetProperty
IDLffJPEG2000::GetTileProperty
IDLffJPEG2000::GetUUID
IDLffJPEG2000::Init
IDLffJPEG2000::SetData
IDLffJPEG2000::SetProperty
IDLffJPEG2000::SetUUID
IDLffLangCat
IDLffLangCat Properties
IDLffLangCat::AppendCatalog
IDLffLangCat::Cleanup
IDLffLangCat::GetProperty
IDLffLangCat::Init
IDLffLangCat::Query
IDLffLangCat::SetProperty
IDLffMrSID
IDLffMrSID Properties
IDLffMrSID::Cleanup
IDLffMrSID::GetDimsAtLevel
IDLffMrSID::GetImageData
IDLffMrSID::GetProperty
IDLffMrSID::Init
IDLffShape
Overview of ESRI Shapefiles
Accessing Shapefiles
Creating New Shapefiles
Updating Existing Shapefiles
IDLffShape Properties
IDLffShape::AddAttribute
IDLffShape::Cleanup
IDLffShape::Close
IDLffShape::DestroyEntity
IDLffShape::GetAttributes
IDLffShape::GetEntity
IDLffShape::GetProperty
IDLffShape::Init
IDLffShape::Open
IDLffShape::PutEntity
IDLffShape::SetAttributes
IDLffXMLDOM Classes
IDLffXMLDOMAttr
IDLffXMLDOMAttr Properties
IDLffXMLDOMAttr::Cleanup
IDLffXMLDOMAttr::GetName
IDLffXMLDOMAttr::GetSpecified
IDLffXMLDOMAttr::GetValue
IDLffXMLDOMAttr::Init
IDLffXMLDOMAttr::SetValue
IDLffXMLDOMCDATASection
IDLffXMLDOMCDATASection Properties
IDLffXMLDOMCDATASection::Cleanup
IDLffXMLDOMCDATASection::Init
IDLffXMLDOMCharacterData
IDLffXMLDOMCharacterData Properties
IDLffXMLDOMCharacterData::AppendData
IDLffXMLDOMCharacterData::Cleanup
IDLffXMLDOMCharacterData::DeleteData
IDLffXMLDOMCharacterData::GetData
IDLffXMLDOMCharacterData::GetLength
IDLffXMLDOMCharacterData::Init
IDLffXMLDOMCharacterData::InsertData
IDLffXMLDOMCharacterData::ReplaceData
IDLffXMLDOMCharacterData::SetData
IDLffXMLDOMCharacterData::SubstringData
IDLffXMLDOMComment
IDLffXMLDOMComment Properties
IDLffXMLDOMComment::Cleanup
IDLffXMLDOMComment::Init
IDLffXMLDOMDocument
IDLffXMLDOMDocument Properties
IDLffXMLDOMDocument::Cleanup
IDLffXMLDOMDocument::CreateAttribute
IDLffXMLDOMDocument::CreateCDATASection
IDLffXMLDOMDocument::CreateComment
IDLffXMLDOMDocument::CreateDocumentFragment
IDLffXMLDOMDocument::CreateElement
IDLffXMLDOMDocument::CreateEntityReference
IDLffXMLDOMDocument::CreateNodeIterator
IDLffXMLDOMDocument::CreateProcessingInstruction
IDLffXMLDOMDocument::CreateTextNode
IDLffXMLDOMDocument::CreateTreeWalker
IDLffXMLDOMDocument::GetDoctype
IDLffXMLDOMDocument::GetDocumentElement
IDLffXMLDOMDocument::GetElementsByTagName
IDLffXMLDOMDocument::GetProperty
IDLffXMLDOMDocument::Init
IDLffXMLDOMDocument::Load
IDLffXMLDOMDocument::Save
IDLffXMLDOMDocument::SetProperty
IDLffXMLDOMDocumentFragment
IDLffXMLDOMDocumentFragment Properties
IDLffXMLDOMDocumentFragment::Cleanup
IDLffXMLDOMDocumentFragment::Init
IDLffXMLDOMDocumentType
IDLffXMLDOMDocumentType Properties
IDLffXMLDOMDocumentType::Cleanup
IDLffXMLDOMDocumentType::GetEntities
IDLffXMLDOMDocumentType::GetName
IDLffXMLDOMDocumentType::GetNotations
IDLffXMLDOMDocumentType::Init
IDLffXMLDOMElement
IDLffXMLDOMElement Properties
IDLffXMLDOMElement::Cleanup
IDLffXMLDOMElement::GetAttribute
IDLffXMLDOMElement::GetAttributeNode
IDLffXMLDOMElement::GetElementsByTagName
IDLffXMLDOMElement::GetTagName
IDLffXMLDOMElement::Init
IDLffXMLDOMElement::RemoveAttribute
IDLffXMLDOMElement::RemoveAttributeNode
IDLffXMLDOMElement::SetAttribute
IDLffXMLDOMElement::SetAttributeNode
IDLffXMLDOMEntity
IDLffXMLDOMEntity Properties
IDLffXMLDOMEntity::Cleanup
IDLffXMLDOMEntity::GetNotationName
IDLffXMLDOMEntity::GetPublicId
IDLffXMLDOMEntity::GetSystemId
IDLffXMLDOMEntity::Init
IDLffXMLDOMEntityReference
IDLffXMLDOMEntityReference Properties
IDLffXMLDOMEntityReference::Cleanup
IDLffXMLDOMEntityReference::Init
IDLffXMLDOMNamedNodeMap
IDLffXMLDOMNamedNodeMap Properties
IDLffXMLDOMNamedNodeMap::Cleanup
IDLffXMLDOMNamedNodeMap::GetLength
IDLffXMLDOMNamedNodeMap::GetNamedItem
IDLffXMLDOMNamedNodeMap::Init
IDLffXMLDOMNamedNodeMap::Item
IDLffXMLDOMNamedNodeMap::RemoveNamedItem
IDLffXMLDOMNamedNodeMap::SetNamedItem
IDLffXMLDOMNode
IDLffXMLDOMNode Properties
IDLffXMLDOMNode::AppendChild
IDLffXMLDOMNode::Cleanup
IDLffXMLDOMNode::CloneNode
IDLffXMLDOMNode::GetAttributes
IDLffXMLDOMNode::GetChildNodes
IDLffXMLDOMNode::GetFirstChild
IDLffXMLDOMNode::GetLastChild
IDLffXMLDOMNode::GetNextSibling
IDLffXMLDOMNode::GetNodeName
IDLffXMLDOMNode::GetNodeType
IDLffXMLDOMNode::GetNodeValue
IDLffXMLDOMNode::GetOwnerDocument
IDLffXMLDOMNode::GetParentNode
IDLffXMLDOMNode::GetPreviousSibling
IDLffXMLDOMNode::HasChildNodes
IDLffXMLDOMNode::Init
IDLffXMLDOMNode::InsertBefore
IDLffXMLDOMNode::RemoveChild
IDLffXMLDOMNode::ReplaceChild
IDLffXMLDOMNode::SetNodeValue
IDLffXMLDOMNodeIterator
IDLffXLMDOMNodeIterator Properties
IDLffXMLDOMNodeIterator::Cleanup
IDLffXMLDOMNodeIterator::Init
IDLffXMLDOMNodeIterator::NextNode
IDLffXMLDOMNodeIterator::PreviousNode
IDLffXMLDOMNodeList
IDLffXMLDOMNodeList Properties
IDLffXMLDOMNodeList::Cleanup
IDLffXMLDOMNodeList::GetLength
IDLffXMLDOMNodeList::Init
IDLffXMLDOMNodeList::Item
IDLffXMLDOMNotation
IDLffXMLDOMNotation Properties
IDLffXMLDOMNotation::Cleanup
IDLffXMLDOMNotation::GetPublicID
IDLffXMLDOMNotation::GetSystemID
IDLffXMLDOMNotation::Init
IDLffXMLDOMProcessingInstruction
IDLffXMLDOMProcessingInstruction Properties
IDLffXMLDOMProcessingInstruction::Cleanup
IDLffXMLDOMProcessingInstruction::GetData
IDLffXMLDOMProcessingInstruction::GetTarget
IDLffXMLDOMProcessingInstruction::Init
IDLffXMLDOMProcessingInstruction::SetData
IDLffXMLDOMText
IDLffXMLDOMText Properties
IDLffXMLDOMText::Cleanup
IDLffXMLDOMText::Init
IDLffXMLDOMText::IsIgnorableWhitespace
IDLffXMLDOMText::SplitText
IDLffXMLDOMTreeWalker
IDLffXMLDOMTreeWalker Properties
IDLffXMLDOMTreeWalker::Cleanup
IDLffXMLDOMTreeWalker::FirstChild
IDLffXMLDOMTreeWalker::GetCurrentNode
IDLffXMLDOMTreeWalker::Init
IDLffXMLDOMTreeWalker::LastChild
IDLffXMLDOMTreeWalker::NextNode
IDLffXMLDOMTreeWalker::NextSibling
IDLffXMLDOMTreeWalker::ParentNode
IDLffXMLDOMTreeWalker::PreviousNode
IDLffXMLDOMTreeWalker::PreviousSibling
IDLffXMLDOMTreeWalker::SetCurrentNode
IDLffXMLSAX
IDLffXMLSAX Properties
IDLffXMLSAX::AttributeDecl
IDLffXMLSAX::Characters
IDLffXMLSAX::Cleanup
IDLffXMLSAX::Comment
IDLffXMLSAX::ElementDecl
IDLffXMLSAX::EndCDATA
IDLffXMLSAX::EndDocument
IDLffXMLSAX::EndDTD
IDLffXMLSAX::EndElement
IDLffXMLSAX::EndEntity
IDLffXMLSAX::EndPrefixMapping
IDLffXMLSAX::Error
IDLffXMLSAX::ExternalEntityDecl
IDLffXMLSAX::FatalError
IDLffXMLSAX::GetProperty
IDLffXMLSAX::IgnorableWhitespace
IDLffXMLSAX::Init
IDLffXMLSAX::InternalEntityDecl
IDLffXMLSAX::NotationDecl
IDLffXMLSAX::ParseFile
IDLffXMLSAX::ProcessingInstruction
IDLffXMLSAX::SetProperty
IDLffXMLSAX::SkippedEntity
IDLffXMLSAX::StartCDATA
IDLffXMLSAX::StartDocument
IDLffXMLSAX::StartDTD
IDLffXMLSAX::StartElement
IDLffXMLSAX::StartEntity
IDLffXMLSAX::StartPrefixmapping
IDLffXMLSAX::StopParsing
IDLffXMLSAX::UnparsedEntityDecl
IDLffXMLSAX::Warning
iTools Object Classes
IDLitCommand
IDLitCommand Properties
IDLitCommand::AddItem
IDLitCommand::Cleanup
IDLitCommand::GetItem
IDLitCommand::GetProperty
IDLitCommand::GetSize
IDLitCommand::Init
IDLitCommand::SetProperty
IDLitCommandSet
IDLitCommandSet Properties
IDLitCommandSet::Cleanup
IDLitCommandSet::GetSize
IDLitCommandSet::Init
IDLitComponent
IDLitComponent Properties
IDLitComponent::Cleanup
IDLitComponent::EditUserDefProperty
IDLitComponent::GetFullIdentifier
IDLitComponent::GetProperty
IDLitComponent::GetPropertyAttribute
IDLitComponent::GetPropertyByIdentifier
IDLitComponent::Init
IDLitComponent::QueryProperty
IDLitComponent::RegisterProperty
IDLitComponent::Restore
IDLitComponent::SetProperty
IDLitComponent::SetPropertyAttribute
IDLitComponent::SetPropertyByIdentifier
IDLitComponent::UpdateComponentVersion
IDLitContainer
IDLitContainer Properties
IDLitContainer::Add
IDLitContainer::AddByIdentifier
IDLitContainer::Cleanup
IDLitContainer::FindIdentifiers
IDLitContainer::Get
IDLitContainer::GetByIdentifier
IDLitContainer::Init
IDLitContainer::Remove
IDLitContainer::RemoveByIdentifier
IDLitData
IDLitData Properties
IDLitData::AddDataObserver
IDLitData::Cleanup
IDLitData::Copy
IDLitData::GetByType
IDLitData::GetData
IDLitData::GetProperty
IDLitData::GetSize
IDLitData::Init
IDLitData::NotifyDataChange
IDLitData::NotifyDataComplete
IDLitData::RemoveDataObserver
IDLitData::SetData
IDLitData::SetProperty
IDLitDataContainer
IDLitDataContainer Properties
IDLitDataContainer::Add
IDLitDataContainer::Cleanup
IDLitDataContainer::GetData
IDLitDataContainer::GetIdentifiers
IDLitDataContainer::GetProperty
IDLitDataContainer::Init
IDLitDataContainer::SetData
IDLitDataContainer::SetProperty
IDLitDataOperation
IDLitDataOperation Properties
IDLitDataOperation::Cleanup
IDLitDataOperation::DoExecuteUI
IDLitDataOperation::Execute
IDLitDataOperation::GetProperty
IDLitDataOperation::Init
IDLitDataOperation::SetProperty
IDLitDataOperation::UndoExecute
IDLitIMessaging
IDLitIMessaging Properties
IDLitIMessaging::AddOnNotifyObserver
IDLitIMessaging::DoOnNotify
IDLitIMessaging::ErrorMessage
IDLitIMessaging::GetTool
IDLitIMessaging::ProbeStatusMessage
IDLitIMessaging::ProgressBar
IDLitIMessaging::PromptUserText
IDLitIMessaging::PromptUserYesNo
IDLitIMessaging::RemoveOnNotifyObserver
IDLitIMessaging::SignalError
IDLitIMessaging::StatusMessage
IDLitManipulator
IDLitManipulator Properties
IDLitManipulator::Cleanup
IDLitManipulator::CommitUndoValues
IDLitManipulator::GetCursorType
IDLitManipulator::GetProperty
IDLitManipulator::Init
IDLitManipulator::OnKeyboard
IDLitManipulator::OnLoseCurrentManipulator
IDLitManipulator::OnMouseDown
IDLitManipulator::OnMouseMotion
IDLitManipulator::OnMouseUp
IDLitManipulator::RecordUndoValues
IDLitManipulator::RegisterCursor
IDLitManipulator::SetCurrentManipulator
IDLitManipulator::SetProperty
IDLitManipulatorContainer
IDLitManipulatorContainer Properties
IDLitManipulatorContainer::Add
IDLitManipulatorContainer::GetCurrent
IDLitManipulatorContainer::GetCurrentManipulator
IDLitManipulatorContainer::GetProperty
IDLitManipulatorContainer::Init
IDLitManipulatorContainer::OnKeyboard
IDLitManipulatorContainer::OnMouseDown
IDLitManipulatorContainer::OnMouseMotion
IDLitManipulatorContainer::OnMouseUp
IDLitManipulatorContainer::SetCurrent
IDLitManipulatorContainer::SetCurrentManipulator
IDLitManipulatorContainer::SetProperty
IDLitManipulatorManager
IDLitManipulatorManager Properties
IDLitManipulatorManager::Add
IDLitManipulatorManager::AddManipulatorObserver
IDLitManipulatorManager::GetDefaultManipulator
IDLitManipulatorManager::Init
IDLitManipulatorManager::RemoveManipulatorObserver
IDLitManipulatorVisual
IDLitManipulatorVisual Properties
IDLitManipulatorVisual::Cleanup
IDLitManipulatorVisual::GetProperty
IDLitManipulatorVisual::Init
IDLitManipulatorVisual::SetProperty
IDLitOperation
IDLitOperation Properties
IDLitOperation::Cleanup
IDLitOperation::DoAction
IDLitOperation::GetProperty
IDLitOperation::Init
IDLitOperation::QueryAvailability
IDLitOperation::RecordFinalValues
IDLitOperation::RecordInitialValues
IDLitOperation::RedoOperation
IDLitOperation::SetProperty
IDLitOperation::UndoOperation
IDLitParameter
IDLitParameter Properties
IDLitParameter::Cleanup
IDLitParameter::GetParameter
IDLitParameter::GetParameterAttribute
IDLitParameter::GetParameterSet
IDLitParameter::Init
IDLitParameter::OnDataChangeUpdate
IDLitParameter::OnDataDisconnect
IDLitParameter::QueryParameter
IDLitParameter::RegisterParameter
IDLitParameter::SetData
IDLitParameter::SetParameterAttribute
IDLitParameter::SetParameterSet
IDLitParameterSet
IDLitParameterSet Properties
IDLitParameterSet::Add
IDLitParameterSet::Cleanup
IDLitParameterSet::Copy
IDLitParameterSet::Get
IDLitParameterSet::GetByName
IDLitParameterSet::GetParameterName
IDLitParameterSet::Init
IDLitParameterSet::Remove
IDLitReader
IDLitReader Properties
IDLitReader::Cleanup
IDLitReader::GetData
IDLitReader::GetFileExtensions
IDLitReader::GetFilename
IDLitReader::GetProperty
IDLitReader::Init
IDLitReader::IsA
IDLitReader::SetFilename
IDLitReader::SetProperty
IDLitTool
IDLitTool Properties
IDLitTool::ActivateManipulator
IDLitTool::Add
IDLitTool::AddService
IDLitTool::Cleanup
IDLitTool::CommitActions
IDLitTool::DisableUpdates
IDLitTool::DoAction
IDLitTool::DoSetProperty
IDLitTool::DoUIService
IDLitTool::EnableUpdates
IDLitTool::FindIdentifiers
IDLitTool::GetCurrentManipulator
IDLitTool::GetFileReader
IDLitTool::GetFileWriter
IDLitTool::GetManipulators
IDLitTool::GetOperations
IDLitTool::GetProperty
IDLitTool::GetSelectedItems
IDLitTool::GetService
IDLitTool::GetVisualization
IDLitTool::Init
IDLitTool::RefreshCurrentWindow
IDLitTool::Register
IDLitTool::RegisterCustomization
IDLitTool::RegisterFileReader
IDLitTool::RegisterFileWriter
IDLitTool::RegisterManipulator
IDLitTool::RegisterOperation
IDLitTool::RegisterStatusBarSegment
IDLitTool::RegisterVisualization
IDLitTool::SetProperty
IDLitTool::UnRegister
IDLitTool::UnRegisterCustomization
IDLitTool::UnRegisterFileReader
IDLitTool::UnRegisterFileWriter
IDLitTool::UnRegisterManipulator
IDLitTool::UnRegisterOperation
IDLitTool::UnRegisterStatusBarSegment
IDLitTool::UnRegisterVisualization
IDLitToolbase
IDLitUI
IDLitUI Properties
IDLitUI::AddOnNotifyObserver
IDLitUI::Cleanup
IDLitUI::DoAction
IDLitUI::GetProperty
IDLitUI::GetTool
IDLitUI::GetWidgetByName
IDLitUI::Init
IDLitUI::RegisterUIService
IDLitUI::RegisterWidget
IDLitUI::RemoveOnNotifyObserver
IDLitUI::SetProperty
IDLitUI::UnRegisterUIService
IDLitUI::UnRegisterWidget
IDLitVisualization
IDLitVisualization Properties
IDLitVisualization::Add
IDLitVisualization::Aggregate
IDLitVisualization::BeginManipulation
IDLitVisualization::Cleanup
IDLitVisualization::EndManipulation
IDLitVisualization::Get
IDLitVisualization::GetCenterRotation
IDLitVisualization::GetCurrentSelectionVisual
IDLitVisualization::GetDataSpace
IDLitVisualization::GetDataString
IDLitVisualization::GetDefaultSelectionVisual
IDLitVisualization::GetManipulatorTarget
IDLitVisualization::GetProperty
IDLitVisualization::GetRequestedAxesStyle
IDLitVisualization::GetSelectionVisual
IDLitVisualization::GetTypes
IDLitVisualization::GetXYZRange
IDLitVisualization::Init
IDLitVisualization::Is3D
IDLitVisualization::IsIsotropic
IDLitVisualization::IsManipulatorTarget
IDLitVisualization::IsSelected
IDLitVisualization::Move
IDLitVisualization::On2DRotate
IDLitVisualization::OnAxesRequestChange
IDLitVisualization::OnAxesStyleRequestChange
IDLitVisualization::OnDataChange
IDLitVisualization::OnDataComplete
IDLitVisualization::OnDataRangeChange
IDLitVisualization::OnDimensionChange
IDLitVisualization::OnWorldDimensionChange
IDLitVisualization::Remove
IDLitVisualization::RequestsAxes
IDLitVisualization::Restore
IDLitVisualization::Rotate
IDLitVisualization::Scale
IDLitVisualization::Select
IDLitVisualization::Set3D
IDLitVisualization::SetAxesRequest
IDLitVisualization::SetAxesStyleRequest
IDLitVisualization::SetCurrentSelectionVisual
IDLitVisualization::SetData
IDLitVisualization::SetDefaultSelectionVisual
IDLitVisualization::SetParameterSet
IDLitVisualization::SetProperty
IDLitVisualization::UpdateSelectionVisual
IDLitVisualization::VisToWindow
IDLitVisualization::WindowToVis
IDLitWindow
IDLitWindow Properties
IDLitWindow::Add
IDLitWindow::AddWindowEventObserver
IDLitWindow::Cleanup
IDLitWindow::ClearSelections
IDLitWindow::DoHitTest
IDLitWindow::GetEventMask
IDLitWindow::GetProperty
IDLitWindow::GetSelectedItems
IDLitWindow::Init
IDLitWindow::OnKeyboard
IDLitWindow::OnMouseDown
IDLitWindow::OnMouseMotion
IDLitWindow::OnMouseUp
IDLitWindow::OnScroll
IDLitWindow::OnTimer
IDLitWindow::Remove
IDLitWindow::RemoveWindowEventObserver
IDLitWindow::SetCurrentZoom
IDLitWindow::SetEventMask
IDLitWindow::SetManipulatorManager
IDLitWindow::SetProperty
IDLitWindow::SetTimerInterval
IDLitWindow::ZoomIn
IDLitWindow::ZoomOut
IDLitWriter
IDLitWriter Properties
IDLitWriter::Cleanup
IDLitWriter::GetFileExtensions
IDLitWriter::GetFilename
IDLitWriter::GetProperty
IDLitWriter::Init
IDLitWriter::IsA
IDLitWriter::SetData
IDLitWriter::SetFilename
IDLitWriter::SetProperty
Graphics Object Classes
IDLgrAxis
IDLgrAxis Properties
IDLgrAxis::Cleanup
IDLgrAxis::GetCTM
IDLgrAxis::GetProperty
IDLgrAxis::Init
IDLgrAxis::SetProperty
IDLgrBuffer
IDLgrBuffer Properties
IDLgrBuffer::Cleanup
IDLgrBuffer::Draw
IDLgrBuffer::Erase
IDLgrBuffer::GetContiguousPixels
IDLgrBuffer::GetDeviceInfo
IDLgrBuffer::GetFontnames
IDLgrBuffer::GetProperty
IDLgrBuffer::GetTextDimensions
IDLgrBuffer::Init
IDLgrBuffer::PickData
IDLgrBuffer::QueryRequiredTiles
IDLgrBuffer::Read
IDLgrBuffer::Select
IDLgrBuffer::SetProperty
IDLgrClipboard
IDLgrClipboard Properties
IDLgrClipboard::Cleanup
IDLgrClipboard::Draw
IDLgrClipboard::GetContiguousPixels
IDLgrClipboard::GetDeviceInfo
IDLgrClipboard::GetFontnames
IDLgrClipboard::GetProperty
IDLgrClipboard::GetTextDimensions
IDLgrClipboard::Init
IDLgrClipboard::QueryRequiredTiles
IDLgrClipboard::SetProperty
IDLgrColorbar
IDLgrColorbar Properties
IDLgrColorbar::Cleanup
IDLgrColorbar::ComputeDimensions
IDLgrColorbar::GetProperty
IDLgrColorbar::Init
IDLgrColorbar::SetProperty
IDLgrContour
IDLgrContour Properties
IDLgrContour::AdjustLabelOffsets
IDLgrContour::Cleanup
IDLgrContour::GetCTM
IDLgrContour::GetLabelInfo
IDLgrContour::GetProperty
IDLgrContour::Init
IDLgrContour::SetProperty
IDLgrFont
IDLgrFont Properties
IDLgrFont::Cleanup
IDLgrFont::GetProperty
IDLgrFont::Init
IDLgrFont::SetProperty
IDLgrImage
IDLgrImage Properties
IDLgrImage::Cleanup
IDLgrImage::DeleteTileData
IDLgrImage::GetCTM
IDLgrImage::GetProperty
IDLgrImage::Init
IDLgrImage::SetProperty
IDLgrImage::SetTileData
IDLgrLegend
IDLgrLegend Properties
IDLgrLegend::Cleanup
IDLgrLegend::ComputeDimensions
IDLgrLegend::GetProperty
IDLgrLegend::Init
IDLgrLegend::SetProperty
IDLgrLight
IDLgrLight Properties
IDLgrLight::Cleanup
IDLgrLight::GetCTM
IDLgrLight::GetProperty
IDLgrLight::Init
IDLgrLight::SetProperty
IDLgrModel
IDLgrModel Properties
IDLgrModel::Add
IDLgrModel::Cleanup
IDLgrModel::Draw
IDLgrModel::GetByName
IDLgrModel::GetCTM
IDLgrModel::GetProperty
IDLgrModel::Init
IDLgrModel::Reset
IDLgrModel::Rotate
IDLgrModel::Scale
IDLgrModel::SetProperty
IDLgrModel::Translate
IDLgrMPEG
IDLgrMPEG Properties
IDLgrMPEG::Cleanup
IDLgrMPEG::GetProperty
IDLgrMPEG::Init
IDLgrMPEG::Put
IDLgrMPEG::Save
IDLgrMPEG::SetProperty
IDLgrPalette
IDLgrPalette Properties
IDLgrPalette::Cleanup
IDLgrPalette::GetRGB
IDLgrPalette::GetProperty
IDLgrPalette::Init
IDLgrPalette::LoadCT
IDLgrPalette::NearestColor
IDLgrPalette::SetRGB
IDLgrPalette::SetProperty
IDLgrPattern
IDLgrPattern Properties
IDLgrPattern::Cleanup
IDLgrPattern::GetProperty
IDLgrPattern::Init
IDLgrPattern:SetProperty
IDLgrPlot
IDLgrPlot Properties
IDLgrPlot::Cleanup
IDLgrPlot::GetCTM
IDLgrPlot::GetProperty
IDLgrPlot::Init
IDLgrPlot::SetProperty
IDLgrPolygon
IDLgrPolygon Properties
IDLgrPolygon::Cleanup
IDLgrPolygon::GetCTM
IDLgrPolygon::GetProperty
IDLgrPolygon::Init
IDLgrPolygon::SetProperty
IDLgrPolyline
IDLgrPolyline Properties
IDLgrPolyline::Cleanup
IDLgrPolyline::GetCTM
IDLgrPolyline::GetProperty
IDLgrPolyline::Init
IDLgrPolyline::SetProperty
IDLgrPrinter
IDLgrPrinter Properties
IDLgrPrinter::Cleanup
IDLgrPrinter::Draw
IDLgrPrinter::GetContiguousPixels
IDLgrPrinter::GetFontnames
IDLgrPrinter::GetProperty
IDLgrPrinter::GetTextDimensions
IDLgrPrinter::Init
IDLgrPrinter::NewDocument
IDLgrPrinter::NewPage
IDLgrPrinter::QueryRequiredTiles
IDLgrPrinter::SetProperty
IDLgrROI
IDLgrROI Properties
IDLgrROI::Cleanup
IDLgrROI::GetProperty
IDLgrROI::Init
IDLgrROI::PickVertex
IDLgrROI::SetProperty
IDLgrROIGroup
IDLgrROIGroup Properties
IDLgrROIGroup::Add
IDLgrROIGroup::Cleanup
IDLgrROIGroup::GetProperty
IDLgrROIGroup::Init
IDLgrROIGroup::PickRegion
IDLgrROIGroup::SetProperty
IDLgrScene
IDLgrScene Properties
IDLgrScene::Add
IDLgrScene::Cleanup
IDLgrScene::GetByName
IDLgrScene::GetProperty
IDLgrScene::Init
IDLgrScene::SetProperty
IDLgrSurface
IDLgrSurface Properties
IDLgrSurface::Cleanup
IDLgrSurface::GetCTM
IDLgrSurface::GetProperty
IDLgrSurface::Init
IDLgrSurface::SetProperty
IDLgrSymbol
IDLgrSymbol Properties
IDLgrSymbol::Cleanup
IDLgrSymbol::GetProperty
IDLgrSymbol::Init
IDLgrSymbol::SetProperty
IDLgrTessellator
IDLgrTessellator Properties
IDLgrTessellator::AddPolygon
IDLgrTessellator::Cleanup
IDLgrTessellator::Init
IDLgrTessellator::Reset
IDLgrTessellator::Tessellate
IDLgrText
IDLgrText Properties
IDLgrText::Cleanup
IDLgrText::GetCTM
IDLgrText::GetProperty
IDLgrText::Init
IDLgrText::SetProperty
IDLgrView
IDLgrView Properties
IDLgrView::Add
IDLgrView::Cleanup
IDLgrView::GetByName
IDLgrView::GetProperty
IDLgrView::Init
IDLgrView::SetProperty
IDLgrViewgroup
IDLgrViewgroup Properties
IDLgrViewgroup::Add
IDLgrViewgroup::Cleanup
IDLgrViewgroup::GetByName
IDLgrViewgroup::GetProperty
IDLgrViewgroup::Init
IDLgrViewgroup::SetProperty
IDLgrVolume
IDLgrVolume Properties
IDLgrVolume::Cleanup
IDLgrVolume::ComputeBounds
IDLgrVolume::GetCTM
IDLgrVolume::GetProperty
IDLgrVolume::Init
IDLgrVolume::PickVoxel
IDLgrVolume::SetProperty
IDLgrVRML
IDLgrVRML Properties
IDLgrVRML::Cleanup
IDLgrVRML::Draw
IDLgrVRML::GetDeviceInfo
IDLgrVRML::GetFontnames
IDLgrVRML::GetProperty
IDLgrVRML::GetTextDimensions
IDLgrVRML::Init
IDLgrVRML::SetProperty
IDLgrWindow
IDLgrWindow Properties
IDLgrWindow::Cleanup
IDLgrWindow::Draw
IDLgrWindow::Erase
IDLgrWindow::GetContiguousPixels
IDLgrWindow::GetDeviceInfo
IDLgrWindow::GetDimensions
IDLgrWindow::GetFontnames
IDLgrWindow::GetProperty
IDLgrWindow::GetTextDimensions
IDLgrWindow::Iconify
IDLgrWindow::Init
IDLgrWindow::PickData
IDLgrWindow::QueryRequiredTiles
IDLgrWindow::Read
IDLgrWindow::Select
IDLgrWindow::SetCurrentCursor
IDLgrWindow::SetCurrentZoom
IDLgrWindow::SetProperty
IDLgrWindow::Show
IDLgrWindow::ZoomIn
IDLgrWindow::ZoomOut
Miscellaneous Object Classes
IDL_Container
IDL_Container Properties
IDL_Container::Add
IDL_Container::Cleanup
IDL_Container::Count
IDL_Container::Get
IDL_Container::Init
IDL_Container::IsContained
IDL_Container::Move
IDL_Container::Remove
IDL_Savefile
IDL_Savefile Properties
IDL_Savefile::Cleanup
IDL_Savefile::Contents
IDL_Savefile::Init
IDL_Savefile::Names
IDL_Savefile::Restore
IDL_Savefile::Size
IDLcomActiveX
IDLcomActiveX Properties
IDLcomIDispatch
IDLcomIDispatch Properties
IDLcomIDispatch::GetProperty
IDLcomIDispatch::Init
IDLcomIDispatch::SetProperty
IDLjavaObject
IDLjavaObject Properties
IDLjavaObject::GetProperty
IDLjavaObject::Init
IDLjavaObject::SetProperty
TrackBall
TrackBall Properties
TrackBall::Init
TrackBall::Reset
TrackBall::Update
Part III: Appendices
IDL Direct Graphics Devices
Supported Devices
Devices with Scalable Pixels
Keywords Accepted by the IDL Devices
Window Systems
Backing Store
Image Display On Monochrome Devices
Printing Graphics Output Files
Setting Up The Printer
Positioning Graphics Output
Image Background Color
The CGM Device
Abilities and Limitations
The HP-GL Device
Abilities And Limitations
HP-GL Linestyles
The Metafile Display Device
The Null Display Device
The PCL Device
The Printer Device
The PostScript Device
Using PostScript Fonts
Color PostScript
PostScript Positioning
Importing IDL Plots into Other Documents
The Regis Terminal Device
Defaults for Regis Devices
Regis Limitations
The Tektronix Device
The DEVICE Procedure For Tektronix Terminals
Tektronix Limitations
Tektronix Device Limitations
The Microsoft Windows Device
The X Windows Device
X Windows Visuals
Using Color Under X
Using Pixmaps
How Color is Interpreted for a TrueColor Visual
Setting the X Window Defaults
The Z-Buffer Device
Reading and Writing Buffers
Z-Axis Scaling
Polyfill Procedure
Examples Using the Z-Buffer
Graphics Keywords
Graphic Keywords List
BACKGROUND
CHANNEL
CHARSIZE
CHARTHICK
CLIP
COLOR
DATA
DEVICE
FONT
LINESTYLE
NOCLIP
NODATA
NOERASE
NORMAL
ORIENTATION
POSITION
PSYM
SUBTITLE
SYMSIZE
T3D
THICK
TICKLEN
TITLE
[XYZ]CHARSIZE
[XYZ]GRIDSTYLE
[XYZ]MARGIN
[XYZ]MINOR
[XYZ]RANGE
[XYZ]STYLE
[XYZ]THICK
[XYZ]TICK_GET
[XYZ]TICKFORMAT
[XYZ]TICKINTERVAL
[XYZ]TICKLAYOUT
[XYZ]TICKLEN
[XYZ]TICKNAME
[XYZ]TICKS
[XYZ]TICKUNITS
[XYZ]TICKV
[XYZ]TITLE
Z
ZVALUE
Thread Pool Keywords
System Variables
What Are System Variables?
Changing the Value of a System Variable
Default Values of System Variables
Constant System Variables
Error Handling System Variables
IDL Environment System Variables
Graphics System Variables
Two-Dimensional Coordinate Conversion
IDL Preferences
About IDL Preferences
Understanding Preference Sources
Changing Preference Values
Understanding Preference Files
Using Preference Etiquette
General User Environment Preferences
IDL_DATAFILE_USER_COMMENTS
IDL_DEVICE
IDL_EDIT_INPUT
IDL_EXCEPT
IDL_MORE
IDL_MSG_PREFIX
IDL_PROMPT
IDL_QUIET
IDL_RBUF_PERSIST
IDL_RBUF_SIZE
Directory and Search Path Preferences
IDL_DIR
IDL_DLM_PATH
IDL_HELP_PATH
IDL_MAKE_DLL_COMPILE_DIRECTORY
IDL_PATH
IDL_PATH_CACHE_DISABLE
IDL_STARTUP
IDL_TMPDIR
!CPU Settings Preferences
IDL_CPU_TPOOL_MAX_ELTS
IDL_CPU_TPOOL_MIN_ELTS
IDL_CPU_TPOOL_NTHREADS
IDL_CPU_VECTOR_ENABLE
General Graphics Preferences
IDL_GR_TILECACHESIZE
IDL_GR_TTCACHESIZE
Windows Graphics Preferences
IDL_GR_WIN_HEIGHT
IDL_GR_WIN_LAYOUT
IDL_GR_WIN_ONTOP
IDL_GR_WIN_QSCREEN
IDL_GR_WIN_RENDERER
IDL_GR_WIN_RETAIN
IDL_GR_WIN_WIDTH
X Window System Graphics Preferences
IDL_GR_X_COLORS
IDL_GR_X_DEPTH
IDL_GR_X_HEIGHT
IDL_GR_X_QSCREEN
IDL_GR_X_RENDERER
IDL_GR_X_RETAIN
IDL_GR_X_VISUAL
IDL_GR_X_WIDTH
Windows IDE Preferences
IDL_WDE_EDIT_BACKUP
IDL_WDE_EDIT_[B|F]COLOR_*
IDL_WDE_EDIT_CHROMACODE
IDL_WDE_EDIT_COMPILE_OPTION
IDL_WDE_EDIT_CWD
IDL_WDE_EDIT_FONT
IDL_WDE_EDIT_OPEN_ON_DEBUG
IDL_WDE_EDIT_READONLY
IDL_WDE_EDIT_TAB_ENABLE
IDL_WDE_EDIT_TAB_SP_ON_SAVE
IDL_WDE_EDIT_TAB_WIDTH
IDL_WDE_EXIT_CONFIRM
IDL_WDE_INPUT_FONT
IDL_WDE_LOG_FONT
IDL_WDE_LOG_LINES
IDL_WDE_LOG_TRIM
IDL_WDE_SPLASHSCREEN
IDL_WDE_START_DIR
Motif IDE Preferences
IDL_MDE_EDIT_BACKUP
IDL_MDE_EDIT_COMPILE_OPTION
IDL_MDE_EDIT_CWD
IDL_MDE_EDIT_READONLY
IDL_MDE_EXIT_CONFIRM
IDL_MDE_LOG_LINES
IDL_MDE_LOG_TRIM
IDL_MDE_SPLASHSCREEN
IDL_MDE_START_DIR
Windows Runtime Preferences
IDL_WINRT_FILE
IDL_WINRT_FILE_TYPE
IDL_WINRT_ICON
Support for Obsolete Preference Mechanisms
IDL_PREF_OBSOLETE_MIGRATE
IDL_PREF_OBSOLETE_WARN
Special Characters
Exclamation Point (!)
Apostrophe (')
Semicolon (;)
Dollar Sign ($)
Quotation Mark (")
Period (.)
Ampersand (&)
Colon (:)
Asterisk (*)
At Sign (@)
Question Mark (?)
Reserved Words
Fonts
Overview of Fonts in IDL
Hershey Vector Fonts
TrueType Fonts
Device Fonts
Choosing a Font Type
Fonts in IDL Direct vs. Object Graphics
IDL Direct Graphics
IDL Object Graphics
About Hershey Vector Fonts
Using Hershey Vector Fonts
ISO Latin 1 Encoding
Customizing the Hershey Vector Fonts
About TrueType Fonts
Using TrueType Fonts
IDL TrueType Font Resource Files
Adding Your Own Fonts
Where IDL Searches for Fonts
About Device Fonts
Which Device Fonts Are Available?
Using Device Fonts
Fonts and the PostScript Device
Controlling Size, Position and Font Use
Specifying Font Size
Embedded Formatting Commands
Changing Fonts within a String
Positioning Commands
Formatting Command Examples
A Complex Equation
Hershey Vector-Drawn Font Example
TrueType Font Samples
Hershey Vector Font Samples
IDL GUIBuilder Widget Reference
Common Widget Properties
Common Attributes
Common Events
Base Widget Properties
Base Widget Attributes
Base Widget Events
Button Widget Properties
Creating Multiple Radio Buttons or Checkboxes
Button, Radio Button, and Checkbox Widget Attributes
Button, Radio Button, and Checkbox Widget Events
Text Widget Properties
Text Widget Attributes
Text Widget Events
Label Widget Properties
Label Widget Attributes
Label Widget Events
Slider Widget Properties
Horizontal and Vertical Slider Widget Attributes
Horizontal and Vertical Slider Widget Events
Droplist Widget Properties
Droplist Widget Attributes
Droplist Widget Events
Listbox Widget Properties
Listbox Widget Attributes
Listbox Widget Events
Draw Widget Properties
Draw Area Widget Attributes
Draw Area Widget Events
Table Widget Properties
Table Widget Attributes
Table Widget Events
Tab Widget Properties
Tab Widget Attributes
Tab Widget Events
Tree Widget Properties
Tree Widget Attributes
Tree Widget Events
Obsolete Features
What Are Obsolete Features?
Features Obsoleted in IDL 6.2
Features Obsoleted in IDL 6.1
Features Obsoleted in IDL 6.0
Features Obsoleted in IDL 5.6
Features Obsoleted in IDL 5.5
Features Obsoleted in IDL 5.4
Features Obsoleted in IDL 5.3
SDF Routines Obsoleted in IDL 5.3
What is DFSD and Why Are We Obsoleting It?
Features Obsoleted in IDL 5.2
Features Obsoleted in IDL 5.1
Features Obsoleted in IDL 5.0
Features Obsoleted in IDL 4.0 or Earlier
Obsolete System Variables
Obsolete Graphics Devices
Scientific Data Formats
Scientific Data Formats Overview
CDF-Common Data Format
HDF-Hierarchical Data Format
HDF-EOS-Hierarchical Data Format - Earth Observing System
NetCDF-Network Common Data Format
Common Data Format
Overview of the Common Data Format
Variables and Attributes
Variables
rVariables
zVariables
Attributes
Specifying Attributes and Variables
CDF File Options
File Type
Data Encodings/Decodings
Creating CDF Files
Reading CDF Files
Type Conversion
Example: Creating a CDF File
Alphabetical Listing of CDF Routines
CDF_ATTCREATE
CDF_ATTDELETE
CDF_ATTEXISTS
CDF_ATTGET
CDF_ATTINQ
CDF_ATTNUM
CDF_ATTPUT
CDF_ATTRENAME
CDF_CLOSE
CDF_COMPRESSION
CDF_CONTROL
CDF_CREATE
CDF_DELETE
CDF_DOC
CDF_ENCODE_EPOCH
CDF_EPOCH
CDF_ERROR
CDF_EXISTS
CDF_INQUIRE
CDF_LIB_INFO
CDF_OPEN
CDF_PARSE_EPOCH
CDF_VARCREATE
CDF_VARDELETE
CDF_VARGET
CDF_VARGET1
CDF_VARINQ
CDF_VARNUM
CDF_VARPUT
CDF_VARRENAME
Hierarchical Data Format - HDF5
Overview of the HDF Version 5 Format
The HDF5 Format
HDF4 versus HDF5
The IDL HDF5 Library
Routine Names
Functions Versus Procedures
Error Handling
Dimension Order
IDL HDF5 Limitations
Example: Reading an Image
Example: Reading a Subselection
Example: Creating a Data File
Alphabetical Listing of HDF5 Routines
H5_CLOSE
H5_CREATE
H5_GET_LIBVERSION
H5_OPEN
H5_PARSE
H5A_CLOSE
H5A_CREATE
H5A_DELETE
H5A_GET_NAME
H5A_GET_NUM_ATTRS
H5A_GET_SPACE
H5A_GET_TYPE
H5A_OPEN_IDX
H5A_OPEN_NAME
H5A_READ
H5A_WRITE
H5D_CLOSE
H5D_CREATE
H5D_EXTEND
H5D_GET_SPACE
H5D_GET_STORAGE_SIZE
H5D_GET_TYPE
H5D_OPEN
H5D_READ
H5D_WRITE
H5F_CLOSE
H5F_CREATE
H5F_IS_HDF5
H5F_OPEN
H5G_CLOSE
H5G_CREATE
H5G_GET_COMMENT
H5G_GET_LINKVAL
H5G_GET_MEMBER_NAME
H5G_GET_NMEMBERS
H5G_GET_NUM_OBJS
H5G_GET_OBJ_NAME_BY_IDX
H5G_GET_OBJINFO
H5G_LINK
H5G_MOVE
H5G_OPEN
H5G_SET_COMMENT
H5G_UNLINK
H5I_GET_FILE_ID
H5I_GET_TYPE
H5R_CREATE
H5R_DEREFERENCE
H5R_GET_OBJECT_TYPE
H5R_GET_REGION
H5S_CLOSE
H5S_COPY
H5S_CREATE_SCALAR
H5S_CREATE_SIMPLE
H5S_GET_SELECT_BOUNDS
H5S_GET_SELECT_ELEM_NPOINTS
H5S_GET_SELECT_ELEM_POINTLIST
H5S_GET_SELECT_HYPER_BLOCKLIST
H5S_GET_SELECT_HYPER_NBLOCKS
H5S_GET_SELECT_NPOINTS
H5S_GET_SIMPLE_EXTENT_DIMS
H5S_GET_SIMPLE_EXTENT_NDIMS
H5S_GET_SIMPLE_EXTENT_NPOINTS
H5S_GET_SIMPLE_EXTENT_TYPE
H5S_IS_SIMPLE
H5S_OFFSET_SIMPLE
H5S_SELECT_ALL
H5S_SELECT_ELEMENTS
H5S_SELECT_HYPERSLAB
H5S_SELECT_NONE
H5S_SELECT_VALID
H5S_SET_EXTENT_NONE
H5S_SET_EXTENT_SIMPLE
H5T_ARRAY_CREATE
H5T_CLOSE
H5T_COMMIT
H5T_COMMITTED
H5T_COPY
H5T_EQUAL
H5T_GET_ARRAY_DIMS
H5T_GET_ARRAY_NDIMS
H5T_GET_CLASS
H5T_GET_CSET
H5T_GET_EBIAS
H5T_GET_FIELDS
H5T_GET_INPAD
H5T_GET_MEMBER_CLASS
H5T_GET_MEMBER_NAME
H5T_GET_MEMBER_OFFSET
H5T_GET_MEMBER_TYPE
H5T_GET_NMEMBERS
H5T_GET_NORM
H5T_GET_OFFSET
H5T_GET_ORDER
H5T_GET_PAD
H5T_GET_PRECISION
H5T_GET_SIGN
H5T_GET_SIZE
H5T_GET_STRPAD
H5T_GET_SUPER
H5T_IDL_CREATE
H5T_IDLTYPE
H5T_INSERT
H5T_MEMTYPE
H5T_OPEN
H5T_REFERENCE_CREATE
Hierarchical Data Format
Overview of the HDF Format
HDF Interfaces
Single File Application Interfaces
Multi-File Application Interface
Creating HDF Files
Adding Data to an HDF File
HDF Examples
HDF Scientific Dataset ID Numbers
IDL and HDF Data Types
Common HDF Tag Numbers
Alphabetical Listing of HDF Routines
HDF_AN_ANNLEN
HDF_AN_ANNLIST
HDF_AN_ATYPE2TAG
HDF_AN_CREATE
HDF_AN_CREATEF
HDF_AN_END
HDF_AN_ENDACCESS
HDF_AN_FILEINFO
HDF_AN_GET_TAGREF
HDF_AN_ID2TAGREF
HDF_AN_NUMANN
HDF_AN_READANN
HDF_AN_SELECT
HDF_AN_START
HDF_AN_TAG2ATYPE
HDF_AN_TAGREF2ID
HDF_AN_WRITEANN
HDF_CLOSE
HDF_DELDD
HDF_DF24_ADDIMAGE
HDF_DF24_GETIMAGE
HDF_DF24_GETINFO
HDF_DF24_LASTREF
HDF_DF24_NIMAGES
HDF_DF24_READREF
HDF_DF24_RESTART
HDF_DFAN_ADDFDS
HDF_DFAN_ADDFID
HDF_DFAN_GETDESC
HDF_DFAN_GETFDS
HDF_DFAN_GETFID
HDF_DFAN_GETLABEL
HDF_DFAN_LABLIST
HDF_DFAN_LASTREF
HDF_DFAN_PUTDESC
HDF_DFAN_PUTLABEL
HDF_DFP_ADDPAL
HDF_DFP_GETPAL
HDF_DFP_LASTREF
HDF_DFP_NPALS
HDF_DFP_PUTPAL
HDF_DFP_READREF
HDF_DFP_RESTART
HDF_DFP_WRITEREF
HDF_DFR8_ADDIMAGE
HDF_DFR8_GETIMAGE
HDF_DFR8_GETINFO
HDF_DFR8_LASTREF
HDF_DFR8_NIMAGES
HDF_DFR8_PUTIMAGE
HDF_DFR8_READREF
HDF_DFR8_RESTART
HDF_DFR8_SETPALETTE
HDF_DUPDD
HDF_EXISTS
HDF_GR_ATTRINFO
HDF_GR_CREATE
HDF_GR_END
HDF_GR_ENDACCESS
HDF_GR_FILEINFO
HDF_GR_FINDATTR
HDF_GR_GETATTR
HDF_GR_GETCHUNKINFO
HDF_GR_GETIMINFO
HDF_GR_GETLUTID
HDF_GR_GETLUTINFO
HDF_GR_IDTOREF
HDF_GR_LUTTOREF
HDF_GR_NAMETOINDEX
HDF_GR_READIMAGE
HDF_GR_READLUT
HDF_GR_REFTOINDEX
HDF_GR_SELECT
HDF_GR_SETATTR
HDF_GR_SETCHUNK
HDF_GR_SETCHUNKCACHE
HDF_GR_SETCOMPRESS
HDF_GR_SETEXTERNALFILE
HDF_GR_START
HDF_GR_WRITEIMAGE
HDF_GR_WRITELUT
HDF_HDF2IDLTYPE
HDF_IDL2HDFTYPE
HDF_ISHDF
HDF_LIB_INFO
HDF_NEWREF
HDF_NUMBER
HDF_OPEN
HDF_PACKDATA
HDF_SD_ADDDATA
HDF_SD_ATTRFIND
HDF_SD_ATTRINFO
HDF_SD_ATTRSET
HDF_SD_CREATE
HDF_SD_DIMGET
HDF_SD_DIMGETID
HDF_SD_DIMSET
HDF_SD_END
HDF_SD_ENDACCESS
HDF_SD_FILEINFO
HDF_SD_GETDATA
HDF_SD_GETINFO
HDF_SDinterface_idTOREF
HDF_SD_ISCOORDVAR
HDF_SD_NAMETOINDEX
HDF_SD_REFTOINDEX
HDF_SD_SELECT
HDF_SD_SETCOMPRESS
HDF_SD_SETEXTFILE
HDF_SD_SETINFO
HDF_SD_START
HDF_UNPACKDATA
HDF_VD_ATTACH
HDF_VD_ATTRFIND
HDF_VD_ATTRINFO
HDF_VD_ATTRSET
HDF_VD_DETACH
HDF_VD_FDEFINE
HDF_VD_FEXIST
HDF_VD_FIND
HDF_VD_GET
HDF_VD_GETID
HDF_VD_GETINFO
HDF_VD_INSERT
HDF_VD_ISATTR
HDF_VD_ISVD
HDF_VD_ISVG
HDF_VD_LONE
HDF_VD_NATTRS
HDF_VD_READ
HDF_VD_SEEK
HDF_VD_SETINFO
HDF_VD_WRITE
HDF_VG_ADDTR
HDF_VG_ATTACH
HDF_VG_DETACH
HDF_VG_GETID
HDF_VG_GETINFO
HDF_VG_GETNEXT
HDF_VG_GETTR
HDF_VG_GETTRS
HDF_VG_INQTR
HDF_VG_INSERT
HDF_VG_ISVD
HDF_VG_ISVG
HDF_VG_LONE
HDF_VG_NUMBER
HDF_VG_SETINFO
HDF-EOS
Overview of the HDF-EOS
Feature Routines
HDF-EOS Programming Model
Writing
Reading
Note on Array Ordering
Alphabetical Listing of EOS Routines
EOS_EH_CONVANG
EOS_EH_GETVERSION
EOS_EH_IDINFO
EOS_EXISTS
EOS_GD_ATTACH
EOS_GD_ATTRINFO
EOS_GD_BLKSOMOFFSET
EOS_GD_CLOSE
EOS_GD_COMPINFO
EOS_GD_CREATE
EOS_GD_DEFBOXREGION
EOS_GD_DEFCOMP
EOS_GD_DEFDIM
EOS_GD_DEFFIELD
EOS_GD_DEFORIGIN
EOS_GD_DEFPIXREG
EOS_GD_DEFPROJ
EOS_GD_DEFTILE
EOS_GD_DEFVRTREGION
EOS_GD_DETACH
EOS_GD_DIMINFO
EOS_GD_DUPREGION
EOS_GD_EXTRACTREGION
EOS_GD_FIELDINFO
EOS_GD_GETFILLVALUE
EOS_GD_GETPIXELS
EOS_GD_GETPIXVALUES
EOS_GD_GRIDINFO
EOS_GD_INQATTRS
EOS_GD_INQDIMS
EOS_GD_INQFIELDS
EOS_GD_INQGRID
EOS_GD_INTERPOLATE
EOS_GD_NENTRIES
EOS_GD_OPEN
EOS_GD_ORIGININFO
EOS_GD_PIXREGINFO
EOS_GD_PROJINFO
EOS_GD_QUERY
EOS_GD_READATTR
EOS_GD_READFIELD
EOS_GD_READTILE
EOS_GD_REGIONINFO
EOS_GD_SETFILLVALUE
EOS_GD_SETTILECACHE
EOS_GD_TILEINFO
EOS_GD_WRITEATTR
EOS_GD_WRITEFIELD
EOS_GD_WRITEFIELDMETA
EOS_GD_WRITETILE
EOS_PT_ATTACH
EOS_PT_ATTRINFO
EOS_PT_BCKLINKINFO
EOS_PT_CLOSE
EOS_PT_CREATE
EOS_PT_DEFBOXREGION
EOS_PT_DEFLEVEL
EOS_PT_DEFLINKAGE
EOS_PT_DEFTIMEPERIOD
EOS_PT_DEFVRTREGION
EOS_PT_DETACH
EOS_PT_EXTRACTPERIOD
EOS_PT_EXTRACTREGION
EOS_PT_FWDLINKINFO
EOS_PT_GETLEVELNAME
EOS_PT_GETRECNUMS
EOS_PT_INQATTRS
EOS_PT_INQPOINT
EOS_PT_LEVELINDX
EOS_PT_LEVELINFO
EOS_PT_NFIELDS
EOS_PT_NLEVELS
EOS_PT_NRECS
EOS_PT_OPEN
EOS_PT_PERIODINFO
EOS_PT_PERIODRECS
EOS_PT_QUERY
EOS_PT_READATTR
EOS_PT_READLEVEL
EOS_PT_REGIONINFO
EOS_PT_REGIONRECS
EOS_PT_SIZEOF
EOS_PT_UPDATELEVEL
EOS_PT_WRITEATTR
EOS_PT_WRITELEVEL
EOS_QUERY
EOS_SW_ATTACH
EOS_SW_ATTRINFO
EOS_SW_CLOSE
EOS_SW_COMPINFO
EOS_SW_CREATE
EOS_SW_DEFBOXREGION
EOS_SW_DEFCOMP
EOS_SW_DEFDATAFIELD
EOS_SW_DEFDIM
EOS_SW_DEFDIMMAP
EOS_SW_DEFGEOFIELD
EOS_SW_DEFIDXMAP
EOS_SW_DEFTIMEPERIOD
EOS_SW_DEFVRTREGION
EOS_SW_DETACH
EOS_SW_DIMINFO
EOS_SW_DUPREGION
EOS_SW_EXTRACTPERIOD
EOS_SW_EXTRACTREGION
EOS_SW_FIELDINFO
EOS_SW_GETFILLVALUE
EOS_SW_IDXMAPINFO
EOS_SW_INQATTRS
EOS_SW_INQDATAFIELDS
EOS_SW_INQDIMS
EOS_SW_INQGEOFIELDS
EOS_SW_INQIDXMAPS
EOS_SW_INQMAPS
EOS_SW_INQSWATH
EOS_SW_MAPINFO
EOS_SW_NENTRIES
EOS_SW_OPEN
EOS_SW_PERIODINFO
EOS_SW_QUERY
EOS_SW_READATTR
EOS_SW_READFIELD
EOS_SW_REGIONINFO
EOS_SW_SETFILLVALUE
EOS_SW_WRITEATTR
EOS_SW_WRITEDATAMETA
EOS_SW_WRITEFIELD
EOS_SW_WRITEGEOMETA
Network Common Data Format
Overview of NetCDF
NetCDF Data Modes
Attributes, Dimensions, and Variables
Attributes
Dimensions
Variables
Creating NetCDF Files
Reading NetCDF Files
NetCDF Examples
Type Conversion
Specifying Attributes and Variables
String Data in NetCDF Files
Alphabetical Listing of NCDF Routines
NCDF_ATTCOPY
NCDF_ATTDEL
NCDF_ATTGET
NCDF_ATTINQ
NCDF_ATTNAME
NCDF_ATTPUT
NCDF_ATTRENAME
NCDF_CLOSE
NCDF_CONTROL
NCDF_CREATE
NCDF_DIMDEF
NCDF_DIMID
NCDF_DIMINQ
NCDF_DIMRENAME
NCDF_EXISTS
NCDF_INQUIRE
NCDF_OPEN
NCDF_VARDEF
NCDF_VARGET
NCDF_VARGET1
NCDF_VARID
NCDF_VARINQ
NCDF_VARPUT
NCDF_VARRENAME
Obsolete IDL Features
Obsolete Feature Overview
Backwards Compatibility
IDL Internal Routines
Routines Written in IDL
Detecting Use of Obsolete Features
Documentation for Older Obsolete Routines
Obsolete Routines
DDE Routines
DELETE_SYMBOL
DELLOG
DEMO_MODE
DO_APPLE_SCRIPT
ERRORF
FINDFILE
GETHELP
GET_SYMBOL
HANDLE_CREATE
HANDLE_FREE
HANDLE_INFO
HANDLE_MOVE
HANDLE_VALUE
HDF_DFSD_ADDDATA
HDF_DFSD_DIMGET
HDF_DFSD_DIMSET
HDF_DFSD_ENDSLICE
HDF_DFSD_GETDATA
HDF_DFSD_GETINFO
HDF_DFSD_GETSLICE
HDF_DFSD_PUTSLICE
HDF_DFSD_READREF
HDF_DFSD_SETINFO
HDF_DFSD_STARTSLICE
HDF_VD_GETNEXT
INP, INPW, OUTP, OUTPW
LIVE_Tools
LIVE_CONTOUR
LIVE_CONTROL
LIVE_DESTROY
LIVE_EXPORT
LIVE_IMAGE
LIVE_INFO
LIVE_LINE
LIVE_LOAD
LIVE_OPLOT
LIVE_PLOT
LIVE_PRINT
LIVE_RECT
LIVE_STYLE
LIVE_SURFACE
LIVE_TEXT
LJLCT
MSG_CAT_CLOSE
MSG_CAT_COMPILE
MSG_CAT_OPEN
ONLINE_HELP_PDF_INDEX
PICKFILE
POLYFITW
REWIND
RIEMANN
RSTRPOS
SET_SYMBOL
SETLOG
SETUP_KEYS
SIZE Executive Command
SKIPF
SLICER
STR_SEP
TAPRD
TAPWRT
TIFF_DUMP
TIFF_READ
TIFF_WRITE
TRNLOG
VAX_FLOAT
WEOF
WIDED
WIDGET_MESSAGE
Obsolete Objects
IDLffLanguageCat
IDLffLanguageCat Properties
IDLffLanguageCat::IsValid
IDLffLanguageCat::Query
IDLffLanguageCat::SetCatalog
Routines with Obsolete Arguments or Keywords
BYTEORDER
CALL_EXTERNAL
DEVICE
DIALOG_PICKFILE
DOC_LIBRARY
EXTRACT_SLICE
HELP
IDLgrMPEG::Save
IDLgrVolume::Init
IDLITSYS_CREATETOOL
IDLitTool::RegisterOperation
IDLitVisualization::Add
IDLitVisualization::GetCenterRotation
IDLitVisualization::GetProperty
IVolume
LABEL_REGION
LINFIT
LINKIMAGE
LIVE_PRINT
LM_FIT
MAKE_DLL
MESSAGE
ONLINE_HELP
OPEN
POLY_FIT
PRINT/PRINTF
READ_TIFF
READ/READF
READU
REGRESS
SAVE
SPAWN
SVDFIT
WIDGET_BASE
WIDGET_CONTROL
WRITE_TIFF
WRITEU
XMANAGER
Obsoleted Graphics Devices
The LJ Device
LJ Driver Strengths
LJ Driver Limitations
LJ Suggestions
The Macintosh Device
Obsolete Remote Procedure Calls
Using IDL as an RPC Server
The IDL RPC Directory
Running IDL in Server Mode
Creating the IDL RPC Library
Linking your Client Program
The IDL RPC Library
free_idl_variable
get_idl_variable
idl_server_interactive
kill_server
register_idl_client
send_idl_command
set_idl_timeout
set_idl_variable
set_rpc_verbosity
unregister_idl_client
The varinfo_t Structure
Variable Creation Functions
v_make_byte
v_make_complex
v_make_dcomplex
v_make_double
v_make_float
v_make_int
v_make_long
v_make_string
v_fill_array
More Variable Manipulation Macros
Notes on Variable Creation and Memory Management
Freeing Resources
Creating a Statically-Allocated Array
Allocating Space for Strings
RPC Examples
Building IDL Applications
Part I: Application Programming
Overview of IDL Applications
What is an IDL Application?
Can I Distribute My Application?
About Building Applications in IDL
Creating and Running Programs in IDL
Overview of IDL Program Types
Creating $MAIN$ Programs
Creating a $MAIN$ Program at the Command Line
Creating a $MAIN$ Program in a Text File
About Named Programs
Creating a Simple Program
Running Named Programs
Running Programs Using the IDLDE Interface
Running Programs From the IDL Command Line
Running Programs Using Executive Commands
Compiling Your Program
Automatic Compilation
Manual Compilation
Compilation Errors
Setting Compilation Options
Making Code Readable
Using Code Comments
Using Line Continuations
Maximizing the Editor's Capabilities
Navigating Among Procedures and Functions
Commenting Blocks of Code
Searching
Changing Text Selection Modes (Windows Only)
Modifying Chromacoding (Windows Only)
Editor Window Keyboard Shortcuts
Command Line Tips and Tricks
Copying and Pasting Multiple IDL Code Lines
Recalling Commands
Special Command Line Characters
Special Command Line Key Combination
Recording IDL Command Line Input
Interrupting or Aborting Execution
Variable Context After Interruption
Aborting IDL
For More Information on Programming
Executing Batch Jobs in IDL
Overview of Batch Files
Batch File Execution
Executing a Batch File
Naming and Locating Batch Files
Interpretation of Batch Statements
A Batch Example
Creating SAVE Files of Programs and Data
Overview of SAVE Files
What Can be Stored in a SAVE File
Save Files and Application Development
Accessing and Running SAVE Files
About Program and Data SAVE Files
Creating SAVE Files of Program Files
Example: A SAVE File of a Simple Routine
Example: A Save File of a Simple Widget Application
Example: Creating a SAVE File of an Object
Example: A SAVE File of a Custom iPlot Display
Other Examples of SAVE File Creation
Saving Variables from an IDL Session
Saving Data Variables in a SAVE File
Saving Heap Variables in a SAVE File
Saving System Variables in a SAVE File
Executing SAVE Files
Using the IDL Virtual Machine to Run SAVE Files
Executing SAVE Files by Name
Using RESTORE to Access SAVE Files
Using the IDL_Savefile Object to Access SAVE Files
Changes to IDL 5.4 SAVE Files
Creating Procedures and Functions
Overview of Procedures and Functions
Defining a Procedure
Calling a Procedure
Procedure Examples
Defining a Function
Function Example
Automatic Compilation and Execution
About Calling and Compiling Functions
Parameters
Correspondence of Formal and Actual Parameters
Copying Parameters
Number of Parameters
Determining Variable Scope
Function Parameters Example
Using Keyword Parameters
Determining if a Keyword is Set
Supplying Values for Missing Keywords
Supplying Values for Missing Arguments
Keyword Inheritance
Keyword Inheritance Mechanisms
Choosing a Keyword Inheritance Mechanism
Example: Writing a Wrapper Routine
Example: By Value Versus By Reference
Entering Procedure Definitions
How IDL Resolves Routines
Parameter Passing Mechanism
Calling Mechanism
Recursion
Example
Calling Functions/Procedures Indirectly
Example
Library Authoring
Overview of Library Authoring
Recognizing Potential Naming Conflicts
Choosing Routine Names to Avoid Conflicts
Cross-Platform Naming of IDL .pro Files
Advice for Library Authors
Prefixing Routine Names
Converting Existing Libraries
Program Control
Overview of Program Control
Compound Statements
Conditional Statements
Loop Statements
Jump Statements
Compound Statements
BEGIN...END
IF...THEN...ELSE
Using Statement Blocks with the IF Statement
Nesting IF Statements
CASE
SWITCH
CASE Versus SWITCH
FOR...DO
Avoid Invariant Expressions
FOR Statement with an Increment of One
FOR Statement with Variable Increment
Sequence of the FOR Statement
REPEAT...UNTIL
WHILE...DO
Jump Statements
Statement Labels
BREAK
CONTINUE
GOTO
Definition of True and False
Debugging and Error-Handling
Debugging and Error-Handling Overview
What Happens When Execution Stops
Example: Correcting Undefined Variable
Working with Breakpoints
Using Breakpoints
Stepping Through a Program
Manually Stepping Through Code
Automatically Stepping Through Code
Monitoring Variable Values
Showing Variable Values During Execution
The Variable Watch Window
Disappearing Variables
Correcting Errors During Execution
Obtaining Traceback Information
Controlling and Recovering from Errors
Interaction of CATCH, ON_ERROR, and ON_IOERROR
Creating Custom Error Messages
Message Blocks
Notifying the User of Errors
Math Errors
Accumulated Math Error Status
Special Floating-Point Values
The FINITE Function
Integer Conversions
Building Cross-Platform Applications
Overview of Cross-Platform Issues
Which Operating System is Running?
Operating System Access
File and Path Specifications
Choosing Files at Runtime
Selecting Files Programmatically
Files and I/O
Byte Order Issues
Math Exceptions
Responding to Screen Size and Colors
Finding Screen Size
Number of Colors Available
Printing
SAVE and RESTORE
Widgets in Cross-Platform Programs
Dialog Routines
Base Widgets
Positioning Widgets within a Base Widget
Fonts Used in Widget Applications
Motif Resources
WIDGET_STUB
Widget Event Inconsistencies
Using External Code
IDL DataMiner Issues
Writing Efficient IDL Programs
Overview of Program Efficiency
IDL Implementation
Additional Programming Efficiency Resources
Use Vector and Array Operations
Use System Functions and Procedures
Example
Virtual Memory
Access Large Arrays by Memory Order
Running Out of Virtual Memory
Minimizing Virtual Memory
The TEMPORARY Function
Virtual Memory System Parameters
The IDL Code Profiler
The Profile Dialog
The Profile Report Dialog
Using the IDL Code Profiler
Multithreading in IDL
The IDL Thread Pool
Benefits of the IDL Thread Pool
Possible Drawbacks to the Use of the IDL Thread Pool
Controlling the IDL Thread Pool
Viewing the Current Thread Pool Settings
Using the Default Thread Pool Settings
Changing Global Thread Pool Settings
Changing Thread Pool Settings for a Specific Computation
Disabling the Thread Pool
Routines that Use the Thread Pool
Part II: Components of the IDL Language
Expressions and Operators
Overview of Expressions and Operators
Mathematical Operators
Using Increment/Decrement
Using Exponentiation
Minimum and Maximum Operators
Using Minimum or Maximum with Complex Numbers
Using Minimum or Maximum with NaN Values
Matrix Operators
Logical Operators
Short-circuiting
Additional Logical Operator Examples
Bitwise Operators
Using the NOT Operator
Additional Bitwise Operator Examples
Relational Operators
Using Relational Operators with Arrays
Relational Operators with Infinity and NaN Values
Assignment and Compound Assignment
Compound Assignment Operators
Other Operators
Working with Conditional Expressions
Operator Precedence
Efficiency and Expression Evaluation Order
Working with Data in IDL
Data Types
Basic Data Types
Complex Data Types
Data Type and Structure of Expressions
Hierarchy of IDL Data Types
Expression Type
Expression Structure
Date/Time Data
How to Generate Date/Time Data
Date/Time Data Examples
Defining and Using Constants
Integer Constants
Floating-Point and Double-Precision Constants
Complex Constants
String Constants
Accuracy and Floating Point Operations
Roundoff Error
Truncation Error
Routines for Mathematical Error Assessment
Type Conversion Functions
Variables
Attributes of Variables
Variable Names
System Variables
Strings
Overview of Strings
A Note About the Examples
String Operations
Non-string and Non-scalar Arguments
String Concatenation
Using STRING to Format Data
Reading Data from Strings
Byte Arguments and Strings
Case Folding
Whitespace
Removing All Whitespace
Removing Leading or Trailing Blanks
Removing All Types of Whitespace
Finding the Length of a String
Substrings
Searching for a Substring
Searching For the Last Occurrence of a Substring
Inserting the Contents of One String into Another
Extracting Substrings
Splitting and Joining Strings
Comparing Strings
Case-Insensitive Comparisons of the First N Characters
String Comparisons Using Wildcards
Complex Comparisons Using Regular Expressions
Non-Printing Characters
Learning About Regular Expressions
Meta Characters
Subexpressions
Bracket Expressions
Special Characters in Regular Expressions
Arrays
Overview of Arrays
Determining the Number of Array Elements
Operations on Array Expressions
Array Subscripts
Understanding Array Subscripts
Extra Dimensions
Array Subscript Syntax: [ ] vs. ( )
Assignment Operations and Arrays
Using Scalar Values as Subscripts
Subscripting Arrays Using Scalar Values
Using Arrays as Subscripts
Examples Using Arrays as Subscripts
Conditionally Altering Array Elements
Subscript Ranges
Dimensionality of Subarrays
Avoid Using Range Subscripts
Combining Subscripts
Subscript Ranges
Other Subscript Arrays
Scalars
Manipulating Arrays
Transposing Arrays
Multiplying Arrays
Columns, Rows, and Array Majority
Structures
Overview of Structures
Named Structures
Anonymous Structures
Creating and Defining Structures
Structure Inheritance
Example of Creating a Structure
Structure References
Subscripted Structure References
Examples of Structure References
Using HELP with Structures
Parameter Passing with Structures
Storing Into Array Fields
Arrays of Structures
Creating an Array of Structures
Examples of Arrays of Structures
Structure Input/Output
Formatted Input/Output with Structures
Unformatted Input/Output with Structures
Strings
String Length Issues
Advanced Structure Usage
Number of Structure Tags
Names of Structure Tags
Example
Automatic Structure Definition
Relaxed Structure Assignment
Using Relaxed Structure Assignment
Pointers
Overview of Pointers
Heap Variables
Creating Heap Variables
Saving and Restoring Heap Variables
Pointer Heap Variables
IDL Pointers
Null Pointers
The PTR_NEW Function
The PTRARR Function
Operations on Pointers
Assignment
Dereference
Equality and Inequality
Dangling References
Heap Variable Leakage
Pointer Validity
Freeing Pointers
Pointer Examples
Creating a Linked List
Example Files-Using Pointers to Create Binary Trees
Files and Input/Output
Overview of File Access
About Opening Files
Simple I/O Examples
Routines for Input/Output
Formatted and Unformatted Input/Output
Advantages and Disadvantages of Unformatted I/O
Advantages and Disadvantages of Formatted I/O
Opening Files
Platform-Specific Keywords to the OPEN Procedure
Closing Files
Understanding (LUNs)
The Standard Input, Output, and Error LUNs
File Units (1-99)
File Units (100 -128)
Returning Information About a File Unit
Using FSTAT
File Unit Manipulations
Flushing File Units
Positioning File Pointers
Testing for End-Of-File
Reading and Writing Very Large Files
Limitations of Large File Support
Using Free Format Input/Output
Free Format Input
Free Format Output
Example: Free Format Input/Output
Using Explicitly Formatted Input/Output
Rules for Explicitly Formatted Input/Output
Format Reversion
Format Codes
Syntax of Format Codes
Available Format Codes
Format Code Examples
A Format Code
: Format Code
$ Format Code
F, D, E, and G Format Codes
B, I, O, and Z Format Codes
Q Format Code
Quoted String and H Format Codes
T Format Code
TL Format Code
TR and X Format Codes
C() Format Code
C printf-Style Quoted String Format Code
Example: Reading Formatted Table Data
Example: Reading Records With Multiple Array Elements
Using Unformatted Input/Output
Unformatted Input/Output of String Variables
Example: Reading C-Generated Unformatted Data with IDL
Example: Reading IDL-Generated Unformatted Data with C
Example: Reading a Sun Rasterfile from IDL
Portable Unformatted Input/Output
XDR Considerations
IDL XDR Conventions for Programmers
Example: Reading C-Generated XDR Data with IDL
Associated Input/Output
Example of Using Associated Input/Output
Reading Data from Associated Files
Writing Data to Associated Files
Multiple Subscripts With Associated File Variables
Files with Multiple Structures
Offset Parameter
Efficiency
Unformatted Data from UNIX FORTRAN Programs
File Manipulation Operations
Working with UNIX Links
Reading and Writing FORTRAN Data
Reading Data from a FORTRAN File
Writing Data to a FORTRAN File
Platform-Specific File I/O Information
UNIX-Specific Information
Windows-Specific Information
Using Language Catalogs
What Is a Language Catalog?
Creating a Language Catalog File
Storing and Loading Language Catalog Files
Using the IDLffLangCat Class
Creating a Language Catalog Object
Adding Application Keys
Getting and Setting Languages
Performing Queries
Destroying a Language Catalog Object
Widget Example
Using the XML Parser Object Class
About XML
About XML Parsers
Using the XML Parser
Subclassing the IDLffXMLSAX Object Class
Using Your Parser
Validation
Example: Reading Data Into an Array
Creating the xml_to_array Object Class
Using the xml_to_array Parser
Example: Reading Data Into Structures
Creating the xml_to_struct Object Class
Using the xml_to_struct Parser
Building Complex Data Structures
Using the XML DOM Object Classes
About the Document Object Model
When to Use the DOM
About the DOM Structure
How IDL Uses the DOM Structure
About the XML DOM Object Classes
IDLffXMLDOMNode Class Hierarchy
IDLffXMLDOM Object Helper Classes
IDL Node Ownership
Saving and Restoring IDLffXMLDOM Objects
Using the XML DOM Classes
Loading an XML Document
Reading XML Data
Modifying Existing Data
Creating New Data
Destroying IDLffXMLDOM Objects
Working with Whitespace
Orphan Nodes
Tree-Walking Example
Part III: Creating Applications in IDL
Creating IDL Projects
Overview of IDL Projects
Access to all Files in Your Application
Working with an IDL Project
Compiling and Running Your Application
Build Your Application
Exporting Your Applications
The IDL Project Interface
Example of a Project
Where to Store the Files for a Project
Creating a Project
Opening, Closing, and Saving Projects
Opening a Project
Saving a Project
Closing a Project
Modifying Project Groups
Modifying Project Groups
Adding, Moving, and Removing Files
Adding Files
Moving Files
Removing Files
Working with Files in a Project
Editing a Source File
Compiling a File
Testing a File
Setting the Properties of a File
Modifying Properties of Multiple Files
Setting the Options for a Project
Selecting the Build Order
Compiling an Application from a Project
To Compile All Files in Your Project
To Compile Only Modified Files in Your Project
Building a Project
About IDL GUIBuilder Files
Running an Application from a Project
Exporting a Project
Exporting Your Project's Source Files
Exporting Your Project to a Save File
Exporting a Runtime Distribution
Providing Online Help For Your Application
Overview of Creating Application Help
Providing Help Within the User Interface
Tooltips
Status Lines
Text Widgets
Displaying Text Files
Using an External Viewer
About IDL's Online Help System
Format of an IDL Assistant Help System
Creating Help Content
Creating an Assistant Document Profile
Optional Help System Files
Displaying Help Topics
Paths for Help Files
Using Other Online Help Viewers
Microsoft Windows Help
Portable Document Format Files
HTML Files
Distributing Runtime Mode Applications
What Is an IDL Runtime Mode Application?
Types of IDL Runtime Applications
Licensing Options for IDL Runtime Applications
Limitations of Runtime Applications
Error Handling
Working Directory of Runtime Applications
Steps to Distribute a Runtime Application
Preferences for Runtime Applications
Preference Etiquette
Loading Preference Values at Application Startup
Windows Runtime Preferences
Examples
Runtime Licensing
Ensuring That Your License is Used
Obtaining and Installing Runtime Licenses
Installing the License File
Embedded Licensing
Optional Embedded Features
Creating an Application Distribution
Creating a Distribution Using Project Export
Creating a Distribution Using the make_rt Script
Using an Existing IDL Installation
Starting a Runtime Application
Using an Exported IDL Distribution
Using an Existing IDL Distribution
Specifying Application Preferences at Startup
What Happens When IDL Runs Your Application
Installing Your Application
Incorporating the IDL DataMiner
Distributing Virtual Machine Applications
What Is a Virtual Machine Application?
If You Are Running a Virtual Machine Application
If You Are Creating a Virtual Machine Application
Limitations of Virtual Machine Applications
Steps to Distribute Your Application
Preferences for Virtual Machine Applications
Options for Windows Applications
Options for UNIX/Macintosh Applications
Creating Application SAVE Files
Single vs. Multiple SAVE Files
Version Compatibility of SAVE Files
Starting a Virtual Machine Application
Windows
UNIX
Mac OS X
Installing the IDL Virtual Machine
Upgrading or Removing the IDL Virtual Machine
Installing Your Virtual Machine Application
Distributing Your Application on a CD-ROM
Create a CD-ROM Image Directory
Copy the IDL Virtual Machine Distribution
Copy and Rename the idlvm.exe File
Copy and Rename the idlvm.ini File
Copy Your Application Files
Create an idl.pref File
Modify the idlvm.ini File
Copy and Modify the autorun.inf File
Create and Test the CD-ROM
Format of the .ini File
Distributing Callable IDL Applications
What Is a Callable IDL Application?
Licensing Options for Callable IDL Applications
Limitations of Runtime Mode Callable IDL Applications
Steps to Distribute a Callable IDL Application
Preferences for Callable IDL Applications
Runtime Licensing
Embedded Licensing
Obtaining Your Licensing Information
Modifying Your Application Code
Creating an Application Distribution
Windows
UNIX
Starting a Callable IDL Application
Windows
UNIX
Installing Your Callable IDL Application
Distributing ActiveX Applications
What Is an ActiveX Application?
Licensing Options for IDL ActiveX Applications
Limitations of Runtime Mode ActiveX Applications
Steps to Distribute an ActiveX Application
Preferences for ActiveX Applications
Runtime Licensing
Embedded Licensing
Obtaining Your Licensing Information
Modifying Your Application Code
Creating an Application Distribution
Starting Your ActiveX Application
Installing Your ActiveX Application
Installing and Registering ActiveX Files
Part IV: Creating Graphical User Interfaces in IDL
Creating Widget Applications
User Interface Options in IDL
Creating an iTool Interface
Creating a Widget Interface
Creating a Custom iTool Interface
About Widgets
About Widget Applications
Running the Example Code
Types of Widgets
Widget Programming Concepts
Widget Values
Widget IDs
Widget Parent/Child Relationships
Instantiating and Displaying Widgets
Example: A Simple Widget Application
Widget Application Lifecycle
Construct the Widget Hierarchy
Provide an Event-Handling Routine
Realize the Widgets
Register the Program with the XMANAGER
Interact with the Application
Destroy the Widgets
Manipulating Widgets
WIDGET_CONTROL
WIDGET_EVENT
WIDGET_INFO
XMANAGER
XREGISTERED
Working With Widget IDs
Use the Widget Event Structure
Pass the Widget ID Using a Widget User Value
Use a User Name to Locate the Widget
Pass the Widget ID Explicitly
Use a COMMON Block
Widget User Values
Widget Event Processing
What are Widget Events?
Structure of Widget Events
Managing Widget Events with XMANAGER
Event Processing and Callbacks
Example: Event Processing and User Values
Managing Application State
Techniques for Preserving Application State
Creating a Compound Widget
Writing Compound Widgets
The HANDLER Field of the Widget Event Structure
Example: Compound Widget
Using CW_DICE in a Widget Program
Debugging Widget Applications
Using the IDL GUIBuilder
Overview of IDL GUIBuilder
Starting the IDL GUIBuilder
Opening Existing Interface Definitions
Creating an Example Application
Defining Menus for the Top-level Base
Creating a Draw Widget
Running the Application in Test Mode
Generating the IDL Code
Handling the Open File Event
Handling the Exit Event
Handling the Load Color Table Event
Handling the Smooth Event
Compiling and Running the Example Application
IDL GUIBuilder Tools
Using the IDL GUIBuilder Toolbar
Using the Properties Dialog
Using the Widget Browser
Using the Menu Editor
Using the Bitmap Editor
Using the Tree Editor
Widget Operations
Selecting Widgets
Moving and Resizing Widgets
Cutting, Copying, and Pasting Widgets
Deleting Widgets
Undoing and Redoing Operations
Generating Files
Generating Resource Files
Generating IDL Code
IDL GUIBuilder Examples
Understanding IDL GUIBuilder Event Handling Code
Writing Event Callback Routines
Handling Initialization Arguments
Integrating Multiple Interfaces
Adding Compound Widgets
Controlling Widget Display
Widget Properties
Widget Application Techniques
Working with Widget Events
Interrupting the Event Loop
Identifying Widget Type from an Event
Keyboard Focus Events
Timer Events
Tracking Events
Context Menu Events
Using Multiple Widget Hierarchies
Widget Group Behaviors
Floating bases
Modal bases
Menubars
Creating Menus
Button Groups
Lists
Pulldown Menus
Menus on Top-Level Bases
Context-Sensitive Menus
Widget Sizing
Widget Geometry Terms and Concepts
How Widget Geometry is Determined
Dynamic Resizing
Explicitly Specifying the Size and Location of Widgets
Preventing Layout Flicker
Tips on Creating Widget Applications
Portability Issues
Using Button Widgets
Bitmap Button Labels
Tooltips
Exclusive and Non-Exclusive Buttons
Using Draw Widgets
Using Direct Graphics in Draw Widgets
Using Object Graphics in Draw Widgets
Scrolling Draw Widgets
Context Events in Draw Widgets
Draw Widget Example
Button, Motion, Wheel, and Keyboard Events
Using Property Sheet Widgets
Registering Properties
Selecting Properties
Changing Properties
User-defined Properties
Property Sheet Sizing
Property Sheet Example
Multiple Properties Example
Using Table Widgets
Default Table Size
Selection Modes
Data Types
Data Retrieval
Edit Mode
Cell Attributes
Example: Single Data Type Data
Example: Structure Data
Using Tab Widgets
Example: A Simple Tab Widget
Tab Sizing and Multiline Behavior
Example: Retrieving Values
Using Tree Widgets
Types of Tree Widgets
Example: A Simple Tree
Setting the Tree Selection State
Making a Tree Entry Visible
Replacing the Default Bitmaps
Enhancing Widget Application Usability
Tabbing in Widget Applications
Defining Tabbing Behavior in a Windows Application
Assigning Accelerators in Widget Applications
Disabling Button Widget Accelerators
Object Programming
The Basics of Using Objects in IDL
Object-Oriented Programming Concepts
Using IDL Objects
Creating Objects
Acting on Objects Using Methods
Object Method Syntax
Arguments
Modifying Object Properties
Properties and the Property Sheet Interface
Setting Properties at Initialization
Setting Properties of Existing Objects
Retrieving Property Settings
About Object Property Descriptions
Destroying Objects
Using Operations with Objects
Object Assignment
Object Equality and Inequality
Object Examples
Creating an Object Graphics Display
Overview of Object Graphics Classes
Naming Conventions
Creating an Object Graphics Display
Object Graphics Display Hierarchy
Components of an Object Graphics Hierarchy
Destination Objects
Display Objects
Visualization Objects
File Format Objects
Color in Object Graphics
Color and Destination Objects
A Note about Draw Widgets
Indexed Color Model in Object Graphics
RGB Color Model in Object Graphics
Palette Objects
Creating Palette Objects
Using Palette Objects
Specifying Object Color
Example Specifying RGB Values
How IDL Interprets Color Values
Indexed Color Model
RGB Color Model
Rendering Objects
Simple Plot Example
Controlling the Depth of Objects in a View
Controlling Object Transparency
Opacity and Transparency
Blending Mathematics
Rendering Order
Viewing and Rotation
Depth Buffer Updating
Performance Tuning Object Graphics
Positioning Objects in a View
Positioning Visualizations in a View
Viewport
Location
Coordinate Systems and Scaling
Viewport
Location and Dimension
Projection
Parallel Projections
Perspective Projections
Eye Position
View Volume
Viewplane Rectangle
Near and Far Clipping Planes
Finding an Appropriate View Volume
Converting Data to Normal Coordinates
A Function for Coordinate Conversion
Example: Centering an Image
Example: Transforming a Surface
Zooming within an Object Display
Zooming in on an Object Graphics Image Display
Translating, Rotating and Scaling Objects
Translation
Rotation
Scaling
Combining Transformations
Interactive 3D Transformations
Working with Image Objects
Overview of Image Objects
Defining Image Palettes
Configuring Common Object Properties
Creating Image Objects
Displaying Binary Images with Object Graphics
Displaying Grayscale Images with Object Graphics
Positioning Image Objects in a View
Displaying Multiple Images in Object Graphics
Panning in Object Graphics
Defining Transparency in Image Objects
Transparency and Image Warping
Image Transparency Examples
Warping Image Objects
Mapping an Image onto a Sphere
Mapping an Image onto a Sphere Using Object Graphics
Image Tiling
Image Pyramids
Image Tiles
Adding Tiling to Your Application
Querying Required Tiles
Panning Tiled Images
Zooming Tiled Images
Copying and Printing a Tiled Image
Preloading Tiles
Example: JPEG2000 Files for Tiling
Working with Plots and Graphs
Contour Objects
Creating Contour Objects
Using Contour Objects
Plot Objects
Creating Plot Objects
Using Plot Objects
Polar Plots
Axis Objects
Creating Axis Objects
Using Axis Objects
Logarithmic Axes
Displaying Date/Time Data on Axis Objects
Displaying Date/Time Data on a Plot Display
Displaying Date/Time Data on a Contour Display
Axis Titles and Tickmark Text
Reverse Axis Plotting
Symbol Objects
Creating Symbol Objects
Using Symbol Objects
A Plotting Routine
Improvements to the OBJ_PLOT Routine
Working with Surface Objects
Surface Objects
Creating Surface Objects
Using Surface Objects
An Interactive Surface Example
Creating Volume Objects
Creating a Volume Object
Using Volume Objects
Setting Volume Object Attributes
Volume Opacity
Volume Color
Volume Lighting
Compositing
ZBuffering
Interpolation
Rendering speed
Polygon and Polyline Objects
About Polygon and Polyline Objects
Polygon Objects
Creating Polygon Objects
Configuring Polygon Objects
Tessellator Objects
Creating Tessellator Objects
Using Tessellator Objects
Pattern Objects
Creating Pattern Objects
Using Pattern Objects
Polygon Optimization
Polygon Mesh Optimization
Back-face Culling
Normal Computations
Polyline Objects
Creating Polyline Objects
Using Polyline Objects
Annotating an Object Display
Annotating Object Graphic Displays
Text Objects
Creating Text Objects
Using Text Objects
A Text Example
Font Objects
Creating Font Objects
Assigning a Font Object to a Text Object
Font Objects and Resource Use
ROI Objects
Legend Objects
Creating Legend Objects
Using Legend Objects
Colorbar Objects
Creating Colorbar Objects
Using Colorbar Objects
Light Objects
Creating Light Objects
Configuring Light Objects
Optimizing Light Object Use
Custom Image Object Annotations
Annotating Indexed Image Objects
Annotating RGB Image Objects
Animating Objects
Overview of Object Animation
Configuring an Animation Model Object
Using Multiple Models
Controlling the Animation Rate
Designing a Behavior Object
Factors Affecting Animation Performance
Multiple Image Copies
Graphics Display Refresh Rate
Example: Interactive Cine Animation
Selecting Objects
Selection and Data Picking
Object Selection
Selecting Views
Selecting Visualization Objects
Selecting Models
A Selection Example
Data Picking
A Data Picking Example
Displaying, Copying and Printing Objects
Overview of Object Graphic Destinations
Window Objects
Creating Window Objects
Color Model
Note on Window Size Limits
Using Window Objects
Erasing a Window
Exposing or Hiding a Window
Iconifying a Window
Setting the Window Cursor
Saving/Restoring Windows
Saving Window Contents to a File
Improving Window Drawing Performance
Hardware vs. Software Rendering
Retained Graphics and Expose Events
Instancing to Improving Redraw Performance
Buffer Objects
Creating Buffer Objects
Clipboard Objects
Creating Clipboard Objects
Printer Objects
Creating Printer Objects
Color Model
Printer Dialogs
Drawing to a Printer
Positioning Objects Within a Page
Starting a New Page on a Printer
Submitting a Printer Job
Bitmap and Vector Graphic Output
Bitmap Graphics
Vector Graphics
Guidelines for Choosing Bitmap or Vector Graphics
Controlling What is Displayed in Vector Graphics
Creating Custom Objects in IDL
Creating Custom Objects
IDL Object Overview
Classes and Instances
Encapsulation
Methods
Polymorphism
Inheritance
Persistence
Undocumented Object Classes
Creating an Object Class Structure
Automatic Class Structure Definition
Inheritance
Null Objects
Object Heap Variables
Dangling References
Heap Variable "Leakage"
Freeing Heap Variables
The Object Lifecycle
Creation and Initialization
Destruction
Creating Custom Object Method Routines
Defining Method Routines
The Implicit Self Argument
Calling Method Routines
Searching for Method Routines
Method Overriding
Specifying Class Names in Method Calls
Object Examples
Creating Composite Classes or Subclasses
iTool Developer's Guide
Overview of iTools
What are iTools?
What is the iTools Component Framework?
Advantages of Using the Framework
About this Manual
What this Manual is Not
About the iTools Code Base
Documented vs. Undocumented Classes
Skills Required to Use the iTools Component Framework
Part I: Understanding the iTools Component Framework
iTool System Architecture
Overview of the iTool System Architecture
iTools Object Model Diagram
iTool Object Identifiers
Proxy Identifiers
Object Descriptors
iTool Object Hierarchy
iTool System Object
iTool Objects
Registering Components
Registration Methods
iTool Messaging System
Sending Notifications
Notification Messages
Observers
System Resources
Icon Bitmaps
Help System
Data Management
Overview of iTool Data Management
iTool Data Manager
Adding Data to the Data Manager
Removing Data from the Data Manager
iTool Data Types
Composite Data Types
Data Types of iTool Components
iTool Data Objects
Data Objects
Data Containers
Parameter Sets
Predefined iTool Data Classes
Parameters
Parameter Names
Parameter Data Types
Registering Parameters
Data Type Matching
Data Update Mechanism
Property Management
About the Properties Interface
What is a Property?
Properties vs. Preferences
How are Properties Displayed?
Setting and Retrieving Property Values
Property Data Types
Property Registration
Property Identifiers
Property Attributes
Property Aggregation
Property Data Types
User Defined Property Types
Registering Properties
Registering a Property
Pre-Registered Properties
Property Identifiers
Property Attributes
Available Property Attributes
Property Aggregation
Working with Aggregated Properties
Property Update Mechanism
Properties of the iTools System
Part II: Using the iTools Component Framework
Creating an iTool
Overview of iTool Creation
The iTool Creation Process
Creating a New iTool Class
Creating the Class Structure Definition
Creating an Init Method
Registering a New Tool Class
Using ITREGISTER
Example
Creating an iTool Launch Routine
Specifying Command-Line Arguments and Keywords
Creating Data Objects
Handling Errors
Creating an iTool Instance
Example: Simple iTool
Class Definition File
Launch Routine
Creating a Visualization
Overview of iTool Visualization Types
The Visualization Type Creation Process
Predefined iTool Visualization Classes
Creating a New Visualization Type
Creating the Class Structure Definition
Creating an Init Method
Creating a Cleanup Method
Creating a GetProperty Method
Creating a SetProperty Method
Creating an OnDataChangeUpdate Method
Creating an OnDataDisconnect Method
Registering a Visualization Type
Using IDLitTool::RegisterVisualization
Specifying Useful Properties
Unregistering a Visualization Type
Example: Image-Contour Visualization
Class Definition File
Creating an Operation
Overview of Creating an iTool Operation
The Operation Creation Process
Predefined iTool Operations
Operations and the Undo/Redo System
Data-Centric Operations
Generalized Operations
Creating a New Data-Centric Operation
How an IDLitDataOperation Works
Creating an IDLitDataOperation
Creating the Class Structure Definition
Creating an Init Method
Creating a Cleanup Method
Creating an Execute Method
Creating a DoExecuteUI Method
Creating a GetProperty Method
Creating a SetProperty Method
Creating an UndoExecute Method
Creating a New Generalized Operation
How an IDLitOperation Works
Creating an IDLitOperation
Creating the Class Structure Definition
Creating an Init Method
Creating a Cleanup Method
Creating a DoAction Method
Creating a RecordInitialValues Method
Creating a RecordFinalValues Method
Creating a GetProperty Method
Creating a SetProperty Method
Creating an UndoOperation Method
Creating a RedoOperation Method
Operations and Macros
Registering an Operation
Using IDLitTool::RegisterOperation
Specifying Useful Properties
Unregistering an Operation
Example: Data Resample Operation
Class Definition File
Creating a Manipulator
Overview of iTool Manipulators
Manipulators and Manipulator Containers
Manipulator Visuals
The Manipulator Creation Process
Predefined iTool Manipulators
General Manipulators
Image Manipulators
Plot and Contour Manipulators
Surface Manipulators
Volume Manipulators
Manipulators and the Undo/Redo System
Capturing Information for the Undo/Redo System
Using Manipulator Public Instance Data
Creating a New Manipulator
Creating the Manipulator Class Structure Definition
Creating a Manipulator Init Method
Creating a Cleanup Method
Creating Mouse Event Methods
Creating an OnKeyboard Method
Creating a RegisterCursor Method
Creating GetProperty or SetProperty Methods
Registering a Manipulator
Using IDLitTool::RegisterManipulator
Unregistering a Manipulator
Example: Color Table Manipulator
Running the Color Table Manipulator Example
Creating a File Reader
Overview of iTool File Readers
The File Reader Creation Process
Predefined iTool File Readers
Creating a New File Reader
Creating the Class Structure Definition
Creating an Init Method
Creating a Cleanup Method
Creating a GetProperty Method
Creating a SetProperty Method
Creating an IsA Method
Creating a GetData Method
Registering a File Reader
Using IDLitTool::RegisterFileReader
Unregistering a File Reader
Example: TIFF File Reader
Class Definition File
Creating a File Writer
Overview of iTool File Writers
The File Writer Creation Process
Predefined iTool File Writers
Creating a New File Writer
Creating the Class Structure Definition
Creating an Init Method
Creating a Cleanup Method
Creating a GetProperty Method
Creating a SetProperty Method
Creating a SetData Method
Registering a File Writer
Using IDLitTool::RegisterFileWriter
Unregistering a File Writer
Example: TIFF File Writer
Class Definition File
Part III: Modifying the iTool User Interface
iTool User Interface Architecture
Overview of iTool Interface Architecture
User Interface Objects
Using iTool User Interface Elements
The iTools Feedback Mechanism
Status Messages
Creating Additional Status Bar Segments
Prompts
Informational Messages
Creating a User Interface Service
Overview of the iTool UI Service
Creating and Using a UI Service
Predefined iTool UI Services
Creating a New UI Service
Creating the UI Service Routine
Creating Supporting User Interface Elements
Registering a UI Service
Using ITREGISTER
Example
Using the RegisterUIService Method
Executing a User Interface Service
Example: Changing a Property Value
Creating the SrvExample Service
Creating the SrvExample Interface
Creating an Operation that Calls the Service
Registering the SrvExample Service
Registering the opName Operation
Invoking the opName Operation
Creating a User Interface Panel
Overview of the iTool UI Panel
Creating and Using a UI Panel
Creating a UI Panel Interface
Panel Creation Routines
About the Panel Widget
Registering the Panel with the User Interface Object
Adding Observers
Create the Widget Hierarchy
Create Event Handlers
Creating Callback Routines
Callback Routine Signature
Registration of Callback Routines
Retrieving Widget State Information
Registering a UI Panel
Registering the Panel in the iTool Launch Routine
About the TYPE property
Example: A Simple UI Panel
Panel Creation Routine
Panel Event Handler Routine
Panel Callback Routine
Panel Type Specification
Creating a Custom iTool Widget Interface
About Custom iTool Widget Interfaces
Why Create a New Widget Interface?
What About Using a UI Panel?
Skills Required to Create an iTool User Interface
What You Will Need to Create
Overview of Creating an iTool Interface
Create or Choose an iTool
Create the Widget Interface
Create Event Handlers
Create Callback Routines
Create a Cleanup Routine
Create an iTool User Interface Object
Create an iTool Launch Routine
iTool Widget Interface Concepts
What Are iTool Compound Widgets?
Special Notes on the iTool Compound Widgets
Example iTool Widget Interfaces
Creating the Interface Routine
Routine Signature
Error Checking
Top Level Base
User Interface Object
Widget Creation and Layout
User Interface Registration
Handling Widget Destruction
Adding Menus
Standard Menus
Modifying Menu Contents
Resizing Menus
Adding a Toolbar
Standard Toolbars
Modifying Toolbar Contents
Resizing Toolbars
Adding an iTool Window
Window Sizing Keywords
Modifying Window Contents
Resizing iTool Windows
Adding a Status Bar
Modifying Status Bar Contents
Resizing Status Bars
Adding a User Interface Panel
Modifying User Interface Panel Contents
Resizing User Interface Panels
Handling Callbacks
Callback Routine Signature
Registration of Callback Routines
Example Callback Routine
Handling Resize Events
Generating Resize Events
Handling the Resize Event
Writing a Resize Routine
Handling Shutdown Events
Generating Shutdown Events
Handling the Shutdown Event
Writing a Cleanup Routine
Calling the Cleanup Routine
Creating an iTool Launch Routine
Register Your User Interface
Use Your User Interface
Using an Existing iTool Launch Routine
Example: a Custom iTool Interface
Widget Interface Creation Routine
iTool Class Definition Routine Discussion
iTool Launch Routine Discussion
Controlling iTools from the IDL Command Line
Overview of iTool Programmatic Control
How to Control an iTool
Retrieving an iTool Object Reference
Retrieving Component Identifiers
Using the FindIdentifiers Method
FindIdentifier Examples
Retrieving Property Information
Retrieving Property Identifiers
Property Attribute Information
Property Value Information
An Example Property Information Retrieval Routine
Changing Property Values
Using the DoSetProperty Method
Using the SetProperty Method
Running Operations
Selecting Items in the iTool
Example: Selecting an Item Programmatically
Replacing Data in an iTool
Using the iTool Creation Routine
Using the SetData Method
iTool Compound Widgets
Overview of iTools Compound Widgets
CW_ITMENU
CW_ITPANEL
CW_ITSTATUSBAR
CW_ITTOOLBAR
CW_ITWINDOW
External Development Guide
External Development Overview
About This Manual
Supported Inter-Language Communication Techniques in IDL
Translate into IDL
SPAWN
Microsoft COM and ActiveX
Sun Java
UNIX Remote Procedure Calls (RPCs)
CALL_EXTERNAL
IDL System Routine (LINKIMAGE, DLMs)
Callable IDL
Dynamic Linking Terminology and Concepts
When Is It Appropriate to Combine External Code with IDL?
Skills Required to Combine External Code with IDL
IDL Organization
The Interpreter Stack
External Definitions
Interpreting Logical Boolean Values
Compilation and Linking Details
Recommended Reading
Part I: Techniques That Do Not Use IDL's Internal API
Using SPAWN and UNIX Pipes
Example: Communicating with a Child Process Under UNIX
Overview: COM and ActiveX in IDL
COM Objects and IDL
What are COM Objects?
Why Use COM Objects with IDL?
Using COM Objects with IDL
Exposing a COM Object as an IDL Object
Including an ActiveX Control in an IDL Widget Hierarchy
Using the IDLDrawWidget ActiveX Control
Skills Required to Use COM Objects
If You Are Using COM Objects
If You Are Using ActiveX Controls
If You Are Using the IDLDrawWidget ActiveX Control
If You Are Creating Your Own COM Object
Using COM Objects in IDL
About Using COM Objects in IDL
Array Data Storage Format
Object Creation
Method Calls and Property Management
Object Destruction
Registering COM Components on a Windows Machine
IDLcomIDispatch Object Naming Scheme
Class Identifiers
Program Identifiers
Finding COM Class and Program IDs
Creating IDLcomIDispatch Objects
Method Calls on IDLcomIDispatch Objects
Function vs. Procedure Methods
What Happens When a Method Call is Made?
Data Type Conversions
Optional Arguments
Finding Object Methods
Managing COM Object Properties
Setting Properties
Getting Properties
References to Other COM Objects
Destroying IDLcomIDispatch Objects
COM-IDL Data Type Mapping
Example: RSIDemoComponent
Using ActiveX Controls in IDL
About Using ActiveX Controls in IDL
Warning: Modeless Dialogs
Registering COM Components on a Windows Machine
ActiveX Control Naming Scheme
Finding COM Class and Program IDs
Creating ActiveX Controls
Method Calls on ActiveX Controls
Retrieving the Object Reference
Managing ActiveX Control Properties
ActiveX Widget Events
Using the ActiveX Widget Event Structure
Dynamic Elements in the ActiveX Event Structure
Destroying ActiveX Controls
Example: Calendar Control
Example: Spreadsheet Control
The IDLDrawWidget ActiveX Control
Overview
A Note about Versions of the IDL ActiveX Control
Creating an Interface and Handling Events
Drawing the Interface
Specifying the IDL Path and Graphics Level
Initializing IDL
Creating the Draw Widget
Directing IDL Output to a Text Box
Responding to Events and Issuing IDL Commands
Cleaning Up and Exiting
Working with IDL Procedures
Creating the Interface
Initializing IDL
Compiling the IDL Code
Dispatching Button Events to IDL
Cleaning Up and Exiting
Advanced Examples
Copying and Printing IDL Graphics
Opening the VBCopyPrint project
Running the VBCopyPrint Example
Copying IDL Graphic to the clipboard
Printing the IDL Graphic using IDL Object Graphics
Executing IDL user routines with Visual Basic
Printing the IDL Graphic Using Visual Basic
XLoadCT Functionality Using Visual Basic
XPalette Functionality Using Visual Basic
Integrating Object Graphics Using VB
Sharing a Grid Control Array with IDL
Handling Events within Visual Basic
Distributing Your ActiveX Application
IDLDrawWidget Control Reference
IDLDrawWidget
Methods
CopyNamedArray
CopyWindow
CreateDrawWidget
DestroyDrawWidget
DoExit
ExecuteStr
GetNamedData
InitIDL
InitIDLEx
Print
RegisterForEvents
SetNamedArray
SetNamedData
SetOutputWnd
VariableExists
Do Methods (Runtime Only)
DoButtonPress
DoButtonRelease
DoExpose
DoMotion
Properties
BackColor
BaseName
BufferId
DrawWidgetName
Enabled
GraphicsLevel (Runtime/Design time)
IdlPath
Renderer
Retain (Runtime/Design time)
Visible (Runtime/Design time)
Xsize (Design time)
Ysize (Design time)
Read Only Properties
BaseId (Runtime)
DrawId (Runtime)
hWnd (Runtime)
LastIdlError (Runtime)
Scroll
Xoffset
Xviewport
Yoffset
Yviewport
Auto Event Properties
OnButtonPress
OnButtonRelease
OnDblClick
OnExpose
OnInit
OnMotion
Events
OnViewScrolled
Using Java Objects in IDL
Overview of Using Java Objects
Java Terminology
IDL-Java Bridge Architecture
Initializing the IDL-Java Bridge
Configuring the Bridge
IDL-Java Bridge Data Type Mapping
Creating IDL-Java Objects
Java Class Names in IDL
Java Static Access
Method Calls on IDL-Java Objects
What Happens When a Method Call Is Made?
Data Type Conversions
Managing IDL-Java Object Properties
Getting and Setting Properties
Destroying IDL-Java Objects
Showing IDL-Java Output in IDL
The IDLJavaBridgeSession Object
Java Exceptions
IDL-Java Bridge Examples
Accessing Arrays Example
Accessing URLs Example
Accessing Grayscale Images Example
Accessing RGB Images Example
Troubleshooting Your Bridge Session
Calling System.exit
Errors When Initializing the Bridge
Errors When Creating Objects
Errors When Calling Methods
Errors When Accessing Data Members
Using CALL_EXTERNAL
The CALL_EXTERNAL Function
Example Code in the IDL Distribution
CALL_EXTERNAL Compared to UNIX Child Process
Compilation and Linking of External Code
AUTO_GLUE
Input and Output
Memory Cleanup
Memory Access
Argument Data Types
Mapping IDL Data Types to External Language Types
By-Value and By-Reference Arguments
Microsoft Windows Calling Conventions
Common CALL_EXTERNAL Pitfalls
Passing Parameters
Using Auto Glue
Generating Glue Without Executing It
Basic C Examples
Example: Passing Parameters by Reference to IDL
Example: Calling a C Routine to Perform Computation
Wrapper Routines
Passing String Data
Example
Passing Array Data
Passing Structures
Fortran Examples
Example: Calling a Fortran Routine Using a C Interface Routine
Example: Calling a Fortran Routine Using a Fortran Interface Routine
Remote Procedure Calls
IDL and Remote Procedure Calls
Using IDL as an RPC Server
The IDL RPC Directory
Running IDL in Server Mode
Client Variables
Linking to the Client Library
Example of IDL RPC Client API
Compatibility with Older IDL Code
The IDL RPC Library
IDL_RPCCleanup
IDL_RPCDeltmp
Description
Parameters
IDL_RPCExecuteStr
IDL_RPCGetMainVariable
IDL_RPCGettmp
Parameters
IDL_RPCGetVariable
IDL_RPCImportArray
IDL_RPCInit
Description
IDL_RPCMakeArray
IDL_RPCOutputCapture
IDL_RPCOutputGetStr
IDL_RPCSetMainVariable
IDL_RPCSetVariable
IDL_RPCStoreScalar
IDL_RPCStrDelete
IDL_RPCStrDup
IDL_RPCStrEnsureLength
IDL_RPCStrStore
IDL_RPCTimeout
IDL_RPCVarCopy
IDL_RPCVarGetData
Variable Accessor Macros
RPC Examples
Part II: IDL's Internal API
IDL Internals: Types
Type Codes
Type Masks
Mapping of Basic Types
Unsigned Byte Data
Integer Data
Unsigned Integer Data
Long Integer Data
Unsigned Long Integer Data
64-bit Integer Data
Unsigned 64-bit Integer Data
Complex Data
String Data
IDL_MEMINT and IDL_FILEINT Types
IDL Internals: Variables
IDL and Internal Variables
The IDL_VARIABLE Structure
Scalar Variables
Array Variables
Structure Variables
Creating Structures
Accessing Structure Tags
Determining the Number Of Structure Tags
Determining the Names Of Structures and their Tags
Heap Variables
Temporary Variables
Getting a Temporary Variable
Creating a Temporary Array
Creating a Temporary Structure
Creating a Temporary Vector
Creating A Temporary Variable Using Another Variable As A Template
Freeing A Temporary Variable
Creating an Array from Existing Data
Getting Dynamic Memory
The IDL_GetScratch Function
Accessing Variable Data
Copying Variables
Storing Scalar Values
Using IDL_StoreScalar() to Free Dynamic Resources
Obtaining the Name of a Variable
Looking Up Main Program Variables
Looking Up Variables in Current Scope
IDL Internals: Keyword Processing
IDL and Keyword Processing
Creating Routines that Accept Keywords
Overview Of IDL Keyword Processing
The IDL_KW_PAR Structure
The IDL_KW_ARR_DESC_R Structure
Keyword Processing Options
The KW_RESULT Structure
Processing Keywords
Speeding Keyword Processing
Cleaning Up
Keyword Examples
The Pre-IDL 5.5 Keyword API
Background
Advantages Of The IDL 5.5 API
Differences And Similarities Between APIs
Converting Existing Code To The New API
The Transitional API
Example: Converting From The Old Keyword API
IDL Internals: String Processing
String Processing and IDL
Accessing IDL_STRING Values
Copying Strings
Deleting Strings
Setting an IDL_STRING Value
Obtaining a String of a Given Length
IDL Internals: Error Handling
Message Blocks
Issuing Error Messages
Error Codes
Choosing an Error Code
Looking Up A Message Code by Name
Checking Arguments
IDL Internals: Type Conversion
Converting Arguments to C Scalars
General Type Conversion
Converting to Specific Types
IDL Internals: UNIX Signals
IDL and Signals
Signal Handlers
Establishing a Signal Handler
Removing a Signal Handler
UNIX Signal Masks
IDL_SignalSetInit()
IDL_SignalSetAdd()
IDL_SignalSetDel()
IDL_SignalSetIsMember()
IDL_SignalMaskGet()
IDL_SignalMaskSet()
IDL_SignalMaskBlock()
IDL_SignalBlock()
IDL_SignalSuspend()
IDL Internals: Files and Input/Output
IDL and Input/Output Files
File Information
IDL_FileStat()
Opening Files
IDL_FileOpen()
Special File Units
Closing Files
IDL_FileClose()
Preventing File Closing
IDL_FileSetClose()
Checking File Status
IDL_FileEnsureStatus()
Allocating and Freeing File Units
IDL_FileGetUnit()
IDL_FileFreeUnit()
Detecting End of File
IDL_FileEOF()
Flushing Buffered Data
IDL_FileFlushUnit()
Reading a Single Character
IDL_GetKbrd()
Output of IDL Variables
IDL_Print() and IDL_PrintF()
Adding to the Journal File
IDL_Logit()
IDL Internals: Timers
IDL and Timers
Making Timer Requests
Canceling Asynchronous Timer Requests
Blocking UNIX Timers
IDL Internals: Miscellaneous
Dynamic Memory
IDL_MemAlloc()
IDL_MemFree()
IDL_MemAllocPerm()
Exit Handlers
IDL_ExitRegister()
User Interrupts
IDL_BailOut()
Functions for Returning System Variables
Terminal Information
Functions for Returning IDL_FileTerm Variable Values
Ensuring UNIX TTY State
Type Information
Functions for Returning Data Type Variable Values
User Information
Constants
Macros
Part III: Techniques That Use IDL's Internal API
Adding System Routines
IDL and System Routines
The System Routine Interface
Example: Hello World
Example: Doing a Little More (MULT2)
Testing the Example
Example: A Complete Numerical Routine Example (FZ_ROOTS2)
Calling Sequence
Arguments
Keywords
Example
Example: An Example Using Routine Design Iteration (RSUM)
Running Sum (Example 1)
RSUM1
Running Sum (Example 2)
Running Sum (Example 3)
Registering Routines
Example
Enabling and Disabling System Routines
Enabling Routines
Obtaining Enabled/Disabled Routine Names
Obtaining the Number of Enabled/Disabled Routines
Obtaining the Real Function Pointer
Obtaining the IDL Name of the Current System Routine
LINKIMAGE
Dynamically Loadable Modules
How DLMs Work
The Module Description File
The IDL_Load() function
DLM Example
Callable IDL
Calling IDL as a Subroutine
When is Callable IDL Appropriate?
Technical Issues Relating to Callable IDL
Appropriate Applications of Callable IDL
Licensing Issues and Callable IDL
Using Callable IDL
Cleanup
Initialization
Initialization: UNIX
options
argc
argv
Initialization: Microsoft Windows
Diverting IDL Output
flags
buf
n
IDL_ToutPush()
IDL_ToutPop()
Executing IDL Statements
IDL_Execute()
Runtime IDL and Embedded IDL
Cleanup
Issues and Examples: UNIX
Interactive IDL
Compiling Programs That Call IDL
Example: Calling IDL From C
Example: Calling an IDL Math Function
Example: Calling IDL from Fortran
Compilation and Linking Statements
Issues and Examples: Microsoft Windows
Building an Application that Calls IDL
Example: A Simple Application
Adding External Widgets to IDL
IDL and External Widgets
WIDGET_STUB
Calling Sequence
Arguments
Keywords
WIDGET_CONTROL/WIDGET_STUB
Keywords
Functions for Use with Stub Widgets
IDL_WidgetStubLock()
IDL_WidgetStubLookup()
IDL_WidgetIssueStubEvent()
IDL_WidgetSetStubIds()
IDL_WidgetGetStubIds()
IDL_WidgetStubSetSizeFunc()
Internal Callback Functions
Commentary on the Example Shown Above
UNIX WIDGET_STUB Example: WIDGET_ARROWB
The IDL Program for WIDGET_ARROWB
The C Program for widget_arrowb.c
An IDL Program to Test the External Widget
Obsolete Internal Interfaces
Interfaces Obsoleted in IDL 5.5
IDL_MSG_ATTR_SYS
Specifying errno Explicitly: IDL_MessageErrno()
Processing Keywords With IDL_KWGetParams()
The IDL_KW_PAR Structure
Interfaces Obsoleted in IDL 5.2.1
Registering Routines
Simplified Routine Invocation
The IDL_EZ_ARG struct
Cleaning Up
Example- using IDL_EzCall()
Obsolete Error Handling API
Getting Started with IDL
The Power of IDL
Using this Manual
The IDL Interface
Starting IDL
Using the IDL Development Environment
Menu Bar
Toolbars
Project Window
Multiple Document Panel
Command Line
Output Log
Variable Watch Window
Status Bar
The IDL iTools
Starting an iTool
Loading Data into an iTool
The iTools Data Manager
Quitting IDL
More About Using IDL
2-D Plots
IDL and 2-D Plotting
Using the iPlot Tool
Displaying a 2D Plot
Displaying an Overplot
Modifying Plots
Simple Command Line Plotting
Using OPLOT
Printing a Plot
Plotting with Data Sets
Other Plotting Capabilities
More About 2-D Plotting
Reading and Writing Data
IDL and Reading and Writing Data
IDL Supported Formats
Importing Data from an ASCII File
Reading and Writing Binary Data
Reading and Writing Images
Importing Image Data into an iTool
Importing Image Data at the Command Line
More About IDL and Input/Output
Signal Processing with IDL
IDL and Signal Processing
Creating a Data Set
Signal Processing with SMOOTH
Frequency Domain Filtering
Displaying the Results
More About Signal Processing
Images
IDL and Images
Using the iImage Tool
Displaying an Image
Modifying Images
Image Data and the Command Line
Reading Image Data
Displaying Image Data
Resizing an Image
Resizing a Graphics Window
Contrast Enhancement
Thresholding
Scaling Pixel Values
Smoothing and Sharpening
Unsharp Masking
Sharpening Images with Differentiation
Other Image Manipulations
Rotating an Image
Extracting Profiles
More About Images in IDL
Surfaces and Contours
Surfaces and Contours in IDL
Accessing Binary Surface Data
Using the iSurface Tool
Displaying a Surface
Modifying Surfaces
Using the iContour Tool
Displaying a Contour
Modifying a Contour
Surface Data and the Command Line
Displaying a Shaded Surface
Contour Data and the Command Line
Displaying a Contour
Plotting with SHOW3
More About Surfaces and Contours
Volume Visualization
IDL and Volume Visualization
Using the iVolume Tool
Displaying a Volume
Modifying Volume Data
Command Line Volume Visualization
Reading in a Dataset for Visualization
3-D Transformations
Visualizing an Iso-Surface
Volume Slices and the IDL Slicer
Displaying a Surface with the Slicer
Dismiss the Slicer and Volume Windows
More About Volume Visualization
Mapping
IDL and Mapping
Using the iMap Tool
Displaying a Map
Modifying Map Data
Drawing Map Projections
Drawing an Orthographic Projection
Plotting a Portion of the Globe
Plotting Data on Maps
Reading Latitudes and Longitudes
Plotting Contours Over Maps
Warping Images to Maps
More About Mapping
Plotting Irregularly-Gridded Data
Irregularly Gridded Data in IDL
Creating a Dataset
The TRIANGULATE Procedure
Plotting the Results with TRIGRID
More About Gridding
Animation
IDL and Animation
Animating a Series of Images
Displaying an Animation as a Wire Mesh
Animation with XINTERANIMATE
Cleaning Up the Animation Windows
More About Animation
Programming in IDL
IDL and Programming
Programming Capabilities of the IDLDE
Built-In Editor
Types of IDL Programs
Compound Statements
Conditional Statements
Loop Statements
Jump Statements
Executing a Simple IDL Program
Saving, Compiling and Running
Debugging Tools in IDL
Breakpoints
Variable Watch Window
The IDL Code Profiler
Using IDL Projects
Accessing All Application Files