Previous What's New in IDL 6.2: Requirements for This Release Next

Table of Contents

IDL Wavelet Toolkit User's Guide

Introduction to the IDL Wavelet Toolkit

What is the IDL Wavelet Toolkit?

IDL Wavelet Toolkit Architecture

File Organization

Structure

Using the IDL Wavelet Toolkit

Starting the Toolkit

Menu Description

Preferences

Dataset Viewer

Importing Data

ASCII Files

Binary Files

Image Files

WAV Audio Files

IDL Command Line

Wavelet Viewer

Wavelet Power Spectrum

Multiresolution Analysis

Denoise Tool

Adding User Tools

Theory and Examples

Wavelet Transform

Wavelet Power Spectrum

Denoise

Multiresolution Analysis

Bibliography

IDL Wavelet Toolkit Reference

List of Commands by Functionality

WV_APPLET

WV_CW_WAVELET

WV_CWT

WV_DENOISE

WV_DWT

WV_FN_COIFLET

WV_FN_DAUBECHIES

WV_FN_GAUSSIAN

WV_FN_HAAR

WV_FN_MORLET

WV_FN_PAUL

WV_FN_SYMLET

WV_IMPORT_DATA

WV_IMPORT_WAVELET

WV_PLOT3D_WPS

WV_PLOT_MULTIRES

WV_PWT

WV_TOOL_DENOISE

IDL DataMiner Guide

DataMiner Overview

Introduction to IDL DataMiner and ODBC

What Is IDL DataMiner?

What Is ODBC?

About the DataMiner ODBC Drivers

About This Volume

Audience

Organization

Terminology

Where to Find Additional Information

ODBC Conformance Levels

API Conformance Levels

SQL Conformance Levels

Network Access Requirements

Installation on UNIX Systems

Using the IDL DataMiner

Components

Using the DB_EXISTS Function

Creating a Database Object

Finding Available Databases

Finding a Specific Database

Connecting to a Database

Finding Tables

Finding Available Tables

Finding Specific Tables

Connecting to a Table

Working with Table Data

Moving Through a Recordset

Example

ODBC SQL Syntax Notes

Reserved ODBC SQL Words

Date, Time, and Timestamp Data

Scalar Functions

LIKE Predicate Escape Characters

Outer Joins

Procedure Calls

Data Type Mappings

Error Messages

IDL DataMiner API

How to Use This Chapter

Creating Database Objects

Destroying Database Objects

DIALOG_DBCONNECT

DB_EXISTS

IDLdbDatabase

IDLdbDatabase Properties

IDLdbDatabase::Connect

IDLdbDatabase::ExecuteSQL

IDLdbDatabase::GetDatasources

IDLdbDatabase::GetProperty

IDLdbDatabase::GetTables

IDLdbDatabase::SetProperty

IDLdbRecordset

IDLdbRecordset Properties

IDLdbRecordset::AddRecord

IDLdbRecordset::CurrentRecord

IDLdbRecordset::DeleteRecord

IDLdbRecordset::GetField

IDLdbRecordset::GetProperty

IDLdbRecordset::GetRecord

IDLdbRecordset::MoveCursor

IDLdbRecordset::NFields

IDLdbRecordset::SetField

ODBC Configuration on UNIX Systems

Overview of ODBC Configuration

ODBC Initialization File Format

ODBC Data Sources

Data Source Specification

Default Data Source Specification

ODBC Options

ODBC Initialization File Example

Medical Imaging in IDL

Expanded DICOM Support in IDL

Expanded DICOM Functionality in IDL

Using DICOM Network Services

Reading and Writing DICOM Files

Platform Support and Licensing

Supported Platforms

Licensing Requirements

Compliance with the DICOM Standard

Using IDL DICOM Network Services

Overview of DICOM Network Services

Network Performance and Virus Protection Software

Determining Configuration Parameters

Determining the IP Address

Determining TPC/IP Port Numbers

Starting the Network Services Utility

Local Versus System Configuration

Starting the DICOM Network Services Utility in Local Mode

Starting the DICOM Network Services Utility in System Mode

Completing Required Setup Tasks

Configuring Your System to Receive Files

Configuring an Application Entity

Default Application Entities

Defining a New Application Entity

Modifying an Application Entity

Deleting an Application Entity

Defining a Machine to Be Queried

Querying a Remote Machine

Configure Query SCU Service Properties

Query the Remote Node

Build or Modify a Custom Query

Retrieve Files from a Remote Node

Troubleshooting a Retrieval Operation

Sending Files to a Remote Destination

Defining the Remote Storage SCP Node

Sending Files to a Remote Machine

Troubleshooting a Send Operation

Returning Connection Status with Echo

Troubleshooting Echo Errors

About the Storage SCP Service

Storage SCP Service Permissions

Storage SCP Service Log Files

Managing the Storage SCP Service

Starting and Stopping the Service Outside the Utility

DICOM Network Services User Interface

System Mode Interface

Local Mode Interface

IDL DICOM Reference

DICOMEX_GETCONFIGFILEPATH

DICOMEX_GETSTORSCPDIR

DICOMEX_NET

IDLffDicomEx

Properties List

IDLffDicomEx Overview

File Compression and Transfer Syntax Support

IDLffDicomEx Properties

IDLffDicomEx::AddGroup

IDLffDicomEx::AddPrivateGroup

IDLffDicomEx::AddPrivateSequence

IDLffDicomEx::AddSequence

IDLffDicomEx::ChangeTransferSyntax

IDLffDicomEx::Cleanup

IDLffDicomEx::Commit

IDLffDicomEx::CopyTags

IDLffDicomEx::EnumerateTags

IDLffDicomEx::GetDescription

IDLffDicomEx::GetPixelData

IDLffDicomEx::GetPrivateValue

IDLffDicomEx::GetPrivateValueCount

IDLffDicomEx::GetPrivateValueLength

IDLffDicomEx::GetPrivateVR

IDLffDicomEx::GetProperty

IDLffDicomEx::GetValue

IDLffDicomEx::GetValueCount

IDLffDicomEx::GetValueLength

IDLffDicomEx::GetVR

IDLffDicomEx::Init

IDLffDicomEx::QueryPrivateValue

IDLffDicomEx::QueryValue

IDLffDicomEx::SetPixelData

IDLffDicomEx::SetPrivateValue

IDLffDicomEx::SetProperty

IDLffDicomEx::SetValue

DICOM Resources

DICOM Attributes

Value Representations

ION Script User's Guide

Configuring ION Script

Configuring ION Script for Windows

The Images Tab

The URLs Tab

The Files Tab

The Format Tab

The Debug Tab

Configuring ION Script for UNIX

Manually Configuring Your UNIX Web Server

ION Script Configuration Options

Images

URLs

Files

Format

Debug

Overview of ION Script

ION Script and ION Java

ION Script

ION Java

Which Product Should I Use?

What Is ION Script?

ION Script Pages

ION Script Applications

Anatomy of an ION Script Application

Example

Requesting an ION Script Page

Where to Store Your Files

How HTML Files Are Normally Requested

ION Script Files

Keeping .ion and .html Files in the Same Place

IDL Files

Running the ION Script Examples

Variables, Expressions & Operators

Variables

Declaring & Assigning Values

Variable Types

Assigning String Literals to ION Script Variables

Determining Variable Type

Null Strings Versus Undefined Strings

Variable Names

Variable Scope

Variable Persistence

ION System Variables

$Browser

$Document

$Form

$FormURL

$ION

$Mouse

Expressions

Values

Expression Types

Operators

Mathematical Operators

String Operators

Comparison Operators

Logical Operators

Operator Precedence

Creating ION Script Applications

Specifying URLs

HTTP URLs

HTTPS URLs

File URLs

ION URLs

Absolute Paths vs. the ION Search Path

HTML Forms vs. ION Script Forms

Passing Name/Value Pairs in a URL

Passing ION Script Variables in a URL

Passing Multiple Values With the Same Name

Handling Multiple Selections in a SELECT Element

Parsing the $Form Variable in an <IDL> Block

Parsing the $Form Variable in a <SCRIPT> Block

Passing IDL Variables to ION Script

Using Frames with ION Script

Overview of Fixed Framesets

Loading ION Script Pages in Frames

Floating Frames

Targeting Different Frames

Accommodating All Browsers

Using JavaScript and VBScript

Graphics in ION Script

Direct Graphics

Object Graphics

Bandwidth Issues

Output Formats

Using Special and International Characters

Example: Creating a Complete Application

Step 1: Displaying an IDL-Generated Image

Step 2: Declaring and Displaying Variables

Step 3: Adding Interactivity

Step 4: Validating Form Data

Step 5: Creating Reusable Pages

Step 6: Creating Interactive Images for Data Picking

Step 7: Displaying IDL-Generated Data

A Note On Using the Back Button

Application Variations

ION Script Tag Reference

ION Syntax Conventions

Elements of Syntax

Case Sensitivity

Using Quotation Marks

Variable Substitution in Attribute Values

HTML Mappings

The HTML Comment Tag

Alphabetical Listing of ION Script Tags

EVENT_DECL

EVENTS

IDL

IDL Tag Limitations

Using ION_EVALUTE and ION_VARIABLE Tags in an IDL Block

Single vs. Double Quotation Marks

Commenting IDL Code

Using the $ Symbol in an IDL Block

INPUT

ION_BODY

ION_BUTTON

ION_CHECKBOX

ION_DATA_OUT

ION_EVALUATE

ION_FORM

Forms Containing a Single Text Field

ION_HEADER

Metadata Tags

Events and Variables

ION_IF, ION_ELSEIF, ION_ELSE

ION_IMAGE

Notes About Using ION_IMAGE

ION_INCLUDE

ION_LINK

ION_OBJECT

ION_PARAM

ION_RADIO

ION_SCRIPT

ION_VARIABLE

VARIABLE_DECL

VARIABLES

Troubleshooting ION Script

Web Server Problems

If You Are Using Microsoft IIS

"Connection Failed" Errors

"Not Found" Errors

"No Event or Page" Errors

Licensing Errors

ION Script Syntax Errors

IDL Errors

Variables

Images Not Displaying

Frames

ION Java User's Guide

Configuring ION Java

Starting and Configuring the ION Daemon

Configuring ION Java for Windows

The ION Java Properties Dialog

Checking Status with the ION Java Status Utility

Windows Command Line Installation of the ION Daemon

Using Windows Services Manager to Start the ION Daemon

Configuring ION Java for UNIX

Starting the ION Daemon on UNIX

Starting the ION Daemon at Boot Time

Checking the Status of the ION Daemon

Shutting Down the ION Daemon

Manually Configuring Your Web Server

Command Security

Security Command Files

Client Verification

Connection Limit

Overview of ION Java

ION Script and ION Java

ION Script

ION Java

Which Product Should I Use?

What Is ION Java?

Recommended Skills

ION Java Architecture

ION Server

ION Daemon

Pre-Built ION Client Applets

ION Component Classes

ION Low-Level Classes

ION Java Limitations

IDL Limitations

ION Java Performance Considerations

Tips for Increasing Execution Speed in ION Java

Bandwidth Issues

Running the ION Java Examples

Where to Place HTML and Class Files

Testing ION Applications Locally

Publishing ION Applications on Your Web Server

Where to Locate the ION Class Files

What Are the Required Class Files?

Overview of the ION Java Classes

The ION Java Class Hierarchy

ION Low-Level Classes

ION Component Classes

ION Pre-Built Applets

Using the Component Classes

Setting Values

Getting and Setting Properties

Drawing

AWT vs. Swing

Using ION's Pre-Built Applets

The <APPLET> Tag

Attributes

Supporting Java-Incapable Browsers

Parameters Specified via <PARAM> Tags

Connecting to the ION Server

Behavior Parameters

IONGraphicApplet

IONContourApplet

IONMapApplet

IONPlotApplet

IONSurfaceApplet

Building ION Applets and Applications

Direct Graphics in ION

The ION Device

Keywords Accepted by the ION Device

Object Graphics in ION

Using Object References

Compiling .java Files

Error Handling and ION Exceptions

Debug Mode

Debugging Your Application

Converting Between IDL and Java Bytes

Considerations Specific to ION Applets

Including Applets in HTML Pages

Supporting Java Archive Files

Browser Support of ION Class Library Versions

Supporting Multiple Browser Types

Simple Applet Example

Further Examples

ION Applets and Scripting Languages

Tips and Tricks

ION Java Class and Method Reference

How to Use this Chapter

Syntax

Arguments

Exceptions

Example

IONCallableClient Class

IONCallableClient()

addIONCommandDoneListener()

addIONDisconnectListener()

addIONOutputListener()

connect()

disconnect()

executeIDLCommand()

getClientVersion()

getConnectionType()

getIDLVariable()

removeIONCommandDoneListener()

removeIONDisconnectListener()

removeIONOutputListener()

sendIDLCommand()

setConnectionMethod()

setConnectionTimeout()

setIDLVariable()

IONCanvas / IONJCanvas Class

IONCanvas() / IONJCanvas()

addIONMouseListener()

getDownButtons()

getImage()

getIONGraphics()

getMousePos()

removeIONMouseListener()

IONCommandDoneListener Interface

IONCommandComplete()

IONComplex Class

IONComplex()

doubleValue()

floatValue()

getDImaginary()

getImaginary()

intValue()

longValue()

toString()

IONContour / IONJContour Class

IONContour() / IONJContour()

draw()

getProperty()

setNoErase()

setProperty()

setXValue()

setYValue()

setZValue()

IONDComplex Class

IONDComplex()

doubleValue()

floatValue()

getDImaginary()

getImaginary()

intValue()

longValue()

toString()

IONDisconnectListener Interface

IONDisconnection()

IONDrawable Interface

createImage()

getImage()

getIONGraphics()

IONGraphicsClient Class

IONGraphicsClient()

addIONDrawable()

connect()

copyArea()

getCurrentIndex()

getIONDrawableIndices()

getNumIndices()

readImage()

removeIONDrawable()

setIONDrawable()

IONGraphicConnection Interface

IONGrConnection / IONJGrConnection Class

IONGrConnection()

addDrawable()

connect()

debugMode()

disconnect()

executeIDLCommand()

getIDLVariable()

removeDrawable()

sendIDLCommand()

setDrawable()

setIDLVariable()

IONGrContour Class

IONGrContour()

draw()

getProperty()

setProperty()

setNoErase()

setXValue()

setYValue()

setZValue()

IONGrDrawable / IONJGrDrawable Class

IONGrDrawable() / IONJGrDrawable()

addGraphic()

debugMode()

draw()

executeIDLCommand()

getConnection()

isConnected()

removeGraphic()

resetMulti()

sendIDLCommand()

setConnection()

setMulti()

setNoErase()

IONGrGraphic Class

IONGrGraphic()

draw()

getProperty()

getPropertyNames()

getPropertyString()

registerProperty()

setNoErase()

setProperty()

IONGrMap Class

IONGrMap()

draw()

getProperty()

setLat(), setLon()

setProperty()

setRotation()

IONGrMapContinents Class

IONGrMapContinents()

draw()

getProperty()

setProperty()

IONGrMapGrid Class

IONGrMapGrid()

draw()

getProperty()

setProperty()

IONGrMapImage Class

IONGrMapImage()

draw()

getProperty()

setImage()

setProperty()

setStart()

IONGrPlot Class

IONGrPlot()

draw()

getProperty()

setNoErase()

setProperty()

setXValue()

setYValue()

IONGrSurface Class

IONGrSurface()

draw()

getProperty()

setNoErase()

setProperty()

setXValue()

setYValue()

setZValue()

IONMap / IONJMap Class

IONMap() / IONJMap()

draw()

getProperty()

setLat(), setLon()

setProperty()

setRotation()

IONMouseListener Interface

mouseMoved()

mousePressed()

mouseReleased()

IONOffScreen Class

IONOffScreen()

createImage()

getImage()

getIONGraphics()

IONOutputListener Interface

IONOutputText()

IONPlot / IONJPlot Class

IONPlot() / IONJPlot()

draw()

getProperty()

setProperty()

setXValue()

setYValue()

IONSurface / IONJSurface Class

IONSurface() / IONJSurface()

draw()

getProperty()

setNoErase()

setProperty()

setXValue()

setYValue()

setZValue()

IONVariable Class

IONVariable()

arrayDimensions()

getByte()

getByteArray()

getComplexArray()

getDComplexArray()

getDImaginary()

getDimensionedByteArray()

getDimensionedDoubleArray()

getDimensionedFloatArray()

getDimensionedIntArray()

getDimensionedShortArray()

getDouble()

getDoubleArray()

getFloat()

getFloatArray()

getImaginary()

getInt()

getIntArray()

getShort()

getShortArray()

getString()

getStringArray()

isArray()

toString()

type()

IONWindowingClient Class

IONWindowingClient()

connect()

createWindow()

deleteWindow()

showWindow()

Troubleshooting ION Java

Avoiding Conflicting ION Installations

Checking Web Server Communication

Troubleshooting ION Service Problems

Troubleshooting Applets that Fail to Display

Troubleshooting "Not Found" Errors

Troubleshooting Licensing Errors

Setting the IDL Path

Troubleshooting Security Errors

Encountering Browser Timeouts with Java Errors

ION Server Timeout

JDK 1.2 Required for Clients

Introduction

Contacting RSI

System Requirements

IDL 6.2

ION 6.2

IDL-Java Bridge

Licensing Methods

IDL Virtual Machine

Demonstration Mode

Evaluation License

Personal Use License

Node-Locked License

Floating License

Running IDL in Demonstration Mode

Installing and Running on Windows

Installing and Running on UNIX

Installing and Running on Macintosh

Running the IDL Demo Applications

Windows

UNIX

Macintosh

Installing and Licensing IDL 6.2 for Windows

Introduction

Before You Begin

Recommended Steps for Installing and Licensing IDL for Windows

Installing IDL for Windows

System Requirements

Running the IDL Installer

Installing IDL Silently and Unattended

Licensing IDL for Windows

Requesting a License

Evaluation Licensing

Personal Use Licensing

Node-Locked Licensing

Floating Licensing

Saving the License File in an Alternative Location

Upgrading the Network License Server from a Previous Installation

Running IDL under Windows

Running the IDL Virtual Machine under Windows

Running IDL Runtime Programs under Windows

Installing and Licensing IDL 6.2 for UNIX

Introduction

Before You Begin

Recommended Steps for Installing and Licensing IDL for UNIX

Installing IDL for UNIX

System Requirements

Mount the IDL CD-ROM on Your System

Run the IDL Installer

Unmount the IDL CD-ROM from Your System

Licensing IDL for UNIX

Setting Up Your Environment

Requesting a License

Preparing a License Request

Manually Sending a License Request

Evaluation Licensing

Personal Use Licensing

Node-Locked or Floating Licensing

Modifying the License File

Upgrading the Network License Server from a Previous Installation

Working with the License Server

Multiple Applications That Use the Same License Manager

Troubleshooting

Setting Up the IDL Environment

Define IDL Environment Variables and Aliases

Define ION Environment Variables and Aliases

Define the Path to the License File or License Server

Running IDL under UNIX

Running the IDL Virtual Machine under UNIX

Running IDL Runtime Applications under UNIX

Installing and Licensing IDL 6.2 for Macintosh

Introduction

Recommended Steps for Installing and Licensing IDL for Mac OS X

Installing IDL for Macintosh

System Requirements

Run the IDL Installer

Licensing IDL for Macintosh

Setting Up Your Environment

Requesting a License

Preparing a License Request

Manually Sending a License Request

Evaluation Licensing

Personal Use Licensing

Node-Locked or Floating Licensing

Modifying the License File

Upgrading the License Server from a Previous Installation

Working with the License Server

Multiple Applications That Use the Same License Server

Setting Up the IDL Environment

Running IDL for Macintosh

Running IDL from Applescript

Running IDL from the Command Line

Running the IDL Virtual Machine under Macintosh

