Index

2D and 3D mixing
Mixing Volumes and Surfaces

2D to 3D, changing
Merging a List of Two-Dimensional Files Into One Three-Dimensional File

_SAMPLE_OVER_OBJECT
glwSimpleVolume.cxx

_SAMPLING_AXIS_ALIGNED
glwSimpleVolume.cxx

allocate memory
glwSimpleVolume.cxx
Allocate Storage for Bricks

allocate, voxel data
Allocating Brick Data

API
Volumizer Advantages

API, common classes
Programming Template

API, functional categories
Functional Categories

API, hierarchy
Volumizer API at a Glance

appearance
Volumetric Appearance
Decoupling Geometry and Appearance
glwSimpleMain.cxx
glwSimpleVolume.cxx

appendPoly()
Populating Face Sets with Polygons

application, template
Audience for this Chapter

array
Creating an Instance of voVertexData

axis, find closest
Example Use of findClosestAxisIndex()

AXIS_ALIGNED
Drawing Brick Set Collections
samplingMode

bilinear
glwSimpleVolume.cxx
glwSimpleVolume.cxx

blending function
Drawing Polygonized Volume
Drawing Polygonized Volume

book, structure
What This Guide Contains

boundFaceCount()
glwSimpleVolume.cxx

brick
Bricks

brick set
Brick Sets
Brick Sets

brick set collection
Construct an Instance of a voBrickSetCollection

brick set collection
Brick Set Collections
Brick Set Collections

brick, collection
glwSimpleVolume.cxx

brick, coordinates
Voxel Reference Frame

brick, count
glwSimpleVolume.cxx

brick, deleting
glwSimpleVolume.cxx

brick, determine number of
glwSimpleVolume.cxx

brick, interleave
Optimize Voxel Data

brick, load
Read Brick Data from Disk

brick, loading
Customized Volume Drawing Procedure

brick, optimize
Optimize Voxel Data

brick, overlap
Brick Overlap

brick, scale
Scaling Voxel Values

brick, size restrictions
Brick Size Restriction

brick, sorting
Customized Volume Drawing Procedure

button input
glwSimpleMain.cxx

callback
glwSimpleMain.cxx

camera
Auxiliary Methods

classes, description of
Brief Descriptions of the Volumizer Classes

classes, Volumizer
Class Hierarchy

clean up
Step 7: Clean Up

clip box
Brick Overlap
Clip Boxes

clip planes
Customized Volume Drawing Procedure

clip texture
Tagged Voxels

clip()
clip()
clip()

clip().
Customized Volume Drawing Procedure

collection, brick set
Brick Set Collections

color
Step 5: Using Lookup Tables

conventions
Conventions Used in This Guide

convert data
Converting Brick Data

converting 2D to 3D
Merging a List of Two-Dimensional Files Into One Three-Dimensional File

coordinates
voVertexData
glwSimpleMain.cxx

coordinates, brick
Voxel Reference Frame

count, brick
glwSimpleVolume.cxx

cracking
Minimal Tessellation Disadvantages

cube
Step 3: Define Geometry

data file, handles large
Handles Large Data Sets

data format
Data Formats

data structures
Data Structures

data types
Data Types

data, convert
Converting Brick Data

data, delete
Allocate Storage for Bricks

data, multiple copies
Transposing Brick Data

data, optimize
Optimize Voxel Data

data, scale
Scaling Voxel Values

data, scaling
Scaling Data

dataAlloc()
glwSimpleVolume.cxx
Allocating Brick Data
Allocate Storage for Bricks

dataConvert()
Converting Between Formats
Converting Brick Data

dataFree()
Allocate Storage for Bricks
Step 7: Clean Up
glwSimpleVolume.cxx

dataScaleRange()
Scaling Voxel Values
Scaling Data

dataType
Select Optimal Brick Parameters

deallocate
Step 7: Clean Up

deallocate, face set
Deallocating Indexed Face Sets

debugging
Debugging Information

declarations
Step 1: Inclusions and Declarations

