Previous What's New in IDL 6.4: IDL 6.4 Release Notes Next

Table of Contents

Installation and Licensing Guide

System Requirements

IDL and ENVI

Hardware and Operating System Requirements

32-bit and 64-bit Versions

Graphics Hardware

Platform Support Questions and Answers

Software Requirements

ION

Hardware and Operating System Requirements

Web Server Requirements for ION

Web Browser Requirements for ION

Java Virtual Machine Requirements for ION

Feature Support by Operating System

IDL Features

ENVI Features

Installing IDL or ENVI for Windows

Introduction

Installing IDL or ENVI for Windows

Running the Installer

Installing IDL or ENVI Silently and Unattended

Running IDL or ENVI under Windows

Running ENVI Zoom under Windows

Running the IDL Virtual Machine under Windows

Running IDL Runtime Programs under Windows

Installing IDL or ENVI for UNIX

Introduction

Installing IDL or ENVI for UNIX

Mounting the CD-ROM on Your System

Running the Installer

Unmounting the CD-ROM from Your System

Permissions Error Message

Setting Up the Environment

Defining Environment Variables and Aliases

Defining ION Environment Variables and Aliases

Running IDL or ENVI under UNIX

Running the IDL Virtual Machine under UNIX

Running IDL Runtime Applications under UNIX

Installing IDL or ENVI for Macintosh

Installing IDL or ENVI for Macintosh

Running the Installer

Setting Up Your Environment

Running IDL or ENVI under Macintosh

Running IDL or ENVI from Applescript

Running IDL or ENVI from the Command Line

Running the IDL Virtual Machine under Macintosh

Running IDL Runtime Applications under Macintosh

Licensing IDL and ENVI

Licensing Methods

IDL Virtual Machine

Demonstration Mode (IDL)

Evaluation License

Flexible Single-User License

Node-Locked License

Floating License

Using the License Wizard

Running the License Wizard after Installation

Using the License Manager

Installing the License Manager

Configuring Client Access to the License Manager

Working with the License Manager

Using the Same License Manager for Different Applications

Upgrading a Network License Manager

Using License Files

Viewing License Files

Modifying License Files

Customizing Floating Licenses

Troubleshooting Licensing

General Information

Other Resources

For Further Help

Evaluation Licenses

License Information Does Not Pass the Checksum Test

File Already Exists

File Cannot Be Written

Flexible Single-User and Windows Node-Locked Licenses

Check the License Format

Host ID of This System Does Not Match the Host ID

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

License File Does Not Support This Version

Cannot Find License

Licenses Requiring a License Server

All Platforms

UNIX and Macintosh

License Manager Startup

IDL Analyst Reference Guide

Preface

About IDL Analyst

Licensing

Using the IDL Analyst Documentation

Rows versus Columns

Error Handling

Underflow and Overflow

Missing Values

Errors in User Code

Functional List of IMSL Routines

Linear Systems

Eigensystem Analysis

Interpolation and Approximation

Quadrature

Differential Equations

Transforms

Nonlinear Equations

Optimization

Special Functions

Basic Statistics and Random Number Generators

Regression

Correlation and Covariance

Analysis of Variance

Categorical and Discrete Data Analysis

Nonparametric Statistics

Goodness of Fit

Time Series and Forecasting

Multivariate Analysis

Survival Analysis

Probability Distribution Functions and Inverses

Random Number Generation

Math and Statistics Utilities

Alphabetical Listing of IMSL Routines

Part I: Mathematics Routines

Linear Systems

Overview: Linear Systems

Linear Systems Routines

IMSL_INV

IMSL_LUSOL

IMSL_LUFAC

IMSL_CHSOL

IMSL_CHFAC

IMSL_QRSOL

IMSL_QRFAC

IMSL_SVDCOMP

IMSL_CHNNDSOL

IMSL_CHNNDFAC

IMSL_LINLSQ

IMSL_SP_LUSOL

IMSL_SP_LUFAC

IMSL_SP_BDSOL

IMSL_SP_BDFAC

IMSL_SP_PDSOL

IMSL_SP_PDFAC

IMSL_SP_BDPDSOL

IMSL_SP_BDPDFAC

IMSL_SP_GMRES

IMSL_SP_CG

IMSL_SP_MVMUL

Eigensystem Analysis

Overview: Eigensystem Analysis

Eigensystem Routines

IMSL_EIG

IMSL_EIGSYMGEN

IMSL_GENEIG

Interpolation and Approximation

Overview: Interpolation and Approximation

Interpolation and Approximation Routines

IMSL_CSINTERP

IMSL_CSSHAPE

IMSL_BSINTERP

IMSL_BSKNOTS

IMSL_SPVALUE

IMSL_SPINTEG

IMSL_FCNLSQ

IMSL_BSLSQ

IMSL_CONLSQ

IMSL_CSSMOOTH

IMSL_SMOOTHDATA1D

IMSL_SCAT2DINTERP

IMSL_RADBF

IMSL_RADBE

Quadrature

Overview: Quadrature

Quadrature Routines

IMSL_INTFCN

IMSL_INTFCN: Functions Based on Gauss-Kronrod Rules

IMSL_INTFCN: Functions with Singular Points Given

IMSL_INTFCN: Functions with Algebraic-logarithmic Singularities

IMSL_INTFCN: Functions Over an Infinite or Semi-infinite Interval

IMSL_INTFCN: Functions Containing a Sine or Cosine Factor

IMSL_INTFCN: Computation of Fourier Sine or Cosine Transforms

IMSL_INTFCN: Integrals in the Cauchy Principle Value Sense

IMSL_INTFCN: Smooth Functions Using Nonadaptive Rule

IMSL_INTFCN: Two-dimensional Iterated Integrals

IMSL_INTFCNHYPER

IMSL_INTFCN_QMC

IMSL_GQUAD

IMSL_FCN_DERIV

Differential Equations

Overview: Differential Equations

Differential Equations Routines

IMSL_ODE

IMSL_PDE_MOL

IMSL_POISSON2D

Transforms

Overview: Transforms

Transforms Routines

IMSL_FFTCOMP

IMSL_FFTINIT

IMSL_CONVOL1D

IMSL_CORR1D

IMSL_LAPLACE_INV

Nonlinear Equations

Overview: Nonlinear Equations

Nonlinear Equations Routines

IMSL_ZEROPOLY

IMSL_ZEROFCN

IMSL_ZEROSYS

Optimization

Overview: Optimization

Optimization Routines

IMSL_FMIN

IMSL_FMINV

IMSL_NLINLSQ

IMSL_LINPROG

IMSL_QUADPROG

IMSL_MINCONGEN

IMSL_CONSTRAINED_NLP

Special Functions

Overview: Special Functions

Special Functions Routines

IMSL_ERF

IMSL_ERFC

IMSL_BETA

IMSL_LNBETA

IMSL_BETAI

IMSL_LNGAMMA

IMSL_GAMMA_ADV

IMSL_GAMMAI

IMSL_BESSI

IMSL_BESSJ

IMSL_BESSK

IMSL_BESSY

IMSL_BESSI_EXP

IMSL_BESSK_EXP

IMSL_ELK

IMSL_ELE

IMSL_ELRF

IMSL_ELRD

IMSL_ELRJ

IMSL_ELRC

IMSL_FRESNEL_COSINE

IMSL_FRESNEL_SINE

IMSL_AIRY_AI

IMSL_AIRY_BI

IMSL_KELVIN_BER0

IMSL_KELVIN_BEI0

IMSL_KELVIN_KER0

IMSL_KELVIN_KEI0

Part II: Statistics Routines

Basic Statistics

Overview: Basic Statistics

Basic Statistics Routines

IMSL_SIMPLESTAT

IMSL_NORM1SAMP

IMSL_NORM2SAMP

IMSL_FREQTABLE

IMSL_SORTDATA

IMSL_RANKS

Regression

Overview: Regression

Regression Routines

IMSL_REGRESSORS

IMSL_MULTIREGRESS

IMSL_MULTIPREDICT

IMSL_ALLBEST

IMSL_STEPWISE

IMSL_POLYREGRESS

IMSL_POLYPREDICT

IMSL_NONLINREGRESS

IMSL_HYPOTH_PARTIAL

IMSL_HYPOTH_SCPH

IMSL_HYPOTH_TEST

IMSL_NONLINOPT

IMSL_LNORMREGRESS

Correlation and Covariance

Overview: Correlation and Covariance

Correlation and Covariance Routines

IMSL_COVARIANCES

IMSL_PARTIAL_COV

IMSL_POOLED_COV

IMSL_ROBUST_COV

Analysis of Variance

Overview: Analysis of Variance

Analysis of Variance Routines

IMSL_ANOVA1

IMSL_ANOVAFACT

IMSL_MULTICOMP

IMSL_ANOVANESTED

IMSL_ANOVABALANCED

Categorical and Discrete Data Analysis

Overview: Categorical and Discrete Data Analysis

Categorical and Discrete Data Analysis Routines

IMSL_CONTINGENCY

IMSL_EXACT_ENUM

IMSL_EXACT_NETWORK

IMSL_CAT_GLM

Nonparametric Statistics

Overview

Nonparametric Statistics Routines

IMSL_SIGNTEST

IMSL_WILCOXON

IMSL_NCTRENDS

IMSL_CSTRENDS

IMSL_TIE_STATS

IMSL_KW_TEST

IMSL_FRIEDMANS_TEST

IMSL_COCHRANQ

IMSL_KTRENDS

Goodness of Fit

Overview: Goodness of Fit

Goodness of Fit Routines

IMSL_CHISQTEST

IMSL_NORMALITY

IMSL_KOLMOGOROV1

IMSL_KOLMOGOROV2

IMSL_MVAR_NORMALITY

IMSL_RANDOMNESS_TEST

Time Series and Forecasting

Overview: Time Series and Forecasting

Time Series and Forecasting Routines

IMSL_ARMA

IMSL_DIFFERENCE

IMSL_BOXCOXTRANS

IMSL_AUTOCORRELATION

IMSL_PARTIAL_AC

IMSL_LACK_OF_FIT

IMSL_GARCH

IMSL_KALMAN

Multivariate Analysis

Overview: Multivariate Analysis

Multivariate Analysis Routines

IMSL_K_MEANS

IMSL_PRINC_COMP

IMSL_FACTOR_ANALYSIS

IMSL_DISCR_ANALYSIS

Survival Analysis

Overview: Survival Analysis

Survival Analysis Routines

IMSL_SURVIVAL_GLM

Probability Distribution Functions and Inverses

Overview: Probability Distribution Functions and Inverses

Probability Distribution Functions and Inverses Routines

IMSL_NORMALCDF

IMSL_BINORMALCDF

IMSL_CHISQCDF

IMSL_FCDF

IMSL_TCDF

IMSL_GAMMACDF

IMSL_BETACDF

IMSL_BINOMIALCDF

IMSL_BINOMIALPDF

IMSL_HYPERGEOCDF

IMSL_POISSONCDF

Random Number Generation

Overview: Random Number Generation

Random Number Generation Routines

IMSL_RANDOMOPT

IMSL_RANDOM_TABLE

IMSL_RANDOM

IMSL_RANDOM_NPP

IMSL_RANDOM_ORDER

IMSL_RAND_TABLE_2WAY

IMSL_RAND_ORTH_MAT

IMSL_RANDOM_SAMPLE

IMSL_RAND_FROM_DATA

IMSL_CONT_TABLE

IMSL_RAND_GEN_CONT

IMSL_DISCR_TABLE

IMSL_RAND_GEN_DISCR

IMSL_RANDOM_ARMA

IMSL_FAURE_INIT

IMSL_FAURE_NEXT_PT

Math and Statistics Utilities

Overview: Math and Statistics Utilities

Math and Statistics Utilities Routines

IMSL_DAYSTODATE

IMSL_DATETODAYS

IMSL_CONSTANT

IMSL_MACHINE

IMSL_STATDATA

IMSL_BINOMIALCOEF

IMSL_NORM

IMSL_MATRIX_NORM

PM

RM

References

IDL Wavelet Toolkit User's Guide

Introduction to the IDL Wavelet Toolkit

What Is the IDL Wavelet Toolkit?

IDL Wavelet Toolkit Architecture

File Organization

Structure

Using the IDL Wavelet Toolkit

Starting the Toolkit

Menu Description

Preferences

Dataset Viewer

Importing Data

ASCII Files

Binary Files

Image Files

WAV Audio Files

IDL Command Line

Wavelet Viewer

Wavelet Power Spectrum

Multiresolution Analysis

Denoise Tool

Adding User Tools

Theory and Examples

Wavelet Transform

Wavelet Power Spectrum

Denoise

Multiresolution Analysis

Bibliography

IDL Wavelet Toolkit Reference

List of Commands by Functionality

WV_APPLET

WV_CW_WAVELET

WV_CWT

WV_DENOISE

WV_DWT

WV_FN_COIFLET

WV_FN_DAUBECHIES

WV_FN_GAUSSIAN

WV_FN_HAAR

WV_FN_MORLET

WV_FN_PAUL

WV_FN_SYMLET

WV_IMPORT_DATA

WV_IMPORT_WAVELET

WV_PLOT3D_WPS

WV_PLOT_MULTIRES

WV_PWT

WV_TOOL_DENOISE

IDL DataMiner Guide

DataMiner Overview

Introduction to IDL DataMiner and ODBC

What Is IDL DataMiner?

What Is ODBC?

About the DataMiner ODBC Drivers

About This Volume

Audience

Organization

Terminology

Where to Find Additional Information

ODBC Conformance Levels

API Conformance Levels

SQL Conformance Levels

Network Access Requirements

Installation on UNIX Systems

Using the IDL DataMiner

Components

Using the DB_EXISTS Function

Creating a Database Object

Finding Available Databases

Finding a Specific Database

Connecting to a Database

Finding Tables

Finding Available Tables

Finding Specific Tables

Connecting to a Table

Working with Table Data

Moving Through a Recordset

Example

ODBC SQL Syntax Notes

Reserved ODBC SQL Words

Date, Time, and Timestamp Data

Scalar Functions

LIKE Predicate Escape Characters

Outer Joins

Procedure Calls

Data Type Mappings

Error Messages

IDL DataMiner API

How to Use This Chapter

Creating Database Objects

Destroying Database Objects

DIALOG_DBCONNECT

DB_EXISTS

IDLdbDatabase

IDLdbDatabase Properties

IDLdbDatabase::Connect

IDLdbDatabase::ExecuteSQL

IDLdbDatabase::GetDatasources

IDLdbDatabase::GetProperty

IDLdbDatabase::GetTables

IDLdbDatabase::SetProperty

IDLdbRecordset

IDLdbRecordset Properties

IDLdbRecordset::AddRecord

IDLdbRecordset::CurrentRecord

IDLdbRecordset::DeleteRecord

IDLdbRecordset::GetField

IDLdbRecordset::GetProperty

IDLdbRecordset::GetRecord

IDLdbRecordset::MoveCursor

IDLdbRecordset::NFields

IDLdbRecordset::SetField

ODBC Configuration on UNIX Systems

Overview of ODBC Configuration

ODBC Initialization File Format

ODBC Data Sources

Data Source Specification

Default Data Source Specification

ODBC Options

ODBC Initialization File Example

Medical Imaging in IDL

Expanded DICOM Support in IDL

Expanded DICOM Functionality in IDL

Using DICOM Network Services

Reading and Writing DICOM Files

Platform Support and Licensing

Supported Platforms

Licensing Requirements

Compliance with the DICOM Standard

Using IDL DICOM Network Services

Overview of DICOM Network Services

Network Performance and Virus Protection Software

Determining Configuration Parameters

Determining the IP Address

Determining TPC/IP Port Numbers

Starting the Network Services Utility

Local Versus System Configuration

Starting the DICOM Network Services Utility in Local Mode

Starting the DICOM Network Services Utility in System Mode

Completing Required Setup Tasks

Configuring Your System to Receive Files

Configuring an Application Entity

Default Application Entities

Defining a New Application Entity

Modifying an Application Entity

Deleting an Application Entity

Defining a Machine to Be Queried

Querying a Remote Machine

Configure Query SCU Service Properties

Query the Remote Node

Build or Modify a Custom Query

Retrieve Files from a Remote Node

Troubleshooting a Retrieval Operation

Sending Files to a Remote Destination

Defining the Remote Storage SCP Node

Sending Files to a Remote Machine

Troubleshooting a Send Operation

Returning Connection Status with Echo

Troubleshooting Echo Errors

About the Storage SCP Service

Storage SCP Service Permissions

Storage SCP Service Log Files

Managing the Storage SCP Service

Starting and Stopping the Service Outside the Utility

DICOM Network Services User Interface

System Mode Interface

Local Mode Interface

IDL DICOM Reference

DICOMEX_GETCONFIGFILEPATH

DICOMEX_GETSTORSCPDIR

DICOMEX_NET

IDLffDicomEx

IDLffDicomEx Overview

File Compression and Transfer Syntax Support

IDLffDicomEx Properties

IDLffDicomEx::AddGroup

IDLffDicomEx::AddPrivateGroup

IDLffDicomEx::AddPrivateSequence

IDLffDicomEx::AddSequence

IDLffDicomEx::ChangeTransferSyntax

IDLffDicomEx::Cleanup

IDLffDicomEx::Commit

IDLffDicomEx::CopyTags

IDLffDicomEx::EnumerateTags

IDLffDicomEx::GetDescription

IDLffDicomEx::GetPixelData

IDLffDicomEx::GetPrivateValue

IDLffDicomEx::GetPrivateValueCount

IDLffDicomEx::GetPrivateValueLength

IDLffDicomEx::GetPrivateVR

IDLffDicomEx::GetProperty

IDLffDicomEx::GetValue

IDLffDicomEx::GetValueCount

IDLffDicomEx::GetValueLength

IDLffDicomEx::GetVR

IDLffDicomEx::Init

IDLffDicomEx::QueryPrivateValue

IDLffDicomEx::QueryValue

IDLffDicomEx::SetPixelData

IDLffDicomEx::SetPrivateValue

IDLffDicomEx::SetProperty

IDLffDicomEx::SetValue

IDLffDicomExCfg

IDLffDicomExCfg Properties

IDLffDicomExCfg::Cleanup

IDLffDicomExCfg::Commit

IDLffDicomExCfg::Echo

IDLffDicomExCfg::GetApplicationEntities

IDLffDicomExCfg::GetApplicationEntity

IDLffDicomExCfg::GetServiceLists

IDLffDicomExCfg::GetServiceTypes

IDLffDicomExCfg::GetValue

IDLffDicomExCfg::Init

IDLffDicomExCfg::IsDirty

IDLffDicomExCfg::RemoveApplicationEntity

IDLffDicomExCfg::SetApplicationEntity

IDLffDicomExCfg::SetValue

IDLffDicomExCfg::StorageScpService

IDLffDicomExQuery

IDLffDicomExQuery Properties

Attribute Matching and Wildcards

Query Property Interactions With Query Model/Level

Patient Name and Name Sub-field Properties

Using Callbacks with the IDLffDicomExQuery Object

IDLffDicomExQuery::Cleanup

IDLffDicomExQuery::ClearProperties

IDLffDicomExQuery::GetProperty

IDLffDicomExQuery::Init

IDLffDicomExQuery::Query

IDLffDicomExQuery::QueryModelsSupported

IDLffDicomExQuery::Retrieve

IDLffDicomExQuery::SetProperty

IDLffDicomExStorScu

IDLffDicomExStorScu Properties

Using Callbacks With the IDLffDicomExStorScu Object

IDLffDicomExStorScu::Cleanup

IDLffDicomExStorScu::ClearProperties

IDLffDicomExStorScu::GetProperty

IDLffDicomExStorScu::Init

IDLffDicomExStorScu::Send

IDLffDicomExStorScu::SetProperty

DICOM Resources

DICOM Attributes

Value Representations

ION Script User's Guide

Configuring ION Script

Configuring ION Script for Windows

The Images Tab

The URLs Tab

The Files Tab

The Format Tab

The Debug Tab

Configuring ION Script for UNIX

Manually Configuring Your UNIX Web Server

ION Script Configuration Options

Images

URLs

Files

Format

Debug

Overview of ION Script

ION Script and ION Java

ION Script

ION Java

Which Product Should I Use?

What Is ION Script?

ION Script Pages

ION Script Applications

Anatomy of an ION Script Application

Example

Requesting an ION Script Page

Where to Store Your Files

How HTML Files Are Normally Requested

ION Script Files

Keeping .ion and .html Files in the Same Place

IDL Files

Running the ION Script Examples

Variables, Expressions & Operators

Variables

Declaring & Assigning Values

Variable Types

Assigning String Literals to ION Script Variables

Determining Variable Type

Null Strings Versus Undefined Strings

Variable Names

Variable Scope

Variable Persistence

ION System Variables

$Browser

$Document

$Form

$FormURL

$ION

$Mouse

Expressions

Values

Expression Types

Operators

Mathematical Operators

String Operators

Comparison Operators

Logical Operators

Operator Precedence

Creating ION Script Applications

Specifying URLs

HTTP URLs

HTTPS URLs

File URLs

ION URLs

Absolute Paths vs. the ION Search Path

HTML Forms vs. ION Script Forms

Passing Name/Value Pairs in a URL

Passing ION Script Variables in a URL

Passing Multiple Values with the Same Name

Handling Multiple Selections in a SELECT Element

Parsing the $Form Variable in an <IDL> Block

Parsing the $Form Variable in a <SCRIPT> Block

Passing IDL Variables to ION Script

Using Frames with ION Script

Overview of Fixed Framesets

Loading ION Script Pages in Frames

Floating Frames

Targeting Different Frames

Accommodating All Browsers

Using JavaScript and VBScript

Graphics in ION Script

Direct Graphics

Object Graphics

Bandwidth Issues

Output Formats

Using Special and International Characters

Example: Creating a Complete Application

Step 1: Displaying an IDL-Generated Image

Step 2: Declaring and Displaying Variables

Step 3: Adding Interactivity

Step 4: Validating Form Data

Step 5: Creating Reusable Pages

Step 6: Creating Interactive Images for Data Picking

Step 7: Displaying IDL-Generated Data

A Note On Using the Back Button

Application Variations

ION Script Tag Reference

ION Syntax Conventions

Elements of Syntax

Case Sensitivity

Using Quotation Marks

Variable Substitution in Attribute Values

HTML Mappings

The HTML Comment Tag

Alphabetical Listing of ION Script Tags

EVENT_DECL

EVENTS

IDL

IDL Tag Limitations

Using ION_EVALUTE and ION_VARIABLE Tags in an IDL Block

Single vs. Double Quotation Marks

Commenting IDL Code

Using the $ Symbol in an IDL Block

INPUT

ION_BODY

ION_BUTTON

ION_CHECKBOX

ION_DATA_OUT

ION_EVALUATE

ION_FORM

Forms Containing a Single Text Field

ION_HEADER

Metadata Tags

Events and Variables

ION_IF, ION_ELSEIF, ION_ELSE

ION_IMAGE

Notes About Using ION_IMAGE

ION_INCLUDE

ION_LINK

ION_OBJECT

ION_PARAM

ION_RADIO

ION_SCRIPT

ION_VARIABLE

VARIABLE_DECL

VARIABLES

Troubleshooting ION Script

Web Server Problems

If You Are Using Microsoft IIS

"Connection Failed" Errors

"Not Found" Errors

"No Event or Page" Errors

Licensing Errors

ION Script Syntax Errors

IDL Errors

Variables

Images Not Displaying

Frames

ION Java User's Guide

Configuring ION Java

Starting and Configuring the ION Daemon

Configuring ION Java for Windows

The ION Java Properties Dialog

Checking Status with the ION Java Status Utility

Windows Command Line Installation of the ION Daemon

Using Windows Services Manager to Start the ION Daemon

Configuring ION Java for UNIX

Starting the ION Daemon on UNIX

Starting the ION Daemon at Boot Time

Checking the Status of the ION Daemon

Shutting Down the ION Daemon

Manually Configuring Your Web Server

Command Security

Security Command Files

Client Verification

Connection Limit

Overview of ION Java

ION Script and ION Java

ION Script

ION Java

Which Product Should I Use?

What Is ION Java?

Recommended Skills

ION Java Architecture

ION Server

ION Daemon

Pre-Built ION Client Applets

ION Component Classes

ION Low-Level Classes

ION Java Limitations

IDL Limitations

ION Java Performance Considerations

Tips for Increasing Execution Speed in ION Java

Bandwidth Issues

Running the ION Java Examples

Where to Place HTML and Class Files

Testing ION Applications Locally

Publishing ION Applications on Your Web Server

Where to Locate the ION Class Files

What Are the Required Class Files?

Overview of the ION Java Classes

The ION Java Class Hierarchy

ION Low-Level Classes

ION Component Classes

ION Pre-Built Applets

Using the Component Classes

Setting Values

Getting and Setting Properties

Drawing

AWT vs. Swing

Using ION's Pre-Built Applets

The <APPLET> Tag

Attributes

Supporting Java-Incapable Browsers

Parameters Specified via <PARAM> Tags

Connecting to the ION Server

Behavior Parameters

IONGraphicApplet

IONContourApplet

IONMapApplet

IONPlotApplet

IONSurfaceApplet

Building ION Applets and Applications

Direct Graphics in ION

The ION Device

Keywords Accepted by the ION Device

Object Graphics in ION

Using Object References

Compiling .java Files

Error Handling and ION Exceptions

Debug Mode

Debugging Your Application

Converting Between IDL and Java Bytes

Considerations Specific to ION Applets

Including Applets in HTML Pages

Supporting Java Archive Files

Browser Support of ION Class Library Versions

Supporting Multiple Browser Types

Simple Applet Example

Further Examples

ION Applets and Scripting Languages

Tips and Tricks

ION Java Class and Method Reference

How to Use this Chapter

Syntax

Arguments

Exceptions

Example

IONCallableClient Class

IONCallableClient()

addIONCommandDoneListener()

addIONDisconnectListener()

addIONOutputListener()

connect()

disconnect()

executeIDLCommand()

getClientVersion()

getConnectionType()

getIDLVariable()

removeIONCommandDoneListener()

removeIONDisconnectListener()

removeIONOutputListener()

sendIDLCommand()

setConnectionMethod()