Running IDL Runtime Applications under Macintosh

Removing IDL for Macintosh

Troubleshooting Licensing

General Information

Other Resources

For Further Help

Evaluation Licenses

The License Information Does Not Pass the Checksum Test

The File Already Exists

The File Cannot Be Written

Personal Use Licenses

Check the License Format

Files Needed for Initialization of the Licensing Program Could Not Be Found

License File Does Not Support This Version

IDL Cannot Find License

Node-Locked Licenses (Windows)

Check the License Format

The Hostid of This System Does Not Match the Hostid

The License File Does Not Support This Version

Cannot Find License

Licenses Requiring a License Server

All Platforms

UNIX and Macintosh

License Manager Startup

Running Older Versions of IDL

Running Older Versions of IDL Concurrently with IDL 6.2

Start the Latest Version of the License Manager

Using IDL Version 5.x with the IDL Version 6.2 License Manager

Customizing Your Floating Licenses

Creating an Options File

Options File Keywords

Sample Options Files

IDL Reference Guide

Overview of IDL Syntax

IDL Syntax

Elements of Syntax

Procedures

Functions

Arguments

Keywords

Running the Example Code

Part I: IDL Command Reference

Functional List of IDL Routines

3D Visualization

3D Transformations & Scene Setup

Polygonal Mesh Routines

Surfaces and Contours

Tetrahedral Mesh Routines

Vector Field Visualization

Volume Visualization

Animation

Array Creation

Array Manipulation

Color Table Manipulation

Date and Time

Debugging

Dialog Routines

Direct Graphics

Error Handling

Executive Commands

External Linking

Font Manipulation

Help Routines

Image Processing

Contrast Enhancement and Filtering

Feature Extraction/Image Segmentation

Image Display

Image Geometry Transformations

Morphological Image Operators

Regions of Interest

Input/Output

General File Access

Image Data Formats

Scientific Data Formats

Other Data Formats

General Input/Output

Language Catalogs

Mapping

Mathematics

Complex Numbers

Correlation Analysis

Curve and Surface Fitting

Differentiation and Integration

Eigenvalues and Eigenvectors

Gridding and Interpolation

Hypothesis Testing

LAPACK Routines

Linear Systems

Mathematical Error Assessment

Miscellaneous Math Routines

Multivariate Analysis

Nonlinear Equations

Optimization

Probability

Sparse Arrays

Special Math Functions

Statistical Fitting

Statistical Tools

Time-Series Analysis

Transcendental Functions

Transforms

Object Class Library

Analysis Objects

File Format Objects

Graphic Objects-Destination

Graphic Objects-Display

Graphic Objects-Visualization

iTools System Objects

Miscellaneous Objects

Operating System Access

Performance Testing

Plotting

Programming and IDL Control

Query Routines

Saving/Restoring a Session

Scientific Data Formats

Scope Functions

Signal Processing

Statements

Compound Statements

Conditional Statements

Loop Statements

Jump Statements

Functions and Procedures

Variable Scope

String Processing

Structures

Type Conversion

Utilities

Wavelet Toolkit

Widget Commands and Visualization Tools

Wavelet Transform

Wavelet Functions

Widget Routines

Widget Routines, Compound

Animation

Color Manipulation

Data Entry and Display

Image/Data Manipulation

Orientation

User Interface

Window Routines

Dot Commands

.COMPILE

.CONTINUE

.EDIT

.FULL_RESET_SESSION

.GO

.OUT

.RESET_SESSION

.RETURN

.RNEW

.RUN

.SKIP

.STEP

.STEPOVER

.TRACE

Procedures and Functions

A_CORRELATE

ABS

ACOS

ADAPT_HIST_EQUAL

ALOG

ALOG10

AMOEBA

ANNOTATE

APP_USER_DIR

APP_USER_DIR_QUERY

ARG_PRESENT

ARRAY_EQUAL

ARRAY_INDICES

ARROW

ASCII_TEMPLATE

ASIN

ASSOC

ATAN

AXIS

BAR_PLOT

BEGIN...END

BESELI

BESELJ

BESELK

BESELY

BETA

BILINEAR

BIN_DATE

BINARY_TEMPLATE

BINDGEN

BINOMIAL

BIT_FFS

BIT_POPULATION

BLAS_AXPY

BLK_CON

BOX_CURSOR

BREAK

BREAKPOINT

BROYDEN

BYTARR

BYTE

BYTEORDER

BYTSCL

C_CORRELATE

CALDAT

CALENDAR

CALL_EXTERNAL

CALL_FUNCTION

CALL_METHOD

CALL_PROCEDURE

CASE

CATCH

CD

CDF Routines

CEIL

CHEBYSHEV

CHECK_MATH

CHISQR_CVF

CHISQR_PDF

CHOLDC

CHOLSOL

CINDGEN

CIR_3PNT

CLOSE

CLUST_WTS

CLUSTER

CLUSTER_TREE

CMYK_CONVERT

COLOR_CONVERT

COLOR_QUAN

COLORMAP_APPLICABLE

COMFIT

COMMAND_LINE_ARGS

COMMON

COMPILE_OPT

COMPLEX

COMPLEXARR

COMPLEXROUND

COMPUTE_MESH_NORMALS

COND

CONGRID

CONJ

CONSTRAINED_MIN

CONTINUE

CONTOUR

CONVERT_COORD

CONVOL

COORD2TO3

COPY_LUN

CORRELATE

COS

COSH

CPU

CRAMER

CREATE_CURSOR

CREATE_STRUCT

CREATE_VIEW

CROSSP

CRVLENGTH

CT_LUMINANCE

CTI_TEST

CURSOR

CURVEFIT

CV_COORD

CVTTOBM

CW_ANIMATE

CW_ANIMATE_GETP

CW_ANIMATE_LOAD

CW_ANIMATE_RUN

CW_ARCBALL

CW_BGROUP

CW_CLR_INDEX

CW_COLORSEL

CW_DEFROI

CW_FIELD

CW_FILESEL

CW_FORM

CW_FSLIDER

CW_LIGHT_EDITOR

CW_LIGHT_EDITOR_GET

CW_LIGHT_EDITOR_SET

CW_ORIENT

CW_PALETTE_EDITOR

CW_PALETTE_EDITOR_GET

CW_PALETTE_EDITOR_SET

CW_PDMENU

CW_RGBSLIDER

CW_TMPL

CW_ZOOM

DataMiner Routines

DBLARR

DCINDGEN

DCOMPLEX

DCOMPLEXARR

DEFINE_KEY

DEFINE_MSGBLK

DEFINE_MSGBLK_FROM_FILE

DEFROI

DEFSYSV

DELVAR

DENDRO_PLOT

DENDROGRAM

DERIV

DERIVSIG

DETERM

DEVICE

DFPMIN

DIAG_MATRIX

DIALOG_MESSAGE

DIALOG_PICKFILE

DIALOG_PRINTERSETUP

DIALOG_PRINTJOB

DIALOG_READ_IMAGE

DIALOG_WRITE_IMAGE

DIGITAL_FILTER

DILATE

DINDGEN

DISSOLVE

DIST

DISTANCE_MEASURE

DLM_LOAD

DLM_REGISTER

DOC_LIBRARY

DOUBLE

DRAW_ROI

EFONT

EIGENQL

EIGENVEC

ELMHES

EMPTY

ENABLE_SYSRTN

EOF

EOS_* Routines

ERASE

ERF

ERFC

ERFCX

ERODE

ERRPLOT

EXECUTE

EXIT

EXP

EXPAND

EXPAND_PATH

EXPINT

EXTRAC

EXTRACT_SLICE

F_CVF

F_PDF

FACTORIAL

FFT

FILE_BASENAME

FILE_CHMOD

FILE_COPY

FILE_DELETE

FILE_DIRNAME

FILE_EXPAND_PATH

FILE_INFO

FILE_LINES

FILE_LINK

FILE_MKDIR

FILE_MOVE

FILE_POLL_INPUT

FILE_READLINK

FILE_SAME

FILE_SEARCH

FILE_TEST

FILE_WHICH

FILEPATH

FINDGEN

FINITE

FIX

FLICK

FLOAT

FLOOR

FLOW3

FLTARR

FLUSH

FOR

FORMAT_AXIS_VALUES

FORWARD_FUNCTION

FREE_LUN

FSTAT

FULSTR

FUNCT

FUNCTION

FV_TEST

FX_ROOT

FZ_ROOTS

GAMMA

GAMMA_CT

GAUSS_CVF

GAUSS_PDF

GAUSS2DFIT

GAUSSFIT

GAUSSINT

GET_DRIVE_LIST

GET_KBRD

GET_LUN

GET_SCREEN_SIZE

GETENV

GOTO

GRID_INPUT

GRID_TPS

GRID3

GRIDDATA

GS_ITER

H_EQ_CT

H_EQ_INT

H5_* Routines

H5_BROWSER

HANNING

HDF_* Routines

HDF_BROWSER

HDF_READ

HEAP_FREE

HEAP_GC

HEAP_NOSAVE

HEAP_SAVE

HELP

HILBERT

HIST_2D

HIST_EQUAL

HISTOGRAM

HLS

HOUGH

HQR

HSV

IBETA

ICONTOUR

IDENTITY

IDL_VALIDNAME

IDLITSYS_CREATETOOL

IF...THEN...ELSE

IGAMMA

IIMAGE

IMAGE_CONT

IMAGE_STATISTICS

IMAGINARY

IMAP

INDGEN

INT_2D

INT_3D

INT_TABULATED

INTARR

INTERPOL

INTERPOLATE

INTERVAL_VOLUME

INVERT

IOCTL

IPLOT

ISHFT

ISOCONTOUR

ISOSURFACE

ISURFACE

ITCURRENT

ITDELETE

ITGETCURRENT

ITREGISTER

ITRESET

ITRESOLVE

IVOLUME

JOURNAL

JULDAY

KEYWORD_SET

KRIG2D

KURTOSIS

KW_TEST

L64INDGEN

LA_CHOLDC

LA_CHOLMPROVE

LA_CHOLSOL

LA_DETERM

LA_EIGENPROBLEM

LA_EIGENQL

LA_EIGENVEC

LA_ELMHES

LA_GM_LINEAR_MODEL

LA_HQR

LA_INVERT

LA_LEAST_SQUARE_EQUALITY

LA_LEAST_SQUARES

LA_LINEAR_EQUATION

LA_LUDC

LA_LUMPROVE

LA_LUSOL

LA_SVD

LA_TRIDC

LA_TRIMPROVE

LA_TRIQL

LA_TRIRED

LA_TRISOL

LABEL_DATE

LABEL_REGION

LADFIT

LAGUERRE

LEEFILT

LEGENDRE

LINBCG

LINDGEN

LINFIT

LINKIMAGE

LL_ARC_DISTANCE

LMFIT

LMGR

LNGAMMA

LNP_TEST

LOADCT

LOCALE_GET

LOGICAL_AND

LOGICAL_OR

LOGICAL_TRUE

LON64ARR

LONARR

LONG

LONG64

LSODE

LU_COMPLEX

LUDC

LUMPROVE

LUSOL

M_CORRELATE

MACHAR

MAKE_ARRAY

MAKE_DLL

MAP_2POINTS

MAP_CONTINENTS

MAP_GRID

MAP_IMAGE

MAP_PATCH

MAP_PROJ_FORWARD

MAP_PROJ_IMAGE

MAP_PROJ_INFO

MAP_PROJ_INIT

MAP_PROJ_INVERSE

MAP_SET

MATRIX_MULTIPLY

MATRIX_POWER

MAX

MD_TEST

MEAN

MEANABSDEV

MEDIAN

MEMORY

MESH_CLIP

MESH_DECIMATE

MESH_ISSOLID

MESH_MERGE

MESH_NUMTRIANGLES

MESH_OBJ

MESH_SMOOTH

MESH_SURFACEAREA

MESH_VALIDATE

MESH_VOLUME

MESSAGE

MIN

MIN_CURVE_SURF

MK_HTML_HELP

MODIFYCT

MOMENT

MORPH_CLOSE

MORPH_DISTANCE

MORPH_GRADIENT

MORPH_HITORMISS

MORPH_OPEN

MORPH_THIN

MORPH_TOPHAT

MPEG_CLOSE

MPEG_OPEN

MPEG_PUT

MPEG_SAVE

MULTI

N_ELEMENTS

N_PARAMS

N_TAGS

NCDF_* Routines

NEWTON

NORM

OBJ_CLASS

OBJ_DESTROY

OBJ_ISA

OBJ_NEW

OBJ_VALID

OBJARR

ON_ERROR

ON_IOERROR

ONLINE_HELP

OPENR/OPENU/OPENW

OPLOT

OPLOTERR

P_CORRELATE

PARTICLE_TRACE

PATH_CACHE

PATH_SEP

PCOMP

PLOT

PLOT_3DBOX

PLOT_FIELD

PLOTERR

PLOTS

PNT_LINE

POINT_LUN

POLAR_CONTOUR

POLAR_SURFACE

POLY

POLY_2D

POLY_AREA

POLY_FIT

POLYFILL

POLYFILLV

POLYSHADE

POLYWARP

POPD

POWELL

PREF_COMMIT

PREF_GET

PREF_MIGRATE

PREF_SET

PRIMES

PRINT/PRINTF

PRINTD

PRO

PRODUCT

PROFILE

PROFILER

PROFILES

PROJECT_VOL

PS_SHOW_FONTS

PSAFM

PSEUDO

PTR_FREE

PTR_NEW

PTR_VALID

PTRARR

PUSHD

QGRID3

QHULL

QROMB

QROMO

QSIMP

QUERY_* Routines

QUERY_ASCII

QUERY_BMP

QUERY_DICOM

QUERY_GIF

QUERY_IMAGE

QUERY_JPEG

QUERY_JPEG2000

QUERY_MRSID

QUERY_PICT

QUERY_PNG

QUERY_PPM

QUERY_SRF

QUERY_TIFF

QUERY_WAV

R_CORRELATE

R_TEST

RADON

RANDOMN

RANDOMU

RANKS

RDPIX

READ/READF

READ_ASCII

READ_BINARY

READ_BMP

READ_DICOM

READ_GIF

READ_IMAGE

READ_INTERFILE

READ_JPEG

READ_JPEG2000

READ_MRSID

READ_PICT

READ_PNG

READ_PPM

READ_SPR

READ_SRF

READ_SYLK

READ_TIFF

READ_WAV

READ_WAVE

READ_X11_BITMAP

READ_XWD

READS

READU

REAL_PART

REBIN

RECALL_COMMANDS

RECON3

REDUCE_COLORS

REFORM

REGION_GROW

REGISTER_CURSOR

REGRESS

REPEAT...UNTIL

REPLICATE

REPLICATE_INPLACE

RESOLVE_ALL

RESOLVE_ROUTINE

RESTORE

RETALL

RETURN

REVERSE

RK4

ROBERTS

ROT

ROTATE

ROUND

ROUTINE_INFO

RS_TEST

S_TEST

SAVE

SAVGOL

SCALE3

SCALE3D

SCOPE_LEVEL

SCOPE_TRACEBACK

SCOPE_VARFETCH

SCOPE_VARNAME

SEARCH2D

SEARCH3D

SET_PLOT

SET_SHADING

SETENV

SFIT

SHADE_SURF

SHADE_SURF_IRR

SHADE_VOLUME

SHIFT

SHMDEBUG

SHMMAP

SHMUNMAP

SHMVAR

SHOW3

SHOWFONT

SIMPLEX

SIN

SINDGEN

SINH

SIZE

SKEWNESS

SKIP_LUN

SLICER3

SLIDE_IMAGE

SMOOTH

SOBEL

SOCKET

SORT

SPAWN

SPH_4PNT

SPH_SCAT

SPHER_HARM

SPL_INIT

SPL_INTERP

SPLINE

SPLINE_P

SPRSAB

SPRSAX

SPRSIN

SPRSTP

SQRT

STANDARDIZE

STDDEV

STOP

STRARR

STRCMP

STRCOMPRESS

STREAMLINE

STREGEX

STRETCH

STRING

STRJOIN

STRLEN

STRLOWCASE

STRMATCH

STRMESSAGE

STRMID

STRPOS

STRPUT

STRSPLIT

STRTRIM

STRUCT_ASSIGN

STRUCT_HIDE

STRUPCASE

SURFACE

SURFR

SVDC

SVDFIT

SVSOL

SWAP_ENDIAN

SWAP_ENDIAN_INPLACE

SWITCH

SYSTIME

T_CVF

T_PDF

T3D

TAG_NAMES

TAN

TANH

TEK_COLOR

TEMPORARY

TETRA_CLIP

TETRA_SURFACE

TETRA_VOLUME

THIN

THREED

TIME_TEST2

TIMEGEN

TM_TEST

TOTAL

TRACE

TRANSPOSE

TRI_SURF

TRIANGULATE

TRIGRID

TRIQL

TRIRED

TRISOL

TRUNCATE_LUN

TS_COEF

TS_DIFF

TS_FCAST

TS_SMOOTH

TV

TVCRS

TVLCT

TVRD

TVSCL

UINDGEN

UINT

UINTARR

UL64INDGEN

ULINDGEN

ULON64ARR

ULONARR

ULONG

ULONG64

UNIQ

UNSHARP_MASK

USERSYM

VALUE_LOCATE

VARIANCE

VECTOR_FIELD

VEL

VELOVECT

VERT_T3D

VOIGT

VORONOI

VOXEL_PROJ

WAIT

WARP_TRI

WATERSHED

Wavelet Toolkit

WDELETE

WF_DRAW

WHERE

WHILE...DO

WIDGET_ACTIVEX

WIDGET_BASE

WIDGET_BUTTON

WIDGET_COMBOBOX

WIDGET_CONTROL

WIDGET_DISPLAYCONTEXTMENU

WIDGET_DRAW

WIDGET_DROPLIST

WIDGET_EVENT

WIDGET_INFO

WIDGET_LABEL

WIDGET_LIST

WIDGET_PROPERTYSHEET

WIDGET_SLIDER

WIDGET_TAB

WIDGET_TABLE

WIDGET_TEXT

WIDGET_TREE

WINDOW

WRITE_BMP

WRITE_GIF

WRITE_IMAGE

WRITE_JPEG

WRITE_JPEG2000

WRITE_NRIF

WRITE_PICT

WRITE_PNG

WRITE_PPM

WRITE_SPR

WRITE_SRF

WRITE_SYLK

WRITE_TIFF

WRITE_WAV

WRITE_WAVE

WRITEU

WSET

WSHOW

WTN

WV_* Routines

XBM_EDIT

XDISPLAYFILE

XDXF

XFONT

XINTERANIMATE

XLOADCT

XMANAGER

XMNG_TMPL

XMTOOL

XOBJVIEW

XOBJVIEW_ROTATE

XOBJVIEW_WRITE_IMAGE

XPALETTE

XPCOLOR

XPLOT3D

XREGISTERED

XROI

XSQ_TEST

XSURFACE

XVAREDIT

XVOLUME

XVOLUME_ROTATE

XVOLUME_WRITE_IMAGE

XYOUTS

ZOOM

ZOOM_24

Part II: Object Class and Method Reference

IDL Object Class Overview

Using the Class Reference

Object Method Syntax

Arguments

Creating Objects from the Class Library

Object Properties

Properties and the Property Sheet Interface

Setting Properties at Initialization

Setting Properties of Existing Objects

Retrieving Property Settings

About Object Property Descriptions

Registered Properties

Registering a Property

Registering All Available Properties

Registered Property Data Types

User Defined Property Types

Undocumented Object Classes

Analysis Object Classes

IDLanROI

IDLanROI Properties

IDLanROI::AppendData

IDLanROI::Cleanup

IDLanROI::ComputeGeometry

IDLanROI::ComputeMask

IDLanROI::ContainsPoints

IDLanROI::GetProperty