deformation
Advantage of Separating Geometry and Appearance

delete
Allocate Storage for Bricks

delete
Step 7: Clean Up

destructor, for face sets
Deallocating Indexed Face Sets

disk, load from
Read Brick Data from Disk

diskDataFormat
Select Optimal Brick Parameters

display
glwSimpleMain.cxx

documentation
Silicon Graphics Publications

draw
Step 4: Drawing Volumes

draw()
glwSimpleVolume.cxx
Customized Volume Drawing
Transient Geometry Caching During polygonize
glwSimpleVolume.cxx

draw, customized
Customized Volume Drawing

drawing outline of brick
Drawing Brick Outlines

error handler
Setting Up Error Handlers

error, number
Setting Error Conditions
Step 6: Handling Errors

error, string
Step 6: Handling Errors

errors, handling
Step 6: Handling Errors

external format
Data Format Values

externalFormat
Select Optimal Brick Parameters

eye position
Auxiliary Methods

face
Allocating Storage for Transient Geometry

face set
Creating an Instance of voIndexedFaceSet

face set, deallocate
Deallocating Indexed Face Sets

faces
Allocating Storage for Transient Geometry

file format utilities
File Format Utilities

file name of a volume
glwSimpleVolume.cxx

findCameraPosition()
Auxiliary Methods

findClosestAxisIndex()
Drawing Brick Set Collections
Example Use of findClosestAxisIndex()

findClosestAxisIndex())
glwSimpleVolume.cxx

findProjectedArea()
Customized Volume Drawing Procedure

findViewDirection()
Auxiliary Methods

format, convert
Converting Brick Data

format, external
Data Format Values

format, internal
Data Format Values

format, optimal
Optimal Formats

format, table
Table Formats

format, utilities
File Format Utilities

format, voxels
glwSimpleVolume.cxx

free data
Allocate Storage for Bricks

freeing data
Step 7: Clean Up

geometry
Volumetric Geometry
glwSimpleMain.cxx
Decoupling Geometry and Appearance
glwSimpleVolume.cxx

geometry, create
glwSimpleVolume.cxx

geometry, defining
Step 3: Define Geometry

geometry, delete
glwSimpleVolume.cxx

geometry, drawing
Step 4: Drawing Volumes

geometry, roaming
Volume Roaming

geometry, storage
Allocating Storage for Transient Geometry

getBestParameters()
Select Optimal Brick Parameters
Setting Brick Sizes Automatically
glwSimpleVolume.cxx
Selecting Lookup Table Types and Formats

getBrickCount()
glwSimpleVolume.cxx

getCurrentBrickSet()
glwSimpleVolume.cxx

getDataPtr()
Allocating Brick Data

getErrorNumber()
Step 6: Handling Errors

getErrorString()
Step 6: Handling Errors

getInterpolationType()
glwSimpleVolume.cxx
glwSimpleVolume.cxx

GL_MODELVIEW_MATRIX
glwSimpleVolume.cxx

GL_PROJECTION_MATRIX
glwSimpleVolume.cxx

GL_TEXTURE_COLOR_TABLE_SGI
Pre-Interpolation Lookup

glBlendFunc()
Shading

glwSimpleMain.cxx
glwSimpleMain.cxx

graphics intialization
glwSimpleMain.cxx

graphics state
Drawing Polygonized Volume

header files
Step 1: Inclusions and Declarations

hexahedra
Bricks

higher level primitives
Using Higher-Level Geometric Primitives

higher-level, primitives
Higher-Level Primitives

iflto3Dtiff
Merging a List of Two-Dimensional Files Into One Three-Dimensional File

includes
glwSimpleVolume.cxx

index
Defining Geometry (voIndexedTetraSet)

indices
voIndices
voIndices

interate, face sets
voIndexedFaceSetIterator

interleave bricks
Optimize Voxel Data

interleave, advantages
Advantages of Interleaving Bricks

interleave, manually
Manually Interleaving Multiple Bricks

intermix 2D and 3D
Displaying Volumetric Geometry with Other ToolKits

