Symbols
*.SIM file 293
.DLL 334
.PDB data 293
.RAW 292
.SIM 290
_thread 241
2D coordinate axis 45
2D mouse clicks 319
2D points into 3D object space, convert 319
32 bit Windows 95 application 289
3D API 24
A
aberration 85
About Box 343
abstract class 226
abstract definition 222
abstract object 16
definition 225
abstraction 11, 13, 23
control 13
access 28
access information 257
access operators 37, 158
access path control problems 25-26
access problems 25-26
accessing device contexts 184
accumulation buffer 304
ActiveOpenGL 333-343
ActiveOpenGLCtl 336-343
ActiveX 180, 332-333
Control Pad 332
controls 340-341
addition 48, 58
adjacent cubes 150
adjacent polygons 91
joining of 147
adjoining faces 47
adjustable rendering 290
aesthetic appeal 9
aesthetic requirements 9
afx 336
algebra
linear 44-50
algorithm
Cohen-Sutherland 131
Cyrus-Beck clipping 131
marching cubes 145
marching parallelogram 145
marching sphere 145
object space 136, 144
object space decomposition 144
painter's 137-139
pixel space 136
z-buffer 136
allocated data space 35
allocated space 9, 36-37, 249
allocation 9, 35
alpha blending 100, 112-113, 317
alpha buffer 304
alpha level 48, 316
alpha parameter 112-113
ambient lighting 105, 109
angle 29-31, 47, 50, 55, 57, 58, 82, 165, 169, 375-379, 396-400, 402, 403, 404
angle of rotation 320
angular measurement 53
angular rotation 224
animating model 20
animation 21, 154, 164
paths 171
smooth 293
state 20-21
animator 172-173
antialiasing 274
OpenGL 308, 317-318
API. See application programming interface
API function call 271
application
model 13
multiple view 179
object 13-14
registration 13-14
single view 178-179
thread 310
application frameworks 246
application programming interface 198
application specific messages 14
applying model and world transformations 134
approximation model 75
arbitrarily high accuracy 150
array 17
construct 40-41
dynamic sizing 9
storage 36-37
Assembly language 242
association 15, 16
atmospheric (fog) effects 318
attribute 252
auto-rotate 190
AutoCAD 289
autofield tracking 274
automatic backface culling 307
automatic destruction 261
automatic model rotation 257
automatic rotation 284
auxiliary buffer 304
auxiliary functions 300
average 34, 39
average center 237
Average() 39
axial rotation 21
axial rotation transformation 328
axis
coordinate 46
differential angle 302
normal coordinate 47
right-hand coordinate 46
rotation 57
standard 53
standard coordinate 84
axis of rotation 323
B
b-splines 170
back buffer 183, 297, 298
back clipping plane 304
back side 136
back-to-front order 137
backface culling 22, 82, 93, 136, 274, 317
automatic 307
bands 116
base class 226, 239, 259
base class function 241
base geometric transformations 302
base level methods 21
base lighting 108
base member 261
base object 22
base or selected color 107-108
begin/end blocks 290
binary representation 130
binary space partitioning tree 136, 141-144
root of the tree 142
binary tree 6
bit testing pattern 130
bit-blot 191, 196
bit-planes 113
BitBlt 188, 189
bitmap 191, 330
bitmap context 193
bitmap definition 193
bitmap handles 191
bitmap image 330
bitmap picture 135
bitmap textures 135
BITMAPINFOHEADER 191
bitwise simplification 107
black hole 201
blending calculations 316
blending function 118, 151, 211, 235
blitting 135
blob 117, 175, 230
real-time 211
blob field 258
blob model 211, 243, 262, 271-272
Blob Modify 214-215, 277, 279
blob object 227
blob space 251, 262
blobby fields 243
blobman model 214
block operations 102
Bloomenthal, Jules 117, 150, 228
implicit surface tessellation 145, 149-150
blue color component 48, 316
BOOL wglDeleteContext(...) 298
Boolean comparison 128
Boolean flag 261
Boolean function 147
Boolean space 148
Boolean state variables 257
Boolean switch 132, 134
Boolean test 128
Boolean variable 308
Borland OWL 183
bottom and top planes 128
boundary based representation 98
boundary box 83
boundary conditions 79, 91
boundary sphere 83
bounding box 132, 133, 401
localized 131
bounding information 191
bounding point 47
bounding rectangle 259
bounding region 95
bounding space 90, 127
bounding sphere 244
bounding sphere intersection 252
Bresenham's line drawing method 99, 100
BSP tree. See binary space partitioning tree
buffer
back 183, 297, 298
color 342
depth 195, 197, 342
double 183, 188-190, 282-283, 297, 304
frame 99
front 298
information 305
off-screen 195
screen 298
build polygons 150
building moving models 293
C
C++ xvii, 5, 7, 12, 19, 28, 34, 37, 41
CActiveOpenGLCtrl 334
calculate slope constants 99
camera 65, 154, 167, 169, 342
camera viewing model 257
canonical parallel viewing volume 131
CArchive object 180
casting conversions 102
CD-ROM 175, 293
CDC 183
census 1
center 47, 58, 80
central viewing point 324
centroid 233
chemical structures 292-293
child controls 25
child documents 14
child object 20-21
child windows 299
ChoosePixelFormat(...) 299
class 1, 5, 11, 19, 22, 28-33, 36, 38, 39, 41, 154, 157, 166, 167, 353, 355-358
abstract 226
base 239, 259
generic 29
class member 257
ClassWizard 338
clear off-screen buffer 188
click position 326
click-and-drag interface 117, 212
click-and-drag tools 262
click-and-drag user interface 85
client window 192, 277
clip
far 190
near 190
clipboard 330
clipping 127-135
a point 129
a triangle 130-131
plane 129
region 310
test 128, 131
clipping into the viewing volume 128-129
CList 29, 30
clockwise convention 93
clockwise fashion 93
closest intersecting object 251
closest ray point 85
clusters 79
code
time-critical 26
code optimization 5
code reusability 12
code reuse 6, 25
coefficients 159
Cohen-Sutherland algorithm 131
COleControl 334
collecting object data 134
collection of fields 227
collection of pixels 98
collection of polygons 198
collections of transformations 84
color
alpha blending 112-113, 317
alpha level 48, 316
alpha parameter 112-113
base or selected 107-108
blending 48
blue 48, 316
conversion 194
depth 194
dithering 318
final rendering 107
flat shading 114
green 48, 316
n-vertex 114
pixel 112, 114
red 48, 316
single 114
transparency 48
working palette 309
color bits 304
color buffer 342
color depth 304
color selection 105, 301
color structure 48
color table 191
color transition 116
coloring parameters 204
COM model. See Component Object Model
command enabler handling functions 264
command event 255
code 263
command functions 264
command handler 263
command messages 13-14
command update handler 329
common vertex 81
compare 143
compiler 41, 197
complex objects 82, 85
complex polygon structures 290
complex polygonal surfaces 117-119
complex smooth objects 117
complex spline data sets 156
component 6, 13, 18, 45, 48, 58, 59, 106, 109-112, 157, 167, 379, 380, 504, 505, 507
constant 16
diffuse 111
replaceable 16
specular 111
Component Object Model(COM) 180, 332
computer animation 154
computer friendly algorithms 72-77
computer visualization 292-293
concatenate composition sets 71
concave
polygons 96, 147
ring 206
consistency 8-9
consistent execution 9
constant component 16
constant string pointer 261
constructive solid geometry 147-151
constructor 25, 33, 158-159, 223, 303
default 231
parameterized 231
container 248
container array index 248
container class 38
container objects 234
context 305
context information
creation and deletion of 23
continue traversing 150
control points 290
control transparency 22
Control Wizard 336
convex 96
convex 3D polyhedra 131
convex areas
series of 96
coordinate
object space 320
window 320
coordinate axis 46
COpenGLView 300
COpenGLView object 300-315
COpenGLView window 300
coplanar 122
Copy 34, 37
copy operator 232
copying 10, 34, 36, 183
correction
distance-based 65
counterclockwise fashion 93
CPaintDC 184
create a context 297
create polished coherent design 9
create visual 293
creating
model 280-284
creation and deletion of context information 23
criteria types 145
cross product 49, 81
cross-library drawing interfaces 22-24
CSG (Constant Segment) 289
cube 47, 65, 82, 132
edges 270
cubes
adjacent 150
marching 150
cubic spline 154
Cull 83
current device context 298
current frame 259
current pixel format 302
current projection 195
current state 225
current tool 278
current transformation 326
current window 298
current window viewport 311
currently displayed window 298
cursor 263, 296, 328-330
current 328
selecting 328
cursor bitmap 263
cursor icon 328
curve fitting 154
CView 181
cycle-eating monster 26, 32
cylinder 22
Cyrus-Beck clipping algorithm 131
D
data
flow 17
member 17, 18, 29, 34, 35, 42, 222
object 24
primitive 22
space 34
vector-based 302
data access hiding, no 6
data containment figure 246
data densification 170
data flow 17
data flow diagram 4
data hiding 248
data representations 45
data series sets 156
data structure changes 6
data structure model 96
data structures 6, 9, 11, 18, 32, 40, 131
data transformations 302
database 5, 21, 23, 30-132, 134, 243
edge list 92
object 132, 273
polygon 14
spline 159-160
structure 142
triangle 217
decide what not to do 102
decompose 206
decompose boundary space 99
decompose slopes 99
decomposing into primitives 134
decomposing space into triangles 149
decomposition 21, 145
polygon-based 97
polygonal 98
special 275
default constructor 231
default light 307
default location 339-340
default operations 327
default parameters 307
default value 34, 306
definition equations 213
delayed invalidate 311
delta 9
densification 204, 206
density blending equations 211
density contribution 233, 241-242
density equation definition 213
density field equations 212
density fields 230
density tessellator 213
depth buffer 195, 197, 342
depth constants 99
depth slope constants 99
depth value 306
derived 12
derived member 225
derived methods 23
derived object 22, 183
DescribePixelFormat(...) 299
design
coherent 9
corruption 6
functional-oriented 18-19
initial stage 9
issues 12
object-oriented 7, 12-13, 18-19, 26
polished 9
preliminary 9
destroy context 297
destruction 35
automatic 261
destructor 33, 223, 236, 303
detail level 275
details 26
determine min y and max y 99
development environment 184
development problems
object-oriented 24-26
device context 183, 194
accessing 184
graphics 183
device context handle 191, 297
device context handling 214
device context screen coordinates 244
device screen memory 183
dialog box 257
About 343
Blob Modify 214-215, 277, 279
Color 214
Field Modify 278, 279
File 293
Left Arm 214
modal 310
Solid Revolver 204, 206
support 273-277
Volume Visualization Parameters 275
differential axis angle 302
diffuse components 111
diffuse lighting 109-110
diffuse reflectivity 110
digital polygons 98-100
digital space 98
dimensions 168
dimple 202
direct acces 13
Direct Draw Interface 189
Direct-3D 24, 71
Direct-X 189
direction of reflection 111
direction test 138
direction vector 59
directional component 109, 110
directional content 109
directional information 46
dispersion phase 173
display device objects 21
display updates 327
distance aberration 85, 265
distance aberration effects 84, 85-86
distance adjustment 314
distance comparison 137, 245
distance corrected projection 64
distance correction adjustment 267
distance formula 265-266
distance-based correction 65
distant point 138
distributed visualization 332
distributed visualization models 180-181
dithering
of colors 318
OpenGL 318
divide-and-conquer 15, 16
divide-and-conquer sort 137-138
division by z 67
DLL 334
DNA 292
document abstraction 253
document container object 256
document data 14
document manager 14, 214
document object 14, 179, 214
document view 13, 289
document view application model 253
document view object 213
document view object model 13-14
documented object 25
DoesSphereIntersect 80
dot product 49, 82, 129
double buffer 190, 297
double-buffering 188-189, 282-283, 304
draw event 311
draw index list 132, 134
draw into off-screen buffer 188
Draw Lines 6
draw models 297
Draw Object 20, 21, 22, 23
draw optimization 310
Draw Polygons 6
drawing 131, 183
commands 315
step 183
drawing into frame buffer 135
drawing with the Windows API 184-187
dynamic basis 36
dynamic sizing array 9
dynamic space 36
dynamic surfaces 294
E
easier to maintain 18
easy and productive 28
edge curve 165, 204
edge list databases 92
edge-based system 92
effect equation set 108
effect functions 112-113
effect-based lighting model 106
effects
distance aberration 84, 85-86
environmental 112
lighting 119
luminosity 105
element accesses 40-41
element phase of Silly Putty 211
elimination 55
elimination and hiding of objects 131-134
elimination process 131
emitted light 106, 108
emulate an object-oriented system 5
endpoints 47
test 129
entertainment applications 178
enumeration 257
environment
effects 112
realistic 112
equation
computer friendly algorithms 72-77
cross product 49
definition 211, 213
density blending 211
density field 212
dot product 49
effect set 108
factoring 55
form 242
inverse square 242
material 106
ray 78
spline 155, 170
standard line 99
surface differential 44
symbolic math tool 75
evaluations
recursive 102
evaluators 174
event handler 312
event message 184
execution
consistent 9
exponential 74
external graphics library 184
eye vector 324
eyepoint 83, 85, 127, 136-137, 165, 169, 251, 274
eyepoint orientation 143
eyepoint-to-mouse coordinate ray 243
F
facets 82
factor set 107
factoring 55
far plane 127
fast for small one-time projects 5
field densities 211
field model 151
Field Modify 278, 279
field objects 252
field of view 85, 169, 313-314
angle 297
default 304
Field Select tool 278, 279
field strength 237
field tessellator 216-217
filled triangles 218
FILO. See first in last out
final rendering color 107
final test 146
finite dimensional units 106
first in last out 84
fisheye effect 86, 313-314
fisheye problems 85
flat shading 114, 115
floating point operation 103
formula-based mapping 40, 41
frame buffer 99
frame buffer, drawing into 135
frame copy operation 183
frame output 212
front buffer 298
front side 136
full perspective projection 67
full spectrum of colors 318
function
base class 241
blending 118, 151, 211, 235
Boolean 147
distance comparison 137
effect 112-113
height field 201
implicit surface 147
inline 71
inverse 73-74
LSpline member 158-163
member 51, 63
member access 238
normal transcendental 73
object rotation 56
overloaded 166
trackball 314
two-dimensional 81
utility member 158
function call 71, 261, 306
function cycle 301
function handlers 283
function member 17, 193, 309
function operator 37
function oriented paradigm 6
function prototypes 299
function variables 315
functional members 20
functional oriented design 18
functional paradigm 4-8, 13
advantages of 4-5
disadvantages of 5-6
graphics models using 6-7
functional rendering pipeline data 7
functional system 4
functional viewpoint 345
G
game development 288
game modeling 105
GDI 183
functions 338
generic class 5, 11, 28, 29, 32-36, 39, 166
implementation 33
template 40
generic primitive handling 22
geometric adjustment 313
geometric information 302
geometric model 79, 198, 295
geometric object 47, 130
geometric shape 92
geometric transformation 52
geometric transformation calculations 94
geometrical information 129
geometrical pipeline 129
geometry
perspective 307
geometry contexts 261
geometry format 289
geometry information 253
geometry members 302
GetPixelFormat(...) 299
glClear 342
global data space 178
global transformation 231
good control and visibility 5
Gouraud shading 116
graphic models 305
graphic rendering pipeline 85
graphics
model 22
three-dimensional 9, 28
graphics data 134
graphics data structures 301
graphics device context 191
graphics device contexts 183
graphics engine 7, 9, 11, 14, 20, 22, 32
graphics engineer 181
graphics enthusiasts 344
graphics library 184
graphics model 301
graphics rendering 246
graphics rendering invalidation 249
graphics software developer 112
green color component 48, 316
H
HAL. See hardware abstraction layers
handle information 192
handler 311
hardware abstraction layers 13
hardware trick 141
HasPoint3D 81, 215
height field 200
height field evaluator 203
height field function 201
height field tessellation 92
height of the land 107-108
HGLRC wglCreateContext (...) 298
hidden surface removal 118, 135-144, 282-283, 306
hide object 83
hiding 131
messages 301
high-priority 310
high-speed intersections 77-83
high-speed three-dimensional modeling 211
higher order primitives 131
HPALETTE 301
HSR. See hidden surface removal
HWND 192
hybrid collections 128
hybrid intersection calculation 82
hybrids 171
HyperChem-3D 289
I
ideal pixel format 304
identification of objects 19
identify parameters 165
identity matrix 307, 324
identity palette 194
idle lock condition 312
idle lock release 310
idle processing 262
idle time 264
image-based morphing 154
imagination 112
implementation stage 15-16
implicit function of a sphere 147
implicit surface 82, 117, 295
implicit surface function 147
implicit surface tessellation
Jules Bloomenthal 145, 149-150
in back case 144
in front case 143
incidence angle 110
incident ray 111
independent copy 241
index 137
indexed list of edges 92
indexed vertex list 91, 93
individual unit 4
individual view 310
infinite subscripting 37
information 18
information hiding 12, 26
inheritance 5, 12, 18, 25
inherited object hierarchy 182
initial design stage 9
initial state defaults 260
initial variables 219
initial viewing model 304
initialization 183, 303-315
order 23
initializer 225
inline 35
inline function 71, 102
inner Phong shading 117
inner polygon shading 274
input ray 244
input stream 226
insert object(s) 143
insertion sort 137
instantaneous tessellation 268
integer index 291, 309
integers
assumptions 103
Intel's 3DR 24
intensity 109, 111
intensity calculations 109
interactive controls 329
interactive entertainment applications 178
interactive mouse events 301
interactive real-time resolution adjustment 290
interface
click-and-drag 85, 117
control 15
mouse 325-330
object 15, 16
platform 23
toolbar 273
user 85, 233, 243-244, 251
Windows 254
interface identification 337
internal spline initialization 158
Internet 180-181
Internet Explorer 332
interpixel blasting 141
interpolation 21, 153-154
interpolation slope 123
interpolation techniques 21
intersection 77-79, 81-83
calculation 77, 220, 243, 244
criteria 143
high-speed 77
hybrid calculation 82
line 265-266
of rays and hybrid objects 82-83
point 80, 83, 219, 220, 323
ray-to-cube 82
ray-to-plane 77-79
ray-to-polygon 81-82
ray-to-sphere 79-80
sphere 79
test 82, 245
three-dimensional 215-216
IntersectLinePlane 79, 221
Invalidate 308
invalidate 283, 298
inverse function 73-74
inverse square equation 242
IsDirty() 223
J
jaggies 318
joining of adjacent polygons 147
L
LACE-3D 41, 114, 115, 164, 175
layer masks 304
left and right planes 127
left mouse button 272
length 6, 50, 59
light
model 107
source 105, 109, 340
lighting 24, 105-107, 119, 135
adjustment 120
ambient 105, 109
base 108
component parameters 307
default 307
diffuse 109-110
diffuse reflectivity 110
effect-based model 106
emitted 108
environmental effects 108
polygon 105-106
reflective 111
special effects 111-112
specular component 111
specular reflection 111
spotlight 110
techniques 105
lighting capabilities 281
lighting component parameters 307
lighting effects 105-106, 111, 135, 274
lighting model 24, 100, 105, 110
lighting parameters 105, 308
lighting ray angle 109
lighting types 107-108
lighting vector 110
limiting memory accesses 13
line 47, 51, 128, 308
clipping 129-130
endpoint 47
line definition 234
line drawing
Bresenham's method 100
line segment 45, 81
line strip 128
line-to-sphere intersection 245
linear algebra 44-50, 181, 245
linear interpolation 150, 153
linear radix exchange sort 137
linked list 6, 9, 10, 17, 21, 29, 31, 137
linking and including OpenGL headers 299-300
list
property 22
texture 22
vertex 22
LIVE space modeler 290
LMatrix 37, 40-42, 158, 352-358, 377
LObject 222
local pixel structure 304
local space 298
local variables 260
local view variable 265
localized polygons 131
location 59, 134-135
location of the light 307
location translation 21
logical locations 44
lookup tables 55
low-priority thread 310
LPoint3 50-71, 51-52, 56, 59, 60, 63, 68, 69, 79, 80, 221
projection using 64-68
scaling using 58-59
skewing using 61-63
translation using 59-61
LPolySet 191
LProjectionParam 189
LSmoothMover 167, 169
LSpline 156-167, 163, 166-168, 382
LSpline member functions 158-160
LSpline object 156-158
LSplineNumbers 156-159
LTriangle 29-31, 376, 378
LTriangleCollection 30
LTriangleSet 29, 30
luminosity effects 105
LVector 11, 32-41, 156, 158, 166
M
magnitude 34, 38, 46, 50, 59
Magnitude() 39
main frame 329
main layer 304
maintenance 7, 8, 18
maintenance time 15-16
mapping
one-to-one 194
real-world 18
textures 120-121
maps
message 336
marching cubes 150
algorithm 145
marching parallelogram 145
marching sphere 145
market segment 344
material equation 106
material parameters 106, 307
material properties 106
matrices
skewing transformation 62
sparse 40-41
tri-diagonal 40-41
matrix 37, 40, 92, 135
reference 303
matrix class 37
matrix stack 53, 71, 84, 307
matrix transformation 257
information 303
maximum 99
mean value 39
member
data 12, 17, 18, 29, 35
derived 225
function 17
model construction 22
protected 228
member access function 12, 238
member function 21, 31, 36, 51, 63
member variables 256, 259
memory accesses
limiting 13
memory allocation 28
memory fill operation 195
memory space 34, 134, 298
memory-to-screen copy 196
mesh-based shapes and surfaces 294-295
mesh-based surfaces 294
message
application specific 14
command 13-14
flags 259
hiding 301
idle lock release 310
maps 336
Windows 284
metatheoretical substantialism 211
MFC 28, 30, 167, 183, 312
MFC and cursors 296, 328-330
MFC message maps 336
Microsoft Foundation Classes. See MFC
Microsoft Visual C++ 289
midpoint bisection 150
midpoint insertion 170
minimum 99
MIP map 24, 120-122
modal dialog boxes 310
model
approximation 75
blob 243, 262, 271-272
blobman 214
current 302
data structure 96
distributed visualization 180-181
effect-based 106
field 151
flat-shaded 115
geometric 198, 295
graphic 305
lighting 100, 105-107
morphing 294
object 134
polyform 289
polygon 91, 96
shading 113
specular 111
surface 91, 117
tessellation 253
testing 241
transparent environment 171
viewing volume 127-128
wireframe 98, 240
model construction members 22
model creating 280-284
model database object 20
model draw loop 284
model of light 112
model painting 280-284
model view 307
model view matrix 307
model view matrix stack 315
model view stack 342
modeling color effect 113
modeling engine 77
modeling function surfaces 200-203
modeling geometry 183, 297
modeling information 259, 305
modeling objects 318
modeling parameters 190, 273-274
modeling space 259
ModelView stack 85
modularity 18
molecular and protein structures 292-293
molecular modeling xiv, 107
molecular structures 293
momentum 163, 170
Monte Carlo octane atom collisions 292
morphing
image-based 154
model 294
mouse 301
interactive events 301
mouse button 263
left 272, 325-326
right 279, 280, 326, 327
mouse click 320
mouse click, 2D 319
mouse event 258
mouse events and 3D i