IDLanROI::Init

IDLanROI::RemoveData

IDLanROI::ReplaceData

IDLanROI::Rotate

IDLanROI::Scale

IDLanROI::SetProperty

IDLanROI::Translate

IDLanROIGroup

IDLanROIGroup Properties

IDLanROIGroup::Add

IDLanROIGroup::Cleanup

IDLanROIGroup::ComputeMask

IDLanROIGroup::ComputeMesh

IDLanROIGroup::ContainsPoints

IDLanROIGroup::GetProperty

IDLanROIGroup::Init

IDLanROIGroup::Rotate

IDLanROIGroup::Scale

IDLanROIGroup::Translate

File Format Object Classes

IDLffDICOM

IDLffDICOM Object DICOM Conformance Summary

IDLffDICOM Properties

IDLffDICOM::Cleanup

IDLffDICOM::DumpElements

IDLffDICOM::GetChildren

IDLffDICOM::GetDescription

IDLffDICOM::GetElement

IDLffDICOM::GetGroup

IDLffDICOM::GetLength

IDLffDICOM::GetParent

IDLffDICOM::GetPreamble

IDLffDICOM::GetReference

IDLffDICOM::GetValue

IDLffDICOM::GetVR

IDLffDICOM::Init

IDLffDICOM::Read

IDLffDICOM::Reset

IDLffDXF

IDLffDXF Properties

IDLffDXF::Cleanup

IDLffDXF::GetContents

IDLffDXF::GetEntity

Fields Common to All Structures

Structure Formats

IDLffDXF::GetPalette

IDLffDXF::Init

IDLffDXF::PutEntity

IDLffDXF::Read

IDLffDXF::RemoveEntity

IDLffDXF::Reset

IDLffDXF::SetPalette

IDLffDXF::Write

IDLffJPEG2000

Overview of IDL and JPEG2000

Saving and Restoring IDLffJPEG2000 Objects

IDLffJPEG2000 Properties

IDLffJPEG2000::Cleanup

IDLffJPEG2000::GetData

IDLffJPEG2000::GetProperty

IDLffJPEG2000::GetTileProperty

IDLffJPEG2000::GetUUID

IDLffJPEG2000::Init

IDLffJPEG2000::SetData

IDLffJPEG2000::SetProperty

IDLffJPEG2000::SetUUID

IDLffLangCat

IDLffLangCat Properties

IDLffLangCat::AppendCatalog

IDLffLangCat::Cleanup

IDLffLangCat::GetProperty

IDLffLangCat::Init

IDLffLangCat::Query

IDLffLangCat::SetProperty

IDLffMrSID

IDLffMrSID Properties

IDLffMrSID::Cleanup

IDLffMrSID::GetDimsAtLevel

IDLffMrSID::GetImageData

IDLffMrSID::GetProperty

IDLffMrSID::Init

IDLffShape

Overview of ESRI Shapefiles

Accessing Shapefiles

Creating New Shapefiles

Updating Existing Shapefiles

IDLffShape Properties

IDLffShape::AddAttribute

IDLffShape::Cleanup

IDLffShape::Close

IDLffShape::DestroyEntity

IDLffShape::GetAttributes

IDLffShape::GetEntity

IDLffShape::GetProperty

IDLffShape::Init

IDLffShape::Open

IDLffShape::PutEntity

IDLffShape::SetAttributes

IDLffXMLDOM Classes

IDLffXMLDOMAttr

IDLffXMLDOMAttr Properties

IDLffXMLDOMAttr::Cleanup

IDLffXMLDOMAttr::GetName

IDLffXMLDOMAttr::GetSpecified

IDLffXMLDOMAttr::GetValue

IDLffXMLDOMAttr::Init

IDLffXMLDOMAttr::SetValue

IDLffXMLDOMCDATASection

IDLffXMLDOMCDATASection Properties

IDLffXMLDOMCDATASection::Cleanup

IDLffXMLDOMCDATASection::Init

IDLffXMLDOMCharacterData

IDLffXMLDOMCharacterData Properties

IDLffXMLDOMCharacterData::AppendData

IDLffXMLDOMCharacterData::Cleanup

IDLffXMLDOMCharacterData::DeleteData

IDLffXMLDOMCharacterData::GetData

IDLffXMLDOMCharacterData::GetLength

IDLffXMLDOMCharacterData::Init

IDLffXMLDOMCharacterData::InsertData

IDLffXMLDOMCharacterData::ReplaceData

IDLffXMLDOMCharacterData::SetData

IDLffXMLDOMCharacterData::SubstringData

IDLffXMLDOMComment

IDLffXMLDOMComment Properties

IDLffXMLDOMComment::Cleanup

IDLffXMLDOMComment::Init

IDLffXMLDOMDocument

IDLffXMLDOMDocument Properties

IDLffXMLDOMDocument::Cleanup

IDLffXMLDOMDocument::CreateAttribute

IDLffXMLDOMDocument::CreateCDATASection

IDLffXMLDOMDocument::CreateComment

IDLffXMLDOMDocument::CreateDocumentFragment

IDLffXMLDOMDocument::CreateElement

IDLffXMLDOMDocument::CreateEntityReference

IDLffXMLDOMDocument::CreateNodeIterator

IDLffXMLDOMDocument::CreateProcessingInstruction

IDLffXMLDOMDocument::CreateTextNode

IDLffXMLDOMDocument::CreateTreeWalker

IDLffXMLDOMDocument::GetDoctype

IDLffXMLDOMDocument::GetDocumentElement

IDLffXMLDOMDocument::GetElementsByTagName

IDLffXMLDOMDocument::GetProperty

IDLffXMLDOMDocument::Init

IDLffXMLDOMDocument::Load

IDLffXMLDOMDocument::Save

IDLffXMLDOMDocument::SetProperty

IDLffXMLDOMDocumentFragment

IDLffXMLDOMDocumentFragment Properties

IDLffXMLDOMDocumentFragment::Cleanup

IDLffXMLDOMDocumentFragment::Init

IDLffXMLDOMDocumentType

IDLffXMLDOMDocumentType Properties

IDLffXMLDOMDocumentType::Cleanup

IDLffXMLDOMDocumentType::GetEntities

IDLffXMLDOMDocumentType::GetName

IDLffXMLDOMDocumentType::GetNotations

IDLffXMLDOMDocumentType::Init

IDLffXMLDOMElement

IDLffXMLDOMElement Properties

IDLffXMLDOMElement::Cleanup

IDLffXMLDOMElement::GetAttribute

IDLffXMLDOMElement::GetAttributeNode

IDLffXMLDOMElement::GetElementsByTagName

IDLffXMLDOMElement::GetTagName

IDLffXMLDOMElement::Init

IDLffXMLDOMElement::RemoveAttribute

IDLffXMLDOMElement::RemoveAttributeNode

IDLffXMLDOMElement::SetAttribute

IDLffXMLDOMElement::SetAttributeNode

IDLffXMLDOMEntity

IDLffXMLDOMEntity Properties

IDLffXMLDOMEntity::Cleanup

IDLffXMLDOMEntity::GetNotationName

IDLffXMLDOMEntity::GetPublicId

IDLffXMLDOMEntity::GetSystemId

IDLffXMLDOMEntity::Init

IDLffXMLDOMEntityReference

IDLffXMLDOMEntityReference Properties

IDLffXMLDOMEntityReference::Cleanup

IDLffXMLDOMEntityReference::Init

IDLffXMLDOMNamedNodeMap

IDLffXMLDOMNamedNodeMap Properties

IDLffXMLDOMNamedNodeMap::Cleanup

IDLffXMLDOMNamedNodeMap::GetLength

IDLffXMLDOMNamedNodeMap::GetNamedItem

IDLffXMLDOMNamedNodeMap::Init

IDLffXMLDOMNamedNodeMap::Item

IDLffXMLDOMNamedNodeMap::RemoveNamedItem

IDLffXMLDOMNamedNodeMap::SetNamedItem

IDLffXMLDOMNode

IDLffXMLDOMNode Properties

IDLffXMLDOMNode::AppendChild

IDLffXMLDOMNode::Cleanup

IDLffXMLDOMNode::CloneNode

IDLffXMLDOMNode::GetAttributes

IDLffXMLDOMNode::GetChildNodes

IDLffXMLDOMNode::GetFirstChild

IDLffXMLDOMNode::GetLastChild

IDLffXMLDOMNode::GetNextSibling

IDLffXMLDOMNode::GetNodeName

IDLffXMLDOMNode::GetNodeType

IDLffXMLDOMNode::GetNodeValue

IDLffXMLDOMNode::GetOwnerDocument

IDLffXMLDOMNode::GetParentNode

IDLffXMLDOMNode::GetPreviousSibling

IDLffXMLDOMNode::HasChildNodes

IDLffXMLDOMNode::Init

IDLffXMLDOMNode::InsertBefore

IDLffXMLDOMNode::RemoveChild

IDLffXMLDOMNode::ReplaceChild

IDLffXMLDOMNode::SetNodeValue

IDLffXMLDOMNodeIterator

IDLffXLMDOMNodeIterator Properties

IDLffXMLDOMNodeIterator::Cleanup

IDLffXMLDOMNodeIterator::Init

IDLffXMLDOMNodeIterator::NextNode

IDLffXMLDOMNodeIterator::PreviousNode

IDLffXMLDOMNodeList

IDLffXMLDOMNodeList Properties

IDLffXMLDOMNodeList::Cleanup

IDLffXMLDOMNodeList::GetLength

IDLffXMLDOMNodeList::Init

IDLffXMLDOMNodeList::Item

IDLffXMLDOMNotation

IDLffXMLDOMNotation Properties

IDLffXMLDOMNotation::Cleanup

IDLffXMLDOMNotation::GetPublicID

IDLffXMLDOMNotation::GetSystemID

IDLffXMLDOMNotation::Init

IDLffXMLDOMProcessingInstruction

IDLffXMLDOMProcessingInstruction Properties

IDLffXMLDOMProcessingInstruction::Cleanup

IDLffXMLDOMProcessingInstruction::GetData

IDLffXMLDOMProcessingInstruction::GetTarget

IDLffXMLDOMProcessingInstruction::Init

IDLffXMLDOMProcessingInstruction::SetData

IDLffXMLDOMText

IDLffXMLDOMText Properties

IDLffXMLDOMText::Cleanup

IDLffXMLDOMText::Init

IDLffXMLDOMText::IsIgnorableWhitespace

IDLffXMLDOMText::SplitText

IDLffXMLDOMTreeWalker

IDLffXMLDOMTreeWalker Properties

IDLffXMLDOMTreeWalker::Cleanup

IDLffXMLDOMTreeWalker::FirstChild

IDLffXMLDOMTreeWalker::GetCurrentNode

IDLffXMLDOMTreeWalker::Init

IDLffXMLDOMTreeWalker::LastChild

IDLffXMLDOMTreeWalker::NextNode

IDLffXMLDOMTreeWalker::NextSibling

IDLffXMLDOMTreeWalker::ParentNode

IDLffXMLDOMTreeWalker::PreviousNode

IDLffXMLDOMTreeWalker::PreviousSibling

IDLffXMLDOMTreeWalker::SetCurrentNode

IDLffXMLSAX

IDLffXMLSAX Properties

IDLffXMLSAX::AttributeDecl

IDLffXMLSAX::Characters

IDLffXMLSAX::Cleanup

IDLffXMLSAX::Comment

IDLffXMLSAX::ElementDecl

IDLffXMLSAX::EndCDATA

IDLffXMLSAX::EndDocument

IDLffXMLSAX::EndDTD

IDLffXMLSAX::EndElement

IDLffXMLSAX::EndEntity

IDLffXMLSAX::EndPrefixMapping

IDLffXMLSAX::Error

IDLffXMLSAX::ExternalEntityDecl

IDLffXMLSAX::FatalError

IDLffXMLSAX::GetProperty

IDLffXMLSAX::IgnorableWhitespace

IDLffXMLSAX::Init

IDLffXMLSAX::InternalEntityDecl

IDLffXMLSAX::NotationDecl

IDLffXMLSAX::ParseFile

IDLffXMLSAX::ProcessingInstruction

IDLffXMLSAX::SetProperty

IDLffXMLSAX::SkippedEntity

IDLffXMLSAX::StartCDATA

IDLffXMLSAX::StartDocument

IDLffXMLSAX::StartDTD

IDLffXMLSAX::StartElement

IDLffXMLSAX::StartEntity

IDLffXMLSAX::StartPrefixmapping

IDLffXMLSAX::StopParsing

IDLffXMLSAX::UnparsedEntityDecl

IDLffXMLSAX::Warning

iTools Object Classes

IDLitCommand

IDLitCommand Properties

IDLitCommand::AddItem

IDLitCommand::Cleanup

IDLitCommand::GetItem

IDLitCommand::GetProperty

IDLitCommand::GetSize

IDLitCommand::Init

IDLitCommand::SetProperty

IDLitCommandSet

IDLitCommandSet Properties

IDLitCommandSet::Cleanup

IDLitCommandSet::GetSize

IDLitCommandSet::Init

IDLitComponent

IDLitComponent Properties

IDLitComponent::Cleanup

IDLitComponent::EditUserDefProperty

IDLitComponent::GetFullIdentifier

IDLitComponent::GetProperty

IDLitComponent::GetPropertyAttribute

IDLitComponent::GetPropertyByIdentifier

IDLitComponent::Init

IDLitComponent::QueryProperty

IDLitComponent::RegisterProperty

IDLitComponent::Restore

IDLitComponent::SetProperty

IDLitComponent::SetPropertyAttribute

IDLitComponent::SetPropertyByIdentifier

IDLitComponent::UpdateComponentVersion

IDLitContainer

IDLitContainer Properties

IDLitContainer::Add

IDLitContainer::AddByIdentifier

IDLitContainer::Cleanup

IDLitContainer::FindIdentifiers

IDLitContainer::Get

IDLitContainer::GetByIdentifier

IDLitContainer::Init

IDLitContainer::Remove

IDLitContainer::RemoveByIdentifier

IDLitData

IDLitData Properties

IDLitData::AddDataObserver

IDLitData::Cleanup

IDLitData::Copy

IDLitData::GetByType

IDLitData::GetData

IDLitData::GetProperty

IDLitData::GetSize

IDLitData::Init

IDLitData::NotifyDataChange

IDLitData::NotifyDataComplete

IDLitData::RemoveDataObserver

IDLitData::SetData

IDLitData::SetProperty

IDLitDataContainer

IDLitDataContainer Properties

IDLitDataContainer::Add

IDLitDataContainer::Cleanup

IDLitDataContainer::GetData

IDLitDataContainer::GetIdentifiers

IDLitDataContainer::GetProperty

IDLitDataContainer::Init

IDLitDataContainer::SetData

IDLitDataContainer::SetProperty

IDLitDataOperation

IDLitDataOperation Properties

IDLitDataOperation::Cleanup

IDLitDataOperation::DoExecuteUI

IDLitDataOperation::Execute

IDLitDataOperation::GetProperty

IDLitDataOperation::Init

IDLitDataOperation::SetProperty

IDLitDataOperation::UndoExecute

IDLitIMessaging

IDLitIMessaging Properties

IDLitIMessaging::AddOnNotifyObserver

IDLitIMessaging::DoOnNotify

IDLitIMessaging::ErrorMessage

IDLitIMessaging::GetTool

IDLitIMessaging::ProbeStatusMessage

IDLitIMessaging::ProgressBar

IDLitIMessaging::PromptUserText

IDLitIMessaging::PromptUserYesNo

IDLitIMessaging::RemoveOnNotifyObserver

IDLitIMessaging::SignalError

IDLitIMessaging::StatusMessage

IDLitManipulator

IDLitManipulator Properties

IDLitManipulator::Cleanup

IDLitManipulator::CommitUndoValues

IDLitManipulator::GetCursorType

IDLitManipulator::GetProperty

IDLitManipulator::Init

IDLitManipulator::OnKeyboard

IDLitManipulator::OnLoseCurrentManipulator

IDLitManipulator::OnMouseDown

IDLitManipulator::OnMouseMotion

IDLitManipulator::OnMouseUp

IDLitManipulator::RecordUndoValues

IDLitManipulator::RegisterCursor

IDLitManipulator::SetCurrentManipulator

IDLitManipulator::SetProperty

IDLitManipulatorContainer

IDLitManipulatorContainer Properties

IDLitManipulatorContainer::Add

IDLitManipulatorContainer::GetCurrent

IDLitManipulatorContainer::GetCurrentManipulator

IDLitManipulatorContainer::GetProperty

IDLitManipulatorContainer::Init

IDLitManipulatorContainer::OnKeyboard

IDLitManipulatorContainer::OnMouseDown

IDLitManipulatorContainer::OnMouseMotion

IDLitManipulatorContainer::OnMouseUp

IDLitManipulatorContainer::SetCurrent

IDLitManipulatorContainer::SetCurrentManipulator

IDLitManipulatorContainer::SetProperty

IDLitManipulatorManager

IDLitManipulatorManager Properties

IDLitManipulatorManager::Add

IDLitManipulatorManager::AddManipulatorObserver

IDLitManipulatorManager::GetDefaultManipulator

IDLitManipulatorManager::Init

IDLitManipulatorManager::RemoveManipulatorObserver

IDLitManipulatorVisual

IDLitManipulatorVisual Properties

IDLitManipulatorVisual::Cleanup

IDLitManipulatorVisual::GetProperty

IDLitManipulatorVisual::Init

IDLitManipulatorVisual::SetProperty

IDLitOperation

IDLitOperation Properties

IDLitOperation::Cleanup

IDLitOperation::DoAction

IDLitOperation::GetProperty

IDLitOperation::Init

IDLitOperation::QueryAvailability

IDLitOperation::RecordFinalValues

IDLitOperation::RecordInitialValues

IDLitOperation::RedoOperation

IDLitOperation::SetProperty

IDLitOperation::UndoOperation

IDLitParameter

IDLitParameter Properties

IDLitParameter::Cleanup

IDLitParameter::GetParameter

IDLitParameter::GetParameterAttribute

IDLitParameter::GetParameterSet

IDLitParameter::Init

IDLitParameter::OnDataChangeUpdate

IDLitParameter::OnDataDisconnect

IDLitParameter::QueryParameter

IDLitParameter::RegisterParameter

IDLitParameter::SetData

IDLitParameter::SetParameterAttribute

IDLitParameter::SetParameterSet

IDLitParameterSet

IDLitParameterSet Properties

IDLitParameterSet::Add

IDLitParameterSet::Cleanup

IDLitParameterSet::Copy

IDLitParameterSet::Get

IDLitParameterSet::GetByName

IDLitParameterSet::GetParameterName

IDLitParameterSet::Init

IDLitParameterSet::Remove

IDLitReader

IDLitReader Properties

IDLitReader::Cleanup

IDLitReader::GetData

IDLitReader::GetFileExtensions

IDLitReader::GetFilename

IDLitReader::GetProperty

IDLitReader::Init

IDLitReader::IsA

IDLitReader::SetFilename

IDLitReader::SetProperty

IDLitTool

IDLitTool Properties

IDLitTool::ActivateManipulator

IDLitTool::Add

IDLitTool::AddService

IDLitTool::Cleanup

IDLitTool::CommitActions

IDLitTool::DisableUpdates

IDLitTool::DoAction

IDLitTool::DoSetProperty

IDLitTool::DoUIService

IDLitTool::EnableUpdates

IDLitTool::FindIdentifiers

IDLitTool::GetCurrentManipulator

IDLitTool::GetFileReader

IDLitTool::GetFileWriter

IDLitTool::GetManipulators

IDLitTool::GetOperations

IDLitTool::GetProperty

IDLitTool::GetSelectedItems

IDLitTool::GetService

IDLitTool::GetVisualization

IDLitTool::Init

IDLitTool::RefreshCurrentWindow

IDLitTool::Register