setConnectionTimeout()

setIDLVariable()

IONCanvas / IONJCanvas Class

IONCanvas() / IONJCanvas()

addIONMouseListener()

getDownButtons()

getImage()

getIONGraphics()

getMousePos()

removeIONMouseListener()

IONCommandDoneListener Interface

IONCommandComplete()

IONComplex Class

IONComplex()

doubleValue()

floatValue()

getDImaginary()

getImaginary()

intValue()

longValue()

toString()

IONContour / IONJContour Class

IONContour() / IONJContour()

draw()

getProperty()

setNoErase()

setProperty()

setXValue()

setYValue()

setZValue()

IONDComplex Class

IONDComplex()

doubleValue()

floatValue()

getDImaginary()

getImaginary()

intValue()

longValue()

toString()

IONDisconnectListener Interface

IONDisconnection()

IONDrawable Interface

createImage()

getImage()

getIONGraphics()

IONGraphicsClient Class

IONGraphicsClient()

addIONDrawable()

connect()

copyArea()

getCurrentIndex()

getIONDrawableIndices()

getNumIndices()

readImage()

removeIONDrawable()

setIONDrawable()

IONGraphicConnection Interface

IONGrConnection / IONJGrConnection Class

IONGrConnection()

addDrawable()

connect()

debugMode()

disconnect()

executeIDLCommand()

getIDLVariable()

removeDrawable()

sendIDLCommand()

setDrawable()

setIDLVariable()

IONGrContour Class

IONGrContour()

draw()

getProperty()

setProperty()

setNoErase()

setXValue()

setYValue()

setZValue()

IONGrDrawable / IONJGrDrawable Class

IONGrDrawable() / IONJGrDrawable()

addGraphic()

debugMode()

draw()

executeIDLCommand()

getConnection()

isConnected()

removeGraphic()

resetMulti()

sendIDLCommand()

setConnection()

setMulti()

setNoErase()

IONGrGraphic Class

IONGrGraphic()

draw()

getProperty()

getPropertyNames()

getPropertyString()

registerProperty()

setNoErase()

setProperty()

IONGrMap Class

IONGrMap()

draw()

getProperty()

setLat(), setLon()

setProperty()

setRotation()

IONGrMapContinents Class

IONGrMapContinents()

draw()

getProperty()

setProperty()

IONGrMapGrid Class

IONGrMapGrid()

draw()

getProperty()

setProperty()

IONGrMapImage Class

IONGrMapImage()

draw()

getProperty()

setImage()

setProperty()

setStart()

IONGrPlot Class

IONGrPlot()

draw()

getProperty()

setNoErase()

setProperty()

setXValue()

setYValue()

IONGrSurface Class

IONGrSurface()

draw()

getProperty()

setNoErase()

setProperty()

setXValue()

setYValue()

setZValue()

IONMap / IONJMap Class

IONMap() / IONJMap()

draw()

getProperty()

setLat(), setLon()

setProperty()

setRotation()

IONMouseListener Interface

mouseMoved()

mousePressed()

mouseReleased()

IONOffScreen Class

IONOffScreen()

createImage()

getImage()

getIONGraphics()

IONOutputListener Interface

IONOutputText()

IONPlot / IONJPlot Class

IONPlot() / IONJPlot()

draw()

getProperty()

setProperty()

setXValue()

setYValue()

IONSurface / IONJSurface Class

IONSurface() / IONJSurface()

draw()

getProperty()

setNoErase()

setProperty()

setXValue()

setYValue()

setZValue()

IONVariable Class

IONVariable()

arrayDimensions()

getByte()

getByteArray()

getComplexArray()

getDComplexArray()

getDImaginary()

getDimensionedByteArray()

getDimensionedDoubleArray()

getDimensionedFloatArray()

getDimensionedIntArray()

getDimensionedShortArray()

getDouble()

getDoubleArray()

getFloat()

getFloatArray()

getImaginary()

getInt()

getIntArray()

getShort()

getShortArray()

getString()

getStringArray()

isArray()

toString()

type()

IONWindowingClient Class

IONWindowingClient()

connect()

createWindow()

deleteWindow()

showWindow()

Troubleshooting ION Java

Avoiding Conflicting ION Installations

Checking Web Server Communication

Troubleshooting ION Service Problems

Troubleshooting Applets that Fail to Display

Troubleshooting "Not Found" Errors

Troubleshooting Licensing Errors

Setting the IDL Path

Troubleshooting Security Errors

Encountering Browser Timeouts with Java Errors

ION Server Timeout

JDK 1.2 Required for Clients

IDL Reference Guide

Overview of IDL Syntax

IDL Syntax

Elements of Syntax

Procedures

Functions

Arguments

Keywords

Running the Example Code

Part I: IDL Command Reference

Functional List of IDL Routines

3D Visualization

3D Transformations & Scene Setup

Polygonal Mesh Routines

Surfaces and Contours

Tetrahedral Mesh Routines

Vector Field Visualization

Volume Visualization

Animation

Array Creation

Array Manipulation

Color Table Manipulation

Date and Time

Debugging

Dialog Routines

Direct Graphics

Error Handling

Executive Commands

External Linking

Font Manipulation

Help Routines

Image Processing

Contrast Enhancement and Filtering

Feature Extraction/Image Segmentation

Image Display

Image Geometry Transformations

Morphological Image Operators

Regions of Interest

Input/Output

General File Access

Image Data Formats

Scientific Data Formats

Other Data Formats

General Input/Output

Language Catalogs

Mapping

Mathematics

Complex Numbers

Correlation Analysis

Curve and Surface Fitting

Differentiation and Integration

Eigenvalues and Eigenvectors

Gridding and Interpolation

Hypothesis Testing

LAPACK Routines

Linear Systems

Mathematical Error Assessment

Miscellaneous Math Routines

Multivariate Analysis

Nonlinear Equations

Optimization

Probability

Sparse Arrays

Special Math Functions

Statistical Fitting

Statistical Tools

Time-Series Analysis

Transcendental Functions

Transforms

Object Class Library

Analysis Objects

File Format Objects

Graphic Objects—Destination

Graphic Objects—Display

Graphic Objects—Visualization

iTools System Objects

Miscellaneous Objects

Network Objects

Operating System Access

Performance Testing

Plotting

Programming and IDL Control

Query Routines

Saving/Restoring a Session

Scientific Data Formats

Scope Functions

Signal Processing

Statements

Compound Statements

Conditional Statements

Loop Statements

Jump Statements

Functions and Procedures

Variable Scope

String Processing

Structures

Type Conversion

Utilities

Wavelet Toolkit

Widget Commands and Visualization Tools

Wavelet Transform

Wavelet Functions

Widget Routines

Widget Routines, Compound

Animation

Color Manipulation

Data Entry and Display

Image/Data Manipulation

Orientation

User Interface

Window Routines

Dot Commands

.COMPILE

.CONTINUE

.EDIT

.FULL_RESET_SESSION

.GO

.OUT

.RESET_SESSION

.RETURN

.RNEW

.RUN

.SKIP

.STEP

.STEPOVER

.TRACE

Procedures and Functions

A_CORRELATE

ABS

ACOS

ADAPT_HIST_EQUAL

ALOG

ALOG10

AMOEBA

ANNOTATE

APP_USER_DIR

APP_USER_DIR_QUERY

ARG_PRESENT

ARRAY_EQUAL

ARRAY_INDICES

ARROW

ASCII_TEMPLATE

ASIN

ASSOC

ATAN

AXIS

BAR_PLOT

BEGIN...END

BESELI

BESELJ

BESELK

BESELY

BETA

BILINEAR

BIN_DATE

BINARY_TEMPLATE

BINDGEN

BINOMIAL

BIT_FFS

BIT_POPULATION

BLAS_AXPY

BLK_CON

BOX_CURSOR

BREAK

BREAKPOINT

BROYDEN

BUTTERWORTH

BYTARR

BYTE

BYTEORDER

BYTSCL

C_CORRELATE

CALDAT

CALENDAR

CALL_EXTERNAL

CALL_FUNCTION

CALL_METHOD

CALL_PROCEDURE

CANNY

CASE

CATCH

CD

CDF Routines

CEIL

CHEBYSHEV

CHECK_MATH

CHISQR_CVF

CHISQR_PDF

CHOLDC

CHOLSOL

CINDGEN

CIR_3PNT

CLOSE

CLUST_WTS

CLUSTER

CLUSTER_TREE

CMYK_CONVERT

COLOR_CONVERT

COLOR_EXCHANGE

COLOR_QUAN

COLOR_RANGE_MAP

COLORIZE_SAMPLE

COLORMAP_APPLICABLE

COLORMAP_GRADIENT

COLORMAP_ROTATION

COMFIT

COMMAND_LINE_ARGS

COMMON

COMPILE_OPT

COMPLEX

COMPLEXARR

COMPLEXROUND

COMPUTE_MESH_NORMALS

COND

CONGRID

CONJ

CONSTRAINED_MIN

CONTINUE

CONTOUR

CONVERT_COORD

CONVOL

COORD2TO3

COPY_LUN

CORRELATE

COS

COSH

CPU

CRAMER

CREATE_CURSOR

CREATE_STRUCT

CREATE_VIEW

CROSSP

CRVLENGTH

CT_LUMINANCE

CTI_TEST

CURSOR

CURVEFIT

CV_COORD

CVTTOBM

CW_ANIMATE

CW_ANIMATE_GETP

CW_ANIMATE_LOAD

CW_ANIMATE_RUN

CW_ARCBALL

CW_BGROUP

CW_CLR_INDEX

CW_COLORSEL

CW_DEFROI

CW_FIELD

CW_FILESEL

CW_FORM

CW_FSLIDER

CW_LIGHT_EDITOR

CW_LIGHT_EDITOR_GET

CW_LIGHT_EDITOR_SET

CW_ORIENT

CW_PALETTE_EDITOR

CW_PALETTE_EDITOR_GET

CW_PALETTE_EDITOR_SET

CW_PDMENU

CW_RGBSLIDER

CW_TMPL

CW_ZOOM

DataMiner Routines

DBLARR

DCINDGEN

DCOMPLEX

DCOMPLEXARR

DEFINE_KEY

DEFINE_MSGBLK

DEFINE_MSGBLK_FROM_FILE

DEFROI

DEFSYSV

DELVAR

DENDRO_PLOT

DENDROGRAM

DERIV

DERIVSIG

DETERM

DEVICE

DFPMIN

DIAG_MATRIX

DIALOG_MESSAGE

DIALOG_PICKFILE

DIALOG_PRINTERSETUP

DIALOG_PRINTJOB

DIALOG_READ_IMAGE

DIALOG_WRITE_IMAGE

DIGITAL_FILTER

DILATE

DINDGEN

DISSOLVE

DIST

DISTANCE_MEASURE

DLM_LOAD

DLM_REGISTER

DOC_LIBRARY

DOUBLE

DRAW_ROI

EDGE_DOG

EFONT

EIGENQL

EIGENVEC

ELMHES

EMBOSS

EMPTY

ENABLE_SYSRTN

EOF

EOS_* Routines

ERASE

ERF

ERFC

ERFCX

ERODE

ERRPLOT

EXECUTE

EXIT

EXP

EXPAND

EXPAND_PATH

EXPINT

EXTRAC

EXTRACT_SLICE

F_CVF

F_PDF

FACTORIAL

FFT

FILE_BASENAME

FILE_CHMOD

FILE_COPY

FILE_DELETE

FILE_DIRNAME

FILE_EXPAND_PATH

FILE_INFO

FILE_LINES

FILE_LINK

FILE_MKDIR

FILE_MOVE

FILE_POLL_INPUT

FILE_READLINK

FILE_SAME

FILE_SEARCH

FILE_TEST

FILE_WHICH

FILEPATH

FINDGEN

FINITE

FIX

FLICK

FLOAT

FLOOR

FLOW3

FLTARR

FLUSH

FOR

FORMAT_AXIS_VALUES

FORWARD_FUNCTION

FREE_LUN

FSTAT

FULSTR

FUNCT

FUNCTION

FV_TEST

FX_ROOT

FZ_ROOTS

GAMMA

GAMMA_CT

GAUSS_CVF

GAUSS_PDF

GAUSS2DFIT

GAUSSFIT

GAUSSINT

GET_DRIVE_LIST

GET_KBRD

GET_LUN

GET_SCREEN_SIZE

GETENV

GOTO

GRID_INPUT

GRID_TPS

GRID3

GRIDDATA

GS_ITER

H_EQ_CT

H_EQ_INT

H5_* Routines

H5_BROWSER

HANNING

HDF_* Routines

HDF_BROWSER

HDF_READ

HEAP_FREE

HEAP_GC

HEAP_NOSAVE

HEAP_SAVE

HELP

HILBERT

HIST_2D

HIST_EQUAL

HISTOGRAM

HLS

HOUGH

HQR

HSV

IBETA

ICONTOUR

IDENTITY

IDL_VALIDNAME

IDLEXBR_ASSISTANT

IDLITSYS_CREATETOOL

IF...THEN...ELSE

IGAMMA

IIMAGE

IMAGE_CONT

IMAGE_STATISTICS

IMAGINARY

IMAP

INDGEN

INT_2D

INT_3D

INT_TABULATED

INTARR

INTERPOL

INTERPOLATE

INTERVAL_VOLUME

INVERT

IOCTL

IPLOT

IR_FILTER

ISHFT

ISOCONTOUR

ISOSURFACE

ISURFACE

ITCURRENT

ITDELETE

ITGETCURRENT

ITREGISTER

ITRESET

ITRESOLVE

IVECTOR

IVOLUME

JOURNAL

JULDAY

KEYWORD_SET

KRIG2D

KURTOSIS

KW_TEST

L64INDGEN

LA_CHOLDC

LA_CHOLMPROVE

LA_CHOLSOL

LA_DETERM

LA_EIGENPROBLEM

LA_EIGENQL

LA_EIGENVEC

LA_ELMHES

LA_GM_LINEAR_MODEL

LA_HQR

LA_INVERT

LA_LEAST_SQUARE_EQUALITY

LA_LEAST_SQUARES

LA_LINEAR_EQUATION

LA_LUDC

LA_LUMPROVE

LA_LUSOL

LA_SVD

LA_TRIDC

LA_TRIMPROVE

LA_TRIQL

LA_TRIRED

LA_TRISOL

LABEL_DATE

LABEL_REGION

LADFIT

LAGUERRE

LAPLACIAN

LEEFILT

LEGENDRE

LINBCG

LINDGEN

LINFIT

LINKIMAGE

LL_ARC_DISTANCE

LMFIT

LMGR

LNGAMMA

LNP_TEST

LOADCT

LOCALE_GET

LOGICAL_AND

LOGICAL_OR

LOGICAL_TRUE

LON64ARR

LONARR

LONG

LONG64

LSODE

LU_COMPLEX

LUDC

LUMPROVE

LUSOL

M_CORRELATE

MACHAR

MAKE_ARRAY

MAKE_DLL

MAP_2POINTS

MAP_CONTINENTS

MAP_GRID

MAP_IMAGE

MAP_PATCH

MAP_PROJ_FORWARD

MAP_PROJ_IMAGE

MAP_PROJ_INFO

MAP_PROJ_INIT

MAP_PROJ_INVERSE

MAP_SET

MATRIX_MULTIPLY

MATRIX_POWER

MAX

MD_TEST

MEAN

MEANABSDEV

MEDIAN

MEMORY

MESH_CLIP

MESH_DECIMATE

MESH_ISSOLID

MESH_MERGE

MESH_NUMTRIANGLES

MESH_OBJ

MESH_SMOOTH

MESH_SURFACEAREA

MESH_VALIDATE

MESH_VOLUME

MESSAGE

MIN

MIN_CURVE_SURF

MK_HTML_HELP

MODIFYCT

MOMENT

MORPH_CLOSE

MORPH_DISTANCE

MORPH_GRADIENT

MORPH_HITORMISS

MORPH_OPEN

MORPH_THIN

MORPH_TOPHAT

MPEG_CLOSE

MPEG_OPEN

MPEG_PUT

MPEG_SAVE

MULTI

N_ELEMENTS

N_PARAMS

N_TAGS

NCDF_* Routines

NEWTON

NOISE_HURL

NOISE_PICK

NOISE_SCATTER

NOISE_SLUR

NORM

OBJ_CLASS

OBJ_DESTROY

OBJ_HASMETHOD

OBJ_ISA

OBJ_NEW

OBJ_VALID

OBJARR

ON_ERROR

ON_IOERROR

ONLINE_HELP

OPENR/OPENU/OPENW

OPLOT

OPLOTERR

P_CORRELATE

PARSE_URL

PARTICLE_TRACE

PATH_CACHE

PATH_SEP

PCOMP

PLOT

PLOT_3DBOX

PLOT_FIELD

PLOTERR

PLOTS

PNT_LINE

POINT_LUN

POLAR_CONTOUR

POLAR_SURFACE

POLY

POLY_2D

POLY_AREA

POLY_FIT

POLYFILL

POLYFILLV

POLYSHADE

POLYWARP

POPD

POWELL

PREF_COMMIT

PREF_GET

PREF_MIGRATE

PREF_SET

PREWITT

PRIMES

PRINT/PRINTF

PRINTD

PRO

PRODUCT

PROFILE

PROFILER

PROFILES

PROJECT_VOL

PS_SHOW_FONTS

PSAFM

PSEUDO

PTR_FREE

PTR_NEW

PTR_VALID

PTRARR

PUSHD

QGRID3

QHULL

QROMB

QROMO

QSIMP

QUERY_* Routines

QUERY_ASCII

QUERY_BMP

QUERY_DICOM

QUERY_GIF

QUERY_IMAGE

QUERY_JPEG

QUERY_JPEG2000

QUERY_MRSID

QUERY_PICT

QUERY_PNG

QUERY_PPM

QUERY_SRF

QUERY_TIFF

QUERY_WAV

R_CORRELATE

R_TEST

RADON

RANDOMN

RANDOMU

RANKS

RDPIX

READ/READF

READ_ASCII

READ_BINARY

READ_BMP

READ_DICOM

READ_GIF

READ_IMAGE

READ_INTERFILE

READ_JPEG

READ_JPEG2000

READ_MRSID

READ_PICT

READ_PNG

READ_PPM

READ_SPR

READ_SRF

READ_SYLK

READ_TIFF

READ_WAV

READ_WAVE

READ_X11_BITMAP

READ_XWD

READS

READU

REAL_PART

REBIN

RECALL_COMMANDS

RECON3

REDUCE_COLORS

REFORM

REGION_GROW

REGISTER_CURSOR

REGRESS

REPEAT...UNTIL

REPLICATE

REPLICATE_INPLACE

RESOLVE_ALL

RESOLVE_ROUTINE

RESTORE

RETALL

RETURN

REVERSE

RK4

ROBERTS

ROT

ROTATE

ROUND

ROUTINE_INFO

RS_TEST

S_TEST

SAVE

SAVGOL

SCALE3

SCALE3D

SCOPE_LEVEL

SCOPE_TRACEBACK

SCOPE_VARFETCH

SCOPE_VARNAME

SEARCH2D

SEARCH3D

SEM_CREATE

SEM_DELETE

SEM_LOCK

SEM_RELEASE

SET_PLOT

SET_SHADING

SETENV

SFIT

SHADE_SURF

SHADE_SURF_IRR

SHADE_VOLUME

SHIFT

SHIFT_DIFF

SHMDEBUG

SHMMAP

SHMUNMAP

SHMVAR

SHOW3

SHOWFONT

SIMPLEX

SIN

SINDGEN

SINH

SIZE

SKEWNESS

SKIP_LUN

SLICER3

SLIDE_IMAGE

SMOOTH

SOBEL

SOCKET

SORT

SPAWN

SPH_4PNT

SPH_SCAT

SPHER_HARM

SPL_INIT

SPL_INTERP

SPLINE

SPLINE_P

SPRSAB

SPRSAX

SPRSIN

SPRSTP

SQRT

STANDARDIZE

STDDEV

STOP

STRARR

STRCMP

STRCOMPRESS

STREAMLINE

STREGEX

STRETCH

STRING

STRJOIN

STRLEN

STRLOWCASE

STRMATCH

STRMESSAGE

STRMID

STRPOS

STRPUT

STRSPLIT

STRTRIM

STRUCT_ASSIGN

STRUCT_HIDE

STRUPCASE

SURFACE

SURFR

SVDC

SVDFIT

SVSOL

SWAP_ENDIAN

SWAP_ENDIAN_INPLACE

SWITCH

SYSTIME

T_CVF

T_PDF

T3D

TAG_NAMES

TAN

TANH

TEK_COLOR

TEMPORARY

TETRA_CLIP

TETRA_SURFACE

TETRA_VOLUME

THIN

THREED

TIME_TEST2

TIMEGEN

TM_TEST

TOTAL

TRACE

TRANSPOSE

TRI_SURF

TRIANGULATE

TRIGRID

TRIQL

TRIRED

TRISOL

TRUNCATE_LUN

TS_COEF

TS_DIFF

TS_FCAST

TS_SMOOTH

TV

TVCRS

TVLCT

TVRD

TVSCL

UINDGEN

UINT

UINTARR

UL64INDGEN

ULINDGEN

ULON64ARR

ULONARR

ULONG

ULONG64

UNIQ

UNSHARP_MASK

USERSYM

VALUE_LOCATE

VARIANCE

VECTOR_FIELD

VEL

VELOVECT

VERT_T3D

VOIGT

VORONOI

VOXEL_PROJ

WAIT

WARP_TRI

WATERSHED

Wavelet Toolkit

WDELETE

WF_DRAW

WHERE

WHILE...DO

WIDGET_ACTIVEX

WIDGET_BASE

WIDGET_BUTTON

WIDGET_COMBOBOX

WIDGET_CONTROL

WIDGET_DISPLAYCONTEXTMENU

WIDGET_DRAW

WIDGET_DROPLIST

WIDGET_EVENT

WIDGET_INFO

WIDGET_LABEL

WIDGET_LIST

WIDGET_PROPERTYSHEET

WIDGET_SLIDER

WIDGET_TAB

WIDGET_TABLE

WIDGET_TEXT

WIDGET_TREE

WIDGET_TREE_MOVE

WINDOW

WRITE_BMP

WRITE_GIF

WRITE_IMAGE

WRITE_JPEG

WRITE_JPEG2000

WRITE_NRIF

WRITE_PICT

WRITE_PNG

WRITE_PPM

WRITE_SPR

WRITE_SRF

WRITE_SYLK

WRITE_TIFF

WRITE_WAV

WRITE_WAVE

WRITEU

WSET

WSHOW

WTN

WV_* Routines

XBM_EDIT

XDISPLAYFILE

XDXF

XFONT

XINTERANIMATE

XLOADCT

XMANAGER

XMNG_TMPL

XMTOOL

XOBJVIEW

XOBJVIEW_ROTATE

XOBJVIEW_WRITE_IMAGE

XPALETTE

XPCOLOR

XPLOT3D

XREGISTERED

XROI

XSQ_TEST

XSURFACE

XVAREDIT

XVOLUME

XVOLUME_ROTATE

XVOLUME_WRITE_IMAGE

XYOUTS

ZOOM

ZOOM_24

Part II: Object Class and Method Reference

IDL Object Class Overview

Using the Class Reference

Object Method Syntax

Arguments

Creating Objects from the Class Library

Object Properties

Properties and the Property Sheet Interface

Setting Properties at Initialization

Setting Properties of Existing Objects

Retrieving Property Settings

About Object Property Descriptions

Registered Properties

Registering a Property

Registering All Available Properties

Registered Property Data Types

User Defined Property Types

Undocumented Object Classes

Analysis Object Classes

IDLanROI

IDLanROI Properties

IDLanROI::AppendData

IDLanROI::Cleanup

IDLanROI::ComputeGeometry

IDLanROI::ComputeMask

IDLanROI::ContainsPoints

IDLanROI::GetProperty

IDLanROI::Init

IDLanROI::RemoveData

IDLanROI::ReplaceData

IDLanROI::Rotate

IDLanROI::Scale

IDLanROI::SetProperty

IDLanROI::Translate

IDLanROIGroup

IDLanROIGroup Properties

IDLanROIGroup::Add

IDLanROIGroup::Cleanup

IDLanROIGroup::ComputeMask

IDLanROIGroup::ComputeMesh

IDLanROIGroup::ContainsPoints

IDLanROIGroup::GetProperty

IDLanROIGroup::Init

IDLanROIGroup::Rotate

IDLanROIGroup::Scale

IDLanROIGroup::Translate

File Format Object Classes

IDLffDICOM

IDLffDICOM Object DICOM Conformance Summary

IDLffDICOM Properties

IDLffDICOM::Cleanup

IDLffDICOM::DumpElements

IDLffDICOM::GetChildren

IDLffDICOM::GetDescription

IDLffDICOM::GetElement

IDLffDICOM::GetGroup

IDLffDICOM::GetLength

IDLffDICOM::GetParent

IDLffDICOM::GetPreamble

IDLffDICOM::GetReference

IDLffDICOM::GetValue

IDLffDICOM::GetVR

IDLffDICOM::Init

IDLffDICOM::Read

IDLffDICOM::Reset

IDLffDXF

IDLffDXF Properties

IDLffDXF::Cleanup

IDLffDXF::GetContents

IDLffDXF::GetEntity

Fields Common to All Structures

Structure Formats

IDLffDXF::GetPalette

IDLffDXF::Init

IDLffDXF::PutEntity

IDLffDXF::Read

IDLffDXF::RemoveEntity

IDLffDXF::Reset

IDLffDXF::SetPalette

IDLffDXF::Write

IDLffJPEG2000

Overview of IDL and JPEG2000

Saving and Restoring IDLffJPEG2000 Objects

IDLffJPEG2000 Properties

IDLffJPEG2000::Cleanup

IDLffJPEG2000::GetData

IDLffJPEG2000::GetProperty

IDLffJPEG2000::GetTileProperty

IDLffJPEG2000::GetUUID

IDLffJPEG2000::Init

IDLffJPEG2000::SetData

IDLffJPEG2000::SetProperty

IDLffJPEG2000::SetUUID

IDLffLangCat

IDLffLangCat Properties

IDLffLangCat::AppendCatalog