internal format
Data Format Values

internalFormat
Select Optimal Brick Parameters

interpolation
glwSimpleVolume.cxx
glwSimpleVolume.cxx

interpolationType
Select Optimal Brick Parameters
Drawing Polygonized Volume

intialize internal data structures
glwSimpleMain.cxx

Inventor
Interoperability With Other Toolkits

IRIS Performer
Interoperability With Other Toolkits
Displaying Volumetric Geometry with Other ToolKits

iterate
glwSimpleVolume.cxx

keyboard input
glwSimpleMain.cxx

load brick
Read Brick Data from Disk

loaders, custom
Creating Custom Loaders

lookup table
Step 5: Using Lookup Tables

lookup, post
Post-Interpolation Lookup

lookup, pre
Pre-Interpolation Lookup

low-level
Low-Level Control

main()
glwSimpleMain.cxx

memory
glwSimpleVolume.cxx

memory, allocation
Allocate Storage for Bricks

memory, deallocating
Step 7: Clean Up

memory, texture
Texture Memory Overlap

mixing 2D and 3D
Mixing Volumes and Surfaces

model, hierarchical
Advantage of Separating Geometry and Appearance

modelMatrix
modelMatrix and projMatrix

modelview
glwSimpleVolume.cxx

MPR
Other Applications
Multi-planar Reformatting Polygonization

multi-pipe
Multi-Pipe Capability

Multi-planar Reformatting
Multi-planar Reformatting Polygonization

multiple copies
Transposing Brick Data

multiple copies of data
Transposing Brick Data

myGetVolumeSizesIfl()
Loading Three-Dimensional Data

myReadBrickIfl()
Allocating Brick Data
Loading Three-Dimensional Data
Read Brick Data from Disk

nextPrimitive()
voIndexedSetIterator

nextVertex()
voIndexedSetIterator

NO_ERROR
Step 6: Handling Errors

OBJECT
samplingSpace

opacity
Step 5: Using Lookup Tables
Ray Casting Processing Order

opaque
Using Angled Slices

opaque geometry
glwSimpleVolume.cxx

Open Inventor
Interoperability With Other Toolkits

OpenGL
Where OpenGL Volumizer Fits In
Familiar Environment

OpenGL Optimizer
Displaying Volumetric Geometry with Other ToolKits
Interoperability With Other Toolkits

OpenGL Volumizer
Volumizer Advantages

optimal format
Optimal Formats

optimize
glwSimpleVolume.cxx
Optimize Voxel Data

optimize, brick size
glwSimpleVolume.cxx

optimize, brick sizes
Setting Brick Sizes Automatically

Optimizer
Displaying Volumetric Geometry with Other ToolKits
Interoperability With Other Toolkits

orientation
Drawing Brick Set Collections

orthographic projection
Ray Casting vs. Volume Slicing

outline of brick, brick, outline
Drawing Brick Outlines

overlap
Brick Overlap

overlapping
Combining Overlapping Volumes

overlapping volumes
Rendering Multiple Volumes

overview, of Volumizer
Volumizer Advantages

PARC
Advantage of Separating Geometry and Appearance

partialBrickType
Select Optimal Brick Parameters

per-part appearance, appearance, per part
Advantage of Separating Geometry and Appearance

Performer
Interoperability With Other Toolkits
Displaying Volumetric Geometry with Other ToolKits

perspective projection
Ray Casting vs. Volume Slicing

pick()
Picking Volumetric Objects

picking
Picking Volumetric Objects

platform support
Cross-Platform Support

polygon
Faces Clipped to Brick Boundaries

polygon, append
Populating Face Sets with Polygons

polygonization
Polygonizing Shapes

polygonize()
Polygonizing Volumes
Interpenetrating Polygons
glwSimpleVolume.cxx

polygonizeMPR()
Multi-planar Reformatting Polygonization

polygons
Interpenetrating Polygons
Rendering Translucent or Overlapping Geometry with Volumes

post-interpolation lookup
Post-Interpolation Lookup