IDLitTool::RegisterCustomization

IDLitTool::RegisterFileReader

IDLitTool::RegisterFileWriter

IDLitTool::RegisterManipulator

IDLitTool::RegisterOperation

IDLitTool::RegisterStatusBarSegment

IDLitTool::RegisterVisualization

IDLitTool::SetProperty

IDLitTool::UnRegister

IDLitTool::UnRegisterCustomization

IDLitTool::UnRegisterFileReader

IDLitTool::UnRegisterFileWriter

IDLitTool::UnRegisterManipulator

IDLitTool::UnRegisterOperation

IDLitTool::UnRegisterStatusBarSegment

IDLitTool::UnRegisterVisualization

IDLitToolbase

IDLitUI

IDLitUI Properties

IDLitUI::AddOnNotifyObserver

IDLitUI::Cleanup

IDLitUI::DoAction

IDLitUI::GetProperty

IDLitUI::GetTool

IDLitUI::GetWidgetByName

IDLitUI::Init

IDLitUI::RegisterUIService

IDLitUI::RegisterWidget

IDLitUI::RemoveOnNotifyObserver

IDLitUI::SetProperty

IDLitUI::UnRegisterUIService

IDLitUI::UnRegisterWidget

IDLitVisualization

IDLitVisualization Properties

IDLitVisualization::Add

IDLitVisualization::Aggregate

IDLitVisualization::BeginManipulation

IDLitVisualization::Cleanup

IDLitVisualization::EndManipulation

IDLitVisualization::Get

IDLitVisualization::GetCenterRotation

IDLitVisualization::GetCurrentSelectionVisual

IDLitVisualization::GetDataSpace

IDLitVisualization::GetDataString

IDLitVisualization::GetDefaultSelectionVisual

IDLitVisualization::GetManipulatorTarget

IDLitVisualization::GetProperty

IDLitVisualization::GetRequestedAxesStyle

IDLitVisualization::GetSelectionVisual

IDLitVisualization::GetTypes

IDLitVisualization::GetXYZRange

IDLitVisualization::Init

IDLitVisualization::Is3D

IDLitVisualization::IsIsotropic

IDLitVisualization::IsManipulatorTarget

IDLitVisualization::IsSelected

IDLitVisualization::Move

IDLitVisualization::On2DRotate

IDLitVisualization::OnAxesRequestChange

IDLitVisualization::OnAxesStyleRequestChange

IDLitVisualization::OnDataChange

IDLitVisualization::OnDataComplete

IDLitVisualization::OnDataRangeChange

IDLitVisualization::OnDimensionChange

IDLitVisualization::OnWorldDimensionChange

IDLitVisualization::Remove

IDLitVisualization::RequestsAxes

IDLitVisualization::Restore

IDLitVisualization::Rotate

IDLitVisualization::Scale

IDLitVisualization::Select

IDLitVisualization::Set3D

IDLitVisualization::SetAxesRequest

IDLitVisualization::SetAxesStyleRequest

IDLitVisualization::SetCurrentSelectionVisual

IDLitVisualization::SetData

IDLitVisualization::SetDefaultSelectionVisual

IDLitVisualization::SetParameterSet

IDLitVisualization::SetProperty

IDLitVisualization::UpdateSelectionVisual

IDLitVisualization::VisToWindow

IDLitVisualization::WindowToVis

IDLitWindow

IDLitWindow Properties

IDLitWindow::Add

IDLitWindow::AddWindowEventObserver

IDLitWindow::Cleanup

IDLitWindow::ClearSelections

IDLitWindow::DoHitTest

IDLitWindow::GetEventMask

IDLitWindow::GetProperty

IDLitWindow::GetSelectedItems

IDLitWindow::Init

IDLitWindow::OnKeyboard

IDLitWindow::OnMouseDown

IDLitWindow::OnMouseMotion

IDLitWindow::OnMouseUp

IDLitWindow::OnScroll

IDLitWindow::OnTimer

IDLitWindow::Remove

IDLitWindow::RemoveWindowEventObserver

IDLitWindow::SetCurrentZoom

IDLitWindow::SetEventMask

IDLitWindow::SetManipulatorManager

IDLitWindow::SetProperty

IDLitWindow::SetTimerInterval

IDLitWindow::ZoomIn

IDLitWindow::ZoomOut

IDLitWriter

IDLitWriter Properties

IDLitWriter::Cleanup

IDLitWriter::GetFileExtensions

IDLitWriter::GetFilename

IDLitWriter::GetProperty

IDLitWriter::Init

IDLitWriter::IsA

IDLitWriter::SetData

IDLitWriter::SetFilename

IDLitWriter::SetProperty

Graphics Object Classes

IDLgrAxis

IDLgrAxis Properties

IDLgrAxis::Cleanup

IDLgrAxis::GetCTM

IDLgrAxis::GetProperty

IDLgrAxis::Init

IDLgrAxis::SetProperty

IDLgrBuffer

IDLgrBuffer Properties

IDLgrBuffer::Cleanup

IDLgrBuffer::Draw

IDLgrBuffer::Erase

IDLgrBuffer::GetContiguousPixels

IDLgrBuffer::GetDeviceInfo

IDLgrBuffer::GetFontnames

IDLgrBuffer::GetProperty

IDLgrBuffer::GetTextDimensions

IDLgrBuffer::Init

IDLgrBuffer::PickData

IDLgrBuffer::QueryRequiredTiles

IDLgrBuffer::Read

IDLgrBuffer::Select

IDLgrBuffer::SetProperty

IDLgrClipboard

IDLgrClipboard Properties

IDLgrClipboard::Cleanup

IDLgrClipboard::Draw

IDLgrClipboard::GetContiguousPixels

IDLgrClipboard::GetDeviceInfo

IDLgrClipboard::GetFontnames

IDLgrClipboard::GetProperty

IDLgrClipboard::GetTextDimensions

IDLgrClipboard::Init

IDLgrClipboard::QueryRequiredTiles

IDLgrClipboard::SetProperty

IDLgrColorbar

IDLgrColorbar Properties

IDLgrColorbar::Cleanup

IDLgrColorbar::ComputeDimensions

IDLgrColorbar::GetProperty

IDLgrColorbar::Init

IDLgrColorbar::SetProperty

IDLgrContour

IDLgrContour Properties

IDLgrContour::AdjustLabelOffsets

IDLgrContour::Cleanup

IDLgrContour::GetCTM

IDLgrContour::GetLabelInfo

IDLgrContour::GetProperty

IDLgrContour::Init

IDLgrContour::SetProperty

IDLgrFont

IDLgrFont Properties

IDLgrFont::Cleanup

IDLgrFont::GetProperty

IDLgrFont::Init

IDLgrFont::SetProperty

IDLgrImage

IDLgrImage Properties

IDLgrImage::Cleanup

IDLgrImage::DeleteTileData

IDLgrImage::GetCTM

IDLgrImage::GetProperty

IDLgrImage::Init

IDLgrImage::SetProperty

IDLgrImage::SetTileData

IDLgrLegend

IDLgrLegend Properties

IDLgrLegend::Cleanup

IDLgrLegend::ComputeDimensions

IDLgrLegend::GetProperty

IDLgrLegend::Init

IDLgrLegend::SetProperty

IDLgrLight

IDLgrLight Properties

IDLgrLight::Cleanup

IDLgrLight::GetCTM

IDLgrLight::GetProperty

IDLgrLight::Init

IDLgrLight::SetProperty

IDLgrModel

IDLgrModel Properties

IDLgrModel::Add

IDLgrModel::Cleanup

IDLgrModel::Draw

IDLgrModel::GetByName

IDLgrModel::GetCTM

IDLgrModel::GetProperty

IDLgrModel::Init

IDLgrModel::Reset

IDLgrModel::Rotate

IDLgrModel::Scale

IDLgrModel::SetProperty

IDLgrModel::Translate

IDLgrMPEG

IDLgrMPEG Properties

IDLgrMPEG::Cleanup

IDLgrMPEG::GetProperty

IDLgrMPEG::Init

IDLgrMPEG::Put

IDLgrMPEG::Save

IDLgrMPEG::SetProperty

IDLgrPalette

IDLgrPalette Properties

IDLgrPalette::Cleanup

IDLgrPalette::GetRGB

IDLgrPalette::GetProperty

IDLgrPalette::Init

IDLgrPalette::LoadCT

IDLgrPalette::NearestColor

IDLgrPalette::SetRGB

IDLgrPalette::SetProperty

IDLgrPattern

IDLgrPattern Properties

IDLgrPattern::Cleanup

IDLgrPattern::GetProperty

IDLgrPattern::Init

IDLgrPattern:SetProperty

IDLgrPlot

IDLgrPlot Properties

IDLgrPlot::Cleanup

IDLgrPlot::GetCTM

IDLgrPlot::GetProperty

IDLgrPlot::Init

IDLgrPlot::SetProperty

IDLgrPolygon

IDLgrPolygon Properties

IDLgrPolygon::Cleanup

IDLgrPolygon::GetCTM

IDLgrPolygon::GetProperty

IDLgrPolygon::Init

IDLgrPolygon::SetProperty

IDLgrPolyline

IDLgrPolyline Properties

IDLgrPolyline::Cleanup

IDLgrPolyline::GetCTM

IDLgrPolyline::GetProperty

IDLgrPolyline::Init

IDLgrPolyline::SetProperty

IDLgrPrinter

IDLgrPrinter Properties

IDLgrPrinter::Cleanup

IDLgrPrinter::Draw

IDLgrPrinter::GetContiguousPixels

IDLgrPrinter::GetFontnames

IDLgrPrinter::GetProperty

IDLgrPrinter::GetTextDimensions

IDLgrPrinter::Init

IDLgrPrinter::NewDocument

IDLgrPrinter::NewPage

IDLgrPrinter::QueryRequiredTiles

IDLgrPrinter::SetProperty

IDLgrROI

IDLgrROI Properties

IDLgrROI::Cleanup

IDLgrROI::GetProperty

IDLgrROI::Init

IDLgrROI::PickVertex

IDLgrROI::SetProperty

IDLgrROIGroup

IDLgrROIGroup Properties

IDLgrROIGroup::Add

IDLgrROIGroup::Cleanup

IDLgrROIGroup::GetProperty

IDLgrROIGroup::Init

IDLgrROIGroup::PickRegion

IDLgrROIGroup::SetProperty

IDLgrScene

IDLgrScene Properties

IDLgrScene::Add

IDLgrScene::Cleanup

IDLgrScene::GetByName

IDLgrScene::GetProperty

IDLgrScene::Init

IDLgrScene::SetProperty

IDLgrSurface

IDLgrSurface Properties

IDLgrSurface::Cleanup

IDLgrSurface::GetCTM

IDLgrSurface::GetProperty

IDLgrSurface::Init

IDLgrSurface::SetProperty

IDLgrSymbol

IDLgrSymbol Properties

IDLgrSymbol::Cleanup

IDLgrSymbol::GetProperty

IDLgrSymbol::Init

IDLgrSymbol::SetProperty

IDLgrTessellator

IDLgrTessellator Properties

IDLgrTessellator::AddPolygon

IDLgrTessellator::Cleanup

IDLgrTessellator::Init

IDLgrTessellator::Reset

IDLgrTessellator::Tessellate

IDLgrText

IDLgrText Properties

IDLgrText::Cleanup

IDLgrText::GetCTM

IDLgrText::GetProperty

IDLgrText::Init

IDLgrText::SetProperty

IDLgrView

IDLgrView Properties

IDLgrView::Add

IDLgrView::Cleanup

IDLgrView::GetByName

IDLgrView::GetProperty

IDLgrView::Init

IDLgrView::SetProperty

IDLgrViewgroup

IDLgrViewgroup Properties

IDLgrViewgroup::Add

IDLgrViewgroup::Cleanup

IDLgrViewgroup::GetByName

IDLgrViewgroup::GetProperty

IDLgrViewgroup::Init

IDLgrViewgroup::SetProperty

IDLgrVolume

IDLgrVolume Properties

IDLgrVolume::Cleanup

IDLgrVolume::ComputeBounds

IDLgrVolume::GetCTM

IDLgrVolume::GetProperty

IDLgrVolume::Init

IDLgrVolume::PickVoxel

IDLgrVolume::SetProperty

IDLgrVRML

IDLgrVRML Properties

IDLgrVRML::Cleanup

IDLgrVRML::Draw

IDLgrVRML::GetDeviceInfo

IDLgrVRML::GetFontnames

IDLgrVRML::GetProperty

IDLgrVRML::GetTextDimensions

IDLgrVRML::Init

IDLgrVRML::SetProperty

IDLgrWindow

IDLgrWindow Properties

IDLgrWindow::Cleanup

IDLgrWindow::Draw

IDLgrWindow::Erase

IDLgrWindow::GetContiguousPixels

IDLgrWindow::GetDeviceInfo

IDLgrWindow::GetDimensions

IDLgrWindow::GetFontnames

IDLgrWindow::GetProperty

IDLgrWindow::GetTextDimensions

IDLgrWindow::Iconify

IDLgrWindow::Init

IDLgrWindow::PickData

IDLgrWindow::QueryRequiredTiles

IDLgrWindow::Read

IDLgrWindow::Select

IDLgrWindow::SetCurrentCursor

IDLgrWindow::SetCurrentZoom

IDLgrWindow::SetProperty

IDLgrWindow::Show

IDLgrWindow::ZoomIn

IDLgrWindow::ZoomOut

Miscellaneous Object Classes

IDL_Container

IDL_Container Properties

IDL_Container::Add

IDL_Container::Cleanup

IDL_Container::Count

IDL_Container::Get

IDL_Container::Init

IDL_Container::IsContained

IDL_Container::Move

IDL_Container::Remove

IDL_Savefile

IDL_Savefile Properties

IDL_Savefile::Cleanup

IDL_Savefile::Contents

IDL_Savefile::Init

IDL_Savefile::Names

IDL_Savefile::Restore

IDL_Savefile::Size

IDLcomActiveX

IDLcomActiveX Properties

IDLcomIDispatch

IDLcomIDispatch Properties

IDLcomIDispatch::GetProperty

IDLcomIDispatch::Init

IDLcomIDispatch::SetProperty

IDLjavaObject

IDLjavaObject Properties

IDLjavaObject::GetProperty

IDLjavaObject::Init

IDLjavaObject::SetProperty

TrackBall

TrackBall Properties

TrackBall::Init

TrackBall::Reset

TrackBall::Update

Part III: Appendices

IDL Direct Graphics Devices

Supported Devices

Devices with Scalable Pixels

Keywords Accepted by the IDL Devices

Window Systems

Backing Store

Image Display On Monochrome Devices

Printing Graphics Output Files

Setting Up The Printer

Positioning Graphics Output

Image Background Color

The CGM Device

Abilities and Limitations

The HP-GL Device

Abilities And Limitations

HP-GL Linestyles

The Metafile Display Device

The Null Display Device

The PCL Device

The Printer Device

The PostScript Device

Using PostScript Fonts

Color PostScript

PostScript Positioning

Importing IDL Plots into Other Documents

The Regis Terminal Device

Defaults for Regis Devices

Regis Limitations

The Tektronix Device

The DEVICE Procedure For Tektronix Terminals

Tektronix Limitations

Tektronix Device Limitations

The Microsoft Windows Device

The X Windows Device

X Windows Visuals

Using Color Under X

Using Pixmaps

How Color is Interpreted for a TrueColor Visual

Setting the X Window Defaults

The Z-Buffer Device

Reading and Writing Buffers

Z-Axis Scaling

Polyfill Procedure

Examples Using the Z-Buffer

Graphics Keywords

Graphic Keywords List

BACKGROUND

CHANNEL

CHARSIZE

CHARTHICK

CLIP

COLOR

DATA

DEVICE

FONT

LINESTYLE

NOCLIP

NODATA

NOERASE

NORMAL

ORIENTATION

POSITION

PSYM

SUBTITLE

SYMSIZE

T3D

THICK

TICKLEN

TITLE

[XYZ]CHARSIZE

[XYZ]GRIDSTYLE

[XYZ]MARGIN

[XYZ]MINOR

[XYZ]RANGE

[XYZ]STYLE

[XYZ]THICK

[XYZ]TICK_GET

[XYZ]TICKFORMAT

[XYZ]TICKINTERVAL

[XYZ]TICKLAYOUT

[XYZ]TICKLEN

[XYZ]TICKNAME

[XYZ]TICKS

[XYZ]TICKUNITS

[XYZ]TICKV

[XYZ]TITLE

Z

ZVALUE

Thread Pool Keywords

System Variables

What Are System Variables?

Changing the Value of a System Variable

Default Values of System Variables

Constant System Variables

Error Handling System Variables

IDL Environment System Variables

Graphics System Variables

Two-Dimensional Coordinate Conversion

IDL Preferences

About IDL Preferences

Understanding Preference Sources

Changing Preference Values

Understanding Preference Files

Using Preference Etiquette

General User Environment Preferences

IDL_DATAFILE_USER_COMMENTS

IDL_DEVICE

IDL_EDIT_INPUT

IDL_EXCEPT

IDL_MORE

IDL_MSG_PREFIX

IDL_PROMPT

IDL_QUIET

IDL_RBUF_PERSIST

IDL_RBUF_SIZE

Directory and Search Path Preferences

IDL_DIR

IDL_DLM_PATH

IDL_HELP_PATH

IDL_MAKE_DLL_COMPILE_DIRECTORY

IDL_PATH

IDL_PATH_CACHE_DISABLE

IDL_STARTUP

IDL_TMPDIR

!CPU Settings Preferences

IDL_CPU_TPOOL_MAX_ELTS

IDL_CPU_TPOOL_MIN_ELTS

IDL_CPU_TPOOL_NTHREADS

IDL_CPU_VECTOR_ENABLE

General Graphics Preferences

IDL_GR_TILECACHESIZE

IDL_GR_TTCACHESIZE

Windows Graphics Preferences

IDL_GR_WIN_HEIGHT

IDL_GR_WIN_LAYOUT

IDL_GR_WIN_ONTOP

IDL_GR_WIN_QSCREEN

IDL_GR_WIN_RENDERER

IDL_GR_WIN_RETAIN

IDL_GR_WIN_WIDTH

X Window System Graphics Preferences

IDL_GR_X_COLORS

IDL_GR_X_DEPTH

IDL_GR_X_HEIGHT

IDL_GR_X_QSCREEN

IDL_GR_X_RENDERER

IDL_GR_X_RETAIN

IDL_GR_X_VISUAL

IDL_GR_X_WIDTH

Windows IDE Preferences

IDL_WDE_EDIT_BACKUP

IDL_WDE_EDIT_[B|F]COLOR_*

IDL_WDE_EDIT_CHROMACODE

IDL_WDE_EDIT_COMPILE_OPTION

IDL_WDE_EDIT_CWD

IDL_WDE_EDIT_FONT

IDL_WDE_EDIT_OPEN_ON_DEBUG

IDL_WDE_EDIT_READONLY

IDL_WDE_EDIT_TAB_ENABLE

IDL_WDE_EDIT_TAB_SP_ON_SAVE

IDL_WDE_EDIT_TAB_WIDTH

IDL_WDE_EXIT_CONFIRM

IDL_WDE_INPUT_FONT

IDL_WDE_LOG_FONT

IDL_WDE_LOG_LINES

IDL_WDE_LOG_TRIM

IDL_WDE_SPLASHSCREEN

IDL_WDE_START_DIR

Motif IDE Preferences

IDL_MDE_EDIT_BACKUP

IDL_MDE_EDIT_COMPILE_OPTION

IDL_MDE_EDIT_CWD

IDL_MDE_EDIT_READONLY

IDL_MDE_EXIT_CONFIRM

IDL_MDE_LOG_LINES

IDL_MDE_LOG_TRIM

IDL_MDE_SPLASHSCREEN

IDL_MDE_START_DIR