IDLffLangCat::Cleanup

IDLffLangCat::GetProperty

IDLffLangCat::Init

IDLffLangCat::Query

IDLffLangCat::SetProperty

IDLffMJPEG2000

IDLffMJPEG2000 Properties

IDLffMJPEG2000::Cleanup

IDLffMJPEG2000::Commit

IDLffMJPEG2000::GetData

IDLffMJPEG2000::GetProperty

IDLffMJPEG2000::GetSequentialData

IDLffMJPEG2000::Init

IDLffMJPEG2000::ReleaseSequentialData

IDLffMJPEG2000::SetData

IDLffMJPEG2000::SetProperty

IDLffMJPEG2000::StartSequentialReading

IDLffMJPEG2000::StopSequentialReading

IDLffMrSID

IDLffMrSID Properties

IDLffMrSID::Cleanup

IDLffMrSID::GetDimsAtLevel

IDLffMrSID::GetImageData

IDLffMrSID::GetProperty

IDLffMrSID::Init

IDLffShape

Overview of ESRI Shapefiles

Accessing Shapefiles

Creating New Shapefiles

Updating Existing Shapefiles

IDLffShape Properties

IDLffShape::AddAttribute

IDLffShape::Cleanup

IDLffShape::Close

IDLffShape::DestroyEntity

IDLffShape::GetAttributes

IDLffShape::GetEntity

IDLffShape::GetProperty

IDLffShape::Init

IDLffShape::Open

IDLffShape::PutEntity

IDLffShape::SetAttributes

IDLffXMLDOM Classes

IDLffXMLDOMAttr

IDLffXMLDOMAttr Properties

IDLffXMLDOMAttr::Cleanup

IDLffXMLDOMAttr::GetName

IDLffXMLDOMAttr::GetSpecified

IDLffXMLDOMAttr::GetValue

IDLffXMLDOMAttr::Init

IDLffXMLDOMAttr::SetValue

IDLffXMLDOMCDATASection

IDLffXMLDOMCDATASection Properties

IDLffXMLDOMCDATASection::Cleanup

IDLffXMLDOMCDATASection::Init

IDLffXMLDOMCharacterData

IDLffXMLDOMCharacterData Properties

IDLffXMLDOMCharacterData::AppendData

IDLffXMLDOMCharacterData::Cleanup

IDLffXMLDOMCharacterData::DeleteData

IDLffXMLDOMCharacterData::GetData

IDLffXMLDOMCharacterData::GetLength

IDLffXMLDOMCharacterData::Init

IDLffXMLDOMCharacterData::InsertData

IDLffXMLDOMCharacterData::ReplaceData

IDLffXMLDOMCharacterData::SetData

IDLffXMLDOMCharacterData::SubstringData

IDLffXMLDOMComment

IDLffXMLDOMComment Properties

IDLffXMLDOMComment::Cleanup

IDLffXMLDOMComment::Init

IDLffXMLDOMDocument

IDLffXMLDOMDocument Properties

IDLffXMLDOMDocument::Cleanup

IDLffXMLDOMDocument::CreateAttribute

IDLffXMLDOMDocument::CreateCDATASection

IDLffXMLDOMDocument::CreateComment

IDLffXMLDOMDocument::CreateDocumentFragment

IDLffXMLDOMDocument::CreateElement

IDLffXMLDOMDocument::CreateEntityReference

IDLffXMLDOMDocument::CreateNodeIterator

IDLffXMLDOMDocument::CreateProcessingInstruction

IDLffXMLDOMDocument::CreateTextNode

IDLffXMLDOMDocument::CreateTreeWalker

IDLffXMLDOMDocument::GetDoctype

IDLffXMLDOMDocument::GetDocumentElement

IDLffXMLDOMDocument::GetElementsByTagName

IDLffXMLDOMDocument::GetProperty

IDLffXMLDOMDocument::Init

IDLffXMLDOMDocument::Load

IDLffXMLDOMDocument::Save

IDLffXMLDOMDocument::SetProperty

IDLffXMLDOMDocumentFragment

IDLffXMLDOMDocumentFragment Properties

IDLffXMLDOMDocumentFragment::Cleanup

IDLffXMLDOMDocumentFragment::Init

IDLffXMLDOMDocumentType

IDLffXMLDOMDocumentType Properties

IDLffXMLDOMDocumentType::Cleanup

IDLffXMLDOMDocumentType::GetEntities

IDLffXMLDOMDocumentType::GetName

IDLffXMLDOMDocumentType::GetNotations

IDLffXMLDOMDocumentType::Init

IDLffXMLDOMElement

IDLffXMLDOMElement Properties

IDLffXMLDOMElement::Cleanup

IDLffXMLDOMElement::GetAttribute

IDLffXMLDOMElement::GetAttributeNode

IDLffXMLDOMElement::GetElementsByTagName

IDLffXMLDOMElement::GetTagName

IDLffXMLDOMElement::Init

IDLffXMLDOMElement::RemoveAttribute

IDLffXMLDOMElement::RemoveAttributeNode

IDLffXMLDOMElement::SetAttribute

IDLffXMLDOMElement::SetAttributeNode

IDLffXMLDOMEntity

IDLffXMLDOMEntity Properties

IDLffXMLDOMEntity::Cleanup

IDLffXMLDOMEntity::GetNotationName

IDLffXMLDOMEntity::GetPublicId

IDLffXMLDOMEntity::GetSystemId

IDLffXMLDOMEntity::Init

IDLffXMLDOMEntityReference

IDLffXMLDOMEntityReference Properties

IDLffXMLDOMEntityReference::Cleanup

IDLffXMLDOMEntityReference::Init

IDLffXMLDOMNamedNodeMap

IDLffXMLDOMNamedNodeMap Properties

IDLffXMLDOMNamedNodeMap::Cleanup

IDLffXMLDOMNamedNodeMap::GetLength

IDLffXMLDOMNamedNodeMap::GetNamedItem

IDLffXMLDOMNamedNodeMap::Init

IDLffXMLDOMNamedNodeMap::Item

IDLffXMLDOMNamedNodeMap::RemoveNamedItem

IDLffXMLDOMNamedNodeMap::SetNamedItem

IDLffXMLDOMNode

IDLffXMLDOMNode Properties

IDLffXMLDOMNode::AppendChild

IDLffXMLDOMNode::Cleanup

IDLffXMLDOMNode::CloneNode

IDLffXMLDOMNode::GetAttributes

IDLffXMLDOMNode::GetChildNodes

IDLffXMLDOMNode::GetFirstChild

IDLffXMLDOMNode::GetLastChild

IDLffXMLDOMNode::GetNextSibling

IDLffXMLDOMNode::GetNodeName

IDLffXMLDOMNode::GetNodeType

IDLffXMLDOMNode::GetNodeValue

IDLffXMLDOMNode::GetOwnerDocument

IDLffXMLDOMNode::GetParentNode

IDLffXMLDOMNode::GetPreviousSibling

IDLffXMLDOMNode::HasChildNodes

IDLffXMLDOMNode::Init

IDLffXMLDOMNode::InsertBefore

IDLffXMLDOMNode::RemoveChild

IDLffXMLDOMNode::ReplaceChild

IDLffXMLDOMNode::SetNodeValue

IDLffXMLDOMNodeIterator

IDLffXLMDOMNodeIterator Properties

IDLffXMLDOMNodeIterator::Cleanup

IDLffXMLDOMNodeIterator::Init

IDLffXMLDOMNodeIterator::NextNode

IDLffXMLDOMNodeIterator::PreviousNode

IDLffXMLDOMNodeList

IDLffXMLDOMNodeList Properties

IDLffXMLDOMNodeList::Cleanup

IDLffXMLDOMNodeList::GetLength

IDLffXMLDOMNodeList::Init

IDLffXMLDOMNodeList::Item

IDLffXMLDOMNotation

IDLffXMLDOMNotation Properties

IDLffXMLDOMNotation::Cleanup

IDLffXMLDOMNotation::GetPublicID

IDLffXMLDOMNotation::GetSystemID

IDLffXMLDOMNotation::Init

IDLffXMLDOMProcessingInstruction

IDLffXMLDOMProcessingInstruction Properties

IDLffXMLDOMProcessingInstruction::Cleanup

IDLffXMLDOMProcessingInstruction::GetData

IDLffXMLDOMProcessingInstruction::GetTarget

IDLffXMLDOMProcessingInstruction::Init

IDLffXMLDOMProcessingInstruction::SetData

IDLffXMLDOMText

IDLffXMLDOMText Properties

IDLffXMLDOMText::Cleanup

IDLffXMLDOMText::Init

IDLffXMLDOMText::IsIgnorableWhitespace

IDLffXMLDOMText::SplitText

IDLffXMLDOMTreeWalker

IDLffXMLDOMTreeWalker Properties

IDLffXMLDOMTreeWalker::Cleanup

IDLffXMLDOMTreeWalker::FirstChild

IDLffXMLDOMTreeWalker::GetCurrentNode

IDLffXMLDOMTreeWalker::Init

IDLffXMLDOMTreeWalker::LastChild

IDLffXMLDOMTreeWalker::NextNode

IDLffXMLDOMTreeWalker::NextSibling

IDLffXMLDOMTreeWalker::ParentNode

IDLffXMLDOMTreeWalker::PreviousNode

IDLffXMLDOMTreeWalker::PreviousSibling

IDLffXMLDOMTreeWalker::SetCurrentNode

IDLffXMLSAX

IDLffXMLSAX Properties

IDLffXMLSAX::AttributeDecl

IDLffXMLSAX::Characters

IDLffXMLSAX::Cleanup

IDLffXMLSAX::Comment

IDLffXMLSAX::ElementDecl

IDLffXMLSAX::EndCDATA

IDLffXMLSAX::EndDocument

IDLffXMLSAX::EndDTD

IDLffXMLSAX::EndElement

IDLffXMLSAX::EndEntity

IDLffXMLSAX::EndPrefixMapping

IDLffXMLSAX::Error

IDLffXMLSAX::ExternalEntityDecl

IDLffXMLSAX::FatalError

IDLffXMLSAX::GetProperty

IDLffXMLSAX::IgnorableWhitespace

IDLffXMLSAX::Init

IDLffXMLSAX::InternalEntityDecl

IDLffXMLSAX::NotationDecl

IDLffXMLSAX::ParseFile

IDLffXMLSAX::ProcessingInstruction

IDLffXMLSAX::SetProperty

IDLffXMLSAX::SkippedEntity

IDLffXMLSAX::StartCDATA

IDLffXMLSAX::StartDocument

IDLffXMLSAX::StartDTD

IDLffXMLSAX::StartElement

IDLffXMLSAX::StartEntity

IDLffXMLSAX::StartPrefixmapping

IDLffXMLSAX::StopParsing

IDLffXMLSAX::UnparsedEntityDecl

IDLffXMLSAX::Warning

iTools Object Classes

IDLitCommand

IDLitCommand Properties

IDLitCommand::AddItem

IDLitCommand::Cleanup

IDLitCommand::GetItem

IDLitCommand::GetProperty

IDLitCommand::GetSize

IDLitCommand::Init

IDLitCommand::SetProperty

IDLitCommandSet

IDLitCommandSet Properties

IDLitCommandSet::Cleanup

IDLitCommandSet::GetSize

IDLitCommandSet::Init

IDLitComponent

IDLitComponent Properties

IDLitComponent::Cleanup

IDLitComponent::EditUserDefProperty

IDLitComponent::GetFullIdentifier

IDLitComponent::GetProperty

IDLitComponent::GetPropertyAttribute

IDLitComponent::GetPropertyByIdentifier

IDLitComponent::Init

IDLitComponent::NotifyBridge

IDLitComponent::QueryProperty

IDLitComponent::RegisterProperty

IDLitComponent::Restore

IDLitComponent::SetProperty

IDLitComponent::SetPropertyAttribute

IDLitComponent::SetPropertyByIdentifier

IDLitComponent::UpdateComponentVersion

IDLitContainer

IDLitContainer Properties

IDLitContainer::Add

IDLitContainer::AddByIdentifier

IDLitContainer::Cleanup

IDLitContainer::FindIdentifiers

IDLitContainer::Get

IDLitContainer::GetByIdentifier

IDLitContainer::Init

IDLitContainer::Remove

IDLitContainer::RemoveByIdentifier

IDLitData

IDLitData Properties

IDLitData::AddDataObserver

IDLitData::Cleanup

IDLitData::Copy

IDLitData::GetByType

IDLitData::GetData

IDLitData::GetProperty

IDLitData::GetSize

IDLitData::Init

IDLitData::NotifyDataChange

IDLitData::NotifyDataComplete

IDLitData::RemoveDataObserver

IDLitData::SetData

IDLitData::SetProperty

IDLitDataContainer

IDLitDataContainer Properties

IDLitDataContainer::Add

IDLitDataContainer::Cleanup

IDLitDataContainer::GetData

IDLitDataContainer::GetIdentifiers

IDLitDataContainer::GetProperty

IDLitDataContainer::Init

IDLitDataContainer::SetData

IDLitDataContainer::SetProperty

IDLitDataOperation

IDLitDataOperation Properties

IDLitDataOperation::Cleanup

IDLitDataOperation::DoExecuteUI

IDLitDataOperation::Execute

IDLitDataOperation::GetProperty

IDLitDataOperation::Init

IDLitDataOperation::SetProperty

IDLitDataOperation::UndoExecute

IDLitDirectWindow

IDLitDirectWindow Properties

IDLitDirectWindow::Cleanup

IDLitDirectWindow::GetProperty

IDLitDirectWindow::Init

IDLitDirectWindow::MakeCurrent

IDLitDirectWindow::OnEnter

IDLitDirectWindow::OnExit

IDLitDirectWindow::OnExpose

IDLitDirectWindow::OnKeyboard

IDLitDirectWindow::OnMouseDown

IDLitDirectWindow::OnMouseMotion

IDLitDirectWindow::OnMouseUp

IDLitDirectWindow::OnResize

IDLitDirectWindow::OnWheel

IDLitDirectWindow::SetProperty

IDLitIMessaging

IDLitIMessaging Properties

IDLitIMessaging::AddOnNotifyObserver

IDLitIMessaging::DoOnNotify

IDLitIMessaging::ErrorMessage

IDLitIMessaging::GetTool

IDLitIMessaging::ProbeStatusMessage

IDLitIMessaging::ProgressBar

IDLitIMessaging::PromptUserText

IDLitIMessaging::PromptUserYesNo

IDLitIMessaging::RemoveOnNotifyObserver

IDLitIMessaging::SignalError

IDLitIMessaging::StatusMessage

IDLitManipulator

IDLitManipulator Properties

IDLitManipulator::Cleanup

IDLitManipulator::CommitUndoValues

IDLitManipulator::GetCursorType

IDLitManipulator::GetProperty

IDLitManipulator::Init

IDLitManipulator::OnKeyboard

IDLitManipulator::OnLoseCurrentManipulator

IDLitManipulator::OnMouseDown

IDLitManipulator::OnMouseMotion

IDLitManipulator::OnMouseUp

IDLitManipulator::OnWheel

IDLitManipulator::RecordUndoValues

IDLitManipulator::RegisterCursor

IDLitManipulator::SetCurrentManipulator

IDLitManipulator::SetProperty

IDLitManipulatorContainer

IDLitManipulatorContainer Properties

IDLitManipulatorContainer::Add

IDLitManipulatorContainer::GetCurrent

IDLitManipulatorContainer::GetCurrentManipulator

IDLitManipulatorContainer::GetProperty

IDLitManipulatorContainer::Init

IDLitManipulatorContainer::OnKeyboard

IDLitManipulatorContainer::OnMouseDown

IDLitManipulatorContainer::OnMouseMotion

IDLitManipulatorContainer::OnMouseUp

IDLitManipulatorContainer::OnWheel

IDLitManipulatorContainer::SetCurrent

IDLitManipulatorContainer::SetCurrentManipulator

IDLitManipulatorContainer::SetProperty

IDLitManipulatorManager

IDLitManipulatorManager Properties

IDLitManipulatorManager::Add

IDLitManipulatorManager::AddManipulatorObserver

IDLitManipulatorManager::GetDefaultManipulator

IDLitManipulatorManager::Init

IDLitManipulatorManager::RemoveManipulatorObserver

IDLitManipulatorVisual

IDLitManipulatorVisual Properties

IDLitManipulatorVisual::Cleanup

IDLitManipulatorVisual::GetProperty

IDLitManipulatorVisual::Init

IDLitManipulatorVisual::SetProperty

IDLitOperation

IDLitOperation Properties

IDLitOperation::Cleanup

IDLitOperation::DoAction

IDLitOperation::GetProperty

IDLitOperation::Init

IDLitOperation::QueryAvailability

IDLitOperation::RecordFinalValues

IDLitOperation::RecordInitialValues

IDLitOperation::RedoOperation

IDLitOperation::SetProperty

IDLitOperation::UndoOperation

IDLitParameter

IDLitParameter Properties

IDLitParameter::Cleanup

IDLitParameter::GetParameter

IDLitParameter::GetParameterAttribute

IDLitParameter::GetParameterSet

IDLitParameter::Init

IDLitParameter::OnDataChangeUpdate

IDLitParameter::OnDataDisconnect

IDLitParameter::QueryParameter

IDLitParameter::RegisterParameter

IDLitParameter::SetData

IDLitParameter::SetParameterAttribute

IDLitParameter::SetParameterSet

IDLitParameterSet

IDLitParameterSet Properties

IDLitParameterSet::Add

IDLitParameterSet::Cleanup

IDLitParameterSet::Copy

IDLitParameterSet::Get

IDLitParameterSet::GetByName

IDLitParameterSet::GetParameterName

IDLitParameterSet::Init

IDLitParameterSet::Remove

IDLitReader

IDLitReader Properties

IDLitReader::Cleanup

IDLitReader::GetData

IDLitReader::GetFileExtensions

IDLitReader::GetFilename

IDLitReader::GetProperty

IDLitReader::Init

IDLitReader::IsA

IDLitReader::SetFilename

IDLitReader::SetProperty

IDLitTool

IDLitTool Properties

IDLitTool::ActivateManipulator

IDLitTool::Add

IDLitTool::AddService

IDLitTool::Cleanup

IDLitTool::CommitActions

IDLitTool::DisableUpdates

IDLitTool::DoAction

IDLitTool::DoSetProperty

IDLitTool::DoUIService

IDLitTool::EnableUpdates

IDLitTool::FindIdentifiers

IDLitTool::GetCurrentManipulator

IDLitTool::GetFileReader

IDLitTool::GetFileWriter

IDLitTool::GetManipulators

IDLitTool::GetOperations

IDLitTool::GetProperty

IDLitTool::GetSelectedItems

IDLitTool::GetService

IDLitTool::GetVisualization

IDLitTool::Init

IDLitTool::RefreshCurrentWindow

IDLitTool::Register

IDLitTool::RegisterCustomization

IDLitTool::RegisterFileReader

IDLitTool::RegisterFileWriter

IDLitTool::RegisterManipulator

IDLitTool::RegisterOperation

IDLitTool::RegisterStatusBarSegment

IDLitTool::RegisterVisualization

IDLitTool::SetProperty

IDLitTool::UnRegister

IDLitTool::UnRegisterCustomization

IDLitTool::UnRegisterFileReader

IDLitTool::UnRegisterFileWriter

IDLitTool::UnRegisterManipulator

IDLitTool::UnRegisterOperation

IDLitTool::UnRegisterStatusBarSegment

IDLitTool::UnRegisterVisualization

IDLitToolbase

IDLitUI

IDLitUI Properties

IDLitUI::AddOnNotifyObserver

IDLitUI::Cleanup

IDLitUI::DoAction

IDLitUI::GetProperty

IDLitUI::GetTool

IDLitUI::GetWidgetByName

IDLitUI::Init

IDLitUI::RegisterUIService

IDLitUI::RegisterWidget

IDLitUI::RemoveOnNotifyObserver

IDLitUI::SetProperty

IDLitUI::UnRegisterUIService

IDLitUI::UnRegisterWidget

IDLitVisualization

IDLitVisualization Properties

IDLitVisualization::Add

IDLitVisualization::Aggregate

IDLitVisualization::BeginManipulation

IDLitVisualization::Cleanup

IDLitVisualization::EndManipulation

IDLitVisualization::Get

IDLitVisualization::GetCenterRotation

IDLitVisualization::GetCurrentSelectionVisual

IDLitVisualization::GetDataSpace

IDLitVisualization::GetDataString

IDLitVisualization::GetDefaultSelectionVisual

IDLitVisualization::GetManipulatorTarget

IDLitVisualization::GetProperty

IDLitVisualization::GetRequestedAxesStyle

IDLitVisualization::GetSelectionVisual

IDLitVisualization::GetTypes

IDLitVisualization::GetXYZRange

IDLitVisualization::Init

IDLitVisualization::Is3D

IDLitVisualization::IsIsotropic

IDLitVisualization::IsManipulatorTarget

IDLitVisualization::IsSelected

IDLitVisualization::Move

IDLitVisualization::On2DRotate

IDLitVisualization::OnAxesRequestChange

IDLitVisualization::OnAxesStyleRequestChange

IDLitVisualization::OnDataChange

IDLitVisualization::OnDataComplete

IDLitVisualization::OnDataRangeChange

IDLitVisualization::OnDimensionChange

IDLitVisualization::OnWorldDimensionChange

IDLitVisualization::Remove

IDLitVisualization::RequestsAxes

IDLitVisualization::Restore

IDLitVisualization::Rotate

IDLitVisualization::Scale

IDLitVisualization::Select

IDLitVisualization::Set3D

IDLitVisualization::SetAxesRequest

IDLitVisualization::SetAxesStyleRequest

IDLitVisualization::SetCurrentSelectionVisual

IDLitVisualization::SetData

IDLitVisualization::SetDefaultSelectionVisual

IDLitVisualization::SetParameterSet

IDLitVisualization::SetProperty

IDLitVisualization::UpdateSelectionVisual

IDLitVisualization::VisToWindow

IDLitVisualization::WindowToVis

IDLitWindow

IDLitWindow Properties

IDLitWindow::Add

IDLitWindow::AddWindowEventObserver

IDLitWindow::Cleanup

IDLitWindow::ClearSelections

IDLitWindow::DoHitTest

IDLitWindow::GetEventMask

IDLitWindow::GetProperty

IDLitWindow::GetSelectedItems

IDLitWindow::Init

IDLitWindow::OnEnter

IDLitWindow::OnExit

IDLitWindow::OnExpose

IDLitWindow::OnKeyboard

IDLitWindow::OnMouseDown

IDLitWindow::OnMouseMotion

IDLitWindow::OnMouseUp

IDLitWindow::OnResize

IDLitWindow::OnScroll

IDLitWindow::OnTimer

IDLitWindow::OnWheel

IDLitWindow::Remove

IDLitWindow::RemoveWindowEventObserver

IDLitWindow::Resize

IDLitWindow::SetCurrentZoom

IDLitWindow::SetEventMask

IDLitWindow::SetManipulatorManager

IDLitWindow::SetProperty

IDLitWindow::SetTimerInterval

IDLitWindow::ZoomIn

IDLitWindow::ZoomOut

IDLitWriter

IDLitWriter Properties

IDLitWriter::Cleanup

IDLitWriter::GetFileExtensions

IDLitWriter::GetFilename

IDLitWriter::GetProperty

IDLitWriter::Init

IDLitWriter::IsA

IDLitWriter::SetData

IDLitWriter::SetFilename

IDLitWriter::SetProperty

Graphics Object Classes

IDLgrAxis

IDLgrAxis Properties

IDLgrAxis::Cleanup

IDLgrAxis::GetCTM

IDLgrAxis::GetProperty

IDLgrAxis::Init

IDLgrAxis::SetProperty

IDLgrBuffer

IDLgrBuffer Properties

IDLgrBuffer::Cleanup

IDLgrBuffer::Draw

IDLgrBuffer::Erase

IDLgrBuffer::GetContiguousPixels

IDLgrBuffer::GetDeviceInfo

IDLgrBuffer::GetFontnames

IDLgrBuffer::GetProperty

IDLgrBuffer::GetTextDimensions

IDLgrBuffer::Init

IDLgrBuffer::PickData

IDLgrBuffer::QueryRequiredTiles

IDLgrBuffer::Read

IDLgrBuffer::Select

IDLgrBuffer::SetProperty

IDLgrClipboard

IDLgrClipboard Properties

IDLgrClipboard::Cleanup

IDLgrClipboard::Draw

IDLgrClipboard::GetContiguousPixels

IDLgrClipboard::GetDeviceInfo

IDLgrClipboard::GetFontnames

IDLgrClipboard::GetProperty

IDLgrClipboard::GetTextDimensions

IDLgrClipboard::Init

IDLgrClipboard::QueryRequiredTiles

IDLgrClipboard::SetProperty

IDLgrColorbar

IDLgrColorbar Properties

IDLgrColorbar::Cleanup

IDLgrColorbar::ComputeDimensions

IDLgrColorbar::GetProperty

IDLgrColorbar::Init

IDLgrColorbar::SetProperty

IDLgrContour

IDLgrContour Properties

IDLgrContour::AdjustLabelOffsets

IDLgrContour::Cleanup

IDLgrContour::GetCTM

IDLgrContour::GetLabelInfo

IDLgrContour::GetProperty

IDLgrContour::Init

IDLgrContour::SetProperty

IDLgrFilterChain

IDLgrFilterChain Properties

IDLgrFilterChain::Cleanup

IDLgrFilterChain::GetProperty

IDLgrFilterChain::Init

IDLgrFilterChain::SetProperty

IDLgrFont

IDLgrFont Properties

IDLgrFont::Cleanup

IDLgrFont::GetProperty

IDLgrFont::Init

IDLgrFont::SetProperty

IDLgrImage

IDLgrImage Properties

IDLgrImage::Cleanup

IDLgrImage::DeleteTileData

IDLgrImage::GetCTM

IDLgrImage::GetProperty

IDLgrImage::Init

IDLgrImage::ReadFilteredData

IDLgrImage::SetProperty

IDLgrImage::SetTileData

IDLgrImage::TileDataLoaded

IDLgrLegend

IDLgrLegend Properties

IDLgrLegend::Cleanup