pre-allocated array
Creating an Instance of voIndexedFaceSet
Creating an Instance of voVertexData

pre-interpolation lookup
Pre-Interpolation Lookup

primitive, complex
Minimal Tessellation Disadvantages

primitive, higher level
Higher-Level Primitives

primitive, tetrahedron
Tetrahedron as a Primitive

primitives
Volumetric vs. Surface-Based Models

primitives, higher level
Using Higher-Level Geometric Primitives

programming algorithm
High-Level Overview of Procedure

programming template
Programming Template
High-Level Overview of Procedure

projection matrix
glwSimpleVolume.cxx

projMatrix
modelMatrix and projMatrix

ray casting
Volume Rendering Techniques

ray order
Ray Casting Processing Order

ray-order
Ray Casting vs. Volume Slicing

read brick data
Read Brick Data from Disk

reference frame
Voxel Reference Frame

rendering, slicing
Volume Rendering Techniques

renderingMode
Select Optimal Brick Parameters

RGBA
Table Formats

RGBA8_EXT
Table Formats

roaming
Volume Roaming

sample()
Other Applications
Customized Volume Drawing Procedure

sampling
samplingPeriod

sampling mode
samplingMode

sampling plane
glwSimpleVolume.cxx

sampling-surface order
Ray Casting vs. Volume Slicing

scale data
Scaling Data

scale data
Scaling Voxel Values

scale, voxel values
Scaling Voxel Values

selecting
Picking Volumetric Objects

setBrickSizes()
Setting Brick Sizes

setDebugLevel()
Debugging Information

setErrorHandler()
Setting Up Error Handlers

setErrorNumber()
Setting Error Conditions

shading
Shading
Ray Casting Processing Order

shape
Decoupling Geometry and Appearance

shape, drawn
Step 4: Drawing Volumes

shear warp
Volume Rendering Techniques

Silicon Graphics APIs
Where OpenGL Volumizer Fits In

size
glwSimpleVolume.cxx
glwSimpleVolume.cxx

size, brick
Setting Brick Sizes

size, bricks
Brick Size Restriction

size, optimal
Setting Brick Sizes Automatically

slicing
Volume Rendering Techniques

sort bricks
Customized Volume Drawing Procedure

sorting
State Sorting

space leaping
Advantage of Separating Geometry and Appearance

SPHERICAL
samplingMode

splatting
Volume Rendering Techniques

state
State Sorting

state
Drawing Polygonized Volume

storage, for transient geometry
Allocating Storage for Transient Geometry

storage, free
Step 7: Clean Up

storage, freeing
glwSimpleVolume.cxx

subdivideMode
Select Optimal Brick Parameters

surface-only models
Volumetric Properties

T-junction
Minimal Tessellation Disadvantages

table, format
Table Formats

tagged voxels
Tagged Voxels

template
Programming Template
High-Level Overview of Procedure

template, application
Audience for this Chapter

tesselation, minimal
Using Minimal Tessellations

tessellation, fine
Advantage of Separating Geometry and Appearance

tetrahedra
Step 3: Define Geometry

tetrahedra, indexed
voIndexedTetraSet

tetrahedron, as primitive
Tetrahedron as a Primitive

tetraset, indexed
Defining Geometry (voIndexedTetraSet)

texgen
Drawing Polygonized Volume

texgen()
glwSimpleVolume.cxx

texgenDisable()
glwSimpleVolume.cxx

texgenEnable()
Voxel Reference Frame

texgenSetEquation()
glwSimpleVolume.cxx
Voxel Reference Frame

texture
glwSimpleVolume.cxx

texture
glwSimpleVolume.cxx
glwSimpleVolume.cxx

texture mapping
Polygonizing Arbitrarily Oriented Cross Sections

texture memory
Texture Memory Overlap

texture objects
Creating Texture Objects

texture paging
Faces Clipped to Brick Boundaries

texture, memory
glwSimpleVolume.cxx

texture, stack of 2D
Stack of Two-Dimensional Textures

TEXTURE_OBJECTS
Creating Texture Objects

