Table of Contents
Installation and Licensing Guide
System Requirements
IDL and ENVI
Hardware and Operating System Requirements
32-bit and 64-bit Versions
Graphics Hardware
Platform Support Questions and Answers
Software Requirements
ION
Hardware and Operating System Requirements
Web Server Requirements for ION
Web Browser Requirements for ION
Java Virtual Machine Requirements for ION
Feature Support by Operating System
IDL Features
ENVI Features
Installing IDL or ENVI for Windows
Introduction
Installing IDL or ENVI for Windows
Running the Installer
Installing IDL or ENVI Silently and Unattended
Running IDL or ENVI under Windows
Running ENVI Zoom under Windows
Running the IDL Virtual Machine under Windows
Running IDL Runtime Programs under Windows
Installing IDL or ENVI for UNIX
Introduction
Installing IDL or ENVI for UNIX
Mounting the CD-ROM on Your System
Running the Installer
Unmounting the CD-ROM from Your System
Permissions Error Message
Setting Up the Environment
Defining Environment Variables and Aliases
Defining ION Environment Variables and Aliases
Running IDL or ENVI under UNIX
Running the IDL Virtual Machine under UNIX
Running IDL Runtime Applications under UNIX
Installing IDL or ENVI for Macintosh
Installing IDL or ENVI for Macintosh
Running the Installer
Setting Up Your Environment
Running IDL or ENVI under Macintosh
Running IDL or ENVI from Applescript
Running IDL or ENVI from the Command Line
Running the IDL Virtual Machine under Macintosh
Running IDL Runtime Applications under Macintosh
Licensing IDL and ENVI
Licensing Methods
IDL Virtual Machine
Demonstration Mode (IDL)
Evaluation License
Flexible Single-User License
Node-Locked License
Floating License
Using the License Wizard
Running the License Wizard after Installation
Using the License Manager
Installing the License Manager
Configuring Client Access to the License Manager
Working with the License Manager
Using the Same License Manager for Different Applications
Upgrading a Network License Manager
Using License Files
Viewing License Files
Modifying License Files
Customizing Floating Licenses
Troubleshooting Licensing
General Information
Other Resources
For Further Help
Evaluation Licenses
License Information Does Not Pass the Checksum Test
File Already Exists
File Cannot Be Written
Flexible Single-User and Windows Node-Locked Licenses
Check the License Format
Host ID of This System Does Not Match the Host ID
Files Needed for Initialization of the Licensing Program Could Not Be Found
License File Does Not Support This Version
Cannot Find License
Licenses Requiring a License Server
All Platforms
UNIX and Macintosh
License Manager Startup
IDL Analyst Reference Guide
Preface
About IDL Analyst
Licensing
Using the IDL Analyst Documentation
Rows versus Columns
Error Handling
Underflow and Overflow
Missing Values
Errors in User Code
Functional List of IMSL Routines
Linear Systems
Eigensystem Analysis
Interpolation and Approximation
Quadrature
Differential Equations
Transforms
Nonlinear Equations
Optimization
Special Functions
Basic Statistics and Random Number Generators
Regression
Correlation and Covariance
Analysis of Variance
Categorical and Discrete Data Analysis
Nonparametric Statistics
Goodness of Fit
Time Series and Forecasting
Multivariate Analysis
Survival Analysis
Probability Distribution Functions and Inverses
Random Number Generation
Math and Statistics Utilities
Alphabetical Listing of IMSL Routines
Part I: Mathematics Routines
Linear Systems
Overview: Linear Systems
Linear Systems Routines
IMSL_INV
IMSL_LUSOL
IMSL_LUFAC
IMSL_CHSOL
IMSL_CHFAC
IMSL_QRSOL
IMSL_QRFAC
IMSL_SVDCOMP
IMSL_CHNNDSOL
IMSL_CHNNDFAC
IMSL_LINLSQ
IMSL_SP_LUSOL
IMSL_SP_LUFAC
IMSL_SP_BDSOL
IMSL_SP_BDFAC
IMSL_SP_PDSOL
IMSL_SP_PDFAC
IMSL_SP_BDPDSOL
IMSL_SP_BDPDFAC
IMSL_SP_GMRES
IMSL_SP_CG
IMSL_SP_MVMUL
Eigensystem Analysis
Overview: Eigensystem Analysis
Eigensystem Routines
IMSL_EIG
IMSL_EIGSYMGEN
IMSL_GENEIG
Interpolation and Approximation
Overview: Interpolation and Approximation
Interpolation and Approximation Routines
IMSL_CSINTERP
IMSL_CSSHAPE
IMSL_BSINTERP
IMSL_BSKNOTS
IMSL_SPVALUE
IMSL_SPINTEG
IMSL_FCNLSQ
IMSL_BSLSQ
IMSL_CONLSQ
IMSL_CSSMOOTH
IMSL_SMOOTHDATA1D
IMSL_SCAT2DINTERP
IMSL_RADBF
IMSL_RADBE
Quadrature
Overview: Quadrature
Quadrature Routines
IMSL_INTFCN
IMSL_INTFCN: Functions Based on Gauss-Kronrod Rules
IMSL_INTFCN: Functions with Singular Points Given
IMSL_INTFCN: Functions with Algebraic-logarithmic Singularities
IMSL_INTFCN: Functions Over an Infinite or Semi-infinite Interval
IMSL_INTFCN: Functions Containing a Sine or Cosine Factor
IMSL_INTFCN: Computation of Fourier Sine or Cosine Transforms
IMSL_INTFCN: Integrals in the Cauchy Principle Value Sense
IMSL_INTFCN: Smooth Functions Using Nonadaptive Rule
IMSL_INTFCN: Two-dimensional Iterated Integrals
IMSL_INTFCNHYPER
IMSL_INTFCN_QMC
IMSL_GQUAD
IMSL_FCN_DERIV
Differential Equations
Overview: Differential Equations
Differential Equations Routines
IMSL_ODE
IMSL_PDE_MOL
IMSL_POISSON2D
Transforms
Overview: Transforms
Transforms Routines
IMSL_FFTCOMP
IMSL_FFTINIT
IMSL_CONVOL1D
IMSL_CORR1D
IMSL_LAPLACE_INV
Nonlinear Equations
Overview: Nonlinear Equations
Nonlinear Equations Routines
IMSL_ZEROPOLY
IMSL_ZEROFCN
IMSL_ZEROSYS
Optimization
Overview: Optimization
Optimization Routines
IMSL_FMIN
IMSL_FMINV
IMSL_NLINLSQ
IMSL_LINPROG
IMSL_QUADPROG
IMSL_MINCONGEN
IMSL_CONSTRAINED_NLP
Special Functions
Overview: Special Functions
Special Functions Routines
IMSL_ERF
IMSL_ERFC
IMSL_BETA
IMSL_LNBETA
IMSL_BETAI
IMSL_LNGAMMA
IMSL_GAMMA_ADV
IMSL_GAMMAI
IMSL_BESSI
IMSL_BESSJ
IMSL_BESSK
IMSL_BESSY
IMSL_BESSI_EXP
IMSL_BESSK_EXP
IMSL_ELK
IMSL_ELE
IMSL_ELRF
IMSL_ELRD
IMSL_ELRJ
IMSL_ELRC
IMSL_FRESNEL_COSINE
IMSL_FRESNEL_SINE
IMSL_AIRY_AI
IMSL_AIRY_BI
IMSL_KELVIN_BER0
IMSL_KELVIN_BEI0
IMSL_KELVIN_KER0
IMSL_KELVIN_KEI0
Part II: Statistics Routines
Basic Statistics
Overview: Basic Statistics
Basic Statistics Routines
IMSL_SIMPLESTAT
IMSL_NORM1SAMP
IMSL_NORM2SAMP
IMSL_FREQTABLE
IMSL_SORTDATA
IMSL_RANKS
Regression
Overview: Regression
Regression Routines
IMSL_REGRESSORS
IMSL_MULTIREGRESS
IMSL_MULTIPREDICT
IMSL_ALLBEST
IMSL_STEPWISE
IMSL_POLYREGRESS
IMSL_POLYPREDICT
IMSL_NONLINREGRESS
IMSL_HYPOTH_PARTIAL
IMSL_HYPOTH_SCPH
IMSL_HYPOTH_TEST
IMSL_NONLINOPT
IMSL_LNORMREGRESS
Correlation and Covariance
Overview: Correlation and Covariance
Correlation and Covariance Routines
IMSL_COVARIANCES
IMSL_PARTIAL_COV
IMSL_POOLED_COV
IMSL_ROBUST_COV
Analysis of Variance
Overview: Analysis of Variance
Analysis of Variance Routines
IMSL_ANOVA1
IMSL_ANOVAFACT
IMSL_MULTICOMP
IMSL_ANOVANESTED
IMSL_ANOVABALANCED
Categorical and Discrete Data Analysis
Overview: Categorical and Discrete Data Analysis
Categorical and Discrete Data Analysis Routines
IMSL_CONTINGENCY
IMSL_EXACT_ENUM
IMSL_EXACT_NETWORK
IMSL_CAT_GLM
Nonparametric Statistics
Overview
Nonparametric Statistics Routines
IMSL_SIGNTEST
IMSL_WILCOXON
IMSL_NCTRENDS
IMSL_CSTRENDS
IMSL_TIE_STATS
IMSL_KW_TEST
IMSL_FRIEDMANS_TEST
IMSL_COCHRANQ
IMSL_KTRENDS
Goodness of Fit
Overview: Goodness of Fit
Goodness of Fit Routines
IMSL_CHISQTEST
IMSL_NORMALITY
IMSL_KOLMOGOROV1
IMSL_KOLMOGOROV2
IMSL_MVAR_NORMALITY
IMSL_RANDOMNESS_TEST
Time Series and Forecasting
Overview: Time Series and Forecasting
Time Series and Forecasting Routines
IMSL_ARMA
IMSL_DIFFERENCE
IMSL_BOXCOXTRANS
IMSL_AUTOCORRELATION
IMSL_PARTIAL_AC
IMSL_LACK_OF_FIT
IMSL_GARCH
IMSL_KALMAN
Multivariate Analysis
Overview: Multivariate Analysis
Multivariate Analysis Routines
IMSL_K_MEANS
IMSL_PRINC_COMP
IMSL_FACTOR_ANALYSIS
IMSL_DISCR_ANALYSIS
Survival Analysis
Overview: Survival Analysis
Survival Analysis Routines
IMSL_SURVIVAL_GLM
Probability Distribution Functions and Inverses
Overview: Probability Distribution Functions and Inverses
Probability Distribution Functions and Inverses Routines
IMSL_NORMALCDF
IMSL_BINORMALCDF
IMSL_CHISQCDF
IMSL_FCDF
IMSL_TCDF
IMSL_GAMMACDF
IMSL_BETACDF
IMSL_BINOMIALCDF
IMSL_BINOMIALPDF
IMSL_HYPERGEOCDF
IMSL_POISSONCDF
Random Number Generation
Overview: Random Number Generation
Random Number Generation Routines
IMSL_RANDOMOPT
IMSL_RANDOM_TABLE
IMSL_RANDOM
IMSL_RANDOM_NPP
IMSL_RANDOM_ORDER
IMSL_RAND_TABLE_2WAY
IMSL_RAND_ORTH_MAT
IMSL_RANDOM_SAMPLE
IMSL_RAND_FROM_DATA
IMSL_CONT_TABLE
IMSL_RAND_GEN_CONT
IMSL_DISCR_TABLE
IMSL_RAND_GEN_DISCR
IMSL_RANDOM_ARMA
IMSL_FAURE_INIT
IMSL_FAURE_NEXT_PT
Math and Statistics Utilities
Overview: Math and Statistics Utilities
Math and Statistics Utilities Routines
IMSL_DAYSTODATE
IMSL_DATETODAYS
IMSL_CONSTANT
IMSL_MACHINE
IMSL_STATDATA
IMSL_BINOMIALCOEF
IMSL_NORM
IMSL_MATRIX_NORM
PM
RM
References
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
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
IDLffDicomExCfg
IDLffDicomExCfg Properties
IDLffDicomExCfg::Cleanup
IDLffDicomExCfg::Commit
IDLffDicomExCfg::Echo
IDLffDicomExCfg::GetApplicationEntities
IDLffDicomExCfg::GetApplicationEntity
IDLffDicomExCfg::GetServiceLists
IDLffDicomExCfg::GetServiceTypes
IDLffDicomExCfg::GetValue
IDLffDicomExCfg::Init
IDLffDicomExCfg::IsDirty
IDLffDicomExCfg::RemoveApplicationEntity
IDLffDicomExCfg::SetApplicationEntity
IDLffDicomExCfg::SetValue
IDLffDicomExCfg::StorageScpService
IDLffDicomExQuery
IDLffDicomExQuery Properties
Attribute Matching and Wildcards
Query Property Interactions With Query Model/Level
Patient Name and Name Sub-field Properties
Using Callbacks with the IDLffDicomExQuery Object
IDLffDicomExQuery::Cleanup
IDLffDicomExQuery::ClearProperties
IDLffDicomExQuery::GetProperty
IDLffDicomExQuery::Init
IDLffDicomExQuery::Query
IDLffDicomExQuery::QueryModelsSupported
IDLffDicomExQuery::Retrieve
IDLffDicomExQuery::SetProperty
IDLffDicomExStorScu
IDLffDicomExStorScu Properties
Using Callbacks With the IDLffDicomExStorScu Object
IDLffDicomExStorScu::Cleanup
IDLffDicomExStorScu::ClearProperties
IDLffDicomExStorScu::GetProperty
IDLffDicomExStorScu::Init
IDLffDicomExStorScu::Send
IDLffDicomExStorScu::SetProperty
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
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
Network 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
BUTTERWORTH
BYTARR
BYTE
BYTEORDER
BYTSCL
C_CORRELATE
CALDAT
CALENDAR
CALL_EXTERNAL
CALL_FUNCTION
CALL_METHOD
CALL_PROCEDURE
CANNY
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_EXCHANGE
COLOR_QUAN
COLOR_RANGE_MAP
COLORIZE_SAMPLE
COLORMAP_APPLICABLE
COLORMAP_GRADIENT
COLORMAP_ROTATION
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
EDGE_DOG
EFONT
EIGENQL
EIGENVEC
ELMHES
EMBOSS
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
IDLEXBR_ASSISTANT
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
IR_FILTER
ISHFT
ISOCONTOUR
ISOSURFACE
ISURFACE
ITCURRENT
ITDELETE
ITGETCURRENT
ITREGISTER
ITRESET
ITRESOLVE
IVECTOR
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
LAPLACIAN
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
NOISE_HURL
NOISE_PICK
NOISE_SCATTER
NOISE_SLUR
NORM
OBJ_CLASS
OBJ_DESTROY
OBJ_HASMETHOD
OBJ_ISA
OBJ_NEW
OBJ_VALID
OBJARR
ON_ERROR
ON_IOERROR
ONLINE_HELP
OPENR/OPENU/OPENW
OPLOT
OPLOTERR
P_CORRELATE
PARSE_URL
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
PREWITT
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
SEM_CREATE
SEM_DELETE
SEM_LOCK
SEM_RELEASE
SET_PLOT
SET_SHADING
SETENV
SFIT
SHADE_SURF
SHADE_SURF_IRR
SHADE_VOLUME
SHIFT
SHIFT_DIFF
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
WIDGET_TREE_MOVE
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
IDLffMJPEG2000
IDLffMJPEG2000 Properties
IDLffMJPEG2000::Cleanup
IDLffMJPEG2000::Commit
IDLffMJPEG2000::GetData
IDLffMJPEG2000::GetProperty
IDLffMJPEG2000::GetSequentialData
IDLffMJPEG2000::Init
IDLffMJPEG2000::ReleaseSequentialData
IDLffMJPEG2000::SetData
IDLffMJPEG2000::SetProperty
IDLffMJPEG2000::StartSequentialReading
IDLffMJPEG2000::StopSequentialReading
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::NotifyBridge
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
IDLitDirectWindow
IDLitDirectWindow Properties
IDLitDirectWindow::Cleanup
IDLitDirectWindow::GetProperty
IDLitDirectWindow::Init
IDLitDirectWindow::MakeCurrent
IDLitDirectWindow::OnEnter
IDLitDirectWindow::OnExit
IDLitDirectWindow::OnExpose
IDLitDirectWindow::OnKeyboard
IDLitDirectWindow::OnMouseDown
IDLitDirectWindow::OnMouseMotion
IDLitDirectWindow::OnMouseUp
IDLitDirectWindow::OnResize
IDLitDirectWindow::OnWheel
IDLitDirectWindow::SetProperty
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::OnWheel
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::OnWheel
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::OnEnter
IDLitWindow::OnExit
IDLitWindow::OnExpose
IDLitWindow::OnKeyboard
IDLitWindow::OnMouseDown
IDLitWindow::OnMouseMotion
IDLitWindow::OnMouseUp
IDLitWindow::OnResize
IDLitWindow::OnScroll
IDLitWindow::OnTimer
IDLitWindow::OnWheel
IDLitWindow::Remove
IDLitWindow::RemoveWindowEventObserver
IDLitWindow::Resize
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
IDLgrFilterChain
IDLgrFilterChain Properties
IDLgrFilterChain::Cleanup
IDLgrFilterChain::GetProperty
IDLgrFilterChain::Init
IDLgrFilterChain::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::ReadFilteredData
IDLgrImage::SetProperty
IDLgrImage::SetTileData
IDLgrImage::TileDataLoaded
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::GetVertexAttributeData
IDLgrPlot::Init
IDLgrPlot::SetProperty
IDLgrPlot::SetVertexAttributeData
IDLgrPolygon
IDLgrPolygon Properties
IDLgrPolygon::Cleanup
IDLgrPolygon::GetCTM
IDLgrPolygon::GetMultiTextureCoord
IDLgrPolygon::GetProperty
IDLgrPolygon::GetVertexAttributeData
IDLgrPolygon::Init
IDLgrPolygon::SetMultiTextureCoord
IDLgrPolygon::SetProperty
IDLgrPolygon::SetVertexAttributeData
IDLgrPolyline
IDLgrPolyline Properties
IDLgrPolyline::Cleanup
IDLgrPolyline::GetCTM
IDLgrPolyline::GetProperty
IDLgrPolyline::GetVertexAttributeData
IDLgrPolyline::Init
IDLgrPolyline::SetProperty
IDLgrPolyline::SetVertexAttributeData
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::Remove
IDLgrROIGroup::SetProperty
IDLgrScene
IDLgrScene Properties
IDLgrScene::Add
IDLgrScene::Cleanup
IDLgrScene::GetByName
IDLgrScene::GetProperty
IDLgrScene::Init
IDLgrScene::SetProperty
IDLgrShader
IDLgrShader Properties
IDLgrShader::Cleanup
IDLgrShader::Filter
IDLgrShader::GetProperty
IDLgrShader::GetUniformVariable
IDLgrShader::Init
IDLgrShader::SetProperty
IDLgrShader::SetUniformVariable
IDLgrShaderBytscl
IDLgrShaderBytscl Properties
IDLgrShaderBytscl::Cleanup
IDLgrShaderBytscl::GetProperty
IDLgrShaderBytscl::Init
IDLgrShaderBytscl::SetProperty
IDLgrShaderConvol3
IDLgrShaderConvol3 Properties
IDLgrShaderConvol3::Cleanup
IDLgrShaderConvol3::GetProperty
IDLgrShaderConvol3::Init
IDLgrShaderConvol3::SetProperty
IDLgrSurface
IDLgrSurface Properties
IDLgrSurface::Cleanup
IDLgrSurface::GetCTM
IDLgrSurface::GetMultiTextureCoord
IDLgrSurface::GetProperty
IDLgrSurface::GetVertexAttributeData
IDLgrSurface::Init
IDLgrSurface::SetProperty
IDLgrSurface::SetMultiTextureCoord
IDLgrSurface::SetVertexAttributeData
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::OnEnter
IDLgrWindow::OnExit
IDLgrWindow::OnExpose
IDLgrWindow::OnKeyboard
IDLgrWindow::OnMouseDown
IDLgrWindow::OnMouseMotion
IDLgrWindow::OnMouseUp
IDLgrWindow::OnResize
IDLgrWindow::OnWheel
IDLgrWindow::PickData
IDLgrWindow::QueryRequiredTiles
IDLgrWindow::Read
IDLgrWindow::Select
IDLgrWindow::SetCurrentCursor
IDLgrWindow::SetCurrentZoom
IDLgrWindow::SetProperty
IDLgrWindow::Show
IDLgrWindow::ZoomIn
IDLgrWindow::ZoomOut
Network Objects
About Network Objects
Generic Network Resources
Geospatial Network Resources
IDLnetOGCWCS
Web Coverage Service (WCS) Overview
Supported OGC WCS Version
Making OGC WCS Server Requests
Translating a URL into Property Values
Using Callbacks with the IDLnetOGCWCS Object
HTTP Authentication, Security and Encoding
IDLnetOGCWCS Properties
IDLnetOGCWCS::Cleanup
IDLnetOGCWCS::DescribeCoverage
IDLnetOGCWCS::GetCapabilities
IDLnetOGCWCS::GetCoverage
IDLnetOGCWCS::GetCoverageOffering
IDLnetOGCWCS::GetCoverageOfferingBriefs
IDLnetOGCWCS::GetProperty
IDLnetOGCWCS::GetServiceSection
IDLnetOGCWCS::Init
IDLnetOGCWCS::ParseUrl
IDLnetOGCWCS::SetProperty
IDLnetOGCWMS
Web Map Service (WMS) Overview
Supported OGC WMS Version
Making OGC WMS Server Requests
Translating a URL into Property Values
Using Callbacks with the IDLnetOGCWMS Object
HTTP Authentication, Security and Encoding
IDLnetOGCWMS Properties
IDLnetOGCWMS::Cleanup
IDLnetOGCWMS::GetCapabilities
IDLnetOGCWMS::GetFeatureInfo
IDLnetOGCWMS::GetLayers
IDLnetOGCWMS::GetMap
IDLnetOGCWMS::GetProperty
IDLnetOGCWMS::GetServiceSection
IDLnetOGCWMS::Init
IDLnetOGCWMS::ParseUrl
IDLnetOGCWMS::SetProperty
IDLnetURL
Overview of the IDLnetURL Object
Mapping URL Components to IDLnetURL Properties
Using Callbacks with the IDLnetURL Object
HTTP and FTP Response Codes
IDLnetURL Properties
IDLnetURL::Cleanup
IDLnetURL::CloseConnections
IDLnetURL::FtpCommand
IDLnetURL::Get
IDLnetURL::GetFtpDirList
IDLnetURL::GetProperty
IDLnetURL::Init
IDLnetURL::Put
IDLnetURL::SetProperty
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_IDLBridge
IDL_IDLBridge Properties
IDL_IDLBridge::Abort
IDL_IDLBridge::Cleanup
IDL_IDLBridge::Execute
IDL_IDLBridge::GetProperty
IDL_IDLBridge::GetVar
IDL_IDLBridge::Init
IDL_IDLBridge::OnCallback
IDL_IDLBridge::SetProperty
IDL_IDLBridge::SetVar
IDL_IDLBridge::Status
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
IDLsysMonitorInfo
Overview of Multi-Monitor Support
IDLsysMonitorInfo Properties
IDLsysMonitorInfo::Cleanup
IDLsysMonitorInfo::GetMonitorNames
IDLsysMonitorInfo::GetNumberOfMonitors
IDLsysMonitorInfo::GetPrimaryMonitorIndex
IDLsysMonitorInfo::GetProperty
IDLsysMonitorInfo::GetRectangles
IDLsysMonitorInfo::GetResolutions
IDLsysMonitorInfo::Init
IDLsysMonitorInfo::IsExtendedDesktop
IDLsysMonitorInfo::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
Greek Fonts
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
Fraction Example
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.4
Features Obsoleted in IDL 6.3
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_ENCODE_EPOCH16
CDF_EPOCH
CDF_EPOCH16
CDF_EPOCH_COMPARE
CDF_EPOCH_DIFF
CDF_ERROR
CDF_EXISTS
CDF_INQUIRE
CDF_LIB_INFO
CDF_OPEN
CDF_PARSE_EPOCH
CDF_PARSE_EPOCH16
CDF_SET_CDF27_BACKWARD_COMPATIBLE
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
HDF5 Datatypes
Compound Datatypes
Opaque Datatypes
Enumeration Datatypes
Variable Length Array Datatypes
Example: Reading an Image
Example: Reading a Subselection
Example: Creating a Data File
Example: Reading Partial Datasets
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_COMPOUND_CREATE
H5T_COPY
H5T_ENUM_CREATE
H5T_ENUM_GET_DATA
H5T_ENUM_INSERT
H5T_ENUM_NAMEOF
H5T_ENUM_SET_DATA
H5T_ENUM_VALUEOF
H5T_ENUM_VALUES_TO_NAMES
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_INDEX
H5T_GET_MEMBER_NAME
H5T_GET_MEMBER_OFFSET
H5T_GET_MEMBER_TYPE
H5T_GET_MEMBER_VALUE
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_GET_TAG
H5T_IDL_CREATE
H5T_IDLTYPE
H5T_INSERT
H5T_MEMTYPE
H5T_OPEN
H5T_REFERENCE_CREATE
H5T_SET_TAG
H5T_STR_TO_VLEN
H5T_VLEN_CREATE
H5T_VLEN_TO_STR
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_SD_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
IVECTOR
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
WIDGET_TREE
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
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
Application Programming
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 Definition
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
Creating an Application Distribution
Launching the Application: Windows
Launching the Application: Macintosh
Launching the Application: UNIX
Installing Your Application
Installation Issues: Windows
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
User Interface Programming
Overview of User Interface Options
User Interface Options in IDL
Creating an iTool Interface
Creating a Widget Interface
Creating a Custom iTool Interface
Creating Widget Applications
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
Enhancing Widget Application Usability
Tabbing in Widget Applications
Defining Tabbing Behavior in a Windows Application
Assigning Accelerators in Widget Applications
Disabling Button Widget Accelerators
Using Widget Buttons
Using Button Widgets
Bitmap Button Labels
Creating Bitmap Files for Buttons
Creating Black-and-White Bitmap Arrays for Buttons
Creating Color Bitmap Arrays for Buttons
Tooltips
Exclusive and Non-Exclusive Buttons
Using Draw Widgets
Using Draw Widgets
Using Direct Graphics in Draw Widgets
Using Object Graphics in Draw Widgets
Scrolling Draw Widgets
Differences Between SCROLL and APP_SCROLL
Example Using SCROLL
Example Using APP_SCROLL
Context Events in Draw Widgets
Draw Widget Example
Accessing Draw Widget Events
Implementing Drag and Drop Functionality
Responding to Drag Notifications (Callbacks)
Responding to Drop Events
Draw Widget Drag and Drop Example
Using Property Sheet Widgets
Using Property Sheet Widgets
Registering Properties
Selecting Properties
Accessing Property Sheet Selection Events
Controlling When Properties are Selectable
Changing Properties
Updating the Component
User-defined Properties
Updating User-defined Properties
Property Sheet Sizing
Property Sheet Example
Multiple Properties Example
Using Table Widgets
Using Table Widgets
Default Table Size
Selection Modes
Standard Selection Mode
Disjoint Selection Mode
Data Types
Single Data Type
Multiple Data Types
Data Retrieval
Entire Table
Standard Selection
Disjoint Selection
Converting Between Cell List Formats
Edit Mode
Cell Attributes
Setting Cell Attributes at Table Creation
Changing Cell Attributes after Table Creation
Querying for Cell Attributes
Adding and Deleting Cells
Example: Single Data Type Data
Example: Structure Data
Using Tab Widgets
Using Tab Widgets
Example: A Simple Tab Widget
Tab Sizing and Multiline Behavior
Windows Behavior
Motif Behavior
Tips for Tab Layout
Example: Retrieving Values
Using Tree Widgets
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
Using Images from the IDL Distribution
Adding Transparency to Icons
Dragging and Dropping Tree Nodes
The Drag and Drop User Interface
Implementing Drag and Drop Functionality
Tree Widget Drag and Drop Examples
Positioning Tree Nodes
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
Hardware vs. Software Rendering
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 Object onto a Sphere
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
Creating 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
Polygon and Polyline Object Examples
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
Retained Graphics and Expose Events
Instancing to Improve 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
Advanced Rendering Using Shader Objects
About Shaders
Why Use Shaders
Hardware Requirements for Shaders
About Shader Programs
Vertex and Fragment Shaders
How Shaders Enhance Performance
Using Shaders in an IDL Application
Display-Only Effects of Shaders
Passing Information to a Shader Program
Uniform Variables
Attribute Variables
Library of Pre-built Shader Objects
Image Filter Shaders
Providing a Software Alternative to Shaders
Caching Shader Results
Capturing Image Data During Shader Execution
Altering RGB Levels Using a Shader
Basic RGB Shader Object Class
Uniform Variable for RGB Values
Software Fallback for RGB Shader
Hardware Shader Program for RGB Shader
Applying Lookup Tables Using Shaders
Basic LUT Shader Object Class
Uniform Variable for LUT Example
Hardware Shader Program for LUT Shader
Software Fallback for the LUT Shader
High Precision Images
OpenGL Conversion of Image Data to Texture Data
Examples of Handling High-Precision Images
Filter Chain Shaders
Basic Filter Chain Shader Object Class
Uniform Variables for Filter Chain Example
Hardware Shader Program for Filter Chain Example
Software Fallback for the Filter Chain Shader
Vertex Shaders
Attribute and Uniform Variables for Vertex Shader
Hardware Shader Program for Vertex Shader
Lighting Shaders
IDL Lights and the OpenGL Light Table
Adding Lighting and Shading to a Surface
Uniform and Attribute Variables for Lighting Shader
Hardware Shader Program for Lighting Shader
Multi-texture Shaders
Uniform Variables and Multi-Texture Shaders
Manipulating Multiple Textures Using Shaders
Uniform Variables for Multi-texture Shader
Hardware Shader Program for Multi-texture Shader
Repositioning Textures
Rotating Earth with Multiple Textures
iTool Programming
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 OnWheel Method
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
IDL Connectivity Bridges
About the IDL Bridges
What Is a Bridge?
IDL Import Bridge
COM and ActiveX
Java
IDL Export Bridge
Export Bridge Assistant
Connector Object
Part I: Importing into IDL
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
Skills Required to Use COM Objects
If You Are Using COM Objects
If You Are Using ActiveX Controls
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
Passing Parameter Arrays by Reference
Unsupported Array Types
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
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
Part II: Exporting from IDL
Exporting IDL Objects
Overview of Exporting IDL Objects
Wrapper Objects
IDL Connector Objects and Custom Wrapper Objects
Drawable and Nondrawable Objects
Object Lifecycle
Object Creation
Object Release
IDL Access
IDL Ownership and Blocking
IDL Licensing Modes
Parameter Passing and Type Conversion
Object Reference Use
Array Order Conversion
Type Conversion
Event Handling
Supported Platforms and IDL Modes
Supported Compilers
Client Machine Requirements
Output Destinations
IDL Licensing
Export Bridge Assistant Licensing
Configuring Build and Client Machines
Configuring the Machine Running the Assistant
Configuring the Machine Using Wrapper Objects
Configuring the Machine Running the Wrapper Client
Using the Export Bridge Assistant
Export Bridge Assistant Overview
Platform Support and Machine Configuration
Running the Assistant
Running from the Macros Menu
Running from the Command Line
Using the Assistant
Understanding the Assistant Interface
Working with a Project
Opening a Project
Saving a Project
Updating a Project
Building an Object
Exporting an Object
Specifying Information for Exporting
Converting Array Majority
Supported Data Types
Bridge Information
Source Object Information
Property Information
Method Information
Parameter Information
Information Skipped During Export
Lifecycle Methods
Get Property and Set Property Methods
Drawable Object Event Handlers
Exporting a Source Object's Superclasses
Modifying a Source Object After Export
Wrapper Generation Example
COM Wrapper Object Generation and Use
Java Wrapper Object Generation and Use
Using Exported COM Objects
Overview of COM Export Objects
COM Wrapper Objects
Stock COM Wrapper Methods
Abort
CreateObject
CreateObjectEx
DestroyObject
ExecuteString
GetIDLObjectClassName
GetIDLObjectVariableName
GetIDLVariable
GetLastError
GetProcessName
SetIDLVariable
SetProcessName
Event Handling
Mouse and Keyboard Events in COM Export Objects
Error Handling
Debugging
Using Exported Java Objects
Overview of Java Export Objects
Java Wrapper Objects
Stock Java Wrapper Methods
abort
createObject
destroyObject
executeString
getIDLObjectClassName
getIDLObjectVariableName
getIDLVariable
getProcessName
isObjectCreated
setIDLVariable
setProcessName
Event Handling
Nondrawable Java Objects
Drawable Java Objects
IDL Notification
IDL Output
Handling Specific Events
Subclassing to Change Behavior
Listening from Other Java Objects
Error Handling
Debugging
Using the Connector Object
About the IDL Connector Object
Preparing to Use the IDL Connector Object
Connector Object COM Examples
Hello World Example with a COM Connector Object
Data Manipulation with a COM Connector Object
IDL Command Line with a COM Connector Object
Connector Object Java Examples
Note on Running the Java Examples
Hello World Example with a Java Connector Object
Data Manipulation with a Java Connector Object
IDL Command Line with Java Connector Object
Writing IDL Objects for Exporting
Overview
Programming Limitations
Keyword Parameters
Unsupported Data Types
Array Majority and Shape
Exporting Drawable Objects
Requirements for Drawable Objects
Direct Graphics Support
Drawable Object Canvas Examples
Java Wrapper Example
COM Wrapper Example
Creating Custom COM Export Objects
About COM Export Object Examples
Debugging Applications Using Export Objects
Nondrawable COM Export Example
Hello World COM Example with Custom Method
Drawable COM Export Examples
COM IDLgrWindow Based Histogram Plot Generator
COM IDLitWindow Surface Manipulation
Tri-Window COM Export Example
Creating Custom Java Export Objects
About Java Export Object Examples
Note on Running the Java Examples
Debugging Applications Using Export Objects
Nondrawable Java Export Example
Hello World Java Example with Additional Method
Drawable Java Export Examples
Java IDLgrWindow Based Histogram Plot Generator
Java IDLitWindow Surface Manipulation
Part III: Appendices
IDL Java Object API
Package Summary
JIDLAbortedException
JIDLArray
JIDLBoolean
JIDLBusyException
JIDLByte
JIDLCanvas
JIDLChar
JIDLComponentListener
JIDLConst
JIDLDouble
JIDLException
JIDLFloat
JIDLInteger
JIDLKeyListener
JIDLLong
JIDLMouseListener
JIDLMouseMotionListener
JIDLMouseWheelListener
JIDLNotifyListener
JIDLNumber
JIDLObject
JIDLObjectI
JIDLOutputListener
JIDLProcessInitializer
JIDLShort
JIDLString
COM Object Creation
Sample IDL Object
Export the Sample IDL Object
Visual Basic .NET Code Sample
Initiation Without Parameters in Visual Basic .NET
Initiation with Parameters in Visual Basic .NET
C++ Client Code Sample
Initiation Without Parameters in C++
Initiation with Parameters in C++
C# Code Sample
Initiation Without Parameters in C#
Initiation with Parameters in C#
Visual Basic 6 Code Sample
Initiation Without Parameters in Visual Basic 6
Initiation with Parameters in Visual Basic 6
Java Object Creation
Sample IDL Object
Export the Sample IDL Object
Note on Running the Java Examples
Java Object Initiation Without Parameters
Java Object Initiation with Parameters
Multidimensional Array Storage and Access
Overview
Why Storage and Access Matter
Storage and Access in COM and IDL
Arrays in COM
Arrays in IDL
2D Array Examples
Visual Basic
C++ Using ATL SAFEARRAY Wrapper Objects
C++ Using SAFEARRAY API Calls and Creating Different Memory Layout
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 Terms 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 Pipes
Example: Communicating with a Child Process via an Operating System Pipe
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
IDL_Initialize()
init_data
IDL_Init()
Common Microsoft Windows Initialization Issues
Diverting IDL Output
flags
buf
n
IDL_ToutPush()
IDL_ToutPop()
Executing IDL Statements
IDL_Execute()
Runtime IDL and Embedded IDL
Checking the Error Status
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 6.3
Initialization: Microsoft Windows
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
Working with Project Files
Compiling and Running Applications
Building Distributions
Exporting Applications
More About IDL Programming
Manipulating Data
IDL and Manipulating Data
IDL Array Routines
Avoiding IF Statements for Performance
Summing to Avoid IF Statements
Using Array Operators and the WHERE Function
Example— Using Vector and Array Operations
More About Manipulating Data
Creating Interfaces with the IDL GUIBuilder
What is the IDL GUIBuilder?
Using the IDL GUIBuilder
IDL GUIBuilder Tools
Using the IDL GUIBuilder Toolbar
Creating an Example Application
Defining Menus for the Top-Level Base
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
Widget Types
Widget Properties
More About the IDL GUIBuilder
Where to Go From Here
Learning More about IDL
IDL Documentation Set
Online Help
Online Manuals
IDL Demo Applications and Examples
Contacting ITT Visual Information Solutions
Address
Phone
Fax
E-mail
World Wide Web
IDL Interface Guide
Introducing IDL
Overview of IDL
Supported File Formats
Launching IDL
Startup Options
Troubleshooting
Launching the iTools
Starting an iTool
Loading Data into an iTool
The iTools Data Manager
Environment Variables Used by IDL
Preferences
Non-Preference Environment Variables
Setting Environment Variables
Command Line Options for IDL Startup
Command-Line Switches
Specifying Preferences at the Command Line
Using Switches Under Windows
Startup Files
Understanding When Startup Files are Not Executed
Message of the Day Files
Using Your Mouse with IDL
Using a Two-Button Mouse
Using a Macintosh (One-Button) Mouse
Using Keyboard Accelerators
Enabling Alt Key Accelerators on Macintosh
Getting Help with IDL
Using the IDL Online Help Viewer
Using the PDF Documentation Set
Typographical Conventions
Quitting IDL
Reporting Problems
The IDL Development Environment
Components of the IDLDE
Menu Bar
Toolbars
Project Window
Multiple Document Panel
Command Line
Output Log
Variable Watch Window
Status Bar
Docking/Undocking
Control Panel Buttons
File Menu
Edit Menu
Search Menu
Run Menu
Project Menu
Macros Menu
Window Menu
Help Menu
Printing in IDL
IDL Printer Setup in Windows
IDL Printer Setup in UNIX or Mac OS X
The Xprinter Setup Dialog
Configuring Printer Setup Options
Adding a New Printer to the List of Printer Choices
Setting IDL Preferences
About IDL Preferences
Unavailable Preferences
Customizing IDL
Platform Differences
General Preferences
Layout Preferences
Graphics Preferences
Editor Preferences
Startup Preferences
Font Preferences
Microsoft Windows
UNIX
Path Preferences
Creating Development Environment Macros
What Are Macros?
Predefined IDL Macros
Creating UNIX Macros
Using the Edit Macros Dialog
Manually Editing the Resource File
Creating Windows Macros
Command Stream Substitutions
Building IDL Example Macros
Creating a Macro to Call a Text Editor in IDL for UNIX
Creating a Macro to Change the Working Directory
Customizing IDL on Motif Systems
Using X Resources to Customize IDL
X Resources and IDL Preferences
X Resources in Brief
Resource Files
Format of IDL Resources
X Resources Used by IDL
Reserving Colors
X Resources at the Command Line
X Resource Command Line Switches
Modifying the Control Panel
Adding Macros Toolbar Buttons
Adding Macros Menu Entries
Examples
Action Routines
Using IDL
Importing and Writing Data into Variables
Overview of Data Access in IDL
Accessing Files Using Dialogs
Accessing Any File Type Using a Dialog
Importing an Image File Using a Dialog
Saving an Image File Using a Dialog
Reading ASCII Data
Launching the ASCII Template Dialog
Reading Binary Data
Launching the Binary Template Dialog
Accessing Files Programmatically
File Access
Accessing Image Data Programmatically
Importing Formatted Image Data Programmatically
Importing Unformatted Image Files
Exporting Formatted Image Files Programmatically
Exporting Unformatted Image Files
Accessing Non-Image Data Programmatically
Reading Binary Data in a Volume
Reading Contour Data from a SAVE File
Using IDL Macros
Using Macros to Import Image Files
Using Macros to Import ASCII Files
Using Macros to Import Binary Files
Using Macros to Import HDF Files
File Access Routines
Getting Information About Files and Data
Investigating Files and Data
Accessing Information in iTools
Returning Image File Information
Using the QUERY_IMAGE Info Structure
Using Specific QUERY_* Routines
Returning Type and Size Information
Determining if a Variable is a Scalar or an Array
Using SIZE to Return Image Dimensions
Getting Information About SAVE Files
Create a Savefile Object
Query the Savefile Object
Restore Items from the Savefile Object
Destroy the Savefile Object
Returning Object Type and Validity
Returning Information About a File
Graphic Display Essentials
IDL Visual Display Systems
iTools Visualizations
IDL Object Graphics
IDL Direct Graphics
IDL Coordinate Systems
DATA Coordinates
DEVICE Coordinates
NORMAL Coordinates
Understanding Windows and Related Device Coordinates
Coordinates of 3-D Graphics
Homogeneous Coordinates
Right-Handed Coordinate System
Transformation Matrices
Translation
Scaling
Rotation
Coordinate Conversions
Two-Dimensional Coordinate Conversion
Three-Dimensional Coordinate Conversion
Using Coordinate Conversions
Interpolation Methods
Polygon Shading Method
Color Systems
Color Schemes
Converting to Other Color Systems
Display Device Color Schemes
Colors and IDL Graphic Systems
Using Color in Object Graphics
Using Color in Direct Graphics
Indexed and RGB Image Organization
Image Orientation
Indexed Images
RGB Image Interleaving
Converting Between Image Types
Loading a Default Color Table
Modifying and Converting Color Tables
Highlighting Features with a Color Table
Multi-Monitor Configurations
Multi-Monitor Terminology
Windows Multi-Monitor Configurations
UNIX Multi-Monitor Configurations
Example: Multi-Monitor Window Positioning
Using Fonts in Graphic Displays
Printing Graphics
Printing IDL Direct Graphics
Printing IDL Object Graphics
Animations
Overview of Motion JPEG2000
Sample Motion JPEG2000 Player and Writer
Supported Platforms
Creating a Motion JPEG2000 Animation
Adding Data to MJ2 Animations
Animating Existing Data
Animating Screen Captures
Animating Data Captures
Playing a Motion JPEG2000 Animation
Sequential Motion JPEG2000 Playback
Random Motion JPEG2000 Playback
Controlling the Playback Rate
Timer Mechanisms
High Speed MJ2 Reading and Writing
High Speed Sequential Playback
High Speed MJ2 File Writing
Map Projections
Overview of Mapping
Creating a Map Display
Graphics Techniques for Mapping
Splitting
3D Clipping
Projection
Rectangular Clipping
Map Projection Types
Azimuthal Projections
Orthographic Projection
Stereographic Projection
Gnomonic Projection
Azimuthal Equidistant Projection
Aitoff Projection
Lambert's Equal Area Projection
Hammer-Aitoff Projection
Satellite Projection
Cylindrical Projections
Mercator Projection
Transverse Mercator Projection
Cylindrical Equidistant Projection
Miller Cylindrical Projection
Conic Projection
Albers Equal-Area Conic Projection
Pseudocylindrical Projections
Robinson Cylindrical
Sinusoidal Projection
Mollweide Projection
Goode's Homolosine Projection
High-Resolution Continent Outlines
Resolution of Map Databases
References
Signal Processing
Overview of Signal Processing
Routines for Signal Processing
Running the Example Code
Digital Signals
Signal Analysis Transforms
The Fourier Transform
Interpreting FFT Results
Displaying FFT Results
Using Windows
Hanning Window
Hamming Window
Aliasing
FFT Algorithm Details
The Hilbert Transform
The Wavelet Transform
Convolution
Correlation and Covariance
Digital Filtering
Finite Impulse Response (FIR) Filters
FIR Filter Implementation
Infinite Impulse Response (IIR) Filters
References
Mathematics
Overview of Mathematics in IDL
IDL's Numerical Recipes Functions
Correlation Analysis
Correlation Example
Notes on Interpreting the Correlation Coefficient
Multiple Linear Models
Routines for Computing Correlations
Curve and Surface Fitting
Routines for Curve and Surface Fitting
Eigenvalues and Eigenvectors
Symmetric Array with n Distinct Real Eigenvalues
Nonsymmetric Array with n Distinct Real and Complex Eigenvalues
Repeated Eigenvalues
The So-called Defective Case
Routines for Computing Eigenvalues and Eigenvectors
Gridding and Interpolation
Routines for Gridding and Interpolation
Hypothesis Testing
One- and Two-sided Tests
Parametric and Nonparametric Tests
Routines for Hypothesis Testing
Integration
A Bivariate Function
A Trivariate Function
Routines for Differentiation and Integration
Linear Systems
Overdetermined Systems
Underdetermined Systems
Complex Linear Systems
Routines for Solving Simultaneous Linear Equations
Nonlinear Equations
Routines for Solving Nonlinear Equations
Optimization
Routines for Optimization
Sparse Arrays
Diagonally-Dominant Array
Routines for Handling Sparse Arrays
Time-Series Analysis
Routines for Time-Series Analysis
Multivariate Analysis
Cluster Analysis
Principal Components Analysis
Routines for Multivariate Analysis
References
Correlation Analysis
Curve and Surface Fitting
Eigenvalues and Eigenvectors
Gridding and Interpolation
Hypothesis Testing
Integration
Linear Systems
Nonlinear Equations
Optimization
Sparse Arrays
Time-Series Analysis
Multivariate Analysis
iTool User's Guide
Introducing the IDL iTools
Introducing the iTools
Using This Guide
Importing and Exporting Data
About the Data Manager
Data Manager Interface
Data Item Management
Data Import Methods
Using the Data Import Wizard
Using File Open
Using the Data Manager Dialog
Importing Data from a File
Importing Image Data
Importing ASCII Data
Importing Binary Data
Importing Shapefile Data
Working with Unknown Data
Using the Gridding Wizard
Importing Data from the IDL Session
Importing Graphic Objects
Parameter Data and the Command Line
Exporting Data
Exporting Data to a File
Exporting Data to the IDL Session
Visualizations
About Visualizations
Visualization Creation Methods
Creating Visualizations Automatically
Inserting Visualizations
Modifying Existing Visualizations
The Parameter Editor
Removing Data Associations
Replacing Data Associations
Exporting Visualizations
Exporting to a File
Manipulating the Display
Introduction
Selection of Objects
Select All
Undo/Redo
Adding a Data Space
Translation
Scaling
Zooming
Canvas Zoom
View Zoom
View Panning
Window Layouts
Adding Annotations
Introduction
Legends
Annotations
Text Annotations
Line Annotations
Rectangle Annotations
Oval Annotations
Polygon Annotations
Freehand Annotations
Additional Axes
Property Sheets and Browsers
Introduction
Property Sheets
Visualization Property Sheets
Operations Property Sheets
The Visualization Browser
The Operations Browser
The Preferences Browser
General Settings
File Readers
File Writers
Common Operations
Introduction
File Operations
Opening Files
Importing Variables and Files
Saving Files
Exporting Variables and Files
Exiting the iTool
Rotation
Mouse Rotation
Rotate Left and Rotate Right
Rotate by Specified Angle
Transformations
Resample
Rotate Data
Scale Data
Filtering
Smooth Filter
Median Filter
Convolution Filter
Unsharp Mask Filter
Morphing
Additional Operations
Plotting a Histogram
Displaying Statistics
Resetting Dataspace Ranges
Rendering Translucent Objects
Operations on Regions of Interest
Operations Modifying ROI Data
Operations Modifying ROI Vertices
Printing
Print Preview
Working with Macros
Introduction
What Are Macros?
Recording Macros
Capturing Intermediate Manipulations
Running Macros
Running from the Operations Menu
Running from the Macro Editor
Running from the Command Line
Using the Macro Controls Dialog
Using the Macro Editor
Understanding the Macro Editor
Understanding Items in the Macro Editor
Macro Items
Source Items
Making Selection and Tool Changes
Macro Type Based on Recording Selection
About Containers
Selection Changes
Tool Changes
Importing and Exporting Macros
Working with Styles
What Are Styles?
Type of Styles
Applying a Style
Creating Styles
Creating a Style from the Current Visualization
Creating a New Style from the Style Editor
Working with the Current Style
Copying an Existing Style
Applying Styles
Applying a Style to a Selected Item
Applying a Style to All Items
Applying a Style When Launching an iTool
Editing Styles
Copying Properties Within Styles
Cutting and Deleting Properties within Styles
Selecting Multiple Properties for Editing
Setting the Default Style
Importing and Exporting Styles
Exporting a File to Share
Importing a Received File
Working with Images
Introduction
Displaying Images
Displaying Multiple Images
Using the Image Panel
Image ROIs
The Palette Editor
Window Level Control
Image Properties
Modifying Properties
Adding a Colorbar
Adding Axes
Resampling an Image
Filtering an Image
Convolving an Image
Applying a Median Filter
Smoothing an Image
Applying a Roberts Filter
Applying a Sobel Filter
Applying an Unsharp Mask
Applying a Morphological Operator
Contouring an Image
Surfacing an Image
Manipulating the Image Display
Rotating an Image
Scaling an Image and Byte Scaling an Image
Inverting an Image
Flipping an Image
View Zoom
Canvas Zoom
Pixel Scaling
Region Growing
Adding Annotations
Line Profiles
View Panning
Cropping an Image
iImage Tool Operations
Viewing a Histogram
Viewing Image Statistics
Cropping Images
Working with Surfaces
Introduction
Displaying Surfaces
Surface Properties
The Visualization Browser
The Operations Browser
Adding a Colorbar
Adding a Light
Adding a Legend
Adding Axes
Imaging a Surface
Contouring a Surface
Resampling a Surface
Filtering a Surface
Convolving a Surface
Median a Surface
Smoothing a Surface
Adding a Texture Map
Manipulating Surface Displays
Rotating a Surface
Scaling a Surface
Adding Annotations
View Zoom
Canvas Zoom
Extracting a Line Profile
iSurface Tool Operations
Viewing a Histogram Plot
Viewing Statistics
Working with Contours
Introduction
Displaying Contours
Displaying Regular-grid Data
Displaying Irregular-grid Data
Contour Properties
Labeling Contours
Changing the Contour Colors
Filling Contours
Adding a Colorbar
Adding a Legend
Adding Axes
Filtering a Contour
Contour Smoothing
Contour Convolution
Manipulating the Contour Display
Translating
View Zoom
Flipping a Contour
Canvas Zoom
Scaling a Contour Display
Adding Annotations
iContour Tool Operations
Viewing a Histogram
Viewing Statistics
Working with Plots
Introduction
Displaying Two-Dimensional Plots
Displaying Three-Dimensional Plots
Displaying Polar Plots
Overplotting
Plot Properties
Modifying Properties
Adding Legends
Adding a Colorbar
Adding Error Bars
Curve Fitting
Filtering a Plot
Plot Smoothing
Plot Convolution
Plot Median
Manipulating the Plot Display
Translating
Adding Annotations
View Zoom
Canvas Zoom
Selecting the Data Range
iPlot Tool Operations
Scaling a Plot Display
Viewing a Histogram
Viewing Statistics
Working with Volumes
Introduction
Displaying Volumes
Multi-Channel Volumes
Rendering Volumes
Using the Volume Panel
Volume Properties
Modifying Properties
Adding a Colorbar
Adding Axes
Resampling Volumes
Showing an Image Plane
Viewing the Image Plane in iImage
Extracting an IsoSurface
Extracting an Interval Volume
Manipulating the Volume Display
Rotating a Volume
Scaling a Volume
View Zoom
Canvas Zoom
Adding Annotations
iVolume Tool Operations
Viewing a Histogram
Viewing Statistics
Smoothing a Volume
Opening an Image Stack
Working with Maps
Introduction
Displaying Maps
Applying a Map Projection
Using the Map Panel
Displaying an Image
Registering an Image
Registering an Image in Meters
Registering an Image in Degrees
Displaying a Contour
Creating a Shape Visualization
Inserting a Map Grid
Inserting an IDL Shapefile
Inserting the Continents
Inserting the Countries (Low Resolution)
Inserting the Countries (High Resolution)
Inserting the Rivers
Inserting the Lakes
Inserting the United States
Inserting the Canadian Provinces
Working with Vectors
Introduction
Displaying Vectors
Vector Fields
Wind Barbs
Streamlines
Vector Properties
Modifying Properties
Subsampling
Coloring Vectors Using Auxiliary Data
Manipulating the Vector Visualization
Translating
Adding Annotations
View Zoom
Canvas Zoom
iVector Tool Operations
Adding and Modifying Streamlines
Adding Magnitude Contours
Adding Direction Contours
Vectors and Mapping
iTools Interface Reference
Introduction to iTools Interface Elements
Menu Bar Items
Toolbar Items
File Menu
Edit Menu
Insert Menu
Operations Menu
Window Menu
Help Menu
File Toolbar
Edit Toolbar
Manipulator Toolbar
Annotation Toolbar
Context Menu
Property Controls
Operations Properties
The Operations Browser
Macros Properties
Statistics Properties
Histogram Properties
Filter Properties
Convolution Properties
Median Properties
Smooth Properties
Roberts Filter Properties
Sobel Filter Properties
Unsharp Mask Properties
Curve Fitting Properties
Rotate Properties
Rotate Left Properties
Rotate Right Properties
Rotate By Angle Properties
Flip Horizontal
Flip Vertical
Transform Properties
Resample Properties
Rotate Data Properties
Scale Data Properties
Invert Image Properties
Byte Scale Properties
Map Projection Properties
Map Register Image Properties
Morphing Properties
Crop Properties
Region Grow Properties
Contour Properties
Image Properties
Surface Properties
Vector Properties
Streamlines
Contour Magnitude
Contour Direction
Volume Properties
Image Plane
Isosurface
Render Volume
Interval Volume
Image Plane Properties
Launch iImage
Visualization Properties
Introduction to Visualization Properties
The Visualization Browser
Window Properties
View Properties
Visualization Layer Properties
Data Space Properties
Rendering Objects at Data Space Depth
Visualization Type Properties
Image
Plot
Plot 3D
Surface
Contour
Vector
Volume
Isosurface
Interval Volume
Image Plane
Colorbar
Histogram
Axes
Lights
Polygonal ROI
IDL Graphics Objects
Map Grid
ShapePolygon
ShapePolyline
ShapePoint
Streamlines
2D Annotation Layer Properties
Text Annotation Properties
Line Annotation Properties
Line Profile Annotation Properties
Rectangle Annotation Properties
Oval Annotation Properties
Polygon Annotation Properties
Freehand Annotation Properties
Legend Properties
Legend Contour Items
Legend Contour Level Items
Legend Plot Items
Legend Surface Items
Image Processing
Introduction to Image Processing in IDL
Overview of Image Processing
Digital Images and Image Processing
Understanding Image Definitions in IDL
Representing Image Data in IDL
Accessing Images
Querying Images
References
Transforming Image Geometry
Overview of Geometric Transformations
Cropping Images
Padding Images
Resizing Images
Shifting Images
Reversing Images
Transposing Images
Rotating Images
Rotating an Image by 90 Degree Increments
Using the ROT Function for Arbitrary Rotations
Planar Slicing of Volumetric Data
Displaying a Series of Planar Slices
Extracting a Slice of Volumetric Data
Interactive Planar Slicing of Volumetric Data
Displaying Volumetric Data Using SLICER3
Manipulating Volumetric Data Using SLICER3
Mapping an Image onto Geometry
Mapping Images onto Surfaces Overview
Mapping an Image onto Elevation Data
Opening Image and Geometry Files
Initializing the IDL Display Objects
Displaying the Image and Geometric Surface Objects
Mapping an Image onto a Sphere
Mapping an Image onto a Sphere Using Direct Graphics
Working with Masks and Image Statistics
Overview of Masks and Image Statistics
Masking Images
Clipping Images
Locating Pixel Values in an Image
Calculating Image Statistics
Warping Images
Overview of Warping Images
Tips for Selecting Control Points
Creating Transparent Image Overlays
Displaying Image Transparencies Using Direct Graphics
Displaying Image Transparencies Using Object Graphics
Warping Images Using Direct Graphics
Working with Regions of Interest (ROIs)
Overview of Working with ROIs
Contrasting an ROI's Geometric Area and Mask Area
Defining Regions of Interest
Displaying ROI Objects in a Direct Graphics Window
Programmatically Defining ROIs
Growing a Region
Creating and Displaying an ROI Mask
Testing an ROI for Point Containment
Creating a Surface Mesh of an ROI Group
Transforming Between Domains
Overview of Transforming Between Image Domains
Transforming Between Domains with FFT
Transforming to the Frequency Domain
Displaying Images in the Frequency Domain
Transforming from the Frequency Domain
Removing Noise with the FFT
Transforming Between Domains with Wavelets
Transforming to the Time-Frequency Domain
Displaying Images in the Time-Frequency Domain
Transforming from the Time-Frequency Domain
Removing Noise with the Wavelet Transform
Transforming to and from the Hough and Radon Domains
Transforming to the Hough and Radon Domains (Projecting)
Transforming from the Hough and Radon Domains (Backprojecting)
Finding Straight Lines with the Hough Transform
Color Density Contrasting with the Radon Transform
Contrasting and Filtering
Overview of Contrasting and Filtering
Byte-Scaling
Working with Histograms
Equalizing with Histograms
Adaptive Equalizing with Histograms
Filtering an Image
Low Pass Filtering
High Pass Filtering
Directional Filtering
Laplacian Filtering
Smoothing an Image
Smoothing with Average Values
Smoothing with Median Values
Sharpening an Image
Detecting Edges
Removing Noise
Windowing to Remove Noise
Lee Filtering to Remove Noise
Extracting and Analyzing Shapes
Overview of Extracting and Analyzing Image Shapes
Applying a Morphological Structuring Element to an Image
Determining Structuring Element Shapes and Sizes
Determining Intensity Values for Threshold and Stretch
Thresholding an Image
Stretching an Image
Eroding and Dilating Image Objects
Characteristics of Erosion
Characteristics of Dilation
Applying Erosion and Dilation
Smoothing with MORPH_OPEN
Smoothing with MORPH_CLOSE
Detecting Peaks of Brightness
Creating Image Object Boundaries
Selecting Specific Image Objects
Detecting Edges of Image Objects
Creating Distance Maps
Thinning Image Objects
Combining Morphological Operations
Analyzing Image Shapes
Using LABEL_REGION to Extract Image Object Information
Using CONTOUR to Extract Image Object Information
New Features in IDL 6.4
Platform Support Changes
Microsoft Windows Vista Support
Macintosh OS X on Intel Processor Support
iTool Enhancements
New and Enhanced iTools Keywords
Image Plane Location Control
TrueType Font Availability
Z Values for iMap's Graphic Layers
Visualization Enhancements
24-bit Z-Buffer Device
Support for OpenGL Shading Language (GLSL)
Analysis Enhancements
Color Mapping Functionality
Edge Detection Filters
Noise Functions
Statistics Enhancements to COMFIT
Language Enhancements
OBJ_HASMETHOD Routine
Export Bridge Object Licensing
Mouse Wheel Events in Exported IDL Objects
New IDLnetURL Class
File Access Enhancements
Transparency Support for GIF Files
Local Colormap Support for GIF Files
Open Geospatial Consortium Server Access
XML Read and Write Enhancements
User Interface Toolkit Enhancements
Title Bar Icons for Base Widgets
Draw Widget Wheel Events on Motif Platforms
Documentation Enhancements
IDL Analyst Manual
Manual Reorganization
New IDL Routines
IDL Routine Enhancements
New IDL Object Classes
New IDL Object Properties
New IDL Object Methods
IDL Object Method Enhancements
Features Obsoleted in IDL 6.4
Obsolete Features
Obsolete Arguments or Keywords
Requirements for This Release
IDL and ENVI
Hardware and Operating System Requirements
32-bit and 64-bit Versions
Graphics Hardware
Platform Support Questions and Answers
Software Requirements
ION
Hardware and Operating System Requirements
Web Server Requirements for ION
Web Browser Requirements for ION
Java Virtual Machine Requirements for ION
Feature Support by Operating System
IDL Features
ENVI Features
IDL 6.4 Release Notes
New Features in IDL 6.4
Backward-Compatibility Issues in IDL 6.4
Problems Corrected in IDL 6.4
Known Problems in IDL 6.4
IDL Online Help (March 06, 2007)