IDLgrLegend::ComputeDimensions

IDLgrLegend::GetProperty

IDLgrLegend::Init

IDLgrLegend::SetProperty

IDLgrLight

IDLgrLight Properties

IDLgrLight::Cleanup

IDLgrLight::GetCTM

IDLgrLight::GetProperty

IDLgrLight::Init

IDLgrLight::SetProperty

IDLgrModel

IDLgrModel Properties

IDLgrModel::Add

IDLgrModel::Cleanup

IDLgrModel::Draw

IDLgrModel::GetByName

IDLgrModel::GetCTM

IDLgrModel::GetProperty

IDLgrModel::Init

IDLgrModel::Reset

IDLgrModel::Rotate

IDLgrModel::Scale

IDLgrModel::SetProperty

IDLgrModel::Translate

IDLgrMPEG

IDLgrMPEG Properties

IDLgrMPEG::Cleanup

IDLgrMPEG::GetProperty

IDLgrMPEG::Init

IDLgrMPEG::Put

IDLgrMPEG::Save

IDLgrMPEG::SetProperty

IDLgrPalette

IDLgrPalette Properties

IDLgrPalette::Cleanup

IDLgrPalette::GetRGB

IDLgrPalette::GetProperty

IDLgrPalette::Init

IDLgrPalette::LoadCT

IDLgrPalette::NearestColor

IDLgrPalette::SetRGB

IDLgrPalette::SetProperty

IDLgrPattern

IDLgrPattern Properties

IDLgrPattern::Cleanup

IDLgrPattern::GetProperty

IDLgrPattern::Init

IDLgrPattern:SetProperty

IDLgrPlot

IDLgrPlot Properties

IDLgrPlot::Cleanup

IDLgrPlot::GetCTM

IDLgrPlot::GetProperty

IDLgrPlot::GetVertexAttributeData

IDLgrPlot::Init

IDLgrPlot::SetProperty

IDLgrPlot::SetVertexAttributeData

IDLgrPolygon

IDLgrPolygon Properties

IDLgrPolygon::Cleanup

IDLgrPolygon::GetCTM

IDLgrPolygon::GetMultiTextureCoord

IDLgrPolygon::GetProperty

IDLgrPolygon::GetVertexAttributeData

IDLgrPolygon::Init

IDLgrPolygon::SetMultiTextureCoord

IDLgrPolygon::SetProperty

IDLgrPolygon::SetVertexAttributeData

IDLgrPolyline

IDLgrPolyline Properties

IDLgrPolyline::Cleanup

IDLgrPolyline::GetCTM

IDLgrPolyline::GetProperty

IDLgrPolyline::GetVertexAttributeData

IDLgrPolyline::Init

IDLgrPolyline::SetProperty

IDLgrPolyline::SetVertexAttributeData

IDLgrPrinter

IDLgrPrinter Properties

IDLgrPrinter::Cleanup

IDLgrPrinter::Draw

IDLgrPrinter::GetContiguousPixels

IDLgrPrinter::GetFontnames

IDLgrPrinter::GetProperty

IDLgrPrinter::GetTextDimensions

IDLgrPrinter::Init

IDLgrPrinter::NewDocument

IDLgrPrinter::NewPage

IDLgrPrinter::QueryRequiredTiles

IDLgrPrinter::SetProperty

IDLgrROI

IDLgrROI Properties

IDLgrROI::Cleanup

IDLgrROI::GetProperty

IDLgrROI::Init

IDLgrROI::PickVertex

IDLgrROI::SetProperty

IDLgrROIGroup

IDLgrROIGroup Properties

IDLgrROIGroup::Add

IDLgrROIGroup::Cleanup

IDLgrROIGroup::GetProperty

IDLgrROIGroup::Init

IDLgrROIGroup::PickRegion

IDLgrROIGroup::Remove

IDLgrROIGroup::SetProperty

IDLgrScene

IDLgrScene Properties

IDLgrScene::Add

IDLgrScene::Cleanup

IDLgrScene::GetByName

IDLgrScene::GetProperty

IDLgrScene::Init

IDLgrScene::SetProperty

IDLgrShader

IDLgrShader Properties

IDLgrShader::Cleanup

IDLgrShader::Filter

IDLgrShader::GetProperty

IDLgrShader::GetUniformVariable

IDLgrShader::Init

IDLgrShader::SetProperty

IDLgrShader::SetUniformVariable

IDLgrShaderBytscl

IDLgrShaderBytscl Properties

IDLgrShaderBytscl::Cleanup

IDLgrShaderBytscl::GetProperty

IDLgrShaderBytscl::Init

IDLgrShaderBytscl::SetProperty

IDLgrShaderConvol3

IDLgrShaderConvol3 Properties

IDLgrShaderConvol3::Cleanup

IDLgrShaderConvol3::GetProperty

IDLgrShaderConvol3::Init

IDLgrShaderConvol3::SetProperty

IDLgrSurface

IDLgrSurface Properties

IDLgrSurface::Cleanup

IDLgrSurface::GetCTM

IDLgrSurface::GetMultiTextureCoord

IDLgrSurface::GetProperty

IDLgrSurface::GetVertexAttributeData

IDLgrSurface::Init

IDLgrSurface::SetProperty

IDLgrSurface::SetMultiTextureCoord

IDLgrSurface::SetVertexAttributeData

IDLgrSymbol

IDLgrSymbol Properties

IDLgrSymbol::Cleanup

IDLgrSymbol::GetProperty

IDLgrSymbol::Init

IDLgrSymbol::SetProperty

IDLgrTessellator

IDLgrTessellator Properties

IDLgrTessellator::AddPolygon

IDLgrTessellator::Cleanup

IDLgrTessellator::Init

IDLgrTessellator::Reset

IDLgrTessellator::Tessellate

IDLgrText

IDLgrText Properties

IDLgrText::Cleanup

IDLgrText::GetCTM

IDLgrText::GetProperty

IDLgrText::Init

IDLgrText::SetProperty

IDLgrView

IDLgrView Properties

IDLgrView::Add

IDLgrView::Cleanup

IDLgrView::GetByName

IDLgrView::GetProperty

IDLgrView::Init

IDLgrView::SetProperty

IDLgrViewgroup

IDLgrViewgroup Properties

IDLgrViewgroup::Add

IDLgrViewgroup::Cleanup

IDLgrViewgroup::GetByName

IDLgrViewgroup::GetProperty

IDLgrViewgroup::Init

IDLgrViewgroup::SetProperty

IDLgrVolume

IDLgrVolume Properties

IDLgrVolume::Cleanup

IDLgrVolume::ComputeBounds

IDLgrVolume::GetCTM

IDLgrVolume::GetProperty

IDLgrVolume::Init

IDLgrVolume::PickVoxel

IDLgrVolume::SetProperty

IDLgrVRML

IDLgrVRML Properties

IDLgrVRML::Cleanup

IDLgrVRML::Draw

IDLgrVRML::GetDeviceInfo

IDLgrVRML::GetFontnames

IDLgrVRML::GetProperty

IDLgrVRML::GetTextDimensions

IDLgrVRML::Init

IDLgrVRML::SetProperty

IDLgrWindow

IDLgrWindow Properties

IDLgrWindow::Cleanup

IDLgrWindow::Draw

IDLgrWindow::Erase

IDLgrWindow::GetContiguousPixels

IDLgrWindow::GetDeviceInfo

IDLgrWindow::GetDimensions

IDLgrWindow::GetFontnames

IDLgrWindow::GetProperty

IDLgrWindow::GetTextDimensions

IDLgrWindow::Iconify

IDLgrWindow::Init

IDLgrWindow::OnEnter

IDLgrWindow::OnExit

IDLgrWindow::OnExpose

IDLgrWindow::OnKeyboard

IDLgrWindow::OnMouseDown

IDLgrWindow::OnMouseMotion

IDLgrWindow::OnMouseUp

IDLgrWindow::OnResize

IDLgrWindow::OnWheel

IDLgrWindow::PickData

IDLgrWindow::QueryRequiredTiles

IDLgrWindow::Read

IDLgrWindow::Select

IDLgrWindow::SetCurrentCursor

IDLgrWindow::SetCurrentZoom

IDLgrWindow::SetProperty

IDLgrWindow::Show

IDLgrWindow::ZoomIn

IDLgrWindow::ZoomOut

Network Objects

About Network Objects

Generic Network Resources

Geospatial Network Resources

IDLnetOGCWCS

Web Coverage Service (WCS) Overview

Supported OGC WCS Version

Making OGC WCS Server Requests

Translating a URL into Property Values

Using Callbacks with the IDLnetOGCWCS Object

HTTP Authentication, Security and Encoding

IDLnetOGCWCS Properties

IDLnetOGCWCS::Cleanup

IDLnetOGCWCS::DescribeCoverage

IDLnetOGCWCS::GetCapabilities

IDLnetOGCWCS::GetCoverage

IDLnetOGCWCS::GetCoverageOffering

IDLnetOGCWCS::GetCoverageOfferingBriefs

IDLnetOGCWCS::GetProperty

IDLnetOGCWCS::GetServiceSection

IDLnetOGCWCS::Init

IDLnetOGCWCS::ParseUrl

IDLnetOGCWCS::SetProperty

IDLnetOGCWMS

Web Map Service (WMS) Overview

Supported OGC WMS Version

Making OGC WMS Server Requests

Translating a URL into Property Values

Using Callbacks with the IDLnetOGCWMS Object

HTTP Authentication, Security and Encoding

IDLnetOGCWMS Properties

IDLnetOGCWMS::Cleanup

IDLnetOGCWMS::GetCapabilities

IDLnetOGCWMS::GetFeatureInfo

IDLnetOGCWMS::GetLayers

IDLnetOGCWMS::GetMap

IDLnetOGCWMS::GetProperty

IDLnetOGCWMS::GetServiceSection

IDLnetOGCWMS::Init

IDLnetOGCWMS::ParseUrl

IDLnetOGCWMS::SetProperty

IDLnetURL

Overview of the IDLnetURL Object

Mapping URL Components to IDLnetURL Properties

Using Callbacks with the IDLnetURL Object

HTTP and FTP Response Codes

IDLnetURL Properties

IDLnetURL::Cleanup

IDLnetURL::CloseConnections

IDLnetURL::FtpCommand

IDLnetURL::Get

IDLnetURL::GetFtpDirList

IDLnetURL::GetProperty

IDLnetURL::Init

IDLnetURL::Put

IDLnetURL::SetProperty

Miscellaneous Object Classes

IDL_Container

IDL_Container Properties

IDL_Container::Add

IDL_Container::Cleanup

IDL_Container::Count

IDL_Container::Get

IDL_Container::Init

IDL_Container::IsContained

IDL_Container::Move

IDL_Container::Remove

IDL_IDLBridge

IDL_IDLBridge Properties

IDL_IDLBridge::Abort

IDL_IDLBridge::Cleanup

IDL_IDLBridge::Execute

IDL_IDLBridge::GetProperty

IDL_IDLBridge::GetVar

IDL_IDLBridge::Init

IDL_IDLBridge::OnCallback

IDL_IDLBridge::SetProperty

IDL_IDLBridge::SetVar

IDL_IDLBridge::Status

IDL_Savefile

IDL_Savefile Properties

IDL_Savefile::Cleanup

IDL_Savefile::Contents

IDL_Savefile::Init

IDL_Savefile::Names

IDL_Savefile::Restore

IDL_Savefile::Size

IDLcomActiveX

IDLcomActiveX Properties

IDLcomIDispatch

IDLcomIDispatch Properties

IDLcomIDispatch::GetProperty

IDLcomIDispatch::Init

IDLcomIDispatch::SetProperty

IDLjavaObject

IDLjavaObject Properties

IDLjavaObject::GetProperty

IDLjavaObject::Init

IDLjavaObject::SetProperty

IDLsysMonitorInfo

Overview of Multi-Monitor Support

IDLsysMonitorInfo Properties

IDLsysMonitorInfo::Cleanup

IDLsysMonitorInfo::GetMonitorNames

IDLsysMonitorInfo::GetNumberOfMonitors

IDLsysMonitorInfo::GetPrimaryMonitorIndex

IDLsysMonitorInfo::GetProperty

IDLsysMonitorInfo::GetRectangles

IDLsysMonitorInfo::GetResolutions

IDLsysMonitorInfo::Init

IDLsysMonitorInfo::IsExtendedDesktop

IDLsysMonitorInfo::SetProperty

TrackBall

TrackBall Properties

TrackBall::Init

TrackBall::Reset

TrackBall::Update

Part III: Appendices

IDL Direct Graphics Devices

Supported Devices

Devices with Scalable Pixels

Keywords Accepted by the IDL Devices

Window Systems

Backing Store

Image Display On Monochrome Devices

Printing Graphics Output Files

Setting Up The Printer

Positioning Graphics Output

Image Background Color

The CGM Device

Abilities and Limitations

The HP-GL Device

Abilities And Limitations

HP-GL Linestyles

The Metafile Display Device

The Null Display Device

The PCL Device

The Printer Device

The PostScript Device

Using PostScript Fonts

Color PostScript

PostScript Positioning

Importing IDL Plots into Other Documents

The Regis Terminal Device

Defaults for Regis Devices

Regis Limitations

The Tektronix Device

The DEVICE Procedure For Tektronix Terminals

Tektronix Limitations

Tektronix Device Limitations

The Microsoft Windows Device

The X Windows Device

X Windows Visuals

Using Color Under X

Using Pixmaps

How Color is Interpreted for a TrueColor Visual

Setting the X Window Defaults

The Z-Buffer Device

Reading and Writing Buffers

Z-Axis Scaling

Polyfill Procedure

Examples Using the Z-Buffer

Graphics Keywords

Graphic Keywords List

BACKGROUND

CHANNEL

CHARSIZE

CHARTHICK

CLIP

COLOR

DATA

DEVICE

FONT

LINESTYLE

NOCLIP

NODATA

NOERASE

NORMAL

ORIENTATION

POSITION

PSYM

SUBTITLE

SYMSIZE

T3D

THICK

TICKLEN

TITLE

[XYZ]CHARSIZE

[XYZ]GRIDSTYLE

[XYZ]MARGIN

[XYZ]MINOR

[XYZ]RANGE

[XYZ]STYLE

[XYZ]THICK

[XYZ]TICK_GET

[XYZ]TICKFORMAT

[XYZ]TICKINTERVAL

[XYZ]TICKLAYOUT

[XYZ]TICKLEN

[XYZ]TICKNAME

[XYZ]TICKS

[XYZ]TICKUNITS

[XYZ]TICKV

[XYZ]TITLE

Z

ZVALUE

Thread Pool Keywords

System Variables

What Are System Variables?

Changing the Value of a System Variable

Default Values of System Variables

Constant System Variables

Error Handling System Variables

IDL Environment System Variables

Graphics System Variables

Two-Dimensional Coordinate Conversion

IDL Preferences

About IDL Preferences

Understanding Preference Sources

Changing Preference Values

Understanding Preference Files

Using Preference Etiquette

General User Environment Preferences

IDL_DATAFILE_USER_COMMENTS

IDL_DEVICE

IDL_EDIT_INPUT

IDL_EXCEPT

IDL_MORE

IDL_MSG_PREFIX

IDL_PROMPT

IDL_QUIET

IDL_RBUF_PERSIST

IDL_RBUF_SIZE

Directory and Search Path Preferences

IDL_DIR

IDL_DLM_PATH

IDL_HELP_PATH

IDL_MAKE_DLL_COMPILE_DIRECTORY

IDL_PATH

IDL_PATH_CACHE_DISABLE

IDL_STARTUP

IDL_TMPDIR

!CPU Settings Preferences

IDL_CPU_TPOOL_MAX_ELTS

IDL_CPU_TPOOL_MIN_ELTS

IDL_CPU_TPOOL_NTHREADS

IDL_CPU_VECTOR_ENABLE

General Graphics Preferences

IDL_GR_TILECACHESIZE

IDL_GR_TTCACHESIZE

Windows Graphics Preferences

IDL_GR_WIN_HEIGHT

IDL_GR_WIN_LAYOUT

IDL_GR_WIN_ONTOP

IDL_GR_WIN_QSCREEN

IDL_GR_WIN_RENDERER

IDL_GR_WIN_RETAIN

IDL_GR_WIN_WIDTH

X Window System Graphics Preferences

IDL_GR_X_COLORS

IDL_GR_X_DEPTH

IDL_GR_X_HEIGHT

IDL_GR_X_QSCREEN

IDL_GR_X_RENDERER

IDL_GR_X_RETAIN

IDL_GR_X_VISUAL

IDL_GR_X_WIDTH

Windows IDE Preferences

IDL_WDE_EDIT_BACKUP

IDL_WDE_EDIT_[B|F]COLOR_*

IDL_WDE_EDIT_CHROMACODE

IDL_WDE_EDIT_COMPILE_OPTION

IDL_WDE_EDIT_CWD

IDL_WDE_EDIT_FONT

IDL_WDE_EDIT_OPEN_ON_DEBUG

IDL_WDE_EDIT_READONLY

IDL_WDE_EDIT_TAB_ENABLE

IDL_WDE_EDIT_TAB_SP_ON_SAVE

IDL_WDE_EDIT_TAB_WIDTH

IDL_WDE_EXIT_CONFIRM

IDL_WDE_INPUT_FONT

IDL_WDE_LOG_FONT

IDL_WDE_LOG_LINES

IDL_WDE_LOG_TRIM

IDL_WDE_SPLASHSCREEN

IDL_WDE_START_DIR

Motif IDE Preferences

IDL_MDE_EDIT_BACKUP

IDL_MDE_EDIT_COMPILE_OPTION

IDL_MDE_EDIT_CWD

IDL_MDE_EDIT_READONLY

IDL_MDE_EXIT_CONFIRM

IDL_MDE_LOG_LINES

IDL_MDE_LOG_TRIM

IDL_MDE_SPLASHSCREEN

IDL_MDE_START_DIR

Windows Runtime Preferences

IDL_WINRT_FILE

IDL_WINRT_FILE_TYPE

IDL_WINRT_ICON

Support for Obsolete Preference Mechanisms

IDL_PREF_OBSOLETE_MIGRATE

IDL_PREF_OBSOLETE_WARN

Special Characters

Exclamation Point (!)