textureBind()
Loading Brick Data
Loading Brick Data

textureDisable()
glwSimpleVolume.cxx
glwSimpleVolume.cxx

textureEnable()
Drawing Polygonized Volume
glwSimpleVolume.cxx

textureInterleave()
Manually Interleaving Multiple Bricks

textureLoad()
Loading Brick Data
Customized Volume Drawing Procedure

textureMakeMatrix()
Texture Matrices

TIFF files
Loading Three-Dimensional Data

toolkits
Displaying Volumetric Geometry with Other ToolKits

trackball
glwSimpleMain.cxx

transient storage
glwSimpleVolume.cxx

translucent
Rendering Translucent or Overlapping Geometry with Volumes

transpose
Transposing Brick Data
Read Brick Data from Disk
glwSimpleVolume.cxx

traversal of geometries
voIndexedSetIterator

triangle, as primitive
Tetrahedron as a Primitive

trilinear
glwSimpleVolume.cxx

two-dimensional v. Volumizer
Volumetric vs. Surface-Based Models

user-defined data
voVertexData

user-supplied data, data, user-supplied
Allocating Storage for Transient Geometry

vertex
Creating an Instance of voVertexData

vertex coordinates
glwSimpleVolume.cxx

vertex parameters
voVertexData

vertex, data order
Preferred Order of Values in Records

VIEW_VOLUME
samplingSpace

viewing frustum
Ray Casting Processing Order

viewpoint
Auxiliary Methods

VIEWPORT_ALIGNED
samplingMode
samplingSpace
Drawing Brick Set Collections

VO_SAMPLING_AXIS_ALIGNED
Transient Geometry Caching During polygonize

voAppearanceActions
Drawing Polygonized Volume
Brief Descriptions of the Volumizer Classes
glwSimpleVolume.cxx
Allocate Storage for Bricks

voBrick
Brief Descriptions of the Volumizer Classes
Texture Bricking

voBrickSet
Brief Descriptions of the Volumizer Classes

voBrickSetCollection
Brick Set Collections
Brief Descriptions of the Volumizer Classes
Construct an Instance of a voBrickSetCollection
glwSimpleVolume.cxx
glwSimpleMain.cxx
glwSimpleVolume.cxx

voBrickSetCollection, drawing
Drawing Brick Set Collections

voBrickSetCollectionIterator
Brief Descriptions of the Volumizer Classes
glwSimpleVolume.cxx

voBrickSetIterator
Brief Descriptions of the Volumizer Classes

voBrickSets
Brick Set Collections

voCache
Brief Descriptions of the Volumizer Classes

voDataType
glwSimpleVolume.cxx
Data Types

voDataTypeScope
Select Optimal Brick Parameters

voError
Brief Descriptions of the Volumizer Classes
Step 6: Handling Errors

voErrorType
Step 6: Handling Errors

voExternalFormatType
glwSimpleVolume.cxx
Select Optimal Brick Parameters
Data Format Values

voExternalFormatTypeScope
Select Optimal Brick Parameters
Select Optimal Brick Parameters

voFaceSet
Creating an Instance of voIndexedFaceSet

voFaceSets
Transient Geometry Caching During polygonize
Polygonizing Volumes

voGeometryActions
Brief Descriptions of the Volumizer Classes

VOI
Advantage of Separating Geometry and Appearance

VOI, arbitrary shape
Arbitrarily Shaped Volumes of Interest

voIndexedFaceSet
voIndexedSet
glwSimpleVolume.cxx
Allocating Storage for Transient Geometry
voIndexedFaceSet
Creating an Instance of voIndexedFaceSet
Populating Face Sets with Polygons
Brief Descriptions of the Volumizer Classes
Polygonizing Volumes
Allocating Storage for Transient Geometry

voIndexedFaceSetIterator
voIndexedFaceSetIterator
Brief Descriptions of the Volumizer Classes
voIndexedSetIterator

voIndexedFaceSetPtr
glwSimpleVolume.cxx