Windows Runtime Preferences

IDL_WINRT_FILE

IDL_WINRT_FILE_TYPE

IDL_WINRT_ICON

Support for Obsolete Preference Mechanisms

IDL_PREF_OBSOLETE_MIGRATE

IDL_PREF_OBSOLETE_WARN

Special Characters

Exclamation Point (!)

Apostrophe (')

Semicolon (;)

Dollar Sign ($)

Quotation Mark (")

Period (.)

Ampersand (&)

Colon (:)

Asterisk (*)

At Sign (@)

Question Mark (?)

Reserved Words

Fonts

Overview of Fonts in IDL

Hershey Vector Fonts

TrueType Fonts

Device Fonts

Choosing a Font Type

Fonts in IDL Direct vs. Object Graphics

IDL Direct Graphics

IDL Object Graphics

About Hershey Vector Fonts

Using Hershey Vector Fonts

ISO Latin 1 Encoding

Customizing the Hershey Vector Fonts

About TrueType Fonts

Using TrueType Fonts

IDL TrueType Font Resource Files

Adding Your Own Fonts

Where IDL Searches for Fonts

About Device Fonts

Which Device Fonts Are Available?

Using Device Fonts

Fonts and the PostScript Device

Controlling Size, Position and Font Use

Specifying Font Size

Embedded Formatting Commands

Changing Fonts within a String

Positioning Commands

Formatting Command Examples

A Complex Equation

Hershey Vector-Drawn Font Example

TrueType Font Samples

Hershey Vector Font Samples

IDL GUIBuilder Widget Reference

Common Widget Properties

Common Attributes

Common Events

Base Widget Properties

Base Widget Attributes

Base Widget Events

Button Widget Properties

Creating Multiple Radio Buttons or Checkboxes

Button, Radio Button, and Checkbox Widget Attributes

Button, Radio Button, and Checkbox Widget Events

Text Widget Properties

Text Widget Attributes

Text Widget Events

Label Widget Properties

Label Widget Attributes

Label Widget Events

Slider Widget Properties

Horizontal and Vertical Slider Widget Attributes

Horizontal and Vertical Slider Widget Events

Droplist Widget Properties

Droplist Widget Attributes

Droplist Widget Events

Listbox Widget Properties

Listbox Widget Attributes

Listbox Widget Events

Draw Widget Properties

Draw Area Widget Attributes

Draw Area Widget Events

Table Widget Properties

Table Widget Attributes

Table Widget Events

Tab Widget Properties

Tab Widget Attributes

Tab Widget Events

Tree Widget Properties

Tree Widget Attributes

Tree Widget Events

Obsolete Features

What Are Obsolete Features?

Features Obsoleted in IDL 6.2

Features Obsoleted in IDL 6.1

Features Obsoleted in IDL 6.0

Features Obsoleted in IDL 5.6

Features Obsoleted in IDL 5.5

Features Obsoleted in IDL 5.4

Features Obsoleted in IDL 5.3

SDF Routines Obsoleted in IDL 5.3

What is DFSD and Why Are We Obsoleting It?

Features Obsoleted in IDL 5.2

Features Obsoleted in IDL 5.1

Features Obsoleted in IDL 5.0

Features Obsoleted in IDL 4.0 or Earlier

Obsolete System Variables

Obsolete Graphics Devices

Scientific Data Formats

Scientific Data Formats Overview

CDF-Common Data Format

HDF-Hierarchical Data Format

HDF-EOS-Hierarchical Data Format - Earth Observing System

NetCDF-Network Common Data Format

Common Data Format

Overview of the Common Data Format

Variables and Attributes

Variables

rVariables

zVariables

Attributes

Specifying Attributes and Variables

CDF File Options

File Type

Data Encodings/Decodings

Creating CDF Files

Reading CDF Files

Type Conversion

Example: Creating a CDF File

Alphabetical Listing of CDF Routines

CDF_ATTCREATE

CDF_ATTDELETE

CDF_ATTEXISTS

CDF_ATTGET

CDF_ATTINQ

CDF_ATTNUM

CDF_ATTPUT

CDF_ATTRENAME

CDF_CLOSE

CDF_COMPRESSION

CDF_CONTROL

CDF_CREATE

CDF_DELETE

CDF_DOC

CDF_ENCODE_EPOCH

CDF_EPOCH

CDF_ERROR

CDF_EXISTS

CDF_INQUIRE

CDF_LIB_INFO

CDF_OPEN

CDF_PARSE_EPOCH

CDF_VARCREATE

CDF_VARDELETE

CDF_VARGET

CDF_VARGET1

CDF_VARINQ

CDF_VARNUM

CDF_VARPUT

CDF_VARRENAME

Hierarchical Data Format - HDF5

Overview of the HDF Version 5 Format

The HDF5 Format

HDF4 versus HDF5

The IDL HDF5 Library

Routine Names

Functions Versus Procedures

Error Handling

Dimension Order

IDL HDF5 Limitations

Example: Reading an Image

Example: Reading a Subselection

Example: Creating a Data File

Alphabetical Listing of HDF5 Routines

H5_CLOSE

H5_CREATE

H5_GET_LIBVERSION

H5_OPEN

H5_PARSE

H5A_CLOSE

H5A_CREATE

H5A_DELETE

H5A_GET_NAME

H5A_GET_NUM_ATTRS

H5A_GET_SPACE

H5A_GET_TYPE

H5A_OPEN_IDX

H5A_OPEN_NAME

H5A_READ

H5A_WRITE

H5D_CLOSE

H5D_CREATE

H5D_EXTEND

H5D_GET_SPACE

H5D_GET_STORAGE_SIZE

H5D_GET_TYPE

H5D_OPEN

H5D_READ

H5D_WRITE

H5F_CLOSE

H5F_CREATE

H5F_IS_HDF5

H5F_OPEN

H5G_CLOSE

H5G_CREATE

H5G_GET_COMMENT

H5G_GET_LINKVAL

H5G_GET_MEMBER_NAME

H5G_GET_NMEMBERS

H5G_GET_NUM_OBJS

H5G_GET_OBJ_NAME_BY_IDX

H5G_GET_OBJINFO

H5G_LINK

H5G_MOVE

H5G_OPEN

H5G_SET_COMMENT

H5G_UNLINK

H5I_GET_FILE_ID

H5I_GET_TYPE

H5R_CREATE

H5R_DEREFERENCE

H5R_GET_OBJECT_TYPE

H5R_GET_REGION

H5S_CLOSE

H5S_COPY

H5S_CREATE_SCALAR

H5S_CREATE_SIMPLE

H5S_GET_SELECT_BOUNDS

H5S_GET_SELECT_ELEM_NPOINTS

H5S_GET_SELECT_ELEM_POINTLIST

H5S_GET_SELECT_HYPER_BLOCKLIST

H5S_GET_SELECT_HYPER_NBLOCKS

H5S_GET_SELECT_NPOINTS

H5S_GET_SIMPLE_EXTENT_DIMS

H5S_GET_SIMPLE_EXTENT_NDIMS

H5S_GET_SIMPLE_EXTENT_NPOINTS

H5S_GET_SIMPLE_EXTENT_TYPE

H5S_IS_SIMPLE

H5S_OFFSET_SIMPLE

H5S_SELECT_ALL

H5S_SELECT_ELEMENTS

H5S_SELECT_HYPERSLAB

H5S_SELECT_NONE

H5S_SELECT_VALID

H5S_SET_EXTENT_NONE

H5S_SET_EXTENT_SIMPLE

H5T_ARRAY_CREATE

H5T_CLOSE

H5T_COMMIT

H5T_COMMITTED

H5T_COPY

H5T_EQUAL

H5T_GET_ARRAY_DIMS

H5T_GET_ARRAY_NDIMS

H5T_GET_CLASS

H5T_GET_CSET

H5T_GET_EBIAS

H5T_GET_FIELDS

H5T_GET_INPAD

H5T_GET_MEMBER_CLASS

H5T_GET_MEMBER_NAME

H5T_GET_MEMBER_OFFSET

H5T_GET_MEMBER_TYPE

H5T_GET_NMEMBERS

H5T_GET_NORM

H5T_GET_OFFSET

H5T_GET_ORDER

H5T_GET_PAD

H5T_GET_PRECISION

H5T_GET_SIGN

H5T_GET_SIZE

H5T_GET_STRPAD

H5T_GET_SUPER

H5T_IDL_CREATE

H5T_IDLTYPE

H5T_INSERT

H5T_MEMTYPE

H5T_OPEN

H5T_REFERENCE_CREATE

Hierarchical Data Format

Overview of the HDF Format

HDF Interfaces

Single File Application Interfaces

Multi-File Application Interface

Creating HDF Files

Adding Data to an HDF File

HDF Examples

HDF Scientific Dataset ID Numbers

IDL and HDF Data Types

Common HDF Tag Numbers

Alphabetical Listing of HDF Routines

HDF_AN_ANNLEN

HDF_AN_ANNLIST

HDF_AN_ATYPE2TAG

HDF_AN_CREATE

HDF_AN_CREATEF

HDF_AN_END

HDF_AN_ENDACCESS

HDF_AN_FILEINFO

HDF_AN_GET_TAGREF

HDF_AN_ID2TAGREF

HDF_AN_NUMANN

HDF_AN_READANN

HDF_AN_SELECT

HDF_AN_START

HDF_AN_TAG2ATYPE

HDF_AN_TAGREF2ID

HDF_AN_WRITEANN

HDF_CLOSE

HDF_DELDD

HDF_DF24_ADDIMAGE

HDF_DF24_GETIMAGE

HDF_DF24_GETINFO

HDF_DF24_LASTREF

HDF_DF24_NIMAGES

HDF_DF24_READREF

HDF_DF24_RESTART

HDF_DFAN_ADDFDS

HDF_DFAN_ADDFID

HDF_DFAN_GETDESC

HDF_DFAN_GETFDS

HDF_DFAN_GETFID

HDF_DFAN_GETLABEL

HDF_DFAN_LABLIST

HDF_DFAN_LASTREF

HDF_DFAN_PUTDESC

HDF_DFAN_PUTLABEL

HDF_DFP_ADDPAL

HDF_DFP_GETPAL

HDF_DFP_LASTREF

HDF_DFP_NPALS

HDF_DFP_PUTPAL

HDF_DFP_READREF

HDF_DFP_RESTART

HDF_DFP_WRITEREF

HDF_DFR8_ADDIMAGE

HDF_DFR8_GETIMAGE

HDF_DFR8_GETINFO

HDF_DFR8_LASTREF

HDF_DFR8_NIMAGES

HDF_DFR8_PUTIMAGE

HDF_DFR8_READREF

HDF_DFR8_RESTART

HDF_DFR8_SETPALETTE

HDF_DUPDD

HDF_EXISTS

HDF_GR_ATTRINFO

HDF_GR_CREATE

HDF_GR_END

HDF_GR_ENDACCESS

HDF_GR_FILEINFO

HDF_GR_FINDATTR

HDF_GR_GETATTR

HDF_GR_GETCHUNKINFO

HDF_GR_GETIMINFO

HDF_GR_GETLUTID

HDF_GR_GETLUTINFO

HDF_GR_IDTOREF

HDF_GR_LUTTOREF

HDF_GR_NAMETOINDEX

HDF_GR_READIMAGE

HDF_GR_READLUT

HDF_GR_REFTOINDEX

HDF_GR_SELECT

HDF_GR_SETATTR

HDF_GR_SETCHUNK

HDF_GR_SETCHUNKCACHE

HDF_GR_SETCOMPRESS

HDF_GR_SETEXTERNALFILE

HDF_GR_START

HDF_GR_WRITEIMAGE

HDF_GR_WRITELUT

HDF_HDF2IDLTYPE

HDF_IDL2HDFTYPE

HDF_ISHDF

HDF_LIB_INFO

HDF_NEWREF

HDF_NUMBER

HDF_OPEN

HDF_PACKDATA

HDF_SD_ADDDATA

HDF_SD_ATTRFIND

HDF_SD_ATTRINFO

HDF_SD_ATTRSET

HDF_SD_CREATE

HDF_SD_DIMGET

HDF_SD_DIMGETID

HDF_SD_DIMSET

HDF_SD_END

HDF_SD_ENDACCESS

HDF_SD_FILEINFO

HDF_SD_GETDATA

HDF_SD_GETINFO

HDF_SDinterface_idTOREF

HDF_SD_ISCOORDVAR

HDF_SD_NAMETOINDEX

HDF_SD_REFTOINDEX

HDF_SD_SELECT

HDF_SD_SETCOMPRESS

HDF_SD_SETEXTFILE

HDF_SD_SETINFO

HDF_SD_START

HDF_UNPACKDATA

HDF_VD_ATTACH

HDF_VD_ATTRFIND

HDF_VD_ATTRINFO

HDF_VD_ATTRSET

HDF_VD_DETACH

HDF_VD_FDEFINE

HDF_VD_FEXIST

HDF_VD_FIND

HDF_VD_GET

HDF_VD_GETID

HDF_VD_GETINFO

HDF_VD_INSERT

HDF_VD_ISATTR

HDF_VD_ISVD

HDF_VD_ISVG

HDF_VD_LONE

HDF_VD_NATTRS

HDF_VD_READ

HDF_VD_SEEK

HDF_VD_SETINFO

HDF_VD_WRITE

HDF_VG_ADDTR

HDF_VG_ATTACH

HDF_VG_DETACH

HDF_VG_GETID

HDF_VG_GETINFO

HDF_VG_GETNEXT

HDF_VG_GETTR

HDF_VG_GETTRS

HDF_VG_INQTR

HDF_VG_INSERT

HDF_VG_ISVD

HDF_VG_ISVG

HDF_VG_LONE

HDF_VG_NUMBER

HDF_VG_SETINFO

HDF-EOS

Overview of the HDF-EOS

Feature Routines

HDF-EOS Programming Model

Writing

Reading

Note on Array Ordering

Alphabetical Listing of EOS Routines

EOS_EH_CONVANG

EOS_EH_GETVERSION

EOS_EH_IDINFO

EOS_EXISTS

EOS_GD_ATTACH

EOS_GD_ATTRINFO

EOS_GD_BLKSOMOFFSET

EOS_GD_CLOSE

EOS_GD_COMPINFO

EOS_GD_CREATE

EOS_GD_DEFBOXREGION

EOS_GD_DEFCOMP

EOS_GD_DEFDIM

EOS_GD_DEFFIELD

EOS_GD_DEFORIGIN

EOS_GD_DEFPIXREG

EOS_GD_DEFPROJ

EOS_GD_DEFTILE

EOS_GD_DEFVRTREGION

EOS_GD_DETACH

EOS_GD_DIMINFO

EOS_GD_DUPREGION

EOS_GD_EXTRACTREGION

EOS_GD_FIELDINFO

EOS_GD_GETFILLVALUE

EOS_GD_GETPIXELS

EOS_GD_GETPIXVALUES

EOS_GD_GRIDINFO

EOS_GD_INQATTRS

EOS_GD_INQDIMS

EOS_GD_INQFIELDS

EOS_GD_INQGRID

EOS_GD_INTERPOLATE

EOS_GD_NENTRIES

EOS_GD_OPEN

EOS_GD_ORIGININFO

EOS_GD_PIXREGINFO

EOS_GD_PROJINFO

EOS_GD_QUERY

EOS_GD_READATTR

EOS_GD_READFIELD

EOS_GD_READTILE

EOS_GD_REGIONINFO

EOS_GD_SETFILLVALUE

EOS_GD_SETTILECACHE

EOS_GD_TILEINFO

EOS_GD_WRITEATTR

EOS_GD_WRITEFIELD

EOS_GD_WRITEFIELDMETA

EOS_GD_WRITETILE

EOS_PT_ATTACH

EOS_PT_ATTRINFO

EOS_PT_BCKLINKINFO

EOS_PT_CLOSE

EOS_PT_CREATE

EOS_PT_DEFBOXREGION

EOS_PT_DEFLEVEL

EOS_PT_DEFLINKAGE

EOS_PT_DEFTIMEPERIOD

EOS_PT_DEFVRTREGION

EOS_PT_DETACH

EOS_PT_EXTRACTPERIOD

EOS_PT_EXTRACTREGION

EOS_PT_FWDLINKINFO

EOS_PT_GETLEVELNAME

EOS_PT_GETRECNUMS

EOS_PT_INQATTRS

EOS_PT_INQPOINT

EOS_PT_LEVELINDX

EOS_PT_LEVELINFO

EOS_PT_NFIELDS

EOS_PT_NLEVELS

EOS_PT_NRECS

EOS_PT_OPEN

EOS_PT_PERIODINFO

EOS_PT_PERIODRECS

EOS_PT_QUERY

EOS_PT_READATTR

EOS_PT_READLEVEL

EOS_PT_REGIONINFO

EOS_PT_REGIONRECS

EOS_PT_SIZEOF

EOS_PT_UPDATELEVEL

EOS_PT_WRITEATTR

EOS_PT_WRITELEVEL

EOS_QUERY

EOS_SW_ATTACH

EOS_SW_ATTRINFO

EOS_SW_CLOSE

EOS_SW_COMPINFO

EOS_SW_CREATE

EOS_SW_DEFBOXREGION

EOS_SW_DEFCOMP

EOS_SW_DEFDATAFIELD

EOS_SW_DEFDIM

EOS_SW_DEFDIMMAP

EOS_SW_DEFGEOFIELD

EOS_SW_DEFIDXMAP

EOS_SW_DEFTIMEPERIOD

EOS_SW_DEFVRTREGION

EOS_SW_DETACH

EOS_SW_DIMINFO

EOS_SW_DUPREGION

EOS_SW_EXTRACTPERIOD

EOS_SW_EXTRACTREGION

EOS_SW_FIELDINFO

EOS_SW_GETFILLVALUE

EOS_SW_IDXMAPINFO

EOS_SW_INQATTRS

EOS_SW_INQDATAFIELDS

EOS_SW_INQDIMS

EOS_SW_INQGEOFIELDS

EOS_SW_INQIDXMAPS

EOS_SW_INQMAPS

EOS_SW_INQSWATH

EOS_SW_MAPINFO

EOS_SW_NENTRIES

EOS_SW_OPEN

EOS_SW_PERIODINFO

EOS_SW_QUERY

EOS_SW_READATTR

EOS_SW_READFIELD

EOS_SW_REGIONINFO

EOS_SW_SETFILLVALUE

EOS_SW_WRITEATTR

EOS_SW_WRITEDATAMETA

EOS_SW_WRITEFIELD

EOS_SW_WRITEGEOMETA

Network Common Data Format

Overview of NetCDF

NetCDF Data Modes

Attributes, Dimensions, and Variables

Attributes

Dimensions

Variables

Creating NetCDF Files

Reading NetCDF Files

NetCDF Examples

Type Conversion

Specifying Attributes and Variables

String Data in NetCDF Files

Alphabetical Listing of NCDF Routines

NCDF_ATTCOPY

NCDF_ATTDEL

NCDF_ATTGET

NCDF_ATTINQ

NCDF_ATTNAME

NCDF_ATTPUT

NCDF_ATTRENAME

NCDF_CLOSE

NCDF_CONTROL

NCDF_CREATE

NCDF_DIMDEF

NCDF_DIMID

NCDF_DIMINQ

NCDF_DIMRENAME

NCDF_EXISTS

NCDF_INQUIRE

NCDF_OPEN

NCDF_VARDEF

NCDF_VARGET

NCDF_VARGET1

NCDF_VARID

NCDF_VARINQ

NCDF_VARPUT

NCDF_VARRENAME

Obsolete IDL Features

Obsolete Feature Overview

Backwards Compatibility

IDL Internal Routines

Routines Written in IDL

Detecting Use of Obsolete Features

Documentation for Older Obsolete Routines

Obsolete Routines

DDE Routines

DELETE_SYMBOL

DELLOG

DEMO_MODE

DO_APPLE_SCRIPT

ERRORF

FINDFILE

GETHELP

GET_SYMBOL

HANDLE_CREATE

HANDLE_FREE

HANDLE_INFO

HANDLE_MOVE

HANDLE_VALUE

HDF_DFSD_ADDDATA

HDF_DFSD_DIMGET

HDF_DFSD_DIMSET

HDF_DFSD_ENDSLICE

HDF_DFSD_GETDATA

HDF_DFSD_GETINFO

HDF_DFSD_GETSLICE

HDF_DFSD_PUTSLICE

HDF_DFSD_READREF

HDF_DFSD_SETINFO

HDF_DFSD_STARTSLICE

HDF_VD_GETNEXT

INP, INPW, OUTP, OUTPW

LIVE_Tools

LIVE_CONTOUR

LIVE_CONTROL

LIVE_DESTROY

LIVE_EXPORT

LIVE_IMAGE

LIVE_INFO

LIVE_LINE

LIVE_LOAD

LIVE_OPLOT

LIVE_PLOT

LIVE_PRINT

LIVE_RECT

LIVE_STYLE

LIVE_SURFACE

LIVE_TEXT

LJLCT

MSG_CAT_CLOSE

MSG_CAT_COMPILE

MSG_CAT_OPEN

ONLINE_HELP_PDF_INDEX

PICKFILE

POLYFITW

REWIND

RIEMANN

RSTRPOS

SET_SYMBOL

SETLOG

SETUP_KEYS

SIZE Executive Command

SKIPF

SLICER

STR_SEP

TAPRD

TAPWRT

TIFF_DUMP

TIFF_READ

TIFF_WRITE

TRNLOG

VAX_FLOAT

WEOF

WIDED

WIDGET_MESSAGE

Obsolete Objects

IDLffLanguageCat

IDLffLanguageCat Properties

IDLffLanguageCat::IsValid

IDLffLanguageCat::Query

IDLffLanguageCat::SetCatalog

Routines with Obsolete Arguments or Keywords

BYTEORDER

CALL_EXTERNAL

DEVICE

DIALOG_PICKFILE

DOC_LIBRARY

EXTRACT_SLICE

HELP

IDLgrMPEG::Save

IDLgrVolume::Init

IDLITSYS_CREATETOOL

IDLitTool::RegisterOperation

IDLitVisualization::Add

IDLitVisualization::GetCenterRotation

IDLitVisualization::GetProperty

IVolume

LABEL_REGION

LINFIT

LINKIMAGE

LIVE_PRINT

LM_FIT

MAKE_DLL

MESSAGE

ONLINE_HELP

OPEN

POLY_FIT

PRINT/PRINTF

READ_TIFF

READ/READF

READU

REGRESS

SAVE

SPAWN

SVDFIT

WIDGET_BASE

WIDGET_CONTROL

WRITE_TIFF

WRITEU

XMANAGER

Obsoleted Graphics Devices

The LJ Device

LJ Driver Strengths

LJ Driver Limitations

LJ Suggestions

The Macintosh Device

Obsolete Remote Procedure Calls

Using IDL as an RPC Server

The IDL RPC Directory

Running IDL in Server Mode

Creating the IDL RPC Library

Linking your Client Program

The IDL RPC Library

free_idl_variable

get_idl_variable

idl_server_interactive

kill_server

register_idl_client

send_idl_command

set_idl_timeout

set_idl_variable

set_rpc_verbosity

unregister_idl_client

The varinfo_t Structure

Variable Creation Functions

v_make_byte

v_make_complex

v_make_dcomplex

v_make_double

v_make_float

v_make_int

v_make_long

v_make_string

v_fill_array

More Variable Manipulation Macros

Notes on Variable Creation and Memory Management

Freeing Resources

Creating a Statically-Allocated Array

Allocating Space for Strings

RPC Examples

Building IDL Applications

Part I: Application Programming

Overview of IDL Applications

What is an IDL Application?

Can I Distribute My Application?

About Building Applications in IDL

Creating and Running Programs in IDL

Overview of IDL Program Types

Creating $MAIN$ Programs

Creating a $MAIN$ Program at the Command Line

Creating a $MAIN$ Program in a Text File

About Named Programs

Creating a Simple Program

Running Named Programs

Running Programs Using the IDLDE Interface

Running Programs From the IDL Command Line

Running Programs Using Executive Commands

Compiling Your Program

Automatic Compilation

Manual Compilation

Compilation Errors

Setting Compilation Options

Making Code Readable

Using Code Comments

Using Line Continuations

Maximizing the Editor's Capabilities

Navigating Among Procedures and Functions

Commenting Blocks of Code

Searching

Changing Text Selection Modes (Windows Only)

Modifying Chromacoding (Windows Only)

Editor Window Keyboard Shortcuts

Command Line Tips and Tricks

Copying and Pasting Multiple IDL Code Lines

Recalling Commands

Special Command Line Characters

Special Command Line Key Combination

Recording IDL Command Line Input

Interrupting or Aborting Execution

Variable Context After Interruption

Aborting IDL

For More Information on Programming

Executing Batch Jobs in IDL

Overview of Batch Files

Batch File Execution

Executing a Batch File

Naming and Locating Batch Files

Interpretation of Batch Statements

A Batch Example

Creating SAVE Files of Programs and Data

Overview of SAVE Files

What Can be Stored in a SAVE File

Save Files and Application Development

Accessing and Running SAVE Files

About Program and Data SAVE Files

Creating SAVE Files of Program Files

Example: A SAVE File of a Simple Routine

Example: A Save File of a Simple Widget Application

Example: Creating a SAVE File of an Object

Example: A SAVE File of a Custom iPlot Display

Other Examples of SAVE File Creation

Saving Variables from an IDL Session

Saving Data Variables in a SAVE File

Saving Heap Variables in a SAVE File

Saving System Variables in a SAVE File

Executing SAVE Files

Using the IDL Virtual Machine to Run SAVE Files

Executing SAVE Files by Name

Using RESTORE to Access SAVE Files

Using the IDL_Savefile Object to Access SAVE Files

Changes to IDL 5.4 SAVE Files

Creating Procedures and Functions

Overview of Procedures and Functions

Defining a Procedure

Calling a Procedure

Procedure Examples

Defining a Function

Function Example

Automatic Compilation and Execution

About Calling and Compiling Functions

Parameters

Correspondence of Formal and Actual Parameters

Copying Parameters

Number of Parameters

Determining Variable Scope

Function Parameters Example

Using Keyword Parameters

Determining if a Keyword is Set

Supplying Values for Missing Keywords

Supplying Values for Missing Arguments

Keyword Inheritance

Keyword Inheritance Mechanisms

Choosing a Keyword Inheritance Mechanism

Example: Writing a Wrapper Routine

Example: By Value Versus By Reference

Entering Procedure Definitions

How IDL Resolves Routines

Parameter Passing Mechanism

Calling Mechanism

Recursion

Example

Calling Functions/Procedures Indirectly

Example

Library Authoring

Overview of Library Authoring

Recognizing Potential Naming Conflicts

Choosing Routine Names to Avoid Conflicts

Cross-Platform Naming of IDL .pro Files

Advice for Library Authors

Prefixing Routine Names

Converting Existing Libraries

Program Control

Overview of Program Control

Compound Statements

Conditional Statements

Loop Statements

Jump Statements

Compound Statements

BEGIN...END

IF...THEN...ELSE

Using Statement Blocks with the IF Statement

Nesting IF Statements

CASE

SWITCH

CASE Versus SWITCH

FOR...DO

Avoid Invariant Expressions

FOR Statement with an Increment of One

FOR Statement with Variable Increment

Sequence of the FOR Statement

REPEAT...UNTIL

WHILE...DO

Jump Statements

Statement Labels

BREAK

CONTINUE

GOTO

Definition of True and False

Debugging and Error-Handling

Debugging and Error-Handling Overview

What Happens When Execution Stops

Example: Correcting Undefined Variable

Working with Breakpoints

Using Breakpoints

Stepping Through a Program

Manually Stepping Through Code

Automatically Stepping Through Code

Monitoring Variable Values

Showing Variable Values During Execution

The Variable Watch Window

Disappearing Variables

Correcting Errors During Execution

Obtaining Traceback Information

Controlling and Recovering from Errors

Interaction of CATCH, ON_ERROR, and ON_IOERROR

Creating Custom Error Messages

Message Blocks

Notifying the User of Errors

Math Errors

Accumulated Math Error Status

Special Floating-Point Values

The FINITE Function

Integer Conversions

Building Cross-Platform Applications

Overview of Cross-Platform Issues

Which Operating System is Running?

Operating System Access

File and Path Specifications

Choosing Files at Runtime

Selecting Files Programmatically

Files and I/O

Byte Order Issues

Math Exceptions

Responding to Screen Size and Colors

Finding Screen Size

Number of Colors Available

Printing

SAVE and RESTORE

Widgets in Cross-Platform Programs

Dialog Routines

Base Widgets

Positioning Widgets within a Base Widget

Fonts Used in Widget Applications

Motif Resources

WIDGET_STUB

Widget Event Inconsistencies

Using External Code

IDL DataMiner Issues

Writing Efficient IDL Programs

Overview of Program Efficiency

IDL Implementation

Additional Programming Efficiency Resources

Use Vector and Array Operations

Use System Functions and Procedures

Example

Virtual Memory

Access Large Arrays by Memory Order

Running Out of Virtual Memory

Minimizing Virtual Memory

The TEMPORARY Function

Virtual Memory System Parameters

The IDL Code Profiler

The Profile Dialog

The Profile Report Dialog

Using the IDL Code Profiler

Multithreading in IDL

The IDL Thread Pool

Benefits of the IDL Thread Pool

Possible Drawbacks to the Use of the IDL Thread Pool

Controlling the IDL Thread Pool

Viewing the Current Thread Pool Settings

Using the Default Thread Pool Settings

Changing Global Thread Pool Settings

Changing Thread Pool Settings for a Specific Computation

Disabling the Thread Pool

Routines that Use the Thread Pool

Part II: Components of the IDL Language

Expressions and Operators

Overview of Expressions and Operators

Mathematical Operators

Using Increment/Decrement

Using Exponentiation

Minimum and Maximum Operators

Using Minimum or Maximum with Complex Numbers

Using Minimum or Maximum with NaN Values

Matrix Operators

Logical Operators

Short-circuiting

Additional Logical Operator Examples

Bitwise Operators

Using the NOT Operator

Additional Bitwise Operator Examples

Relational Operators

Using Relational Operators with Arrays

Relational Operators with Infinity and NaN Values

Assignment and Compound Assignment

Compound Assignment Operators

Other Operators

Working with Conditional Expressions

Operator Precedence

Efficiency and Expression Evaluation Order

Working with Data in IDL

Data Types

Basic Data Types

Complex Data Types

Data Type and Structure of Expressions

Hierarchy of IDL Data Types

Expression Type

Expression Structure

Date/Time Data

How to Generate Date/Time Data

Date/Time Data Examples

Defining and Using Constants

Integer Constants

Floating-Point and Double-Precision Constants

Complex Constants

String Constants

Accuracy and Floating Point Operations

Roundoff Error

Truncation Error

Routines for Mathematical Error Assessment

Type Conversion Functions

Variables

Attributes of Variables

Variable Names

System Variables

Strings

Overview of Strings

A Note About the Examples

String Operations

Non-string and Non-scalar Arguments

String Concatenation

Using STRING to Format Data

Reading Data from Strings

Byte Arguments and Strings

Case Folding

Whitespace

Removing All Whitespace

Removing Leading or Trailing Blanks

Removing All Types of Whitespace

Finding the Length of a String

Substrings

Searching for a Substring

Searching For the Last Occurrence of a Substring

Inserting the Contents of One String into Another

Extracting Substrings

Splitting and Joining Strings

Comparing Strings

Case-Insensitive Comparisons of the First N Characters

String Comparisons Using Wildcards

Complex Comparisons Using Regular Expressions

Non-Printing Characters

Learning About Regular Expressions

Meta Characters

Subexpressions

Bracket Expressions

Special Characters in Regular Expressions

Arrays

Overview of Arrays

Determining the Number of Array Elements

Operations on Array Expressions

Array Subscripts

Understanding Array Subscripts

Extra Dimensions

Array Subscript Syntax: [ ] vs. ( )

Assignment Operations and Arrays

Using Scalar Values as Subscripts

Subscripting Arrays Using Scalar Values

Using Arrays as Subscripts

Examples Using Arrays as Subscripts

Conditionally Altering Array Elements

Subscript Ranges

Dimensionality of Subarrays

Avoid Using Range Subscripts

Combining Subscripts

Subscript Ranges

Other Subscript Arrays

Scalars

Manipulating Arrays

Transposing Arrays

Multiplying Arrays

Columns, Rows, and Array Majority

Structures

Overview of Structures

Named Structures

Anonymous Structures

Creating and Defining Structures

Structure Inheritance

Example of Creating a Structure

Structure References

Subscripted Structure References

Examples of Structure References

Using HELP with Structures

Parameter Passing with Structures

Storing Into Array Fields

Arrays of Structures

Creating an Array of Structures

Examples of Arrays of Structures

Structure Input/Output

Formatted Input/Output with Structures

Unformatted Input/Output with Structures

Strings

String Length Issues

Advanced Structure Usage

Number of Structure Tags

Names of Structure Tags

Example

Automatic Structure Definition

Relaxed Structure Assignment

Using Relaxed Structure Assignment

Pointers

Overview of Pointers

Heap Variables

Creating Heap Variables

Saving and Restoring Heap Variables

Pointer Heap Variables

IDL Pointers

Null Pointers

The PTR_NEW Function

The PTRARR Function

Operations on Pointers

Assignment

Dereference

Equality and Inequality

Dangling References

Heap Variable Leakage

Pointer Validity

Freeing Pointers

Pointer Examples

Creating a Linked List

Example Files-Using Pointers to Create Binary Trees

Files and Input/Output

Overview of File Access

About Opening Files

Simple I/O Examples

Routines for Input/Output

Formatted and Unformatted Input/Output

Advantages and Disadvantages of Unformatted I/O

Advantages and Disadvantages of Formatted I/O

Opening Files

Platform-Specific Keywords to the OPEN Procedure

Closing Files

Understanding (LUNs)

The Standard Input, Output, and Error LUNs

File Units (1-99)

File Units (100 -128)

Returning Information About a File Unit

Using FSTAT

File Unit Manipulations

Flushing File Units

Positioning File Pointers

Testing for End-Of-File

Reading and Writing Very Large Files

Limitations of Large File Support

Using Free Format Input/Output

Free Format Input

Free Format Output

Example: Free Format Input/Output

Using Explicitly Formatted Input/Output

Rules for Explicitly Formatted Input/Output

Format Reversion

Format Codes

Syntax of Format Codes

Available Format Codes

Format Code Examples

A Format Code

: Format Code

$ Format Code

F, D, E, and G Format Codes

B, I, O, and Z Format Codes

Q Format Code

Quoted String and H Format Codes

T Format Code

TL Format Code

TR and X Format Codes

C() Format Code

C printf-Style Quoted String Format Code

Example: Reading Formatted Table Data

Example: Reading Records With Multiple Array Elements

Using Unformatted Input/Output

Unformatted Input/Output of String Variables

Example: Reading C-Generated Unformatted Data with IDL

Example: Reading IDL-Generated Unformatted Data with C

Example: Reading a Sun Rasterfile from IDL

Portable Unformatted Input/Output

XDR Considerations

IDL XDR Conventions for Programmers

Example: Reading C-Generated XDR Data with IDL

Associated Input/Output

Example of Using Associated Input/Output

Reading Data from Associated Files

Writing Data to Associated Files

Multiple Subscripts With Associated File Variables

Files with Multiple Structures

Offset Parameter

Efficiency

Unformatted Data from UNIX FORTRAN Programs

File Manipulation Operations

Working with UNIX Links

Reading and Writing FORTRAN Data

Reading Data from a FORTRAN File

Writing Data to a FORTRAN File

Platform-Specific File I/O Information

UNIX-Specific Information

Windows-Specific Information

Using Language Catalogs

What Is a Language Catalog?

Creating a Language Catalog File

Storing and Loading Language Catalog Files

Using the IDLffLangCat Class

Creating a Language Catalog Object

Adding Application Keys

Getting and Setting Languages

Performing Queries

Destroying a Language Catalog Object

Widget Example

Using the XML Parser Object Class

About XML

About XML Parsers

Using the XML Parser

Subclassing the IDLffXMLSAX Object Class

Using Your Parser

Validation

Example: Reading Data Into an Array

Creating the xml_to_array Object Class

Using the xml_to_array Parser

Example: Reading Data Into Structures

Creating the xml_to_struct Object Class

Using the xml_to_struct Parser

Building Complex Data Structures

Using the XML DOM Object Classes

About the Document Object Model

When to Use the DOM

About the DOM Structure

How IDL Uses the DOM Structure

About the XML DOM Object Classes

IDLffXMLDOMNode Class Hierarchy

IDLffXMLDOM Object Helper Classes

IDL Node Ownership

Saving and Restoring IDLffXMLDOM Objects

Using the XML DOM Classes

Loading an XML Document

Reading XML Data

Modifying Existing Data

Creating New Data

Destroying IDLffXMLDOM Objects

Working with Whitespace

Orphan Nodes

Tree-Walking Example

Part III: Creating Applications in IDL

Creating IDL Projects

Overview of IDL Projects

Access to all Files in Your Application

Working with an IDL Project

Compiling and Running Your Application

Build Your Application

Exporting Your Applications

The IDL Project Interface

Example of a Project

Where to Store the Files for a Project

Creating a Project

Opening, Closing, and Saving Projects

Opening a Project

Saving a Project

Closing a Project

Modifying Project Groups

Modifying Project Groups

Adding, Moving, and Removing Files

Adding Files

Moving Files

Removing Files

Working with Files in a Project

Editing a Source File

Compiling a File

Testing a File

Setting the Properties of a File

Modifying Properties of Multiple Files

Setting the Options for a Project

Selecting the Build Order

Compiling an Application from a Project

To Compile All Files in Your Project

To Compile Only Modified Files in Your Project

Building a Project

About IDL GUIBuilder Files

Running an Application from a Project

Exporting a Project

Exporting Your Project's Source Files

Exporting Your Project to a Save File

Exporting a Runtime Distribution

Providing Online Help For Your Application

Overview of Creating Application Help

Providing Help Within the User Interface

Tooltips

Status Lines

Text Widgets

Displaying Text Files

Using an External Viewer

About IDL's Online Help System

Format of an IDL Assistant Help System

Creating Help Content

Creating an Assistant Document Profile

Optional Help System Files

Displaying Help Topics

Paths for Help Files

Using Other Online Help Viewers

Microsoft Windows Help

Portable Document Format Files

HTML Files

Distributing Runtime Mode Applications

What Is an IDL Runtime Mode Application?

Types of IDL Runtime Applications

Licensing Options for IDL Runtime Applications

Limitations of Runtime Applications

Error Handling

Working Directory of Runtime Applications

Steps to Distribute a Runtime Application

Preferences for Runtime Applications

Preference Etiquette

Loading Preference Values at Application Startup

Windows Runtime Preferences

Examples

Runtime Licensing

Ensuring That Your License is Used

Obtaining and Installing Runtime Licenses

Installing the License File

Embedded Licensing

Optional Embedded Features

Creating an Application Distribution

Creating a Distribution Using Project Export

Creating a Distribution Using the make_rt Script

Using an Existing IDL Installation

Starting a Runtime Application

Using an Exported IDL Distribution

Using an Existing IDL Distribution

Specifying Application Preferences at Startup

What Happens When IDL Runs Your Application

Installing Your Application

Incorporating the IDL DataMiner

Distributing Virtual Machine Applications

What Is a Virtual Machine Application?

If You Are Running a Virtual Machine Application

If You Are Creating a Virtual Machine Application

Limitations of Virtual Machine Applications

Steps to Distribute Your Application

Preferences for Virtual Machine Applications

Options for Windows Applications

Options for UNIX/Macintosh Applications

Creating Application SAVE Files

Single vs. Multiple SAVE Files

Version Compatibility of SAVE Files

Starting a Virtual Machine Application

Windows

UNIX

Mac OS X

Installing the IDL Virtual Machine

Upgrading or Removing the IDL Virtual Machine

Installing Your Virtual Machine Application

Distributing Your Application on a CD-ROM

Create a CD-ROM Image Directory

Copy the IDL Virtual Machine Distribution

Copy and Rename the idlvm.exe File

Copy and Rename the idlvm.ini File

Copy Your Application Files

Create an idl.pref File

Modify the idlvm.ini File

Copy and Modify the autorun.inf File

Create and Test the CD-ROM

Format of the .ini File

Distributing Callable IDL Applications

What Is a Callable IDL Application?

Licensing Options for Callable IDL Applications

Limitations of Runtime Mode Callable IDL Applications

Steps to Distribute a Callable IDL Application

Preferences for Callable IDL Applications

Runtime Licensing

Embedded Licensing

Obtaining Your Licensing Information

Modifying Your Application Code

Creating an Application Distribution

Windows

UNIX

Starting a Callable IDL Application

Windows

UNIX

Installing Your Callable IDL Application

Distributing ActiveX Applications

What Is an ActiveX Application?

Licensing Options for IDL ActiveX Applications

Limitations of Runtime Mode ActiveX Applications

Steps to Distribute an ActiveX Application

Preferences for ActiveX Applications

Runtime Licensing

Embedded Licensing

Obtaining Your Licensing Information

Modifying Your Application Code

Creating an Application Distribution

Starting Your ActiveX Application

Installing Your ActiveX Application

Installing and Registering ActiveX Files

Part IV: Creating Graphical User Interfaces in IDL

Creating Widget Applications

User Interface Options in IDL

Creating an iTool Interface

Creating a Widget Interface

Creating a Custom iTool Interface

About Widgets

About Widget Applications

Running the Example Code

Types of Widgets

Widget Programming Concepts

Widget Values

Widget IDs

Widget Parent/Child Relationships

Instantiating and Displaying Widgets

Example: A Simple Widget Application

Widget Application Lifecycle

Construct the Widget Hierarchy

Provide an Event-Handling Routine

Realize the Widgets

Register the Program with the XMANAGER

Interact with the Application

Destroy the Widgets

Manipulating Widgets

WIDGET_CONTROL

WIDGET_EVENT

WIDGET_INFO

XMANAGER

XREGISTERED

Working With Widget IDs

Use the Widget Event Structure

Pass the Widget ID Using a Widget User Value

Use a User Name to Locate the Widget

Pass the Widget ID Explicitly

Use a COMMON Block

Widget User Values

Widget Event Processing

What are Widget Events?

Structure of Widget Events

Managing Widget Events with XMANAGER

Event Processing and Callbacks

Example: Event Processing and User Values

Managing Application State

Techniques for Preserving Application State

Creating a Compound Widget

Writing Compound Widgets

The HANDLER Field of the Widget Event Structure

Example: Compound Widget

Using CW_DICE in a Widget Program

Debugging Widget Applications

Using the IDL GUIBuilder

Overview of IDL GUIBuilder

Starting the IDL GUIBuilder

Opening Existing Interface Definitions

Creating an Example Application

Defining Menus for the Top-level Base

Creating a Draw Widget

Running the Application in Test Mode

Generating the IDL Code

Handling the Open File Event

Handling the Exit Event

Handling the Load Color Table Event

Handling the Smooth Event

Compiling and Running the Example Application

IDL GUIBuilder Tools

Using the IDL GUIBuilder Toolbar

Using the Properties Dialog

Using the Widget Browser

Using the Menu Editor

Using the Bitmap Editor

Using the Tree Editor

Widget Operations

Selecting Widgets

Moving and Resizing Widgets

Cutting, Copying, and Pasting Widgets

Deleting Widgets

Undoing and Redoing Operations

Generating Files

Generating Resource Files

Generating IDL Code

IDL GUIBuilder Examples

Understanding IDL GUIBuilder Event Handling Code

Writing Event Callback Routines

Handling Initialization Arguments

Integrating Multiple Interfaces

Adding Compound Widgets

Controlling Widget Display

Widget Properties

Widget Application Techniques

Working with Widget Events

Interrupting the Event Loop

Identifying Widget Type from an Event

Keyboard Focus Events

Timer Events

Tracking Events

Context Menu Events

Using Multiple Widget Hierarchies

Widget Group Behaviors

Floating bases

Modal bases

Menubars

Creating Menus

Button Groups

Lists

Pulldown Menus

Menus on Top-Level Bases

Context-Sensitive Menus

Widget Sizing

Widget Geometry Terms and Concepts

How Widget Geometry is Determined

Dynamic Resizing

Explicitly Specifying the Size and Location of Widgets

Preventing Layout Flicker

Tips on Creating Widget Applications

Portability Issues

Using Button Widgets

Bitmap Button Labels

Tooltips

Exclusive and Non-Exclusive Buttons

Using Draw Widgets

Using Direct Graphics in Draw Widgets

Using Object Graphics in Draw Widgets

Scrolling Draw Widgets

Context Events in Draw Widgets

Draw Widget Example

Button, Motion, Wheel, and Keyboard Events

Using Property Sheet Widgets

Registering Properties

Selecting Properties

Changing Properties

User-defined Properties

Property Sheet Sizing

Property Sheet Example

Multiple Properties Example

Using Table Widgets

Default Table Size

Selection Modes

Data Types

Data Retrieval

Edit Mode

Cell Attributes

Example: Single Data Type Data

Example: Structure Data

Using Tab Widgets

Example: A Simple Tab Widget

Tab Sizing and Multiline Behavior

Example: Retrieving Values

Using Tree Widgets

Types of Tree Widgets

Example: A Simple Tree

Setting the Tree Selection State

Making a Tree Entry Visible

Replacing the Default Bitmaps

Enhancing Widget Application Usability

Tabbing in Widget Applications

Defining Tabbing Behavior in a Windows Application

Assigning Accelerators in Widget Applications

Disabling Button Widget Accelerators

Object Programming

The Basics of Using Objects in IDL

Object-Oriented Programming Concepts

Using IDL Objects

Creating Objects

Acting on Objects Using Methods

Object Method Syntax

Arguments

Modifying Object Properties

Properties and the Property Sheet Interface

Setting Properties at Initialization

Setting Properties of Existing Objects

Retrieving Property Settings

About Object Property Descriptions

Destroying Objects

Using Operations with Objects

Object Assignment

Object Equality and Inequality

Object Examples

Creating an Object Graphics Display

Overview of Object Graphics Classes

Naming Conventions

Creating an Object Graphics Display

Object Graphics Display Hierarchy

Components of an Object Graphics Hierarchy

Destination Objects

Display Objects

Visualization Objects

File Format Objects

Color in Object Graphics

Color and Destination Objects

A Note about Draw Widgets

Indexed Color Model in Object Graphics

RGB Color Model in Object Graphics

Palette Objects

Creating Palette Objects

Using Palette Objects

Specifying Object Color

Example Specifying RGB Values

How IDL Interprets Color Values

Indexed Color Model

RGB Color Model

Rendering Objects

Simple Plot Example

Controlling the Depth of Objects in a View

Controlling Object Transparency

Opacity and Transparency

Blending Mathematics

Rendering Order

Viewing and Rotation

Depth Buffer Updating

Performance Tuning Object Graphics

Positioning Objects in a View

Positioning Visualizations in a View

Viewport

Location

Coordinate Systems and Scaling

Viewport

Location and Dimension

Projection

Parallel Projections

Perspective Projections

Eye Position

View Volume

Viewplane Rectangle

Near and Far Clipping Planes

Finding an Appropriate View Volume

Converting Data to Normal Coordinates

A Function for Coordinate Conversion

Example: Centering an Image

Example: Transforming a Surface

Zooming within an Object Display

Zooming in on an Object Graphics Image Display

Translating, Rotating and Scaling Objects

Translation

Rotation

Scaling

Combining Transformations

Interactive 3D Transformations

Working with Image Objects

Overview of Image Objects

Defining Image Palettes

Configuring Common Object Properties

Creating Image Objects

Displaying Binary Images with Object Graphics

Displaying Grayscale Images with Object Graphics

Positioning Image Objects in a View

Displaying Multiple Images in Object Graphics

Panning in Object Graphics

Defining Transparency in Image Objects

Transparency and Image Warping

Image Transparency Examples

Warping Image Objects

Mapping an Image onto a Sphere

Mapping an Image onto a Sphere Using Object Graphics

Image Tiling

Image Pyramids

Image Tiles

Adding Tiling to Your Application

Querying Required Tiles

Panning Tiled Images

Zooming Tiled Images

Copying and Printing a Tiled Image

Preloading Tiles

Example: JPEG2000 Files for Tiling

Working with Plots and Graphs

Contour Objects

Creating Contour Objects

Using Contour Objects

Plot Objects

Creating Plot Objects

Using Plot Objects

Polar Plots

Axis Objects

Creating Axis Objects

Using Axis Objects

Logarithmic Axes

Displaying Date/Time Data on Axis Objects

Displaying Date/Time Data on a Plot Display

Displaying Date/Time Data on a Contour Display

Axis Titles and Tickmark Text

Reverse Axis Plotting

Symbol Objects

Creating Symbol Objects

Using Symbol Objects

A Plotting Routine

Improvements to the OBJ_PLOT Routine

Working with Surface Objects

Surface Objects

Creating Surface Objects

Using Surface Objects

An Interactive Surface Example

Creating Volume Objects

Creating a Volume Object

Using Volume Objects

Setting Volume Object Attributes

Volume Opacity

Volume Color

Volume Lighting

Compositing

ZBuffering

Interpolation

Rendering speed

Polygon and Polyline Objects

About Polygon and Polyline Objects

Polygon Objects

Creating Polygon Objects

Configuring Polygon Objects

Tessellator Objects

Creating Tessellator Objects

Using Tessellator Objects

Pattern Objects

Creating Pattern Objects

Using Pattern Objects

Polygon Optimization

Polygon Mesh Optimization

Back-face Culling

Normal Computations

Polyline Objects

Creating Polyline Objects

Using Polyline Objects

Annotating an Object Display

Annotating Object Graphic Displays

Text Objects

Creating Text Objects

Using Text Objects

A Text Example

Font Objects

Creating Font Objects

Assigning a Font Object to a Text Object

Font Objects and Resource Use

ROI Objects

Legend Objects

Creating Legend Objects

Using Legend Objects

Colorbar Objects

Creating Colorbar Objects

Using Colorbar Objects

Light Objects

Creating Light Objects

Configuring Light Objects

Optimizing Light Object Use

Custom Image Object Annotations

Annotating Indexed Image Objects

Annotating RGB Image Objects

Animating Objects

Overview of Object Animation

Configuring an Animation Model Object

Using Multiple Models

Controlling the Animation Rate

Designing a Behavior Object

Factors Affecting Animation Performance

Multiple Image Copies

Graphics Display Refresh Rate

Example: Interactive Cine Animation

Selecting Objects

Selection and Data Picking

Object Selection

Selecting Views

Selecting Visualization Objects

Selecting Models

A Selection Example

Data Picking

A Data Picking Example

Displaying, Copying and Printing Objects

Overview of Object Graphic Destinations

Window Objects

Creating Window Objects

Color Model

Note on Window Size Limits

Using Window Objects

Erasing a Window

Exposing or Hiding a Window

Iconifying a Window

Setting the Window Cursor

Saving/Restoring Windows

Saving Window Contents to a File

Improving Window Drawing Performance

Hardware vs. Software Rendering

Retained Graphics and Expose Events

Instancing to Improving Redraw Performance

Buffer Objects

Creating Buffer Objects

Clipboard Objects

Creating Clipboard Objects

Printer Objects

Creating Printer Objects

Color Model

Printer Dialogs

Drawing to a Printer

Positioning Objects Within a Page

Starting a New Page on a Printer

Submitting a Printer Job

Bitmap and Vector Graphic Output

Bitmap Graphics

Vector Graphics

Guidelines for Choosing Bitmap or Vector Graphics

Controlling What is Displayed in Vector Graphics

Creating Custom Objects in IDL

Creating Custom Objects

IDL Object Overview

Classes and Instances

Encapsulation

Methods

Polymorphism

Inheritance

Persistence

Undocumented Object Classes

Creating an Object Class Structure

Automatic Class Structure Definition

Inheritance

Null Objects

Object Heap Variables

Dangling References

Heap Variable "Leakage"

Freeing Heap Variables

The Object Lifecycle

Creation and Initialization

Destruction

Creating Custom Object Method Routines

Defining Method Routines

The Implicit Self Argument

Calling Method Routines

Searching for Method Routines

Method Overriding

Specifying Class Names in Method Calls

Object Examples

Creating Composite Classes or Subclasses

iTool Developer's Guide

Overview of iTools

What are iTools?

What is the iTools Component Framework?

Advantages of Using the Framework

About this Manual

What this Manual is Not

About the iTools Code Base

Documented vs. Undocumented Classes

Skills Required to Use the iTools Component Framework

Part I: Understanding the iTools Component Framework

iTool System Architecture

Overview of the iTool System Architecture

iTools Object Model Diagram

iTool Object Identifiers

Proxy Identifiers

Object Descriptors

iTool Object Hierarchy

iTool System Object

iTool Objects

Registering Components

Registration Methods

iTool Messaging System

Sending Notifications

Notification Messages

Observers

System Resources

Icon Bitmaps

Help System

Data Management

Overview of iTool Data Management

iTool Data Manager

Adding Data to the Data Manager

Removing Data from the Data Manager

iTool Data Types

Composite Data Types

Data Types of iTool Components

iTool Data Objects

Data Objects

Data Containers

Parameter Sets

Predefined iTool Data Classes

Parameters

Parameter Names

Parameter Data Types

Registering Parameters

Data Type Matching

Data Update Mechanism

Property Management

About the Properties Interface

What is a Property?

Properties vs. Preferences

How are Properties Displayed?

Setting and Retrieving Property Values

Property Data Types

Property Registration

Property Identifiers

Property Attributes

Property Aggregation

Property Data Types

User Defined Property Types

Registering Properties

Registering a Property

Pre-Registered Properties

Property Identifiers

Property Attributes

Available Property Attributes

Property Aggregation

Working with Aggregated Properties

Property Update Mechanism

Properties of the iTools System

Part II: Using the iTools Component Framework

Creating an iTool

Overview of iTool Creation

The iTool Creation Process

Creating a New iTool Class

Creating the Class Structure Definition

Creating an Init Method

Registering a New Tool Class

Using ITREGISTER

Example

Creating an iTool Launch Routine

Specifying Command-Line Arguments and Keywords

Creating Data Objects

Handling Errors

Creating an iTool Instance

Example: Simple iTool

Class Definition File

Launch Routine

Creating a Visualization

Overview of iTool Visualization Types

The Visualization Type Creation Process

Predefined iTool Visualization Classes

Creating a New Visualization Type

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating an OnDataChangeUpdate Method

Creating an OnDataDisconnect Method

Registering a Visualization Type

Using IDLitTool::RegisterVisualization

Specifying Useful Properties

Unregistering a Visualization Type

Example: Image-Contour Visualization

Class Definition File

Creating an Operation

Overview of Creating an iTool Operation

The Operation Creation Process

Predefined iTool Operations

Operations and the Undo/Redo System

Data-Centric Operations

Generalized Operations

Creating a New Data-Centric Operation

How an IDLitDataOperation Works

Creating an IDLitDataOperation

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating an Execute Method

Creating a DoExecuteUI Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating an UndoExecute Method

Creating a New Generalized Operation

How an IDLitOperation Works

Creating an IDLitOperation

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating a DoAction Method

Creating a RecordInitialValues Method

Creating a RecordFinalValues Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating an UndoOperation Method

Creating a RedoOperation Method

Operations and Macros

Registering an Operation

Using IDLitTool::RegisterOperation

Specifying Useful Properties

Unregistering an Operation

Example: Data Resample Operation

Class Definition File

Creating a Manipulator

Overview of iTool Manipulators

Manipulators and Manipulator Containers

Manipulator Visuals

The Manipulator Creation Process

Predefined iTool Manipulators

General Manipulators

Image Manipulators

Plot and Contour Manipulators

Surface Manipulators

Volume Manipulators

Manipulators and the Undo/Redo System

Capturing Information for the Undo/Redo System

Using Manipulator Public Instance Data

Creating a New Manipulator

Creating the Manipulator Class Structure Definition

Creating a Manipulator Init Method

Creating a Cleanup Method

Creating Mouse Event Methods

Creating an OnKeyboard Method

Creating a RegisterCursor Method

Creating GetProperty or SetProperty Methods

Registering a Manipulator

Using IDLitTool::RegisterManipulator

Unregistering a Manipulator

Example: Color Table Manipulator

Running the Color Table Manipulator Example

Creating a File Reader

Overview of iTool File Readers

The File Reader Creation Process

Predefined iTool File Readers

Creating a New File Reader

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating an IsA Method

Creating a GetData Method

Registering a File Reader

Using IDLitTool::RegisterFileReader

Unregistering a File Reader

Example: TIFF File Reader

Class Definition File

Creating a File Writer

Overview of iTool File Writers

The File Writer Creation Process

Predefined iTool File Writers

Creating a New File Writer

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating a SetData Method

Registering a File Writer

Using IDLitTool::RegisterFileWriter

Unregistering a File Writer

Example: TIFF File Writer

Class Definition File

Part III: Modifying the iTool User Interface

iTool User Interface Architecture

Overview of iTool Interface Architecture

User Interface Objects

Using iTool User Interface Elements

The iTools Feedback Mechanism

Status Messages

Creating Additional Status Bar Segments

Prompts

Informational Messages

Creating a User Interface Service

Overview of the iTool UI Service

Creating and Using a UI Service

Predefined iTool UI Services

Creating a New UI Service

Creating the UI Service Routine

Creating Supporting User Interface Elements

Registering a UI Service

Using ITREGISTER

Example

Using the RegisterUIService Method

Executing a User Interface Service

Example: Changing a Property Value

Creating the SrvExample Service

Creating the SrvExample Interface

Creating an Operation that Calls the Service

Registering the SrvExample Service

Registering the opName Operation

Invoking the opName Operation

Creating a User Interface Panel

Overview of the iTool UI Panel

Creating and Using a UI Panel

Creating a UI Panel Interface

Panel Creation Routines

About the Panel Widget

Registering the Panel with the User Interface Object

Adding Observers

Create the Widget Hierarchy

Create Event Handlers

Creating Callback Routines

Callback Routine Signature

Registration of Callback Routines

Retrieving Widget State Information

Registering a UI Panel

Registering the Panel in the iTool Launch Routine

About the TYPE property

Example: A Simple UI Panel

Panel Creation Routine

Panel Event Handler Routine

Panel Callback Routine

Panel Type Specification

Creating a Custom iTool Widget Interface

About Custom iTool Widget Interfaces

Why Create a New Widget Interface?

What About Using a UI Panel?

Skills Required to Create an iTool User Interface

What You Will Need to Create

Overview of Creating an iTool Interface

Create or Choose an iTool

Create the Widget Interface

Create Event Handlers

Create Callback Routines

Create a Cleanup Routine

Create an iTool User Interface Object

Create an iTool Launch Routine

iTool Widget Interface Concepts

What Are iTool Compound Widgets?

Special Notes on the iTool Compound Widgets

Example iTool Widget Interfaces

Creating the Interface Routine

Routine Signature

Error Checking

Top Level Base

User Interface Object

Widget Creation and Layout

User Interface Registration

Handling Widget Destruction

Adding Menus

Standard Menus

Modifying Menu Contents

Resizing Menus

Adding a Toolbar

Standard Toolbars

Modifying Toolbar Contents

Resizing Toolbars

Adding an iTool Window

Window Sizing Keywords

Modifying Window Contents

Resizing iTool Windows

Adding a Status Bar

Modifying Status Bar Contents

Resizing Status Bars

Adding a User Interface Panel

Modifying User Interface Panel Contents

Resizing User Interface Panels

Handling Callbacks

Callback Routine Signature

Registration of Callback Routines

Example Callback Routine

Handling Resize Events

Generating Resize Events

Handling the Resize Event

Writing a Resize Routine

Handling Shutdown Events

Generating Shutdown Events

Handling the Shutdown Event

Writing a Cleanup Routine

Calling the Cleanup Routine

Creating an iTool Launch Routine

Register Your User Interface

Use Your User Interface

Using an Existing iTool Launch Routine

Example: a Custom iTool Interface

Widget Interface Creation Routine

iTool Class Definition Routine Discussion

iTool Launch Routine Discussion

Controlling iTools from the IDL Command Line

Overview of iTool Programmatic Control

How to Control an iTool

Retrieving an iTool Object Reference

Retrieving Component Identifiers

Using the FindIdentifiers Method

FindIdentifier Examples

Retrieving Property Information

Retrieving Property Identifiers

Property Attribute Information

Property Value Information

An Example Property Information Retrieval Routine

Changing Property Values

Using the DoSetProperty Method

Using the SetProperty Method

Running Operations

Selecting Items in the iTool

Example: Selecting an Item Programmatically

Replacing Data in an iTool

Using the iTool Creation Routine

Using the SetData Method

iTool Compound Widgets

Overview of iTools Compound Widgets

CW_ITMENU

CW_ITPANEL

CW_ITSTATUSBAR

CW_ITTOOLBAR

CW_ITWINDOW

External Development Guide

External Development Overview

About This Manual

Supported Inter-Language Communication Techniques in IDL

Translate into IDL

SPAWN

Microsoft COM and ActiveX

Sun Java

UNIX Remote Procedure Calls (RPCs)

CALL_EXTERNAL

IDL System Routine (LINKIMAGE, DLMs)

Callable IDL

Dynamic Linking Terminology and Concepts

When Is It Appropriate to Combine External Code with IDL?

Skills Required to Combine External Code with IDL

IDL Organization

The Interpreter Stack

External Definitions

Interpreting Logical Boolean Values

Compilation and Linking Details

Recommended Reading

Part I: Techniques That Do Not Use IDL's Internal API

Using SPAWN and UNIX Pipes

Example: Communicating with a Child Process Under UNIX

Overview: COM and ActiveX in IDL

COM Objects and IDL

What are COM Objects?

Why Use COM Objects with IDL?

Using COM Objects with IDL

Exposing a COM Object as an IDL Object

Including an ActiveX Control in an IDL Widget Hierarchy

Using the IDLDrawWidget ActiveX Control

Skills Required to Use COM Objects

If You Are Using COM Objects

If You Are Using ActiveX Controls

If You Are Using the IDLDrawWidget ActiveX Control

If You Are Creating Your Own COM Object

Using COM Objects in IDL

About Using COM Objects in IDL

Array Data Storage Format

Object Creation

Method Calls and Property Management

Object Destruction

Registering COM Components on a Windows Machine

IDLcomIDispatch Object Naming Scheme

Class Identifiers

Program Identifiers

Finding COM Class and Program IDs

Creating IDLcomIDispatch Objects

Method Calls on IDLcomIDispatch Objects

Function vs. Procedure Methods

What Happens When a Method Call is Made?

Data Type Conversions

Optional Arguments

Finding Object Methods

Managing COM Object Properties

Setting Properties

Getting Properties

References to Other COM Objects

Destroying IDLcomIDispatch Objects

COM-IDL Data Type Mapping

Example: RSIDemoComponent

Using ActiveX Controls in IDL

About Using ActiveX Controls in IDL

Warning: Modeless Dialogs

Registering COM Components on a Windows Machine

ActiveX Control Naming Scheme

Finding COM Class and Program IDs

Creating ActiveX Controls

Method Calls on ActiveX Controls

Retrieving the Object Reference

Managing ActiveX Control Properties

ActiveX Widget Events

Using the ActiveX Widget Event Structure

Dynamic Elements in the ActiveX Event Structure

Destroying ActiveX Controls

Example: Calendar Control

Example: Spreadsheet Control

The IDLDrawWidget ActiveX Control

Overview

A Note about Versions of the IDL ActiveX Control

Creating an Interface and Handling Events

Drawing the Interface

Specifying the IDL Path and Graphics Level

Initializing IDL

Creating the Draw Widget

Directing IDL Output to a Text Box

Responding to Events and Issuing IDL Commands

Cleaning Up and Exiting

Working with IDL Procedures

Creating the Interface

Initializing IDL

Compiling the IDL Code

Dispatching Button Events to IDL

Cleaning Up and Exiting

Advanced Examples

Copying and Printing IDL Graphics

Opening the VBCopyPrint project

Running the VBCopyPrint Example

Copying IDL Graphic to the clipboard

Printing the IDL Graphic using IDL Object Graphics

Executing IDL user routines with Visual Basic

Printing the IDL Graphic Using Visual Basic

XLoadCT Functionality Using Visual Basic

XPalette Functionality Using Visual Basic

Integrating Object Graphics Using VB

Sharing a Grid Control Array with IDL

Handling Events within Visual Basic

Distributing Your ActiveX Application

IDLDrawWidget Control Reference

IDLDrawWidget

Methods

CopyNamedArray

CopyWindow

CreateDrawWidget

DestroyDrawWidget

DoExit

ExecuteStr

GetNamedData

InitIDL

InitIDLEx

Print

RegisterForEvents

SetNamedArray

SetNamedData

SetOutputWnd

VariableExists

Do Methods (Runtime Only)

DoButtonPress

DoButtonRelease

DoExpose

DoMotion

Properties

BackColor

BaseName

BufferId

DrawWidgetName

Enabled

GraphicsLevel (Runtime/Design time)

IdlPath

Renderer

Retain (Runtime/Design time)

Visible (Runtime/Design time)

Xsize (Design time)

Ysize (Design time)

Read Only Properties

BaseId (Runtime)

DrawId (Runtime)

hWnd (Runtime)

LastIdlError (Runtime)

Scroll

Xoffset

Xviewport

Yoffset

Yviewport

Auto Event Properties

OnButtonPress

OnButtonRelease

OnDblClick

OnExpose

OnInit

OnMotion

Events

OnViewScrolled

Using Java Objects in IDL

Overview of Using Java Objects

Java Terminology

IDL-Java Bridge Architecture

Initializing the IDL-Java Bridge

Configuring the Bridge

IDL-Java Bridge Data Type Mapping

Creating IDL-Java Objects

Java Class Names in IDL

Java Static Access

Method Calls on IDL-Java Objects

What Happens When a Method Call Is Made?

Data Type Conversions

Managing IDL-Java Object Properties

Getting and Setting Properties

Destroying IDL-Java Objects

Showing IDL-Java Output in IDL

The IDLJavaBridgeSession Object

Java Exceptions

IDL-Java Bridge Examples

Accessing Arrays Example

Accessing URLs Example

Accessing Grayscale Images Example

Accessing RGB Images Example

Troubleshooting Your Bridge Session

Calling System.exit

Errors When Initializing the Bridge

Errors When Creating Objects

Errors When Calling Methods

Errors When Accessing Data Members

Using CALL_EXTERNAL

The CALL_EXTERNAL Function

Example Code in the IDL Distribution

CALL_EXTERNAL Compared to UNIX Child Process

Compilation and Linking of External Code

AUTO_GLUE

Input and Output

Memory Cleanup

Memory Access

Argument Data Types

Mapping IDL Data Types to External Language Types

By-Value and By-Reference Arguments

Microsoft Windows Calling Conventions

Common CALL_EXTERNAL Pitfalls

Passing Parameters

Using Auto Glue

Generating Glue Without Executing It

Basic C Examples

Example: Passing Parameters by Reference to IDL

Example: Calling a C Routine to Perform Computation

Wrapper Routines

Passing String Data

Example

Passing Array Data

Passing Structures

Fortran Examples

Example: Calling a Fortran Routine Using a C Interface Routine

Example: Calling a Fortran Routine Using a Fortran Interface Routine

Remote Procedure Calls

IDL and Remote Procedure Calls

Using IDL as an RPC Server

The IDL RPC Directory

Running IDL in Server Mode

Client Variables

Linking to the Client Library

Example of IDL RPC Client API

Compatibility with Older IDL Code

The IDL RPC Library

IDL_RPCCleanup

IDL_RPCDeltmp

Description

Parameters

IDL_RPCExecuteStr

IDL_RPCGetMainVariable

IDL_RPCGettmp

Parameters

IDL_RPCGetVariable

IDL_RPCImportArray

IDL_RPCInit

Description

IDL_RPCMakeArray

IDL_RPCOutputCapture

IDL_RPCOutputGetStr

IDL_RPCSetMainVariable

IDL_RPCSetVariable

IDL_RPCStoreScalar

IDL_RPCStrDelete

IDL_RPCStrDup

IDL_RPCStrEnsureLength

IDL_RPCStrStore

IDL_RPCTimeout

IDL_RPCVarCopy

IDL_RPCVarGetData

Variable Accessor Macros

RPC Examples

Part II: IDL's Internal API

IDL Internals: Types

Type Codes

Type Masks

Mapping of Basic Types

Unsigned Byte Data

Integer Data

Unsigned Integer Data

Long Integer Data

Unsigned Long Integer Data

64-bit Integer Data

Unsigned 64-bit Integer Data

Complex Data

String Data

IDL_MEMINT and IDL_FILEINT Types

IDL Internals: Variables

IDL and Internal Variables

The IDL_VARIABLE Structure

Scalar Variables

Array Variables

Structure Variables

Creating Structures

Accessing Structure Tags

Determining the Number Of Structure Tags

Determining the Names Of Structures and their Tags

Heap Variables

Temporary Variables

Getting a Temporary Variable

Creating a Temporary Array

Creating a Temporary Structure

Creating a Temporary Vector

Creating A Temporary Variable Using Another Variable As A Template

Freeing A Temporary Variable

Creating an Array from Existing Data

Getting Dynamic Memory

The IDL_GetScratch Function

Accessing Variable Data

Copying Variables

Storing Scalar Values

Using IDL_StoreScalar() to Free Dynamic Resources

Obtaining the Name of a Variable

Looking Up Main Program Variables

Looking Up Variables in Current Scope

IDL Internals: Keyword Processing

IDL and Keyword Processing

Creating Routines that Accept Keywords

Overview Of IDL Keyword Processing

The IDL_KW_PAR Structure

The IDL_KW_ARR_DESC_R Structure

Keyword Processing Options

The KW_RESULT Structure

Processing Keywords

Speeding Keyword Processing

Cleaning Up

Keyword Examples

The Pre-IDL 5.5 Keyword API

Background

Advantages Of The IDL 5.5 API

Differences And Similarities Between APIs

Converting Existing Code To The New API

The Transitional API

Example: Converting From The Old Keyword API

IDL Internals: String Processing

String Processing and IDL

Accessing IDL_STRING Values

Copying Strings

Deleting Strings

Setting an IDL_STRING Value

Obtaining a String of a Given Length

IDL Internals: Error Handling

Message Blocks

Issuing Error Messages

Error Codes

Choosing an Error Code

Looking Up A Message Code by Name

Checking Arguments

IDL Internals: Type Conversion

Converting Arguments to C Scalars

General Type Conversion

Converting to Specific Types

IDL Internals: UNIX Signals

IDL and Signals

Signal Handlers

Establishing a Signal Handler

Removing a Signal Handler

UNIX Signal Masks

IDL_SignalSetInit()

IDL_SignalSetAdd()

IDL_SignalSetDel()

IDL_SignalSetIsMember()

IDL_SignalMaskGet()

IDL_SignalMaskSet()

IDL_SignalMaskBlock()

IDL_SignalBlock()

IDL_SignalSuspend()

IDL Internals: Files and Input/Output

IDL and Input/Output Files

File Information

IDL_FileStat()

Opening Files

IDL_FileOpen()

Special File Units

Closing Files

IDL_FileClose()

Preventing File Closing

IDL_FileSetClose()

Checking File Status

IDL_FileEnsureStatus()

Allocating and Freeing File Units

IDL_FileGetUnit()

IDL_FileFreeUnit()

Detecting End of File

IDL_FileEOF()

Flushing Buffered Data

IDL_FileFlushUnit()

Reading a Single Character

IDL_GetKbrd()

Output of IDL Variables

IDL_Print() and IDL_PrintF()

Adding to the Journal File

IDL_Logit()

IDL Internals: Timers

IDL and Timers

Making Timer Requests

Canceling Asynchronous Timer Requests

Blocking UNIX Timers

IDL Internals: Miscellaneous

Dynamic Memory

IDL_MemAlloc()

IDL_MemFree()

IDL_MemAllocPerm()

Exit Handlers

IDL_ExitRegister()

User Interrupts

IDL_BailOut()

Functions for Returning System Variables

Terminal Information

Functions for Returning IDL_FileTerm Variable Values

Ensuring UNIX TTY State

Type Information

Functions for Returning Data Type Variable Values

User Information

Constants

Macros

Part III: Techniques That Use IDL's Internal API

Adding System Routines

IDL and System Routines

The System Routine Interface

Example: Hello World

Example: Doing a Little More (MULT2)

Testing the Example

Example: A Complete Numerical Routine Example (FZ_ROOTS2)

Calling Sequence

Arguments

Keywords

Example

Example: An Example Using Routine Design Iteration (RSUM)

Running Sum (Example 1)

RSUM1

Running Sum (Example 2)

Running Sum (Example 3)

Registering Routines

Example

Enabling and Disabling System Routines

Enabling Routines

Obtaining Enabled/Disabled Routine Names

Obtaining the Number of Enabled/Disabled Routines

Obtaining the Real Function Pointer

Obtaining the IDL Name of the Current System Routine

LINKIMAGE

Dynamically Loadable Modules

How DLMs Work

The Module Description File

The IDL_Load() function

DLM Example

Callable IDL

Calling IDL as a Subroutine

When is Callable IDL Appropriate?

Technical Issues Relating to Callable IDL

Appropriate Applications of Callable IDL

Licensing Issues and Callable IDL

Using Callable IDL

Cleanup

Initialization

Initialization: UNIX

options

argc

argv

Initialization: Microsoft Windows

Diverting IDL Output

flags

buf

n

IDL_ToutPush()

IDL_ToutPop()

Executing IDL Statements

IDL_Execute()

Runtime IDL and Embedded IDL

Cleanup

Issues and Examples: UNIX

Interactive IDL

Compiling Programs That Call IDL

Example: Calling IDL From C

Example: Calling an IDL Math Function

Example: Calling IDL from Fortran

Compilation and Linking Statements

Issues and Examples: Microsoft Windows

Building an Application that Calls IDL

Example: A Simple Application

Adding External Widgets to IDL

IDL and External Widgets

WIDGET_STUB

Calling Sequence

Arguments

Keywords

WIDGET_CONTROL/WIDGET_STUB

Keywords

Functions for Use with Stub Widgets

IDL_WidgetStubLock()

IDL_WidgetStubLookup()

IDL_WidgetIssueStubEvent()

IDL_WidgetSetStubIds()

IDL_WidgetGetStubIds()

IDL_WidgetStubSetSizeFunc()

Internal Callback Functions

Commentary on the Example Shown Above

UNIX WIDGET_STUB Example: WIDGET_ARROWB

The IDL Program for WIDGET_ARROWB

The C Program for widget_arrowb.c

An IDL Program to Test the External Widget

Obsolete Internal Interfaces

Interfaces Obsoleted in IDL 5.5

IDL_MSG_ATTR_SYS

Specifying errno Explicitly: IDL_MessageErrno()

Processing Keywords With IDL_KWGetParams()

The IDL_KW_PAR Structure

Interfaces Obsoleted in IDL 5.2.1

Registering Routines

Simplified Routine Invocation

The IDL_EZ_ARG struct

Cleaning Up

Example- using IDL_EzCall()

Obsolete Error Handling API

Getting Started with IDL

The Power of IDL

Using this Manual

The IDL Interface

Starting IDL

Using the IDL Development Environment

Menu Bar

Toolbars

Project Window

Multiple Document Panel

Command Line

Output Log

Variable Watch Window

Status Bar

The IDL iTools

Starting an iTool

Loading Data into an iTool

The iTools Data Manager

Quitting IDL

More About Using IDL

2-D Plots

IDL and 2-D Plotting

Using the iPlot Tool

Displaying a 2D Plot

Displaying an Overplot

Modifying Plots

Simple Command Line Plotting

Using OPLOT

Printing a Plot

Plotting with Data Sets

Other Plotting Capabilities

More About 2-D Plotting

Reading and Writing Data

IDL and Reading and Writing Data

IDL Supported Formats

Importing Data from an ASCII File

Reading and Writing Binary Data

Reading and Writing Images

Importing Image Data into an iTool

Importing Image Data at the Command Line

More About IDL and Input/Output

Signal Processing with IDL

IDL and Signal Processing

Creating a Data Set

Signal Processing with SMOOTH

Frequency Domain Filtering

Displaying the Results

More About Signal Processing

Images

IDL and Images

Using the iImage Tool

Displaying an Image

Modifying Images

Image Data and the Command Line

Reading Image Data

Displaying Image Data

Resizing an Image

Resizing a Graphics Window

Contrast Enhancement

Thresholding

Scaling Pixel Values

Smoothing and Sharpening

Unsharp Masking

Sharpening Images with Differentiation

Other Image Manipulations

Rotating an Image

Extracting Profiles

More About Images in IDL

Surfaces and Contours

Surfaces and Contours in IDL

Accessing Binary Surface Data

Using the iSurface Tool

Displaying a Surface

Modifying Surfaces

Using the iContour Tool

Displaying a Contour

Modifying a Contour

Surface Data and the Command Line

Displaying a Shaded Surface

Contour Data and the Command Line

Displaying a Contour

Plotting with SHOW3

More About Surfaces and Contours

Volume Visualization

IDL and Volume Visualization

Using the iVolume Tool

Displaying a Volume

Modifying Volume Data

Command Line Volume Visualization

Reading in a Dataset for Visualization

3-D Transformations

Visualizing an Iso-Surface

Volume Slices and the IDL Slicer

Displaying a Surface with the Slicer

Dismiss the Slicer and Volume Windows

More About Volume Visualization

Mapping

IDL and Mapping

Using the iMap Tool

Displaying a Map

Modifying Map Data

Drawing Map Projections

Drawing an Orthographic Projection

Plotting a Portion of the Globe

Plotting Data on Maps

Reading Latitudes and Longitudes

Plotting Contours Over Maps

Warping Images to Maps

More About Mapping

Plotting Irregularly-Gridded Data

Irregularly Gridded Data in IDL

Creating a Dataset

The TRIANGULATE Procedure

Plotting the Results with TRIGRID

More About Gridding

Animation

IDL and Animation

Animating a Series of Images

Displaying an Animation as a Wire Mesh

Animation with XINTERANIMATE

Cleaning Up the Animation Windows

More About Animation

Programming in IDL

IDL and Programming

Programming Capabilities of the IDLDE

Built-In Editor

Types of IDL Programs

Compound Statements

Conditional Statements

Loop Statements

Jump Statements

Executing a Simple IDL Program

Saving, Compiling and Running

Debugging Tools in IDL

Breakpoints

Variable Watch Window

The IDL Code Profiler

Using IDL Projects

Accessing All Application Files