Apostrophe (')

Semicolon (;)

Dollar Sign ($)

Quotation Mark (")

Period (.)

Ampersand (&)

Colon (:)

Asterisk (*)

At Sign (@)

Question Mark (?)

Reserved Words

Fonts

Overview of Fonts in IDL

Hershey Vector Fonts

TrueType Fonts

Device Fonts

Choosing a Font Type

Fonts in IDL Direct vs. Object Graphics

IDL Direct Graphics

IDL Object Graphics

About Hershey Vector Fonts

Using Hershey Vector Fonts

ISO Latin 1 Encoding

Greek Fonts

Customizing the Hershey Vector Fonts

About TrueType Fonts

Using TrueType Fonts

IDL TrueType Font Resource Files

Adding Your Own Fonts

Where IDL Searches for Fonts

About Device Fonts

Which Device Fonts Are Available?

Using Device Fonts

Fonts and the PostScript Device

Controlling Size, Position and Font Use

Specifying Font Size

Embedded Formatting Commands

Changing Fonts within a String

Positioning Commands

Formatting Command Examples

A Complex Equation

Fraction Example

Hershey Vector-Drawn Font Example

TrueType Font Samples

Hershey Vector Font Samples

IDL GUIBuilder Widget Reference

Common Widget Properties

Common Attributes

Common Events

Base Widget Properties

Base Widget Attributes

Base Widget Events

Button Widget Properties

Creating Multiple Radio Buttons or Checkboxes

Button, Radio Button, and Checkbox Widget Attributes

Button, Radio Button, and Checkbox Widget Events

Text Widget Properties

Text Widget Attributes

Text Widget Events

Label Widget Properties

Label Widget Attributes

Label Widget Events

Slider Widget Properties

Horizontal and Vertical Slider Widget Attributes

Horizontal and Vertical Slider Widget Events

Droplist Widget Properties

Droplist Widget Attributes

Droplist Widget Events

Listbox Widget Properties

Listbox Widget Attributes

Listbox Widget Events

Draw Widget Properties

Draw Area Widget Attributes

Draw Area Widget Events

Table Widget Properties

Table Widget Attributes

Table Widget Events

Tab Widget Properties

Tab Widget Attributes

Tab Widget Events

Tree Widget Properties

Tree Widget Attributes

Tree Widget Events

Obsolete Features

What Are Obsolete Features?

Features Obsoleted in IDL 6.4

Features Obsoleted in IDL 6.3

Features Obsoleted in IDL 6.2

Features Obsoleted in IDL 6.1

Features Obsoleted in IDL 6.0

Features Obsoleted in IDL 5.6

Features Obsoleted in IDL 5.5

Features Obsoleted in IDL 5.4

Features Obsoleted in IDL 5.3

SDF Routines Obsoleted in IDL 5.3

What is DFSD and Why Are We Obsoleting It?

Features Obsoleted in IDL 5.2

Features Obsoleted in IDL 5.1

Features Obsoleted in IDL 5.0

Features Obsoleted in IDL 4.0 or Earlier

Obsolete System Variables

Obsolete Graphics Devices

Scientific Data Formats

Scientific Data Formats Overview

CDF—Common Data Format

HDF—Hierarchical Data Format

HDF-EOS—Hierarchical Data Format - Earth Observing System

NetCDF—Network Common Data Format

Common Data Format

Overview of the Common Data Format

Variables and Attributes

Variables

rVariables

zVariables

Attributes

Specifying Attributes and Variables

CDF File Options

File Type

Data Encodings/Decodings

Creating CDF Files

Reading CDF Files

Type Conversion

Example: Creating a CDF File

Alphabetical Listing of CDF Routines

CDF_ATTCREATE

CDF_ATTDELETE

CDF_ATTEXISTS

CDF_ATTGET

CDF_ATTINQ

CDF_ATTNUM

CDF_ATTPUT

CDF_ATTRENAME

CDF_CLOSE

CDF_COMPRESSION

CDF_CONTROL

CDF_CREATE

CDF_DELETE

CDF_DOC

CDF_ENCODE_EPOCH

CDF_ENCODE_EPOCH16

CDF_EPOCH

CDF_EPOCH16

CDF_EPOCH_COMPARE

CDF_EPOCH_DIFF

CDF_ERROR

CDF_EXISTS

CDF_INQUIRE

CDF_LIB_INFO

CDF_OPEN

CDF_PARSE_EPOCH

CDF_PARSE_EPOCH16

CDF_SET_CDF27_BACKWARD_COMPATIBLE

CDF_VARCREATE

CDF_VARDELETE

CDF_VARGET

CDF_VARGET1

CDF_VARINQ

CDF_VARNUM

CDF_VARPUT

CDF_VARRENAME

Hierarchical Data Format - HDF5

Overview of the HDF Version 5 Format

The HDF5 Format

HDF4 versus HDF5

The IDL HDF5 Library

Routine Names

Functions Versus Procedures

Error Handling

Dimension Order

IDL HDF5 Limitations

HDF5 Datatypes

Compound Datatypes

Opaque Datatypes

Enumeration Datatypes

Variable Length Array Datatypes

Example: Reading an Image

Example: Reading a Subselection

Example: Creating a Data File

Example: Reading Partial Datasets

Alphabetical Listing of HDF5 Routines

H5_CLOSE

H5_CREATE

H5_GET_LIBVERSION

H5_OPEN

H5_PARSE

H5A_CLOSE

H5A_CREATE

H5A_DELETE

H5A_GET_NAME

H5A_GET_NUM_ATTRS

H5A_GET_SPACE

H5A_GET_TYPE

H5A_OPEN_IDX

H5A_OPEN_NAME

H5A_READ

H5A_WRITE

H5D_CLOSE

H5D_CREATE

H5D_EXTEND

H5D_GET_SPACE

H5D_GET_STORAGE_SIZE

H5D_GET_TYPE

H5D_OPEN

H5D_READ

H5D_WRITE

H5F_CLOSE

H5F_CREATE

H5F_IS_HDF5

H5F_OPEN

H5G_CLOSE

H5G_CREATE

H5G_GET_COMMENT

H5G_GET_LINKVAL

H5G_GET_MEMBER_NAME

H5G_GET_NMEMBERS

H5G_GET_NUM_OBJS

H5G_GET_OBJ_NAME_BY_IDX

H5G_GET_OBJINFO

H5G_LINK

H5G_MOVE

H5G_OPEN

H5G_SET_COMMENT

H5G_UNLINK

H5I_GET_FILE_ID

H5I_GET_TYPE

H5R_CREATE

H5R_DEREFERENCE

H5R_GET_OBJECT_TYPE

H5R_GET_REGION

H5S_CLOSE

H5S_COPY

H5S_CREATE_SCALAR

H5S_CREATE_SIMPLE

H5S_GET_SELECT_BOUNDS

H5S_GET_SELECT_ELEM_NPOINTS

H5S_GET_SELECT_ELEM_POINTLIST

H5S_GET_SELECT_HYPER_BLOCKLIST

H5S_GET_SELECT_HYPER_NBLOCKS

H5S_GET_SELECT_NPOINTS

H5S_GET_SIMPLE_EXTENT_DIMS

H5S_GET_SIMPLE_EXTENT_NDIMS

H5S_GET_SIMPLE_EXTENT_NPOINTS

H5S_GET_SIMPLE_EXTENT_TYPE

H5S_IS_SIMPLE

H5S_OFFSET_SIMPLE

H5S_SELECT_ALL

H5S_SELECT_ELEMENTS

H5S_SELECT_HYPERSLAB

H5S_SELECT_NONE

H5S_SELECT_VALID

H5S_SET_EXTENT_NONE

H5S_SET_EXTENT_SIMPLE

H5T_ARRAY_CREATE

H5T_CLOSE

H5T_COMMIT

H5T_COMMITTED

H5T_COMPOUND_CREATE

H5T_COPY

H5T_ENUM_CREATE

H5T_ENUM_GET_DATA

H5T_ENUM_INSERT

H5T_ENUM_NAMEOF

H5T_ENUM_SET_DATA

H5T_ENUM_VALUEOF

H5T_ENUM_VALUES_TO_NAMES

H5T_EQUAL

H5T_GET_ARRAY_DIMS

H5T_GET_ARRAY_NDIMS

H5T_GET_CLASS

H5T_GET_CSET

H5T_GET_EBIAS

H5T_GET_FIELDS

H5T_GET_INPAD

H5T_GET_MEMBER_CLASS

H5T_GET_MEMBER_INDEX

H5T_GET_MEMBER_NAME

H5T_GET_MEMBER_OFFSET

H5T_GET_MEMBER_TYPE

H5T_GET_MEMBER_VALUE

H5T_GET_NMEMBERS

H5T_GET_NORM

H5T_GET_OFFSET

H5T_GET_ORDER

H5T_GET_PAD

H5T_GET_PRECISION

H5T_GET_SIGN

H5T_GET_SIZE

H5T_GET_STRPAD

H5T_GET_SUPER

H5T_GET_TAG

H5T_IDL_CREATE

H5T_IDLTYPE

H5T_INSERT

H5T_MEMTYPE

H5T_OPEN

H5T_REFERENCE_CREATE

H5T_SET_TAG

H5T_STR_TO_VLEN

H5T_VLEN_CREATE

H5T_VLEN_TO_STR

Hierarchical Data Format

Overview of the HDF Format

HDF Interfaces

Single File Application Interfaces

Multi-File Application Interface

Creating HDF Files

Adding Data to an HDF File

HDF Examples

HDF Scientific Dataset ID Numbers

IDL and HDF Data Types

Common HDF Tag Numbers

Alphabetical Listing of HDF Routines

HDF_AN_ANNLEN

HDF_AN_ANNLIST

HDF_AN_ATYPE2TAG

HDF_AN_CREATE

HDF_AN_CREATEF

HDF_AN_END

HDF_AN_ENDACCESS

HDF_AN_FILEINFO

HDF_AN_GET_TAGREF

HDF_AN_ID2TAGREF

HDF_AN_NUMANN

HDF_AN_READANN

HDF_AN_SELECT

HDF_AN_START

HDF_AN_TAG2ATYPE

HDF_AN_TAGREF2ID

HDF_AN_WRITEANN

HDF_CLOSE

HDF_DELDD

HDF_DF24_ADDIMAGE

HDF_DF24_GETIMAGE

HDF_DF24_GETINFO

HDF_DF24_LASTREF

HDF_DF24_NIMAGES

HDF_DF24_READREF

HDF_DF24_RESTART

HDF_DFAN_ADDFDS

HDF_DFAN_ADDFID

HDF_DFAN_GETDESC

HDF_DFAN_GETFDS

HDF_DFAN_GETFID

HDF_DFAN_GETLABEL

HDF_DFAN_LABLIST

HDF_DFAN_LASTREF

HDF_DFAN_PUTDESC

HDF_DFAN_PUTLABEL

HDF_DFP_ADDPAL

HDF_DFP_GETPAL

HDF_DFP_LASTREF

HDF_DFP_NPALS

HDF_DFP_PUTPAL

HDF_DFP_READREF

HDF_DFP_RESTART

HDF_DFP_WRITEREF

HDF_DFR8_ADDIMAGE

HDF_DFR8_GETIMAGE

HDF_DFR8_GETINFO

HDF_DFR8_LASTREF

HDF_DFR8_NIMAGES

HDF_DFR8_PUTIMAGE

HDF_DFR8_READREF

HDF_DFR8_RESTART

HDF_DFR8_SETPALETTE

HDF_DUPDD

HDF_EXISTS

HDF_GR_ATTRINFO

HDF_GR_CREATE

HDF_GR_END

HDF_GR_ENDACCESS

HDF_GR_FILEINFO

HDF_GR_FINDATTR

HDF_GR_GETATTR

HDF_GR_GETCHUNKINFO

HDF_GR_GETIMINFO

HDF_GR_GETLUTID

HDF_GR_GETLUTINFO

HDF_GR_IDTOREF

HDF_GR_LUTTOREF

HDF_GR_NAMETOINDEX

HDF_GR_READIMAGE

HDF_GR_READLUT

HDF_GR_REFTOINDEX

HDF_GR_SELECT

HDF_GR_SETATTR

HDF_GR_SETCHUNK

HDF_GR_SETCHUNKCACHE

HDF_GR_SETCOMPRESS

HDF_GR_SETEXTERNALFILE

HDF_GR_START

HDF_GR_WRITEIMAGE

HDF_GR_WRITELUT

HDF_HDF2IDLTYPE

HDF_IDL2HDFTYPE

HDF_ISHDF

HDF_LIB_INFO

HDF_NEWREF

HDF_NUMBER

HDF_OPEN

HDF_PACKDATA

HDF_SD_ADDDATA

HDF_SD_ATTRFIND

HDF_SD_ATTRINFO

HDF_SD_ATTRSET

HDF_SD_CREATE

HDF_SD_DIMGET

HDF_SD_DIMGETID

HDF_SD_DIMSET

HDF_SD_END

HDF_SD_ENDACCESS

HDF_SD_FILEINFO

HDF_SD_GETDATA

HDF_SD_GETINFO

HDF_SD_IDTOREF

HDF_SD_ISCOORDVAR

HDF_SD_NAMETOINDEX

HDF_SD_REFTOINDEX

HDF_SD_SELECT

HDF_SD_SETCOMPRESS

HDF_SD_SETEXTFILE

HDF_SD_SETINFO

HDF_SD_START

HDF_UNPACKDATA

HDF_VD_ATTACH

HDF_VD_ATTRFIND

HDF_VD_ATTRINFO

HDF_VD_ATTRSET

HDF_VD_DETACH

HDF_VD_FDEFINE

HDF_VD_FEXIST

HDF_VD_FIND

HDF_VD_GET

HDF_VD_GETID

HDF_VD_GETINFO

HDF_VD_INSERT

HDF_VD_ISATTR

HDF_VD_ISVD

HDF_VD_ISVG

HDF_VD_LONE

HDF_VD_NATTRS

HDF_VD_READ

HDF_VD_SEEK

HDF_VD_SETINFO

HDF_VD_WRITE

HDF_VG_ADDTR

HDF_VG_ATTACH

HDF_VG_DETACH

HDF_VG_GETID

HDF_VG_GETINFO

HDF_VG_GETNEXT

HDF_VG_GETTR

HDF_VG_GETTRS

HDF_VG_INQTR

HDF_VG_INSERT

HDF_VG_ISVD

HDF_VG_ISVG

HDF_VG_LONE

HDF_VG_NUMBER

HDF_VG_SETINFO

HDF-EOS

Overview of the HDF-EOS

Feature Routines

HDF-EOS Programming Model

Writing

Reading

Note on Array Ordering

Alphabetical Listing of EOS Routines

EOS_EH_CONVANG

EOS_EH_GETVERSION

EOS_EH_IDINFO

EOS_EXISTS

EOS_GD_ATTACH

EOS_GD_ATTRINFO

EOS_GD_BLKSOMOFFSET

EOS_GD_CLOSE

EOS_GD_COMPINFO

EOS_GD_CREATE

EOS_GD_DEFBOXREGION

EOS_GD_DEFCOMP

EOS_GD_DEFDIM

EOS_GD_DEFFIELD

EOS_GD_DEFORIGIN

EOS_GD_DEFPIXREG

EOS_GD_DEFPROJ

EOS_GD_DEFTILE

EOS_GD_DEFVRTREGION

EOS_GD_DETACH

EOS_GD_DIMINFO

EOS_GD_DUPREGION

EOS_GD_EXTRACTREGION

EOS_GD_FIELDINFO

EOS_GD_GETFILLVALUE

EOS_GD_GETPIXELS

EOS_GD_GETPIXVALUES

EOS_GD_GRIDINFO

EOS_GD_INQATTRS

EOS_GD_INQDIMS

EOS_GD_INQFIELDS

EOS_GD_INQGRID

EOS_GD_INTERPOLATE

EOS_GD_NENTRIES

EOS_GD_OPEN

EOS_GD_ORIGININFO

EOS_GD_PIXREGINFO

EOS_GD_PROJINFO

EOS_GD_QUERY

EOS_GD_READATTR

EOS_GD_READFIELD

EOS_GD_READTILE

EOS_GD_REGIONINFO

EOS_GD_SETFILLVALUE

EOS_GD_SETTILECACHE

EOS_GD_TILEINFO

EOS_GD_WRITEATTR

EOS_GD_WRITEFIELD

EOS_GD_WRITEFIELDMETA

EOS_GD_WRITETILE

EOS_PT_ATTACH

EOS_PT_ATTRINFO

EOS_PT_BCKLINKINFO

EOS_PT_CLOSE

EOS_PT_CREATE

EOS_PT_DEFBOXREGION

EOS_PT_DEFLEVEL

EOS_PT_DEFLINKAGE

EOS_PT_DEFTIMEPERIOD

EOS_PT_DEFVRTREGION

EOS_PT_DETACH

EOS_PT_EXTRACTPERIOD

EOS_PT_EXTRACTREGION

EOS_PT_FWDLINKINFO

EOS_PT_GETLEVELNAME

EOS_PT_GETRECNUMS

EOS_PT_INQATTRS

EOS_PT_INQPOINT

EOS_PT_LEVELINDX

EOS_PT_LEVELINFO

EOS_PT_NFIELDS

EOS_PT_NLEVELS

EOS_PT_NRECS

EOS_PT_OPEN

EOS_PT_PERIODINFO

EOS_PT_PERIODRECS

EOS_PT_QUERY

EOS_PT_READATTR

EOS_PT_READLEVEL

EOS_PT_REGIONINFO

EOS_PT_REGIONRECS

EOS_PT_SIZEOF

EOS_PT_UPDATELEVEL

EOS_PT_WRITEATTR

EOS_PT_WRITELEVEL

EOS_QUERY

EOS_SW_ATTACH

EOS_SW_ATTRINFO

EOS_SW_CLOSE

EOS_SW_COMPINFO

EOS_SW_CREATE

EOS_SW_DEFBOXREGION

EOS_SW_DEFCOMP

EOS_SW_DEFDATAFIELD

EOS_SW_DEFDIM

EOS_SW_DEFDIMMAP

EOS_SW_DEFGEOFIELD

EOS_SW_DEFIDXMAP

EOS_SW_DEFTIMEPERIOD

EOS_SW_DEFVRTREGION

EOS_SW_DETACH

EOS_SW_DIMINFO

EOS_SW_DUPREGION

EOS_SW_EXTRACTPERIOD

EOS_SW_EXTRACTREGION

EOS_SW_FIELDINFO

EOS_SW_GETFILLVALUE

EOS_SW_IDXMAPINFO

EOS_SW_INQATTRS

EOS_SW_INQDATAFIELDS

EOS_SW_INQDIMS

EOS_SW_INQGEOFIELDS

EOS_SW_INQIDXMAPS

EOS_SW_INQMAPS

EOS_SW_INQSWATH

EOS_SW_MAPINFO

EOS_SW_NENTRIES

EOS_SW_OPEN

EOS_SW_PERIODINFO

EOS_SW_QUERY

EOS_SW_READATTR

EOS_SW_READFIELD

EOS_SW_REGIONINFO

EOS_SW_SETFILLVALUE

EOS_SW_WRITEATTR

EOS_SW_WRITEDATAMETA

EOS_SW_WRITEFIELD

EOS_SW_WRITEGEOMETA

Network Common Data Format

Overview of NetCDF

NetCDF Data Modes

Attributes, Dimensions, and Variables

Attributes

Dimensions

Variables

Creating NetCDF Files

Reading NetCDF Files

NetCDF Examples

Type Conversion

Specifying Attributes and Variables

String Data in NetCDF Files

Alphabetical Listing of NCDF Routines

NCDF_ATTCOPY

NCDF_ATTDEL

NCDF_ATTGET

NCDF_ATTINQ

NCDF_ATTNAME

NCDF_ATTPUT

NCDF_ATTRENAME

NCDF_CLOSE

NCDF_CONTROL

NCDF_CREATE

NCDF_DIMDEF

NCDF_DIMID

NCDF_DIMINQ

NCDF_DIMRENAME

NCDF_EXISTS

NCDF_INQUIRE

NCDF_OPEN

NCDF_VARDEF

NCDF_VARGET

NCDF_VARGET1

NCDF_VARID

NCDF_VARINQ

NCDF_VARPUT

NCDF_VARRENAME

Obsolete IDL Features

Obsolete Feature Overview

Backwards Compatibility

IDL Internal Routines

Routines Written in IDL

Detecting Use of Obsolete Features

Documentation for Older Obsolete Routines

Obsolete Routines

DDE Routines

DELETE_SYMBOL

DELLOG

DEMO_MODE

DO_APPLE_SCRIPT

ERRORF

FINDFILE

GETHELP

GET_SYMBOL

HANDLE_CREATE

HANDLE_FREE

HANDLE_INFO

HANDLE_MOVE

HANDLE_VALUE

HDF_DFSD_ADDDATA

HDF_DFSD_DIMGET

HDF_DFSD_DIMSET

HDF_DFSD_ENDSLICE

HDF_DFSD_GETDATA

HDF_DFSD_GETINFO

HDF_DFSD_GETSLICE

HDF_DFSD_PUTSLICE

HDF_DFSD_READREF

HDF_DFSD_SETINFO

HDF_DFSD_STARTSLICE

HDF_VD_GETNEXT

INP, INPW, OUTP, OUTPW

LIVE_Tools

LIVE_CONTOUR

LIVE_CONTROL

LIVE_DESTROY

LIVE_EXPORT

LIVE_IMAGE

LIVE_INFO

LIVE_LINE

LIVE_LOAD

LIVE_OPLOT

LIVE_PLOT

LIVE_PRINT

LIVE_RECT

LIVE_STYLE

LIVE_SURFACE

LIVE_TEXT

LJLCT

MSG_CAT_CLOSE

MSG_CAT_COMPILE

MSG_CAT_OPEN

ONLINE_HELP_PDF_INDEX

PICKFILE

POLYFITW

REWIND

RIEMANN

RSTRPOS

SET_SYMBOL

SETLOG

SETUP_KEYS

SIZE Executive Command

SKIPF

SLICER

STR_SEP

TAPRD

TAPWRT

TIFF_DUMP

TIFF_READ

TIFF_WRITE

TRNLOG

VAX_FLOAT

WEOF

WIDED

WIDGET_MESSAGE

Obsolete Objects

IDLffLanguageCat

IDLffLanguageCat Properties

IDLffLanguageCat::IsValid

IDLffLanguageCat::Query

IDLffLanguageCat::SetCatalog

Routines with Obsolete Arguments or Keywords

BYTEORDER

CALL_EXTERNAL

DEVICE

DIALOG_PICKFILE

DOC_LIBRARY

EXTRACT_SLICE

HELP

IDLgrMPEG::Save

IDLgrVolume::Init

IDLITSYS_CREATETOOL

IDLitTool::RegisterOperation

IDLitVisualization::Add

IDLitVisualization::GetCenterRotation

IDLitVisualization::GetProperty

IVECTOR

IVOLUME

LABEL_REGION

LINFIT

LINKIMAGE

LIVE_PRINT

LM_FIT

MAKE_DLL

MESSAGE

ONLINE_HELP

OPEN

POLY_FIT

PRINT/PRINTF

READ_TIFF

READ/READF

READU

REGRESS

SAVE

SPAWN

SVDFIT

WIDGET_BASE

WIDGET_CONTROL

WIDGET_TREE

WRITE_TIFF

WRITEU

XMANAGER

Obsoleted Graphics Devices

The LJ Device

LJ Driver Strengths

LJ Driver Limitations

LJ Suggestions

The Macintosh Device

Obsolete Remote Procedure Calls

Using IDL as an RPC Server

The IDL RPC Directory

Running IDL in Server Mode

Creating the IDL RPC Library

Linking your Client Program

The IDL RPC Library

free_idl_variable

get_idl_variable

idl_server_interactive

kill_server

register_idl_client

send_idl_command

set_idl_timeout

set_idl_variable

set_rpc_verbosity

unregister_idl_client

The varinfo_t Structure

Variable Creation Functions

v_make_byte

v_make_complex

v_make_dcomplex

v_make_double

v_make_float

v_make_int

v_make_long

v_make_string

v_fill_array

More Variable Manipulation Macros

Notes on Variable Creation and Memory Management

Freeing Resources

Creating a Statically-Allocated Array

Allocating Space for Strings

RPC Examples

The IDLDrawWidget ActiveX Control

Overview

A Note about Versions of the IDL ActiveX Control

Creating an Interface and Handling Events

Drawing the Interface

Specifying the IDL Path and Graphics Level

Initializing IDL

Creating the Draw Widget

Directing IDL Output to a Text Box

Responding to Events and Issuing IDL Commands

Cleaning Up and Exiting

Working with IDL Procedures

Creating the Interface

Initializing IDL

Compiling the IDL Code

Dispatching Button Events to IDL

Cleaning Up and Exiting

Advanced Examples

Copying and Printing IDL Graphics

Opening the VBCopyPrint project

Running the VBCopyPrint Example

Copying IDL Graphic to the Clipboard

Printing the IDL Graphic Using IDL Object Graphics

Executing IDL User Routines with Visual Basic

Printing the IDL Graphic Using Visual Basic

XLoadCT Functionality Using Visual Basic

XPalette Functionality Using Visual Basic

Integrating Object Graphics Using VB

Sharing a Grid Control Array with IDL

Handling Events within Visual Basic

Distributing Your ActiveX Application

IDLDrawWidget Control Reference

IDLDrawWidget

Methods

CopyNamedArray

CopyWindow

CreateDrawWidget

DestroyDrawWidget

DoExit

ExecuteStr

GetNamedData

InitIDL

InitIDLEx

Print

RegisterForEvents

SetNamedArray

SetNamedData

SetOutputWnd

VariableExists

Do Methods (Runtime Only)

DoButtonPress

DoButtonRelease

DoExpose

DoMotion

Properties

BackColor

BaseName

BufferId

DrawWidgetName

Enabled

GraphicsLevel (Runtime/Design time)

IdlPath

Renderer

Retain (Runtime/Design time)

Visible (Runtime/Design time)

Xsize (Design time)

Ysize (Design time)

Read Only Properties

BaseId (Runtime)

DrawId (Runtime)

hWnd (Runtime)

LastIdlError (Runtime)

Scroll

Xoffset

Xviewport

Yoffset

Yviewport

Auto Event Properties

OnButtonPress

OnButtonRelease

OnDblClick

OnExpose

OnInit

OnMotion

Events

OnViewScrolled

Application Programming

Part I: Application Programming

Overview of IDL Applications

What is an IDL Application?

Can I Distribute My Application?

About Building Applications in IDL

Creating and Running Programs in IDL

Overview of IDL Program Types

Creating $MAIN$ Programs

Creating a $MAIN$ Program at the Command Line

Creating a $MAIN$ Program in a Text File

About Named Programs

Creating a Simple Program

Running Named Programs

Running Programs Using the IDLDE Interface

Running Programs From the IDL Command Line

Running Programs Using Executive Commands

Compiling Your Program

Automatic Compilation

Manual Compilation

Compilation Errors

Setting Compilation Options

Making Code Readable

Using Code Comments

Using Line Continuations

Maximizing the Editor's Capabilities

Navigating Among Procedures and Functions

Commenting Blocks of Code

Searching

Changing Text Selection Modes (Windows Only)

Modifying Chromacoding (Windows Only)

Editor Window Keyboard Shortcuts

Command Line Tips and Tricks

Copying and Pasting Multiple IDL Code Lines

Recalling Commands

Special Command Line Characters

Special Command Line Key Combination

Recording IDL Command Line Input

Interrupting or Aborting Execution

Variable Context After Interruption

Aborting IDL

For More Information on Programming

Executing Batch Jobs in IDL

Overview of Batch Files

Batch File Execution

Executing a Batch File

Naming and Locating Batch Files

Interpretation of Batch Statements

A Batch Example

Creating SAVE Files of Programs and Data

Overview of SAVE Files

What Can be Stored in a SAVE File

Save Files and Application Development

Accessing and Running SAVE Files

About Program and Data SAVE Files

Creating SAVE Files of Program Files

Example: A SAVE File of a Simple Routine

Example: A Save File of a Simple Widget Application

Example: Creating a SAVE File of an Object Definition

Example: A SAVE File of a Custom iPlot Display

Other Examples of SAVE File Creation

Saving Variables from an IDL Session

Saving Data Variables in a SAVE File

Saving Heap Variables in a SAVE File

Saving System Variables in a SAVE File

Executing SAVE Files

Using the IDL Virtual Machine to Run SAVE Files

Executing SAVE Files by Name

Using RESTORE to Access SAVE Files

Using the IDL_Savefile Object to Access SAVE Files

Changes to IDL 5.4 SAVE Files

Creating Procedures and Functions

Overview of Procedures and Functions

Defining a Procedure

Calling a Procedure

Procedure Examples

Defining a Function

Function Example

Automatic Compilation and Execution

About Calling and Compiling Functions

Parameters

Correspondence of Formal and Actual Parameters

Copying Parameters

Number of Parameters

Determining Variable Scope

Function Parameters Example

Using Keyword Parameters

Determining if a Keyword is Set

Supplying Values for Missing Keywords

Supplying Values for Missing Arguments

Keyword Inheritance

Keyword Inheritance Mechanisms

Choosing a Keyword Inheritance Mechanism

Example: Writing a Wrapper Routine

Example: By Value Versus By Reference

Entering Procedure Definitions

How IDL Resolves Routines

Parameter Passing Mechanism

Calling Mechanism

Recursion

Example

Calling Functions/Procedures Indirectly

Example

Library Authoring

Overview of Library Authoring

Recognizing Potential Naming Conflicts

Choosing Routine Names to Avoid Conflicts

Cross-Platform Naming of IDL .pro Files

Advice for Library Authors

Prefixing Routine Names

Converting Existing Libraries

Program Control

Overview of Program Control

Compound Statements

Conditional Statements

Loop Statements

Jump Statements

Compound Statements

BEGIN...END

IF...THEN...ELSE

Using Statement Blocks with the IF Statement

Nesting IF Statements

CASE

SWITCH

CASE Versus SWITCH

FOR...DO

Avoid Invariant Expressions

FOR Statement with an Increment of One

FOR Statement with Variable Increment

Sequence of the FOR Statement

REPEAT...UNTIL

WHILE...DO

Jump Statements

Statement Labels

BREAK

CONTINUE

GOTO

Definition of True and False

Debugging and Error-Handling

Debugging and Error-Handling Overview

What Happens When Execution Stops

Example: Correcting Undefined Variable

Working with Breakpoints

Using Breakpoints

Stepping Through a Program

Manually Stepping Through Code

Automatically Stepping Through Code

Monitoring Variable Values

Showing Variable Values During Execution

The Variable Watch Window

Disappearing Variables

Correcting Errors During Execution

Obtaining Traceback Information

Controlling and Recovering from Errors

Interaction of CATCH, ON_ERROR, and ON_IOERROR

Creating Custom Error Messages

Message Blocks

Notifying the User of Errors

Math Errors

Accumulated Math Error Status

Special Floating-Point Values

The FINITE Function

Integer Conversions

Building Cross-Platform Applications

Overview of Cross-Platform Issues

Which Operating System is Running?

Operating System Access

File and Path Specifications

Choosing Files at Runtime

Selecting Files Programmatically

Files and I/O

Byte Order Issues

Math Exceptions

Responding to Screen Size and Colors

Finding Screen Size

Number of Colors Available

Printing

SAVE and RESTORE

Widgets in Cross-Platform Programs

Dialog Routines

Base Widgets

Positioning Widgets within a Base Widget

Fonts Used in Widget Applications

Motif Resources

WIDGET_STUB

Widget Event Inconsistencies

Using External Code

IDL DataMiner Issues

Writing Efficient IDL Programs

Overview of Program Efficiency

IDL Implementation

Additional Programming Efficiency Resources

Use Vector and Array Operations

Use System Functions and Procedures

Example

Virtual Memory

Access Large Arrays by Memory Order

Running Out of Virtual Memory

Minimizing Virtual Memory

The TEMPORARY Function

Virtual Memory System Parameters

The IDL Code Profiler

The Profile Dialog

The Profile Report Dialog

Using the IDL Code Profiler

Multithreading in IDL

The IDL Thread Pool

Benefits of the IDL Thread Pool

Possible Drawbacks to the Use of the IDL Thread Pool

Controlling the IDL Thread Pool

Viewing the Current Thread Pool Settings

Using the Default Thread Pool Settings

Changing Global Thread Pool Settings

Changing Thread Pool Settings for a Specific Computation

Disabling the Thread Pool

Routines that Use the Thread Pool

Part II: Components of the IDL Language

Expressions and Operators

Overview of Expressions and Operators

Mathematical Operators

Using Increment/Decrement

Using Exponentiation

Minimum and Maximum Operators

Using Minimum or Maximum with Complex Numbers

Using Minimum or Maximum with NaN Values

Matrix Operators

Logical Operators

Short-circuiting

Additional Logical Operator Examples

Bitwise Operators

Using the NOT Operator

Additional Bitwise Operator Examples

Relational Operators

Using Relational Operators with Arrays

Relational Operators with Infinity and NaN Values

Assignment and Compound Assignment

Compound Assignment Operators

Other Operators

Working with Conditional Expressions

Operator Precedence

Efficiency and Expression Evaluation Order

Working with Data in IDL

Data Types

Basic Data Types

Complex Data Types

Data Type and Structure of Expressions

Hierarchy of IDL Data Types

Expression Type

Expression Structure

Date/Time Data

How to Generate Date/Time Data

Date/Time Data Examples

Defining and Using Constants

Integer Constants

Floating-Point and Double-Precision Constants

Complex Constants

String Constants

Accuracy and Floating Point Operations

Roundoff Error

Truncation Error

Routines for Mathematical Error Assessment

Type Conversion Functions

Variables

Attributes of Variables

Variable Names

System Variables

Strings

Overview of Strings

A Note About the Examples

String Operations

Non-string and Non-scalar Arguments

String Concatenation

Using STRING to Format Data

Reading Data from Strings

Byte Arguments and Strings

Case Folding

Whitespace

Removing All Whitespace

Removing Leading or Trailing Blanks

Removing All Types of Whitespace

Finding the Length of a String

Substrings

Searching for a Substring

Searching For the Last Occurrence of a Substring

Inserting the Contents of One String into Another

Extracting Substrings

Splitting and Joining Strings

Comparing Strings

Case-Insensitive Comparisons of the First N Characters

String Comparisons Using Wildcards

Complex Comparisons Using Regular Expressions

Non-Printing Characters

Learning About Regular Expressions

Meta Characters

Subexpressions

Bracket Expressions

Special Characters in Regular Expressions

Arrays

Overview of Arrays

Determining the Number of Array Elements

Operations on Array Expressions

Array Subscripts

Understanding Array Subscripts

Extra Dimensions

Array Subscript Syntax: [ ] vs. ( )

Assignment Operations and Arrays

Using Scalar Values as Subscripts

Subscripting Arrays Using Scalar Values

Using Arrays as Subscripts

Examples Using Arrays as Subscripts

Conditionally Altering Array Elements

Subscript Ranges

Dimensionality of Subarrays

Avoid Using Range Subscripts

Combining Subscripts

Subscript Ranges

Other Subscript Arrays

Scalars

Manipulating Arrays

Transposing Arrays

Multiplying Arrays

Columns, Rows, and Array Majority

Structures

Overview of Structures

Named Structures

Anonymous Structures

Creating and Defining Structures

Structure Inheritance

Example of Creating a Structure

Structure References

Subscripted Structure References

Examples of Structure References

Using HELP with Structures

Parameter Passing with Structures

Storing Into Array Fields

Arrays of Structures

Creating an Array of Structures

Examples of Arrays of Structures

Structure Input/Output

Formatted Input/Output with Structures

Unformatted Input/Output with Structures

Strings

String Length Issues

Advanced Structure Usage

Number of Structure Tags

Names of Structure Tags

Example

Automatic Structure Definition

Relaxed Structure Assignment

Using Relaxed Structure Assignment

Pointers

Overview of Pointers

Heap Variables

Creating Heap Variables

Saving and Restoring Heap Variables

Pointer Heap Variables

IDL Pointers

Null Pointers

The PTR_NEW Function

The PTRARR Function

Operations on Pointers

Assignment

Dereference

Equality and Inequality

Dangling References

Heap Variable Leakage

Pointer Validity

Freeing Pointers

Pointer Examples

Creating a Linked List

Example Files—Using Pointers to Create Binary Trees

Files and Input/Output

Overview of File Access

About Opening Files

Simple I/O Examples

Routines for Input/Output

Formatted and Unformatted Input/Output

Advantages and Disadvantages of Unformatted I/O

Advantages and Disadvantages of Formatted I/O

Opening Files

Platform-Specific Keywords to the OPEN Procedure

Closing Files

Understanding (LUNs)

The Standard Input, Output, and Error LUNs

File Units (1–99)

File Units (100 –128)

Returning Information About a File Unit

Using FSTAT

File Unit Manipulations

Flushing File Units

Positioning File Pointers

Testing for End-Of-File

Reading and Writing Very Large Files

Limitations of Large File Support

Using Free Format Input/Output

Free Format Input

Free Format Output

Example: Free Format Input/Output

Using Explicitly Formatted Input/Output

Rules for Explicitly Formatted Input/Output

Format Reversion

Format Codes

Syntax of Format Codes

Available Format Codes

Format Code Examples

A Format Code

: Format Code

$ Format Code

F, D, E, and G Format Codes

B, I, O, and Z Format Codes

Q Format Code

Quoted String and H Format Codes

T Format Code

TL Format Code

TR and X Format Codes

C() Format Code

C printf-Style Quoted String Format Code

Example: Reading Formatted Table Data

Example: Reading Records With Multiple Array Elements

Using Unformatted Input/Output

Unformatted Input/Output of String Variables

Example: Reading C-Generated Unformatted Data with IDL

Example: Reading IDL-Generated Unformatted Data with C

Example: Reading a Sun Rasterfile from IDL

Portable Unformatted Input/Output

XDR Considerations

IDL XDR Conventions for Programmers

Example: Reading C-Generated XDR Data with IDL

Associated Input/Output

Example of Using Associated Input/Output

Reading Data from Associated Files

Writing Data to Associated Files

Multiple Subscripts With Associated File Variables

Files with Multiple Structures

Offset Parameter

Efficiency

Unformatted Data from UNIX FORTRAN Programs

File Manipulation Operations

Working with UNIX Links

Reading and Writing FORTRAN Data

Reading Data from a FORTRAN File

Writing Data to a FORTRAN File

Platform-Specific File I/O Information

UNIX-Specific Information

Windows-Specific Information

Using Language Catalogs

What Is a Language Catalog?

Creating a Language Catalog File

Storing and Loading Language Catalog Files

Using the IDLffLangCat Class

Creating a Language Catalog Object

Adding Application Keys

Getting and Setting Languages

Performing Queries

Destroying a Language Catalog Object

Widget Example

Using the XML Parser Object Class

About XML

About XML Parsers

Using the XML Parser

Subclassing the IDLffXMLSAX Object Class

Using Your Parser

Validation

Example: Reading Data Into an Array

Creating the xml_to_array Object Class

Using the xml_to_array Parser

Example: Reading Data Into Structures

Creating the xml_to_struct Object Class

Using the xml_to_struct Parser

Building Complex Data Structures

Using the XML DOM Object Classes

About the Document Object Model

When to Use the DOM

About the DOM Structure

How IDL Uses the DOM Structure

About the XML DOM Object Classes

IDLffXMLDOMNode Class Hierarchy

IDLffXMLDOM Object Helper Classes

IDL Node Ownership

Saving and Restoring IDLffXMLDOM Objects

Using the XML DOM Classes

Loading an XML Document

Reading XML Data

Modifying Existing Data

Creating New Data

Destroying IDLffXMLDOM Objects

Working with Whitespace

Orphan Nodes

Tree-Walking Example

Part III: Creating Applications in IDL

Creating IDL Projects

Overview of IDL Projects

Access to all Files in Your Application

Working with an IDL Project

Compiling and Running Your Application

Build Your Application

Exporting Your Applications

The IDL Project Interface

Example of a Project

Where to Store the Files for a Project

Creating a Project

Opening, Closing, and Saving Projects

Opening a Project

Saving a Project

Closing a Project

Modifying Project Groups

Modifying Project Groups

Adding, Moving, and Removing Files

Adding Files

Moving Files

Removing Files

Working with Files in a Project

Editing a Source File

Compiling a File

Testing a File

Setting the Properties of a File

Modifying Properties of Multiple Files

Setting the Options for a Project

Selecting the Build Order

Compiling an Application from a Project

To Compile All Files in Your Project

To Compile Only Modified Files in Your Project

Building a Project

About IDL GUIBuilder Files

Running an Application from a Project

Exporting a Project

Exporting Your Project's Source Files

Exporting Your Project to a Save File

Exporting a Runtime Distribution

Providing Online Help For Your Application

Overview of Creating Application Help

Providing Help Within the User Interface

Tooltips

Status Lines

Text Widgets

Displaying Text Files

Using an External Viewer

About IDL's Online Help System

Format of an IDL Assistant Help System

Creating Help Content

Creating an Assistant Document Profile

Optional Help System Files

Displaying Help Topics

Paths for Help Files

Using Other Online Help Viewers

Microsoft Windows Help

Portable Document Format Files

HTML Files

Distributing Runtime Mode Applications

What Is an IDL Runtime Mode Application?

Types of IDL Runtime Applications

Licensing Options for IDL Runtime Applications

Limitations of Runtime Applications

Error Handling

Working Directory of Runtime Applications

Steps to Distribute a Runtime Application

Preferences for Runtime Applications

Preference Etiquette

Loading Preference Values at Application Startup

Windows Runtime Preferences

Examples

Runtime Licensing

Ensuring That Your License is Used

Obtaining and Installing Runtime Licenses

Installing the License File

Embedded Licensing

Optional Embedded Features

Creating an Application Distribution

Creating a Distribution Using Project Export

Creating a Distribution Using the make_rt Script

Using an Existing IDL Installation

Starting a Runtime Application

Using an Exported IDL Distribution

Using an Existing IDL Distribution

Specifying Application Preferences at Startup

What Happens When IDL Runs Your Application

Installing Your Application

Incorporating the IDL DataMiner

Distributing Virtual Machine Applications

What Is a Virtual Machine Application?

If You Are Running a Virtual Machine Application

If You Are Creating a Virtual Machine Application

Limitations of Virtual Machine Applications

Steps to Distribute Your Application

Preferences for Virtual Machine Applications

Options for Windows Applications

Options for UNIX/Macintosh Applications

Creating Application SAVE Files

Single vs. Multiple SAVE Files

Version Compatibility of SAVE Files

Starting a Virtual Machine Application

Windows

UNIX

Mac OS X

Installing the IDL Virtual Machine

Upgrading or Removing the IDL Virtual Machine

Installing Your Virtual Machine Application

Distributing Your Application on a CD-ROM

Creating an Application Distribution

Launching the Application: Windows

Launching the Application: Macintosh

Launching the Application: UNIX

Installing Your Application

Installation Issues: Windows

Distributing Callable IDL Applications

What Is a Callable IDL Application?

Licensing Options for Callable IDL Applications

Limitations of Runtime Mode Callable IDL Applications

Steps to Distribute a Callable IDL Application

Preferences for Callable IDL Applications

Runtime Licensing

Embedded Licensing

Obtaining Your Licensing Information

Modifying Your Application Code

Creating an Application Distribution

Windows

UNIX

Starting a Callable IDL Application

Windows

UNIX

Installing Your Callable IDL Application

User Interface Programming

Overview of User Interface Options

User Interface Options in IDL

Creating an iTool Interface

Creating a Widget Interface

Creating a Custom iTool Interface

Creating Widget Applications

About Widgets

About Widget Applications

Running the Example Code

Types of Widgets

Widget Programming Concepts

Widget Values

Widget IDs

Widget Parent/Child Relationships

Instantiating and Displaying Widgets

Example: A Simple Widget Application

Widget Application Lifecycle

Construct the Widget Hierarchy

Provide an Event-Handling Routine

Realize the Widgets

Register the Program with the XMANAGER

Interact with the Application

Destroy the Widgets

Manipulating Widgets

WIDGET_CONTROL

WIDGET_EVENT

WIDGET_INFO

XMANAGER

XREGISTERED

Working With Widget IDs

Use the Widget Event Structure

Pass the Widget ID Using a Widget User Value

Use a User Name to Locate the Widget

Pass the Widget ID Explicitly

Use a COMMON Block

Widget User Values

Widget Event Processing

What are Widget Events?

Structure of Widget Events

Managing Widget Events with XMANAGER

Event Processing and Callbacks

Example: Event Processing and User Values

Managing Application State

Techniques for Preserving Application State

Creating a Compound Widget

Writing Compound Widgets

The HANDLER Field of the Widget Event Structure

Example: Compound Widget

Using CW_DICE in a Widget Program

Debugging Widget Applications

Using the IDL GUIBuilder

Overview of IDL GUIBuilder

Starting the IDL GUIBuilder

Opening Existing Interface Definitions

Creating an Example Application

Defining Menus for the Top-level Base

Creating a Draw Widget

Running the Application in Test Mode

Generating the IDL Code

Handling the Open File Event

Handling the Exit Event

Handling the Load Color Table Event

Handling the Smooth Event

Compiling and Running the Example Application

IDL GUIBuilder Tools

Using the IDL GUIBuilder Toolbar

Using the Properties Dialog

Using the Widget Browser

Using the Menu Editor

Using the Bitmap Editor

Using the Tree Editor

Widget Operations

Selecting Widgets

Moving and Resizing Widgets

Cutting, Copying, and Pasting Widgets

Deleting Widgets

Undoing and Redoing Operations

Generating Files

Generating Resource Files

Generating IDL Code

IDL GUIBuilder Examples

Understanding IDL GUIBuilder Event Handling Code

Writing Event Callback Routines

Handling Initialization Arguments

Integrating Multiple Interfaces

Adding Compound Widgets

Controlling Widget Display

Widget Properties

Widget Application Techniques

Working with Widget Events

Interrupting the Event Loop

Identifying Widget Type from an Event

Keyboard Focus Events

Timer Events

Tracking Events

Context Menu Events

Using Multiple Widget Hierarchies

Widget Group Behaviors

Floating bases

Modal bases

Menubars

Creating Menus

Button Groups

Lists

Pulldown Menus

Menus on Top-Level Bases

Context-Sensitive Menus

Widget Sizing

Widget Geometry Terms and Concepts

How Widget Geometry is Determined

Dynamic Resizing

Explicitly Specifying the Size and Location of Widgets

Preventing Layout Flicker

Tips on Creating Widget Applications

Portability Issues

Enhancing Widget Application Usability

Tabbing in Widget Applications

Defining Tabbing Behavior in a Windows Application

Assigning Accelerators in Widget Applications

Disabling Button Widget Accelerators

Using Widget Buttons

Using Button Widgets

Bitmap Button Labels

Creating Bitmap Files for Buttons

Creating Black-and-White Bitmap Arrays for Buttons

Creating Color Bitmap Arrays for Buttons

Tooltips

Exclusive and Non-Exclusive Buttons

Using Draw Widgets

Using Draw Widgets

Using Direct Graphics in Draw Widgets

Using Object Graphics in Draw Widgets

Scrolling Draw Widgets

Differences Between SCROLL and APP_SCROLL

Example Using SCROLL

Example Using APP_SCROLL

Context Events in Draw Widgets

Draw Widget Example

Accessing Draw Widget Events

Implementing Drag and Drop Functionality

Responding to Drag Notifications (Callbacks)

Responding to Drop Events

Draw Widget Drag and Drop Example

Using Property Sheet Widgets

Using Property Sheet Widgets

Registering Properties

Selecting Properties

Accessing Property Sheet Selection Events

Controlling When Properties are Selectable

Changing Properties

Updating the Component

User-defined Properties

Updating User-defined Properties

Property Sheet Sizing

Property Sheet Example

Multiple Properties Example

Using Table Widgets

Using Table Widgets

Default Table Size

Selection Modes

Standard Selection Mode

Disjoint Selection Mode

Data Types

Single Data Type

Multiple Data Types

Data Retrieval

Entire Table

Standard Selection

Disjoint Selection

Converting Between Cell List Formats

Edit Mode

Cell Attributes

Setting Cell Attributes at Table Creation

Changing Cell Attributes after Table Creation

Querying for Cell Attributes

Adding and Deleting Cells

Example: Single Data Type Data

Example: Structure Data

Using Tab Widgets

Using Tab Widgets

Example: A Simple Tab Widget

Tab Sizing and Multiline Behavior

Windows Behavior

Motif Behavior

Tips for Tab Layout

Example: Retrieving Values

Using Tree Widgets

Using Tree Widgets

Types of Tree Widgets

Example: A Simple Tree

Setting the Tree Selection State

Making a Tree Entry Visible

Replacing the Default Bitmaps

Using Images from the IDL Distribution

Adding Transparency to Icons

Dragging and Dropping Tree Nodes

The Drag and Drop User Interface

Implementing Drag and Drop Functionality

Tree Widget Drag and Drop Examples

Positioning Tree Nodes

Object Programming

The Basics of Using Objects in IDL

Object-Oriented Programming Concepts

Using IDL Objects

Creating Objects

Acting on Objects Using Methods

Object Method Syntax

Arguments

Modifying Object Properties

Properties and the Property Sheet Interface

Setting Properties at Initialization

Setting Properties of Existing Objects

Retrieving Property Settings

About Object Property Descriptions

Destroying Objects

Using Operations with Objects

Object Assignment

Object Equality and Inequality

Object Examples

Creating an Object Graphics Display

Overview of Object Graphics Classes

Naming Conventions

Creating an Object Graphics Display

Object Graphics Display Hierarchy

Components of an Object Graphics Hierarchy

Destination Objects

Display Objects

Visualization Objects

File Format Objects

Color in Object Graphics

Color and Destination Objects

A Note about Draw Widgets

Indexed Color Model in Object Graphics

RGB Color Model in Object Graphics

Palette Objects

Creating Palette Objects

Using Palette Objects

Specifying Object Color

Example Specifying RGB Values

How IDL Interprets Color Values

Indexed Color Model

RGB Color Model

Rendering Objects

Simple Plot Example

Controlling the Depth of Objects in a View

Controlling Object Transparency

Opacity and Transparency

Blending Mathematics

Rendering Order

Viewing and Rotation

Depth Buffer Updating

Performance Tuning Object Graphics

Hardware vs. Software Rendering

Positioning Objects in a View

Positioning Visualizations in a View

Viewport

Location

Coordinate Systems and Scaling

Viewport

Location and Dimension

Projection

Parallel Projections

Perspective Projections

Eye Position

View Volume

Viewplane Rectangle

Near and Far Clipping Planes

Finding an Appropriate View Volume

Converting Data to Normal Coordinates

A Function for Coordinate Conversion

Example: Centering an Image

Example: Transforming a Surface

Zooming within an Object Display

Zooming in on an Object Graphics Image Display

Translating, Rotating and Scaling Objects

Translation

Rotation

Scaling

Combining Transformations

Interactive 3D Transformations

Working with Image Objects

Overview of Image Objects

Defining Image Palettes

Configuring Common Object Properties

Creating Image Objects

Displaying Binary Images with Object Graphics

Displaying Grayscale Images with Object Graphics

Positioning Image Objects in a View

Displaying Multiple Images in Object Graphics

Panning in Object Graphics

Defining Transparency in Image Objects

Transparency and Image Warping

Image Transparency Examples

Warping Image Objects

Mapping an Image Object onto a Sphere

Image Tiling

Image Pyramids

Image Tiles

Adding Tiling to Your Application

Querying Required Tiles

Panning Tiled Images

Zooming Tiled Images

Copying and Printing a Tiled Image

Preloading Tiles

Example: JPEG2000 Files for Tiling

Working with Plots and Graphs

Contour Objects

Creating Contour Objects

Using Contour Objects

Plot Objects

Creating Plot Objects

Using Plot Objects

Polar Plots

Axis Objects

Creating Axis Objects

Using Axis Objects

Logarithmic Axes

Displaying Date/Time Data on Axis Objects

Displaying Date/Time Data on a Plot Display

Displaying Date/Time Data on a Contour Display

Axis Titles and Tickmark Text

Reverse Axis Plotting

Symbol Objects

Creating Symbol Objects

Using Symbol Objects

A Plotting Routine

Improvements to the OBJ_PLOT Routine

Working with Surface Objects

Surface Objects

Creating Surface Objects

Using Surface Objects

An Interactive Surface Example

Creating Volume Objects

Creating a Volume Object

Using Volume Objects

Setting Volume Object Attributes

Volume Opacity

Volume Color

Volume Lighting

Compositing

ZBuffering

Interpolation

Rendering speed

Polygon and Polyline Objects

About Polygon and Polyline Objects

Creating Polygon and Polyline Objects

Polygon Objects

Creating Polygon Objects

Configuring Polygon Objects

Tessellator Objects

Creating Tessellator Objects

Using Tessellator Objects

Pattern Objects

Creating Pattern Objects

Using Pattern Objects

Polygon Optimization

Polygon Mesh Optimization

Back-face Culling

Normal Computations

Polyline Objects

Creating Polyline Objects

Using Polyline Objects

Polygon and Polyline Object Examples

Annotating an Object Display

Annotating Object Graphic Displays

Text Objects

Creating Text Objects

Using Text Objects

A Text Example

Font Objects

Creating Font Objects

Assigning a Font Object to a Text Object

Font Objects and Resource Use

ROI Objects

Legend Objects

Creating Legend Objects

Using Legend Objects

Colorbar Objects

Creating Colorbar Objects

Using Colorbar Objects

Light Objects

Creating Light Objects

Configuring Light Objects

Optimizing Light Object Use

Custom Image Object Annotations

Annotating Indexed Image Objects

Annotating RGB Image Objects

Animating Objects

Overview of Object Animation

Configuring an Animation Model Object

Using Multiple Models

Controlling the Animation Rate

Designing a Behavior Object

Factors Affecting Animation Performance

Multiple Image Copies

Graphics Display Refresh Rate

Example: Interactive Cine Animation

Selecting Objects

Selection and Data Picking

Object Selection

Selecting Views

Selecting Visualization Objects

Selecting Models

A Selection Example

Data Picking

A Data Picking Example

Displaying, Copying and Printing Objects

Overview of Object Graphic Destinations

Window Objects

Creating Window Objects

Color Model

Note on Window Size Limits

Using Window Objects

Erasing a Window

Exposing or Hiding a Window

Iconifying a Window

Setting the Window Cursor

Saving/Restoring Windows

Saving Window Contents to a File

Improving Window Drawing Performance

Retained Graphics and Expose Events

Instancing to Improve Redraw Performance

Buffer Objects

Creating Buffer Objects

Clipboard Objects

Creating Clipboard Objects

Printer Objects

Creating Printer Objects

Color Model

Printer Dialogs

Drawing to a Printer

Positioning Objects Within a Page

Starting a New Page on a Printer

Submitting a Printer Job

Bitmap and Vector Graphic Output

Bitmap Graphics

Vector Graphics

Guidelines for Choosing Bitmap or Vector Graphics

Controlling What is Displayed in Vector Graphics

Creating Custom Objects in IDL

Creating Custom Objects

IDL Object Overview

Classes and Instances

Encapsulation

Methods

Polymorphism

Inheritance

Persistence

Undocumented Object Classes

Creating an Object Class Structure

Automatic Class Structure Definition

Inheritance

Null Objects

Object Heap Variables

Dangling References

Heap Variable "Leakage"

Freeing Heap Variables

The Object Lifecycle

Creation and Initialization

Destruction

Creating Custom Object Method Routines

Defining Method Routines

The Implicit Self Argument

Calling Method Routines

Searching for Method Routines

Method Overriding

Specifying Class Names in Method Calls

Object Examples

Creating Composite Classes or Subclasses

Advanced Rendering Using Shader Objects

About Shaders

Why Use Shaders

Hardware Requirements for Shaders

About Shader Programs

Vertex and Fragment Shaders

How Shaders Enhance Performance

Using Shaders in an IDL Application

Display-Only Effects of Shaders

Passing Information to a Shader Program

Uniform Variables

Attribute Variables

Library of Pre-built Shader Objects

Image Filter Shaders

Providing a Software Alternative to Shaders

Caching Shader Results

Capturing Image Data During Shader Execution

Altering RGB Levels Using a Shader

Basic RGB Shader Object Class

Uniform Variable for RGB Values

Software Fallback for RGB Shader

Hardware Shader Program for RGB Shader

Applying Lookup Tables Using Shaders

Basic LUT Shader Object Class

Uniform Variable for LUT Example

Hardware Shader Program for LUT Shader

Software Fallback for the LUT Shader

High Precision Images

OpenGL Conversion of Image Data to Texture Data

Examples of Handling High-Precision Images

Filter Chain Shaders

Basic Filter Chain Shader Object Class

Uniform Variables for Filter Chain Example

Hardware Shader Program for Filter Chain Example

Software Fallback for the Filter Chain Shader

Vertex Shaders

Attribute and Uniform Variables for Vertex Shader

Hardware Shader Program for Vertex Shader

Lighting Shaders

IDL Lights and the OpenGL Light Table

Adding Lighting and Shading to a Surface

Uniform and Attribute Variables for Lighting Shader

Hardware Shader Program for Lighting Shader

Multi-texture Shaders

Uniform Variables and Multi-Texture Shaders

Manipulating Multiple Textures Using Shaders

Uniform Variables for Multi-texture Shader

Hardware Shader Program for Multi-texture Shader

Repositioning Textures

Rotating Earth with Multiple Textures

iTool Programming

Overview of iTools

What are iTools?

What is the iTools Component Framework?

Advantages of Using the Framework

About this Manual

What this Manual is Not

About the iTools Code Base

Documented vs. Undocumented Classes

Skills Required to Use the iTools Component Framework

Part I: Understanding the iTools Component Framework

iTool System Architecture

Overview of the iTool System Architecture

iTools Object Model Diagram

iTool Object Identifiers

Proxy Identifiers

Object Descriptors

iTool Object Hierarchy

iTool System Object

iTool Objects

Registering Components

Registration Methods

iTool Messaging System

Sending Notifications

Notification Messages

Observers

System Resources

Icon Bitmaps

Help System

Data Management

Overview of iTool Data Management

iTool Data Manager

Adding Data to the Data Manager

Removing Data from the Data Manager

iTool Data Types

Composite Data Types

Data Types of iTool Components

iTool Data Objects

Data Objects

Data Containers

Parameter Sets

Predefined iTool Data Classes

Parameters

Parameter Names

Parameter Data Types

Registering Parameters

Data Type Matching

Data Update Mechanism

Property Management

About the Properties Interface

What is a Property?

Properties vs. Preferences

How are Properties Displayed?

Setting and Retrieving Property Values

Property Data Types

Property Registration

Property Identifiers

Property Attributes

Property Aggregation

Property Data Types

User Defined Property Types

Registering Properties

Registering a Property

Pre-Registered Properties

Property Identifiers

Property Attributes

Available Property Attributes

Property Aggregation

Working with Aggregated Properties

Property Update Mechanism

Properties of the iTools System

Part II: Using the iTools Component Framework

Creating an iTool

Overview of iTool Creation

The iTool Creation Process

Creating a New iTool Class

Creating the Class Structure Definition

Creating an Init Method

Registering a New Tool Class

Using ITREGISTER

Example

Creating an iTool Launch Routine

Specifying Command-Line Arguments and Keywords

Creating Data Objects

Handling Errors

Creating an iTool Instance

Example: Simple iTool

Class Definition File

Launch Routine

Creating a Visualization

Overview of iTool Visualization Types

The Visualization Type Creation Process

Predefined iTool Visualization Classes

Creating a New Visualization Type

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating an OnDataChangeUpdate Method

Creating an OnDataDisconnect Method

Registering a Visualization Type

Using IDLitTool::RegisterVisualization

Specifying Useful Properties

Unregistering a Visualization Type

Example: Image-Contour Visualization

Class Definition File

Creating an Operation

Overview of Creating an iTool Operation

The Operation Creation Process

Predefined iTool Operations

Operations and the Undo/Redo System

Data-Centric Operations

Generalized Operations

Creating a New Data-Centric Operation

How an IDLitDataOperation Works

Creating an IDLitDataOperation

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating an Execute Method

Creating a DoExecuteUI Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating an UndoExecute Method

Creating a New Generalized Operation

How an IDLitOperation Works

Creating an IDLitOperation

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating a DoAction Method

Creating a RecordInitialValues Method

Creating a RecordFinalValues Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating an UndoOperation Method

Creating a RedoOperation Method

Operations and Macros

Registering an Operation

Using IDLitTool::RegisterOperation

Specifying Useful Properties

Unregistering an Operation

Example: Data Resample Operation

Class Definition File

Creating a Manipulator

Overview of iTool Manipulators

Manipulators and Manipulator Containers

Manipulator Visuals

The Manipulator Creation Process

Predefined iTool Manipulators

General Manipulators

Image Manipulators

Plot and Contour Manipulators

Surface Manipulators

Volume Manipulators

Manipulators and the Undo/Redo System

Capturing Information for the Undo/Redo System

Using Manipulator Public Instance Data

Creating a New Manipulator

Creating the Manipulator Class Structure Definition

Creating a Manipulator Init Method

Creating a Cleanup Method

Creating Mouse Event Methods

Creating an OnWheel Method

Creating an OnKeyboard Method

Creating a RegisterCursor Method

Creating GetProperty or SetProperty Methods

Registering a Manipulator

Using IDLitTool::RegisterManipulator

Unregistering a Manipulator

Example: Color Table Manipulator

Running the Color Table Manipulator Example

Creating a File Reader

Overview of iTool File Readers

The File Reader Creation Process

Predefined iTool File Readers

Creating a New File Reader

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating an IsA Method

Creating a GetData Method

Registering a File Reader

Using IDLitTool::RegisterFileReader

Unregistering a File Reader

Example: TIFF File Reader

Class Definition File

Creating a File Writer

Overview of iTool File Writers

The File Writer Creation Process

Predefined iTool File Writers

Creating a New File Writer

Creating the Class Structure Definition

Creating an Init Method

Creating a Cleanup Method

Creating a GetProperty Method

Creating a SetProperty Method

Creating a SetData Method

Registering a File Writer

Using IDLitTool::RegisterFileWriter

Unregistering a File Writer

Example: TIFF File Writer

Class Definition File

Part III: Modifying the iTool User Interface

iTool User Interface Architecture

Overview of iTool Interface Architecture

User Interface Objects

Using iTool User Interface Elements

The iTools Feedback Mechanism

Status Messages

Creating Additional Status Bar Segments

Prompts

Informational Messages

Creating a User Interface Service

Overview of the iTool UI Service

Creating and Using a UI Service

Predefined iTool UI Services

Creating a New UI Service

Creating the UI Service Routine

Creating Supporting User Interface Elements

Registering a UI Service

Using ITREGISTER

Example

Using the RegisterUIService Method

Executing a User Interface Service

Example: Changing a Property Value

Creating the SrvExample Service

Creating the SrvExample Interface

Creating an Operation that Calls the Service

Registering the SrvExample Service

Registering the opName Operation

Invoking the opName Operation

Creating a User Interface Panel

Overview of the iTool UI Panel

Creating and Using a UI Panel

Creating a UI Panel Interface

Panel Creation Routines

About the Panel Widget

Registering the Panel with the User Interface Object

Adding Observers

Create the Widget Hierarchy

Create Event Handlers

Creating Callback Routines

Callback Routine Signature

Registration of Callback Routines

Retrieving Widget State Information

Registering a UI Panel

Registering the Panel in the iTool Launch Routine

About the TYPE property

Example: A Simple UI Panel

Panel Creation Routine

Panel Event Handler Routine

Panel Callback Routine

Panel Type Specification

Creating a Custom iTool Widget Interface

About Custom iTool Widget Interfaces

Why Create a New Widget Interface?

What About Using a UI Panel?

Skills Required to Create an iTool User Interface

What You Will Need to Create

Overview of Creating an iTool Interface

Create or Choose an iTool

Create the Widget Interface

Create Event Handlers

Create Callback Routines

Create a Cleanup Routine

Create an iTool User Interface Object

Create an iTool Launch Routine

iTool Widget Interface Concepts

What Are iTool Compound Widgets?

Special Notes on the iTool Compound Widgets

Example iTool Widget Interfaces

Creating the Interface Routine

Routine Signature

Error Checking

Top Level Base

User Interface Object

Widget Creation and Layout

User Interface Registration

Handling Widget Destruction

Adding Menus

Standard Menus

Modifying Menu Contents

Resizing Menus

Adding a Toolbar

Standard Toolbars

Modifying Toolbar Contents

Resizing Toolbars

Adding an iTool Window

Window Sizing Keywords

Modifying Window Contents

Resizing iTool Windows

Adding a Status Bar

Modifying Status Bar Contents

Resizing Status Bars

Adding a User Interface Panel

Modifying User Interface Panel Contents

Resizing User Interface Panels

Handling Callbacks

Callback Routine Signature

Registration of Callback Routines

Example Callback Routine

Handling Resize Events

Generating Resize Events

Handling the Resize Event

Writing a Resize Routine

Handling Shutdown Events

Generating Shutdown Events

Handling the Shutdown Event

Writing a Cleanup Routine

Calling the Cleanup Routine

Creating an iTool Launch Routine

Register Your User Interface

Use Your User Interface

Using an Existing iTool Launch Routine

Example: a Custom iTool Interface

Widget Interface Creation Routine

iTool Class Definition Routine Discussion

iTool Launch Routine Discussion

Controlling iTools from the IDL Command Line

Overview of iTool Programmatic Control

How to Control an iTool

Retrieving an iTool Object Reference

Retrieving Component Identifiers

Using the FindIdentifiers Method

FindIdentifier Examples

Retrieving Property Information

Retrieving Property Identifiers

Property Attribute Information

Property Value Information

An Example Property Information Retrieval Routine

Changing Property Values

Using the DoSetProperty Method

Using the SetProperty Method

Running Operations

Selecting Items in the iTool

Example: Selecting an Item Programmatically

Replacing Data in an iTool

Using the iTool Creation Routine

Using the SetData Method

iTool Compound Widgets

Overview of iTools Compound Widgets

CW_ITMENU

CW_ITPANEL

CW_ITSTATUSBAR

CW_ITTOOLBAR

CW_ITWINDOW

IDL Connectivity Bridges

About the IDL Bridges

What Is a Bridge?

IDL Import Bridge

COM and ActiveX

Java

IDL Export Bridge

Export Bridge Assistant

Connector Object

Part I: Importing into IDL

Overview: COM and ActiveX in IDL

COM Objects and IDL

What Are COM Objects?

Why Use COM Objects with IDL?

Using COM Objects with IDL

Exposing a COM Object as an IDL Object

Including an ActiveX Control in an IDL Widget Hierarchy

Skills Required to Use COM Objects

If You Are Using COM Objects

If You Are Using ActiveX Controls

If You Are Creating Your Own COM Object

Using COM Objects in IDL

About Using COM Objects in IDL

Array Data Storage Format

Object Creation

Method Calls and Property Management

Object Destruction

Registering COM Components on a Windows Machine

IDLcomIDispatch Object Naming Scheme

Class Identifiers

Program Identifiers

Finding COM Class and Program IDs

Creating IDLcomIDispatch Objects

Method Calls on IDLcomIDispatch Objects

Function vs. Procedure Methods

What Happens When a Method Call Is Made?

Data Type Conversions

Optional Arguments

Finding Object Methods

Managing COM Object Properties

Setting Properties

Getting Properties

Passing Parameter Arrays by Reference

Unsupported Array Types

References to Other COM Objects

Destroying IDLcomIDispatch Objects

COM-IDL Data Type Mapping

Example: RSIDemoComponent

Using ActiveX Controls in IDL

About Using ActiveX Controls in IDL

Warning: Modeless Dialogs

Registering COM Components on a Windows Machine

ActiveX Control Naming Scheme

Finding COM Class and Program IDs

Creating ActiveX Controls

Method Calls on ActiveX Controls

Retrieving the Object Reference

Managing ActiveX Control Properties

ActiveX Widget Events

Using the ActiveX Widget Event Structure

Dynamic Elements in the ActiveX Event Structure

Destroying ActiveX Controls

Example: Calendar Control

Example: Spreadsheet Control

Using Java Objects in IDL

Overview of Using Java Objects

Java Terminology

IDL-Java Bridge Architecture

Initializing the IDL-Java Bridge

Configuring the Bridge

IDL-Java Bridge Data Type Mapping

Creating IDL-Java Objects

Java Class Names in IDL

Java Static Access

Method Calls on IDL-Java Objects

What Happens When a Method Call Is Made?

Data Type Conversions

Managing IDL-Java Object Properties

Getting and Setting Properties

Destroying IDL-Java Objects

Showing IDL-Java Output in IDL

The IDLJavaBridgeSession Object

Java Exceptions

IDL-Java Bridge Examples

Accessing Arrays Example

Accessing URLs Example

Accessing Grayscale Images Example

Accessing RGB Images Example

Troubleshooting Your Bridge Session

Calling System.exit

Errors When Initializing the Bridge

Errors When Creating Objects

Errors When Calling Methods

Errors When Accessing Data Members

Part II: Exporting from IDL

Exporting IDL Objects

Overview of Exporting IDL Objects

Wrapper Objects

IDL Connector Objects and Custom Wrapper Objects

Drawable and Nondrawable Objects

Object Lifecycle

Object Creation

Object Release

IDL Access

IDL Ownership and Blocking

IDL Licensing Modes

Parameter Passing and Type Conversion

Object Reference Use

Array Order Conversion

Type Conversion

Event Handling

Supported Platforms and IDL Modes

Supported Compilers

Client Machine Requirements

Output Destinations

IDL Licensing

Export Bridge Assistant Licensing

Configuring Build and Client Machines

Configuring the Machine Running the Assistant

Configuring the Machine Using Wrapper Objects

Configuring the Machine Running the Wrapper Client

Using the Export Bridge Assistant

Export Bridge Assistant Overview

Platform Support and Machine Configuration

Running the Assistant

Running from the Macros Menu

Running from the Command Line

Using the Assistant

Understanding the Assistant Interface

Working with a Project

Opening a Project

Saving a Project

Updating a Project

Building an Object

Exporting an Object

Specifying Information for Exporting

Converting Array Majority

Supported Data Types

Bridge Information

Source Object Information

Property Information

Method Information

Parameter Information

Information Skipped During Export

Lifecycle Methods

Get Property and Set Property Methods

Drawable Object Event Handlers

Exporting a Source Object's Superclasses

Modifying a Source Object After Export

Wrapper Generation Example

COM Wrapper Object Generation and Use

Java Wrapper Object Generation and Use

Using Exported COM Objects

Overview of COM Export Objects

COM Wrapper Objects

Stock COM Wrapper Methods

Abort

CreateObject

CreateObjectEx

DestroyObject

ExecuteString

GetIDLObjectClassName

GetIDLObjectVariableName

GetIDLVariable

GetLastError

GetProcessName

SetIDLVariable

SetProcessName

Event Handling

Mouse and Keyboard Events in COM Export Objects

Error Handling

Debugging

Using Exported Java Objects

Overview of Java Export Objects

Java Wrapper Objects

Stock Java Wrapper Methods

abort

createObject

destroyObject

executeString

getIDLObjectClassName

getIDLObjectVariableName

getIDLVariable

getProcessName

isObjectCreated

setIDLVariable

setProcessName

Event Handling

Nondrawable Java Objects

Drawable Java Objects

IDL Notification

IDL Output

Handling Specific Events

Subclassing to Change Behavior

Listening from Other Java Objects

Error Handling

Debugging

Using the Connector Object

About the IDL Connector Object

Preparing to Use the IDL Connector Object

Connector Object COM Examples

Hello World Example with a COM Connector Object

Data Manipulation with a COM Connector Object

IDL Command Line with a COM Connector Object

Connector Object Java Examples

Note on Running the Java Examples

Hello World Example with a Java Connector Object

Data Manipulation with a Java Connector Object

IDL Command Line with Java Connector Object

Writing IDL Objects for Exporting

Overview

Programming Limitations

Keyword Parameters

Unsupported Data Types

Array Majority and Shape

Exporting Drawable Objects

Requirements for Drawable Objects

Direct Graphics Support

Drawable Object Canvas Examples

Java Wrapper Example

COM Wrapper Example

Creating Custom COM Export Objects

About COM Export Object Examples

Debugging Applications Using Export Objects

Nondrawable COM Export Example

Hello World COM Example with Custom Method

Drawable COM Export Examples

COM IDLgrWindow Based Histogram Plot Generator

COM IDLitWindow Surface Manipulation

Tri-Window COM Export Example

Creating Custom Java Export Objects

About Java Export Object Examples

Note on Running the Java Examples

Debugging Applications Using Export Objects

Nondrawable Java Export Example

Hello World Java Example with Additional Method

Drawable Java Export Examples

Java IDLgrWindow Based Histogram Plot Generator

Java IDLitWindow Surface Manipulation

Part III: Appendices

IDL Java Object API

Package Summary

JIDLAbortedException

JIDLArray

JIDLBoolean

JIDLBusyException

JIDLByte

JIDLCanvas

JIDLChar

JIDLComponentListener

JIDLConst

JIDLDouble

JIDLException

JIDLFloat

JIDLInteger

JIDLKeyListener

JIDLLong

JIDLMouseListener

JIDLMouseMotionListener

JIDLMouseWheelListener

JIDLNotifyListener

JIDLNumber

JIDLObject

JIDLObjectI

JIDLOutputListener

JIDLProcessInitializer

JIDLShort

JIDLString

COM Object Creation

Sample IDL Object

Export the Sample IDL Object

Visual Basic .NET Code Sample

Initiation Without Parameters in Visual Basic .NET

Initiation with Parameters in Visual Basic .NET

C++ Client Code Sample

Initiation Without Parameters in C++

Initiation with Parameters in C++

C# Code Sample

Initiation Without Parameters in C#

Initiation with Parameters in C#

Visual Basic 6 Code Sample

Initiation Without Parameters in Visual Basic 6

Initiation with Parameters in Visual Basic 6

Java Object Creation

Sample IDL Object

Export the Sample IDL Object

Note on Running the Java Examples

Java Object Initiation Without Parameters

Java Object Initiation with Parameters

Multidimensional Array Storage and Access

Overview

Why Storage and Access Matter

Storage and Access in COM and IDL

Arrays in COM

Arrays in IDL

2D Array Examples

Visual Basic

C++ Using ATL SAFEARRAY Wrapper Objects

C++ Using SAFEARRAY API Calls and Creating Different Memory Layout

External Development Guide

External Development Overview

About This Manual

Supported Inter-Language Communication Techniques in IDL

Translate into IDL

SPAWN

Microsoft COM and ActiveX

Sun Java

UNIX Remote Procedure Calls (RPCs)

CALL_EXTERNAL

IDL System Routine (LINKIMAGE, DLMs)

Callable IDL

Dynamic Linking Terms and Concepts

When Is It Appropriate to Combine External Code with IDL?

Skills Required to Combine External Code with IDL

IDL Organization

The Interpreter Stack

External Definitions

Interpreting Logical Boolean Values

Compilation and Linking Details

Recommended Reading

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

Using SPAWN and Pipes

Example: Communicating with a Child Process via an Operating System Pipe

Using CALL_EXTERNAL

The CALL_EXTERNAL Function

Example Code in the IDL Distribution

CALL_EXTERNAL Compared to UNIX Child Process

Compilation and Linking of External Code

AUTO_GLUE

Input and Output

Memory Cleanup

Memory Access

Argument Data Types

Mapping IDL Data Types to External Language Types

By-Value and By-Reference Arguments

Microsoft Windows Calling Conventions

Common CALL_EXTERNAL Pitfalls

Passing Parameters

Using Auto Glue

Generating Glue Without Executing It

Basic C Examples

Example: Passing Parameters by Reference to IDL

Example: Calling a C Routine to Perform Computation

Wrapper Routines

Passing String Data

Example

Passing Array Data

Passing Structures

Fortran Examples

Example: Calling a Fortran Routine Using a C Interface Routine

Example: Calling a Fortran Routine Using a Fortran Interface Routine

Remote Procedure Calls

IDL and Remote Procedure Calls

Using IDL as an RPC Server

The IDL RPC Directory

Running IDL in Server Mode

Client Variables

Linking to the Client Library

Example of IDL RPC Client API

Compatibility with Older IDL Code

The IDL RPC Library

IDL_RPCCleanup

IDL_RPCDeltmp

Description

Parameters

IDL_RPCExecuteStr

IDL_RPCGetMainVariable

IDL_RPCGettmp

Parameters

IDL_RPCGetVariable

IDL_RPCImportArray

IDL_RPCInit

Description

IDL_RPCMakeArray

IDL_RPCOutputCapture

IDL_RPCOutputGetStr

IDL_RPCSetMainVariable

IDL_RPCSetVariable

IDL_RPCStoreScalar

IDL_RPCStrDelete

IDL_RPCStrDup

IDL_RPCStrEnsureLength

IDL_RPCStrStore

IDL_RPCTimeout

IDL_RPCVarCopy

IDL_RPCVarGetData

Variable Accessor Macros

RPC Examples

Part II: IDL's Internal API

IDL Internals: Types

Type Codes

Type Masks

Mapping of Basic Types

Unsigned Byte Data

Integer Data

Unsigned Integer Data

Long Integer Data

Unsigned Long Integer Data

64-bit Integer Data

Unsigned 64-bit Integer Data

Complex Data

String Data

IDL_MEMINT and IDL_FILEINT Types

IDL Internals: Variables

IDL and Internal Variables

The IDL_VARIABLE Structure

Scalar Variables

Array Variables

Structure Variables

Creating Structures

Accessing Structure Tags

Determining the Number Of Structure Tags

Determining the Names Of Structures and their Tags

Heap Variables

Temporary Variables

Getting a Temporary Variable

Creating a Temporary Array

Creating a Temporary Structure

Creating a Temporary Vector

Creating A Temporary Variable Using Another Variable As A Template

Freeing A Temporary Variable

Creating an Array from Existing Data

Getting Dynamic Memory

The IDL_GetScratch Function

Accessing Variable Data

Copying Variables

Storing Scalar Values

Using IDL_StoreScalar() to Free Dynamic Resources

Obtaining the Name of a Variable

Looking Up Main Program Variables

Looking Up Variables in Current Scope

IDL Internals: Keyword Processing

IDL and Keyword Processing

Creating Routines that Accept Keywords

Overview Of IDL Keyword Processing

The IDL_KW_PAR Structure

The IDL_KW_ARR_DESC_R Structure

Keyword Processing Options

The KW_RESULT Structure

Processing Keywords

Speeding Keyword Processing

Cleaning Up

Keyword Examples

The Pre-IDL 5.5 Keyword API

Background

Advantages Of The IDL 5.5 API

Differences And Similarities Between APIs

Converting Existing Code To The New API

The Transitional API

Example: Converting From The Old Keyword API

IDL Internals: String Processing

String Processing and IDL

Accessing IDL_STRING Values

Copying Strings

Deleting Strings

Setting an IDL_STRING Value

Obtaining a String of a Given Length

IDL Internals: Error Handling

Message Blocks

Issuing Error Messages

Error Codes

Choosing an Error Code

Looking Up A Message Code by Name

Checking Arguments

IDL Internals: Type Conversion

Converting Arguments to C Scalars

General Type Conversion

Converting to Specific Types

IDL Internals: UNIX Signals

IDL and Signals

Signal Handlers

Establishing a Signal Handler

Removing a Signal Handler

UNIX Signal Masks

IDL_SignalSetInit()

IDL_SignalSetAdd()

IDL_SignalSetDel()

IDL_SignalSetIsMember()

IDL_SignalMaskGet()

IDL_SignalMaskSet()

IDL_SignalMaskBlock()

IDL_SignalBlock()

IDL_SignalSuspend()

IDL Internals: Files and Input/Output

IDL and Input/Output Files

File Information

IDL_FileStat()

Opening Files

IDL_FileOpen()

Special File Units

Closing Files

IDL_FileClose()

Preventing File Closing

IDL_FileSetClose()

Checking File Status

IDL_FileEnsureStatus()

Allocating and Freeing File Units

IDL_FileGetUnit()

IDL_FileFreeUnit()

Detecting End of File

IDL_FileEOF()

Flushing Buffered Data

IDL_FileFlushUnit()

Reading a Single Character

IDL_GetKbrd()

Output of IDL Variables

IDL_Print() and IDL_PrintF()

Adding to the Journal File

IDL_Logit()

IDL Internals: Timers

IDL and Timers

Making Timer Requests

Canceling Asynchronous Timer Requests

Blocking UNIX Timers

IDL Internals: Miscellaneous

Dynamic Memory

IDL_MemAlloc()

IDL_MemFree()

IDL_MemAllocPerm()

Exit Handlers

IDL_ExitRegister()

User Interrupts

IDL_BailOut()

Functions for Returning System Variables

Terminal Information

Functions for Returning IDL_FileTerm Variable Values

Ensuring UNIX TTY State

Type Information

Functions for Returning Data Type Variable Values

User Information

Constants

Macros

Part III: Techniques That Use IDL's Internal API

Adding System Routines

IDL and System Routines

The System Routine Interface

Example: Hello World

Example: Doing a Little More (MULT2)

Testing the Example

Example: A Complete Numerical Routine Example (FZ_ROOTS2)

Calling Sequence

Arguments

Keywords

Example

Example: An Example Using Routine Design Iteration (RSUM)

Running Sum (Example 1)

RSUM1

Running Sum (Example 2)

Running Sum (Example 3)

Registering Routines

Example

Enabling and Disabling System Routines

Enabling Routines

Obtaining Enabled/Disabled Routine Names

Obtaining the Number of Enabled/Disabled Routines

Obtaining the Real Function Pointer

Obtaining the IDL Name of the Current System Routine

LINKIMAGE

Dynamically Loadable Modules

How DLMs Work

The Module Description File

The IDL_Load() function

DLM Example

Callable IDL

Calling IDL as a Subroutine

When is Callable IDL Appropriate?

Technical Issues Relating to Callable IDL

Appropriate Applications of Callable IDL

Licensing Issues and Callable IDL

Using Callable IDL

Cleanup

Initialization

IDL_Initialize()

init_data

IDL_Init()

Common Microsoft Windows Initialization Issues

Diverting IDL Output

flags

buf

n

IDL_ToutPush()

IDL_ToutPop()

Executing IDL Statements

IDL_Execute()

Runtime IDL and Embedded IDL

Checking the Error Status

Cleanup

Issues and Examples: UNIX

Interactive IDL

Compiling Programs That Call IDL

Example: Calling IDL From C

Example: Calling an IDL Math Function

Example: Calling IDL from Fortran

Compilation and Linking Statements

Issues and Examples: Microsoft Windows

Building an Application that Calls IDL

Example: A Simple Application

Adding External Widgets to IDL

IDL and External Widgets

WIDGET_STUB

Calling Sequence

Arguments

Keywords

WIDGET_CONTROL/WIDGET_STUB

Keywords

Functions for Use with Stub Widgets

IDL_WidgetStubLock()

IDL_WidgetStubLookup()

IDL_WidgetIssueStubEvent()

IDL_WidgetSetStubIds()

IDL_WidgetGetStubIds()

IDL_WidgetStubSetSizeFunc()

Internal Callback Functions

Commentary on the Example Shown Above

UNIX WIDGET_STUB Example: WIDGET_ARROWB

The IDL Program for WIDGET_ARROWB

The C Program for widget_arrowb.c

An IDL Program to Test the External Widget

Obsolete Internal Interfaces

Interfaces Obsoleted in IDL 6.3

Initialization: Microsoft Windows

Interfaces Obsoleted in IDL 5.5

IDL_MSG_ATTR_SYS

Specifying errno Explicitly: IDL_MessageErrno()

Processing Keywords With IDL_KWGetParams()

The IDL_KW_PAR Structure

Interfaces Obsoleted in IDL 5.2.1

Registering Routines

Simplified Routine Invocation

The IDL_EZ_ARG struct

Cleaning Up

Example— using IDL_EzCall()

Obsolete Error Handling API

Getting Started with IDL

The Power of IDL

Using this Manual

The IDL Interface

Starting IDL

Using the IDL Development Environment

Menu Bar

Toolbars

Project Window

Multiple Document Panel

Command Line

Output Log

Variable Watch Window

Status Bar

The IDL iTools

Starting an iTool

Loading Data into an iTool

The iTools Data Manager

Quitting IDL

More About Using IDL

2-D Plots

IDL and 2-D Plotting

Using the iPlot Tool

Displaying a 2D Plot

Displaying an Overplot

Modifying Plots

Simple Command Line Plotting

Using OPLOT

Printing a Plot

Plotting with Data Sets

Other Plotting Capabilities

More About 2-D Plotting

Reading and Writing Data

IDL and Reading and Writing Data

IDL Supported Formats

Importing Data from an ASCII File

Reading and Writing Binary Data

Reading and Writing Images

Importing Image Data into an iTool

Importing Image Data at the Command Line

More About IDL and Input/Output

Signal Processing with IDL

IDL and Signal Processing

Creating a Data Set

Signal Processing with SMOOTH

Frequency Domain Filtering

Displaying the Results

More About Signal Processing

Images

IDL and Images

Using the iImage Tool

Displaying an Image

Modifying Images

Image Data and the Command Line

Reading Image Data

Displaying Image Data

Resizing an Image

Resizing a Graphics Window

Contrast Enhancement

Thresholding

Scaling Pixel Values

Smoothing and Sharpening

Unsharp Masking

Sharpening Images with Differentiation

Other Image Manipulations

Rotating an Image

Extracting Profiles

More About Images in IDL

Surfaces and Contours

Surfaces and Contours in IDL

Accessing Binary Surface Data

Using the iSurface Tool

Displaying a Surface

Modifying Surfaces

Using the iContour Tool

Displaying a Contour

Modifying a Contour

Surface Data and the Command Line

Displaying a Shaded Surface

Contour Data and the Command Line

Displaying a Contour

Plotting with SHOW3

More About Surfaces and Contours

Volume Visualization

IDL and Volume Visualization

Using the iVolume Tool

Displaying a Volume

Modifying Volume Data

Command Line Volume Visualization

Reading in a Dataset for Visualization

3-D Transformations

Visualizing an Iso-Surface

Volume Slices and the IDL Slicer

Displaying a Surface with the Slicer

Dismiss the Slicer and Volume Windows

More About Volume Visualization

Mapping

IDL and Mapping

Using the iMap Tool

Displaying a Map

Modifying Map Data

Drawing Map Projections

Drawing an Orthographic Projection

Plotting a Portion of the Globe

Plotting Data on Maps

Reading Latitudes and Longitudes

Plotting Contours Over Maps

Warping Images to Maps

More About Mapping

Plotting Irregularly Gridded Data

Irregularly Gridded Data in IDL

Creating a Dataset

The TRIANGULATE Procedure

Plotting the Results with TRIGRID

More About Gridding

Animation

IDL and Animation

Animating a Series of Images

Displaying an Animation as a Wire Mesh

Animation with XINTERANIMATE

Cleaning Up the Animation Windows

More About Animation

Programming in IDL

IDL and Programming

Programming Capabilities of the IDLDE

Built-In Editor

Types of IDL Programs

Compound Statements

Conditional Statements

Loop Statements

Jump Statements

Executing a Simple IDL Program

Saving, Compiling and Running

Debugging Tools in IDL

Breakpoints

Variable Watch Window

The IDL Code Profiler

Using IDL Projects

Accessing All Application Files

Working with Project Files

Compiling and Running Applications

Building Distributions

Exporting Applications

More About IDL Programming

Manipulating Data

IDL and Manipulating Data

IDL Array Routines

Avoiding IF Statements for Performance

Summing to Avoid IF Statements

Using Array Operators and the WHERE Function

Example— Using Vector and Array Operations

More About Manipulating Data

Creating Interfaces with the IDL GUIBuilder

What is the IDL GUIBuilder?

Using the IDL GUIBuilder

IDL GUIBuilder Tools

Using the IDL GUIBuilder Toolbar

Creating an Example Application

Defining Menus for the Top-Level Base

Running the Application in Test Mode

Generating the IDL Code

Handling the Open File Event

Handling the Exit Event

Handling the Load Color Table Event

Handling the Smooth Event

Compiling and Running the Example Application

Widget Types

Widget Properties

More About the IDL GUIBuilder

Where to Go From Here

Learning More about IDL

IDL Documentation Set

Online Help

Online Manuals

IDL Demo Applications and Examples

Contacting ITT Visual Information Solutions

Address

Phone

Fax

E-mail

World Wide Web

IDL Interface Guide

Introducing IDL

Overview of IDL

Supported File Formats

Launching IDL

Startup Options

Troubleshooting

Launching the iTools

Starting an iTool

Loading Data into an iTool

The iTools Data Manager

Environment Variables Used by IDL

Preferences

Non-Preference Environment Variables

Setting Environment Variables

Command Line Options for IDL Startup

Command-Line Switches

Specifying Preferences at the Command Line

Using Switches Under Windows

Startup Files

Understanding When Startup Files are Not Executed

Message of the Day Files

Using Your Mouse with IDL

Using a Two-Button Mouse

Using a Macintosh (One-Button) Mouse

Using Keyboard Accelerators

Enabling Alt Key Accelerators on Macintosh

Getting Help with IDL

Using the IDL Online Help Viewer

Using the PDF Documentation Set

Typographical Conventions

Quitting IDL

Reporting Problems

The IDL Development Environment

Components of the IDLDE

Menu Bar

Toolbars

Project Window

Multiple Document Panel

Command Line

Output Log

Variable Watch Window

Status Bar

Docking/Undocking

Control Panel Buttons

File Menu

Edit Menu

Search Menu

Run Menu

Project Menu

Macros Menu

Window Menu

Help Menu

Printing in IDL

IDL Printer Setup in Windows

IDL Printer Setup in UNIX or Mac OS X

The Xprinter Setup Dialog

Configuring Printer Setup Options

Adding a New Printer to the List of Printer Choices

Setting IDL Preferences

About IDL Preferences

Unavailable Preferences

Customizing IDL

Platform Differences

General Preferences

Layout Preferences

Graphics Preferences

Editor Preferences

Startup Preferences

Font Preferences

Microsoft Windows

UNIX

Path Preferences

Creating Development Environment Macros

What Are Macros?

Predefined IDL Macros

Creating UNIX Macros

Using the Edit Macros Dialog

Manually Editing the Resource File

Creating Windows Macros

Command Stream Substitutions

Building IDL Example Macros

Creating a Macro to Call a Text Editor in IDL for UNIX

Creating a Macro to Change the Working Directory

Customizing IDL on Motif Systems

Using X Resources to Customize IDL

X Resources and IDL Preferences

X Resources in Brief

Resource Files

Format of IDL Resources

X Resources Used by IDL

Reserving Colors

X Resources at the Command Line

X Resource Command Line Switches

Modifying the Control Panel

Adding Macros Toolbar Buttons

Adding Macros Menu Entries

Examples

Action Routines

Using IDL

Importing and Writing Data into Variables

Overview of Data Access in IDL

Accessing Files Using Dialogs

Accessing Any File Type Using a Dialog

Importing an Image File Using a Dialog

Saving an Image File Using a Dialog

Reading ASCII Data

Launching the ASCII Template Dialog

Reading Binary Data

Launching the Binary Template Dialog

Accessing Files Programmatically

File Access

Accessing Image Data Programmatically

Importing Formatted Image Data Programmatically

Importing Unformatted Image Files

Exporting Formatted Image Files Programmatically

Exporting Unformatted Image Files

Accessing Non-Image Data Programmatically

Reading Binary Data in a Volume

Reading Contour Data from a SAVE File

Using IDL Macros

Using Macros to Import Image Files

Using Macros to Import ASCII Files

Using Macros to Import Binary Files

Using Macros to Import HDF Files

File Access Routines

Getting Information About Files and Data

Investigating Files and Data

Accessing Information in iTools

Returning Image File Information

Using the QUERY_IMAGE Info Structure

Using Specific QUERY_* Routines

Returning Type and Size Information

Determining if a Variable is a Scalar or an Array

Using SIZE to Return Image Dimensions

Getting Information About SAVE Files

Create a Savefile Object

Query the Savefile Object

Restore Items from the Savefile Object

Destroy the Savefile Object

Returning Object Type and Validity

Returning Information About a File

Graphic Display Essentials

IDL Visual Display Systems

iTools Visualizations

IDL Object Graphics

IDL Direct Graphics

IDL Coordinate Systems

DATA Coordinates

DEVICE Coordinates

NORMAL Coordinates

Understanding Windows and Related Device Coordinates

Coordinates of 3-D Graphics

Homogeneous Coordinates

Right-Handed Coordinate System

Transformation Matrices

Translation

Scaling

Rotation

Coordinate Conversions

Two-Dimensional Coordinate Conversion

Three-Dimensional Coordinate Conversion

Using Coordinate Conversions

Interpolation Methods

Polygon Shading Method

Color Systems

Color Schemes

Converting to Other Color Systems

Display Device Color Schemes

Colors and IDL Graphic Systems

Using Color in Object Graphics

Using Color in Direct Graphics

Indexed and RGB Image Organization

Image Orientation

Indexed Images

RGB Image Interleaving

Converting Between Image Types

Loading a Default Color Table

Modifying and Converting Color Tables

Highlighting Features with a Color Table

Multi-Monitor Configurations

Multi-Monitor Terminology

Windows Multi-Monitor Configurations

UNIX Multi-Monitor Configurations

Example: Multi-Monitor Window Positioning

Using Fonts in Graphic Displays

Printing Graphics

Printing IDL Direct Graphics

Printing IDL Object Graphics

Animations

Overview of Motion JPEG2000

Sample Motion JPEG2000 Player and Writer

Supported Platforms

Creating a Motion JPEG2000 Animation

Adding Data to MJ2 Animations

Animating Existing Data

Animating Screen Captures

Animating Data Captures

Playing a Motion JPEG2000 Animation

Sequential Motion JPEG2000 Playback

Random Motion JPEG2000 Playback

Controlling the Playback Rate

Timer Mechanisms

High Speed MJ2 Reading and Writing

High Speed Sequential Playback

High Speed MJ2 File Writing

Map Projections

Overview of Mapping

Creating a Map Display

Graphics Techniques for Mapping

Splitting

3D Clipping

Projection

Rectangular Clipping

Map Projection Types

Azimuthal Projections

Orthographic Projection

Stereographic Projection

Gnomonic Projection

Azimuthal Equidistant Projection

Aitoff Projection

Lambert's Equal Area Projection

Hammer-Aitoff Projection

Satellite Projection

Cylindrical Projections

Mercator Projection

Transverse Mercator Projection

Cylindrical Equidistant Projection

Miller Cylindrical Projection

Conic Projection

Albers Equal-Area Conic Projection

Pseudocylindrical Projections

Robinson Cylindrical

Sinusoidal Projection

Mollweide Projection

Goode's Homolosine Projection

High-Resolution Continent Outlines

Resolution of Map Databases

References

Signal Processing

Overview of Signal Processing

Routines for Signal Processing

Running the Example Code

Digital Signals

Signal Analysis Transforms

The Fourier Transform

Interpreting FFT Results

Displaying FFT Results

Using Windows

Hanning Window

Hamming Window

Aliasing

FFT Algorithm Details

The Hilbert Transform

The Wavelet Transform

Convolution

Correlation and Covariance

Digital Filtering

Finite Impulse Response (FIR) Filters

FIR Filter Implementation

Infinite Impulse Response (IIR) Filters

References

Mathematics

Overview of Mathematics in IDL

IDL's Numerical Recipes Functions

Correlation Analysis

Correlation Example

Notes on Interpreting the Correlation Coefficient

Multiple Linear Models

Routines for Computing Correlations

Curve and Surface Fitting

Routines for Curve and Surface Fitting

Eigenvalues and Eigenvectors

Symmetric Array with n Distinct Real Eigenvalues

Nonsymmetric Array with n Distinct Real and Complex Eigenvalues

Repeated Eigenvalues

The So-called Defective Case

Routines for Computing Eigenvalues and Eigenvectors

Gridding and Interpolation

Routines for Gridding and Interpolation

Hypothesis Testing

One- and Two-sided Tests

Parametric and Nonparametric Tests

Routines for Hypothesis Testing

Integration

A Bivariate Function

A Trivariate Function

Routines for Differentiation and Integration

Linear Systems

Overdetermined Systems

Underdetermined Systems

Complex Linear Systems

Routines for Solving Simultaneous Linear Equations

Nonlinear Equations

Routines for Solving Nonlinear Equations

Optimization

Routines for Optimization

Sparse Arrays

Diagonally-Dominant Array

Routines for Handling Sparse Arrays

Time-Series Analysis

Routines for Time-Series Analysis

Multivariate Analysis

Cluster Analysis

Principal Components Analysis

Routines for Multivariate Analysis

References

Correlation Analysis

Curve and Surface Fitting

Eigenvalues and Eigenvectors

Gridding and Interpolation

Hypothesis Testing

Integration

Linear Systems

Nonlinear Equations

Optimization

Sparse Arrays

Time-Series Analysis

Multivariate Analysis

iTool User's Guide

Introducing the IDL iTools

Introducing the iTools

Using This Guide

Importing and Exporting Data

About the Data Manager

Data Manager Interface

Data Item Management

Data Import Methods

Using the Data Import Wizard

Using File Open

Using the Data Manager Dialog

Importing Data from a File

Importing Image Data

Importing ASCII Data

Importing Binary Data

Importing Shapefile Data

Working with Unknown Data

Using the Gridding Wizard

Importing Data from the IDL Session

Importing Graphic Objects

Parameter Data and the Command Line

Exporting Data

Exporting Data to a File

Exporting Data to the IDL Session

Visualizations

About Visualizations

Visualization Creation Methods

Creating Visualizations Automatically

Inserting Visualizations

Modifying Existing Visualizations

The Parameter Editor

Removing Data Associations

Replacing Data Associations

Exporting Visualizations

Exporting to a File

Manipulating the Display

Introduction

Selection of Objects

Select All

Undo/Redo

Adding a Data Space

Translation

Scaling

Zooming

Canvas Zoom

View Zoom

View Panning

Window Layouts

Adding Annotations

Introduction

Legends

Annotations

Text Annotations

Line Annotations

Rectangle Annotations

Oval Annotations

Polygon Annotations

Freehand Annotations

Additional Axes

Property Sheets and Browsers

Introduction

Property Sheets

Visualization Property Sheets

Operations Property Sheets

The Visualization Browser

The Operations Browser

The Preferences Browser

General Settings

File Readers

File Writers

Common Operations

Introduction

File Operations

Opening Files

Importing Variables and Files

Saving Files

Exporting Variables and Files

Exiting the iTool

Rotation

Mouse Rotation

Rotate Left and Rotate Right

Rotate by Specified Angle

Transformations

Resample

Rotate Data

Scale Data

Filtering

Smooth Filter

Median Filter

Convolution Filter

Unsharp Mask Filter

Morphing

Additional Operations

Plotting a Histogram

Displaying Statistics

Resetting Dataspace Ranges

Rendering Translucent Objects

Operations on Regions of Interest

Operations Modifying ROI Data

Operations Modifying ROI Vertices

Printing

Print Preview

Working with Macros

Introduction

What Are Macros?

Recording Macros

Capturing Intermediate Manipulations

Running Macros

Running from the Operations Menu

Running from the Macro Editor

Running from the Command Line

Using the Macro Controls Dialog

Using the Macro Editor

Understanding the Macro Editor

Understanding Items in the Macro Editor

Macro Items

Source Items

Making Selection and Tool Changes

Macro Type Based on Recording Selection

About Containers

Selection Changes

Tool Changes

Importing and Exporting Macros

Working with Styles

What Are Styles?

Type of Styles

Applying a Style

Creating Styles

Creating a Style from the Current Visualization

Creating a New Style from the Style Editor

Working with the Current Style

Copying an Existing Style

Applying Styles

Applying a Style to a Selected Item

Applying a Style to All Items

Applying a Style When Launching an iTool

Editing Styles

Copying Properties Within Styles

Cutting and Deleting Properties within Styles

Selecting Multiple Properties for Editing

Setting the Default Style

Importing and Exporting Styles

Exporting a File to Share

Importing a Received File

Working with Images

Introduction

Displaying Images

Displaying Multiple Images

Using the Image Panel

Image ROIs

The Palette Editor

Window Level Control

Image Properties

Modifying Properties

Adding a Colorbar

Adding Axes

Resampling an Image

Filtering an Image

Convolving an Image

Applying a Median Filter

Smoothing an Image

Applying a Roberts Filter

Applying a Sobel Filter

Applying an Unsharp Mask

Applying a Morphological Operator

Contouring an Image

Surfacing an Image

Manipulating the Image Display

Rotating an Image

Scaling an Image and Byte Scaling an Image

Inverting an Image

Flipping an Image

View Zoom

Canvas Zoom

Pixel Scaling

Region Growing

Adding Annotations

Line Profiles

View Panning

Cropping an Image

iImage Tool Operations

Viewing a Histogram

Viewing Image Statistics

Cropping Images

Working with Surfaces

Introduction

Displaying Surfaces

Surface Properties

The Visualization Browser

The Operations Browser

Adding a Colorbar

Adding a Light

Adding a Legend

Adding Axes

Imaging a Surface

Contouring a Surface

Resampling a Surface

Filtering a Surface

Convolving a Surface

Median a Surface

Smoothing a Surface

Adding a Texture Map

Manipulating Surface Displays

Rotating a Surface

Scaling a Surface

Adding Annotations

View Zoom

Canvas Zoom

Extracting a Line Profile

iSurface Tool Operations

Viewing a Histogram Plot

Viewing Statistics

Working with Contours

Introduction

Displaying Contours

Displaying Regular-grid Data

Displaying Irregular-grid Data

Contour Properties

Labeling Contours

Changing the Contour Colors

Filling Contours

Adding a Colorbar

Adding a Legend

Adding Axes

Filtering a Contour

Contour Smoothing

Contour Convolution

Manipulating the Contour Display

Translating

View Zoom

Flipping a Contour

Canvas Zoom

Scaling a Contour Display

Adding Annotations

iContour Tool Operations

Viewing a Histogram

Viewing Statistics

Working with Plots

Introduction

Displaying Two-Dimensional Plots

Displaying Three-Dimensional Plots

Displaying Polar Plots

Overplotting

Plot Properties

Modifying Properties

Adding Legends

Adding a Colorbar

Adding Error Bars

Curve Fitting

Filtering a Plot

Plot Smoothing

Plot Convolution

Plot Median

Manipulating the Plot Display

Translating

Adding Annotations

View Zoom

Canvas Zoom

Selecting the Data Range

iPlot Tool Operations

Scaling a Plot Display

Viewing a Histogram

Viewing Statistics

Working with Volumes

Introduction

Displaying Volumes

Multi-Channel Volumes

Rendering Volumes

Using the Volume Panel

Volume Properties

Modifying Properties

Adding a Colorbar

Adding Axes

Resampling Volumes

Showing an Image Plane

Viewing the Image Plane in iImage

Extracting an IsoSurface

Extracting an Interval Volume

Manipulating the Volume Display

Rotating a Volume

Scaling a Volume

View Zoom

Canvas Zoom

Adding Annotations

iVolume Tool Operations

Viewing a Histogram

Viewing Statistics

Smoothing a Volume

Opening an Image Stack

Working with Maps

Introduction

Displaying Maps

Applying a Map Projection

Using the Map Panel

Displaying an Image

Registering an Image

Registering an Image in Meters

Registering an Image in Degrees

Displaying a Contour

Creating a Shape Visualization

Inserting a Map Grid

Inserting an IDL Shapefile

Inserting the Continents

Inserting the Countries (Low Resolution)

Inserting the Countries (High Resolution)

Inserting the Rivers

Inserting the Lakes

Inserting the United States

Inserting the Canadian Provinces

Working with Vectors

Introduction

Displaying Vectors

Vector Fields

Wind Barbs

Streamlines

Vector Properties

Modifying Properties

Subsampling

Coloring Vectors Using Auxiliary Data

Manipulating the Vector Visualization

Translating

Adding Annotations

View Zoom

Canvas Zoom

iVector Tool Operations

Adding and Modifying Streamlines

Adding Magnitude Contours

Adding Direction Contours

Vectors and Mapping

iTools Interface Reference

Introduction to iTools Interface Elements

Menu Bar Items

Toolbar Items

File Menu

Edit Menu

Insert Menu

Operations Menu

Window Menu

Help Menu

File Toolbar

Edit Toolbar

Manipulator Toolbar

Annotation Toolbar

Context Menu

Property Controls

Operations Properties

The Operations Browser

Macros Properties

Statistics Properties

Histogram Properties

Filter Properties

Convolution Properties

Median Properties

Smooth Properties

Roberts Filter Properties

Sobel Filter Properties

Unsharp Mask Properties

Curve Fitting Properties

Rotate Properties

Rotate Left Properties

Rotate Right Properties

Rotate By Angle Properties

Flip Horizontal

Flip Vertical

Transform Properties

Resample Properties

Rotate Data Properties

Scale Data Properties

Invert Image Properties

Byte Scale Properties

Map Projection Properties

Map Register Image Properties

Morphing Properties

Crop Properties

Region Grow Properties

Contour Properties

Image Properties

Surface Properties

Vector Properties

Streamlines

Contour Magnitude

Contour Direction

Volume Properties

Image Plane

Isosurface

Render Volume

Interval Volume

Image Plane Properties

Launch iImage

Visualization Properties

Introduction to Visualization Properties

The Visualization Browser

Window Properties

View Properties

Visualization Layer Properties

Data Space Properties

Rendering Objects at Data Space Depth

Visualization Type Properties

Image

Plot

Plot 3D

Surface

Contour

Vector

Volume

Isosurface

Interval Volume

Image Plane

Colorbar

Histogram

Axes

Lights

Polygonal ROI

IDL Graphics Objects

Map Grid

ShapePolygon

ShapePolyline

ShapePoint

Streamlines

2D Annotation Layer Properties

Text Annotation Properties

Line Annotation Properties

Line Profile Annotation Properties

Rectangle Annotation Properties

Oval Annotation Properties

Polygon Annotation Properties

Freehand Annotation Properties

Legend Properties

Legend Contour Items

Legend Contour Level Items

Legend Plot Items

Legend Surface Items

Image Processing

Introduction to Image Processing in IDL

Overview of Image Processing

Digital Images and Image Processing

Understanding Image Definitions in IDL

Representing Image Data in IDL

Accessing Images

Querying Images

References

Transforming Image Geometry

Overview of Geometric Transformations

Cropping Images

Padding Images

Resizing Images

Shifting Images

Reversing Images

Transposing Images

Rotating Images

Rotating an Image by 90 Degree Increments

Using the ROT Function for Arbitrary Rotations

Planar Slicing of Volumetric Data

Displaying a Series of Planar Slices

Extracting a Slice of Volumetric Data

Interactive Planar Slicing of Volumetric Data

Displaying Volumetric Data Using SLICER3

Manipulating Volumetric Data Using SLICER3

Mapping an Image onto Geometry

Mapping Images onto Surfaces Overview

Mapping an Image onto Elevation Data

Opening Image and Geometry Files

Initializing the IDL Display Objects

Displaying the Image and Geometric Surface Objects

Mapping an Image onto a Sphere

Mapping an Image onto a Sphere Using Direct Graphics

Working with Masks and Image Statistics

Overview of Masks and Image Statistics

Masking Images

Clipping Images

Locating Pixel Values in an Image

Calculating Image Statistics

Warping Images

Overview of Warping Images

Tips for Selecting Control Points

Creating Transparent Image Overlays

Displaying Image Transparencies Using Direct Graphics

Displaying Image Transparencies Using Object Graphics

Warping Images Using Direct Graphics

Working with Regions of Interest (ROIs)

Overview of Working with ROIs

Contrasting an ROI's Geometric Area and Mask Area

Defining Regions of Interest

Displaying ROI Objects in a Direct Graphics Window

Programmatically Defining ROIs

Growing a Region

Creating and Displaying an ROI Mask

Testing an ROI for Point Containment

Creating a Surface Mesh of an ROI Group

Transforming Between Domains

Overview of Transforming Between Image Domains

Transforming Between Domains with FFT

Transforming to the Frequency Domain

Displaying Images in the Frequency Domain

Transforming from the Frequency Domain

Removing Noise with the FFT

Transforming Between Domains with Wavelets

Transforming to the Time-Frequency Domain

Displaying Images in the Time-Frequency Domain

Transforming from the Time-Frequency Domain

Removing Noise with the Wavelet Transform

Transforming to and from the Hough and Radon Domains

Transforming to the Hough and Radon Domains (Projecting)

Transforming from the Hough and Radon Domains (Backprojecting)

Finding Straight Lines with the Hough Transform

Color Density Contrasting with the Radon Transform

Contrasting and Filtering

Overview of Contrasting and Filtering

Byte-Scaling

Working with Histograms

Equalizing with Histograms

Adaptive Equalizing with Histograms

Filtering an Image

Low Pass Filtering

High Pass Filtering

Directional Filtering

Laplacian Filtering

Smoothing an Image

Smoothing with Average Values

Smoothing with Median Values

Sharpening an Image

Detecting Edges

Removing Noise

Windowing to Remove Noise

Lee Filtering to Remove Noise

Extracting and Analyzing Shapes

Overview of Extracting and Analyzing Image Shapes

Applying a Morphological Structuring Element to an Image

Determining Structuring Element Shapes and Sizes

Determining Intensity Values for Threshold and Stretch

Thresholding an Image

Stretching an Image

Eroding and Dilating Image Objects

Characteristics of Erosion

Characteristics of Dilation

Applying Erosion and Dilation

Smoothing with MORPH_OPEN

Smoothing with MORPH_CLOSE

Detecting Peaks of Brightness

Creating Image Object Boundaries

Selecting Specific Image Objects

Detecting Edges of Image Objects

Creating Distance Maps

Thinning Image Objects

Combining Morphological Operations

Analyzing Image Shapes

Using LABEL_REGION to Extract Image Object Information

Using CONTOUR to Extract Image Object Information

New Features in IDL 6.4

Platform Support Changes

Microsoft Windows Vista Support

Macintosh OS X on Intel Processor Support

iTool Enhancements

New and Enhanced iTools Keywords

Image Plane Location Control

TrueType Font Availability

Z Values for iMap's Graphic Layers

Visualization Enhancements

24-bit Z-Buffer Device

Support for OpenGL Shading Language (GLSL)

Analysis Enhancements

Color Mapping Functionality

Edge Detection Filters

Noise Functions

Statistics Enhancements to COMFIT

Language Enhancements

OBJ_HASMETHOD Routine

Export Bridge Object Licensing

Mouse Wheel Events in Exported IDL Objects

New IDLnetURL Class

File Access Enhancements

Transparency Support for GIF Files

Local Colormap Support for GIF Files

Open Geospatial Consortium Server Access

XML Read and Write Enhancements

User Interface Toolkit Enhancements

Title Bar Icons for Base Widgets

Draw Widget Wheel Events on Motif Platforms

Documentation Enhancements

IDL Analyst Manual

Manual Reorganization

New IDL Routines

IDL Routine Enhancements

New IDL Object Classes

New IDL Object Properties

New IDL Object Methods

IDL Object Method Enhancements

Features Obsoleted in IDL 6.4

Obsolete Features

Obsolete Arguments or Keywords

Requirements for This Release

IDL and ENVI

Hardware and Operating System Requirements

32-bit and 64-bit Versions

Graphics Hardware

Platform Support Questions and Answers

Software Requirements

ION

Hardware and Operating System Requirements

Web Server Requirements for ION

Web Browser Requirements for ION

Java Virtual Machine Requirements for ION

Feature Support by Operating System

IDL Features

ENVI Features

IDL 6.4 Release Notes

New Features in IDL 6.4

Backward-Compatibility Issues in IDL 6.4

Problems Corrected in IDL 6.4

Known Problems in IDL 6.4

  IDL Online Help (March 06, 2007)