voIndexedSet
Brief Descriptions of the Volumizer Classes
voIndexedSet

voIndexedSetIterator
Brief Descriptions of the Volumizer Classes
voIndexedSetIterator

voIndexedTetraSet
Defining Geometry (voIndexedTetraSet)
voIndexedSet
Creating a voIndexedTetraSet
glwSimpleVolume.cxx
glwSimpleMain.cxx
Defining Geometry (voIndexedTetraSet)
Brief Descriptions of the Volumizer Classes

voIndices
voIndices
voIndices
Brief Descriptions of the Volumizer Classes

voInitAppearance
glwSimpleVolume.cxx

voInterleavedArrayFormat
Picking Volumetric Objects

voInternalFormatType
glwSimpleVolume.cxx
Select Optimal Brick Parameters
Data Format Values

voInterpolationType
glwSimpleVolume.cxx
Drawing Polygonized Volume

voInterpolationTypeScope
glwSimpleVolume.cxx
Brief Descriptions of the Volumizer Classes
Transposing Brick Data

voLookupTable
Brief Descriptions of the Volumizer Classes
voTextureLookup

voLookupTablePost
Brief Descriptions of the Volumizer Classes

voLookupTablePre
Brief Descriptions of the Volumizer Classes

Volume of Interest
Volume Roaming
Advantage of Separating Geometry and Appearance

volume, defining
Step 3: Define Geometry

volume, deformation
Advantage of Separating Geometry and Appearance

volume, drawing
Customized Volume Drawing

volume, multiple
Rendering Multiple Volumes

volume, properties
Volumetric Properties

volume, roaming
Volume Roaming

volume, slicing
Volumizer Processing Order
Volume Rendering Techniques

volumeMakeTransposed
glwSimpleVolume.cxx

volumeMakeTransposed()
Transposing Brick Data
Read Brick Data from Disk

volumeOptimize()
glwSimpleVolume.cxx
Optimize Voxel Data

Volumizer
Volumizer Advantages

Volumizer, v. 2D APIs
Volumetric vs. Surface-Based Models

voOptimizeVolumeTypeScope
Brief Descriptions of the Volumizer Classes

voPartialBrickTypeScope
Select Optimal Brick Parameters
Brief Descriptions of the Volumizer Classes

voPlaneOrientation
Drawing Brick Set Collections

voPlaneOrientationScope
Brief Descriptions of the Volumizer Classes

voRenderingMode
glwSimpleVolume.cxx

voRenderingModeScope
Brief Descriptions of the Volumizer Classes

voSamplingMode
samplingMode

voSamplingModeScope
Drawing Brick Set Collections

voSamplingPlaneSet
Brief Descriptions of the Volumizer Classes
Customized Volume Drawing Procedure

voSamplingSpaceScope
samplingPeriod

voSamplingSurfaceSet
Brief Descriptions of the Volumizer Classes

voSortAction
Customized Volume Drawing Procedure
Brief Descriptions of the Volumizer Classes

voTexture3D
Texture Bricking
Brief Descriptions of the Volumizer Classes

voTextureLookupPost()
Post-Interpolation Lookup

voTextureLookupPre()
Pre-Interpolation Lookup

voutIndexedHexaSet
Higher-Level Geometric Primitives and Solids

voutPerfMeter
Brief Descriptions of the Volumizer Classes

voutTimer
Brief Descriptions of the Volumizer Classes

voVertexData
voVertexData
Creating an Instance of voVertexData
Allocating Storage for Transient Geometry
Brief Descriptions of the Volumizer Classes

voxel data. storage
Allocate Storage for Bricks

voxel values
Voxel Values

voxel, coordinates
Voxel Reference Frame

voxel, delete
Allocate Storage for Bricks

voxel, scale values
Scaling Voxel Values

voxel, tagged
Tagged Voxels

X window
glwSimpleMain.cxx

xfmVox2TexCoords()
Voxel Reference Frame
glwSimpleVolume.cxx

Z-buffer
Shading

Z-buffering
Rendering Opaque Geometry with Volumes