Category : Printer + Display Graphics
Archive   : AVRIL11.ZIP
Filename : AVRILDOC.PS

 
Output of file : AVRILDOC.PS contained in archive : AVRIL11.ZIP
%-12345X@PJL ENTER LANGUAGE = POSTSCRIPT
%!PS-Adobe
/wpdict 120 dict def
wpdict begin
/bdef {bind def} bind def

/bflg false def
/Bfont 0 def
/bon false def

/psz 0 def
/_S /show load def
/_t {0 rmoveto} bdef

/_pixelsnap
{transform .25 sub round .25 add
exch .25 sub round .25 add exch itransform
} bdef
/_pixeldsnap
{ dtransform round exch round exch idtransform } bdef

/_lt {_pixelsnap lineto} bdef
/_rlt {_pixeldsnap rlineto} bdef
/_mt {_pixelsnap moveto} bdef
/_rmt {_pixeldsnap rmoveto} bdef

/bshow {gsave psz 30 div 0 _rmt dup show grestore show} bdef

/DUx 0 def
/DUy 0 def
/hscl 0 def

/M {_mt
2 mul -2 2
{ -2 roll 0 _rmt _S } for
} bdef

/makeoutl
{ dup /OutlineFlag known not
{ dup dup length 2 add dict begin
{1 index /FID ne { def }{ pop pop } ifelse } forall
/UniqueID known {/UniqueID UniqueID 10000 add def} if
/PaintType PaintType 0 eq { 2 }{ PaintType } ifelse def
/StrokeWidth 15 def
/OutlineFlag true def
/OutlineFont currentdict end definefont
} if
} bdef

/nbuff 50 string def
/orntsv 0 def
/plen 0 def
/pwid 0 def
/picstr 1 string def

/WPencoding StandardEncoding 256 array copy def 0
[ 127/Aacute/Acircumflex/Adieresis/Agrave/Aring/Atilde/Ccedilla
/Delta/Eacute/Ecircumflex/Edieresis/Egrave/Eth/Gamma/Iacute
/Icircumflex/Idieresis/Igrave/Lambda/Ntilde/Oacute
/Ocircumflex/Odieresis/Ograve/Omega/Otilde/Phi/Pi/Psi
/Scaron/Sigma/TeXtext32/Theta/Thorn
209/Uacute/Ucircumflex/Udieresis/Ugrave/Upsilon/Xi/Yacute
/Ydieresis/Zcaron/aacute/acircumflex/adieresis/agrave
/aring/atilde/brokenbar
228/ccedilla/copyright/degree/divide
236/dotlessj/eacute/ecircumflex/edieresis/egrave
242/eth/ff/ffi
246/ffl/iacute
252/icircumflex/idieresis/igrave/logicalnot
1/minus/mu/multiply/ntilde/oacute/ocircumflex/odieresis
/ograve/onehalf/onequarter/onesuperior/otilde/plusminus
/registered/scaron/thorn/threequarters/threesuperior
/trademark/twosuperior/uacute/ucircumflex/udieresis
/ugrave/yacute/ydieresis/zcaron
]
{ dup type /nametype eq
{ WPencoding 2 index 2 index put pop 1 add }
{ exch pop } ifelse
} forall pop

/reencode
{ dup FontDirectory exch known
{ findfont }
{ dup nbuff cvs dup length 1 sub get 82 eq
{dup nbuff cvs dup length 1 sub 0 exch getinterval
findfont begin
currentdict dup length dict begin
{ 1 index /FID ne {def} {pop pop} ifelse } forall
/FontName exch def

/Encoding WPencoding def
currentdict dup end end
/FontName get exch definefont
}
{ findfont } ifelse
} ifelse
} bdef

/WPDLencoding StandardEncoding 256 array copy def 0
[ 127 /SA420000/SD630000/SF010000/SF020000/SF030000
/SF040000/SF050000/SF060000/SF070000/SF080000/SF090000
/SF100000/SF110000/SF140000/SF150000/SF160000/SF190000
/SF200000/SF210000/SF220000/SF230000/SF240000/SF250000/SF260000
/SF270000/SF280000/SF360000/SF370000/SF380000/SF390000/SF400000
/SF410000/SF420000/SF430000
209 /SF440000/SF450000/SF460000/SF470000/SF480000
/SF490000/SF500000/SF510000/SF520000/SF530000/SF540000
/SF570000/SF580000/SF590000/SF600000/SF610000
228 /SM570001/SM590000/SM600000/SM630000
236 /SM680000/SM690000/SM700000/SM750000/SM750002
242 /SM770000/SM790000/SP320000
246 /SS000000/SS010000
252 /SS260000/SS270000/SV040000/apostrophereverse
1/arrowboth/arrowdown/arrowleft/arrowright/arrowup/club
/deutschmark/diamond/diamondopen/exclamdbl/female
/fiveeighths/franc/heart/male/musicalnote/musicalnotedbl
/napostrophe/nsuperior/oneeighths/seveneighths/spade
/threeeights/underscoredbl/SM760000
]
{ dup type /nametype eq
{ WPDLencoding 2 index 2 index put pop 1 add }
{ exch pop } ifelse
} forall pop

/reencodeL
{ dup FontDirectory exch known
{ findfont }
{ dup nbuff cvs dup length 1 sub get 76 eq
{ dup nbuff cvs dup length 1 sub 0 exch getinterval
findfont begin
currentdict dup length dict begin
{ 1 index /FID ne {def} {pop pop} ifelse } forall
/FontName exch def
/Encoding WPDLencoding def
currentdict dup end end
/FontName get exch definefont
}
{ findfont } ifelse
} ifelse
} bdef

/ron false def
/sflg false def
/slan 0 def
/sp 32 def

/sshow
{ save exch
gsave
psz 20 div dup neg _rmt dup show
grestore
dup
save exch
Bfont setfont
1 setgray show
restore
currentfont makeoutl setfont show
currentpoint 3 -1 roll
restore _mt
} bdef

/Sx 0 def
/Sy 0 def
/Ux 0 def
/Uy 0 def
/W /widthshow load def

/_B {/bflg true def
sflg not {/_S /bshow load def /bon true def} if
} bdef
/_b {/bflg false def
bon {/_S /show load def /bon false def} if
} bdef
/_bd {save} bdef
/_bp {save 2 setmiterlimit .06 .06 scale 0 0 _mt} bdef
/_ccprocs
{/proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add
array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} def
/_clr {3 {255 div 3 1 roll} repeat
ron {6 3 roll pop pop pop} {setrgbcolor} ifelse
} bdef
/_cp /closepath load def
/_cw {stroke initclip _mt 0 2 index
_rlt 0 _rlt 0 exch neg
_rlt clip newpath
} bdef
/_d /setdash load def
/_DU {currentpoint /DUy exch def /DUx exch def} bdef
/_du {gsave
save
8 setlinewidth
currentpoint -30 add _mt
DUx DUy -30 add _lt stroke
restore
8 setlinewidth
currentpoint -50 add _mt
DUx DUy -50 add _lt stroke
grestore
} bdef
/_ed {restore} bdef
/_ep {restore showpage 0 0 _mt} bdef
/_f /eofill load def
/_ff { exch reencode exch
3 div dup /psz exch def
scalefont dup /Bfont exch def setfont
} bdef
/_ffs { /slan exch 10 div def /hscl exch 1000 div def
/psz exch 3 div def
[ psz hscl mul 0 slan dup sin exch cos div psz mul psz 0 0 ]
exch reencode exch makefont dup /Bfont exch def setfont
} bdef
/_g /setgray load def
/_gs {neg 100 add 100 div setgray} bdef
/_i {gsave
dup /picstr exch 7 add 8 idiv string def
3 1 roll translate dup 1 scale
dup 1 1 [5 -1 roll 0 0 1 0 0]
{currentfile picstr readhexstring pop} image
grestore
} bdef
/_is {save 4 1 roll
dup /picstr exch 7 add 8 idiv string def
3 1 roll translate dup 1 scale
dup 1 1 [5 -1 roll 0 0 1 0 0]
{currentfile picstr readhexstring pop} image
restore
} bdef
/_ie {1 eq { {1 exch sub} currenttransfer _ccprocs settransfer} if
/_isx exch def /_isy exch def
_isx mul exch _isy mul translate
add 2 div /_txc exch def
add 2 div /_tyc exch def
_txc _isx mul _tyc _isy mul translate
360 exch sub rotate
1 eq { _isx neg _isy scale }
{ _isx _isy scale }
ifelse _txc neg _tyc neg translate
} bdef
/_irms {save
12 1 roll
1 eq {{1 exch sub} currenttransfer _ccprocs settransfer} if
/picstr exch string def translate
2 index 6 index sub 2 div 2 index 6 index sub 2 div neg
translate
5 index 5 index 2 div neg exch 2 div exch
2 copy neg exch neg exch 5 2 roll translate
360 exch sub rotate
3 index 3 index 7 index div exch 8 index div exch scale
translate pop pop 2 index 2 index scale
3 index 0 eq
{ [ 3 index 0 0 5 index neg 0 0 ] }
{ 3 index 1 eq
{ [ 3 index 0 0 5 index 0 7 index ] }
{ 3 index 128 eq
{ [ 3 index neg 0 0 5 index neg 7 index 0 ] }
{ [ 3 index neg 0 0 5 index 7 index 7 index ] } ifelse
} ifelse
} ifelse
{currentfile picstr readhexstring pop} image
pop
restore
} bdef

/_l {_lt} bdef
/_lr {_rlt} bdef
/_m {_mt} bdef
/_O {currentfont makeoutl setfont} bdef
/_o {Bfont setfont} bdef
/_ornt {/pwid exch def /plen exch def
orntsv 1 eq {0 pwid translate -90 rotate} if
orntsv 2 eq {pwid plen translate 180 rotate} if
orntsv 3 eq {plen 0 translate 90 rotate} if
dup 1 eq {pwid 0 translate 90 rotate} if
dup 2 eq {pwid plen translate 180 rotate} if
dup 3 eq {0 plen translate -90 rotate} if
/orntsv exch def
} bdef
/_lod1 {currentpoint orntsv plen pwid 6 -1 roll restore save} bdef
/_lod2 {_bp 7 2 roll _ornt _mt} bdef
/_unlod {currentpoint orntsv plen pwid 7 -2 roll restore restore
_bp 6 1 roll _ornt _mt
} bdef
/_p {2 copy _mt 1 0 _rlt _mt} bdef
/_pl {{_lt} repeat} bdef
/_R { /ron true def /_S /_rshow load def /_t /_red load def} bdef
/_rshow { save exch
currentpoint
/RSy exch def /RSx exch def
ron {
sflg
{ currentpoint
/Ry exch def /Rx exch def
dup stringwidth pop Rx Ry psz 4 div add _mt
Rx psz 15 add setlinewidth .95 setgray 0 setlinecap
add Ry psz 4 div add _lt stroke Rx Ry _mt 0 0 0 setrgbcolor
dup show Rx Ry _mt
sshow
}
{ _redshow
}ifelse
}
{ sflg {sshow} if
}ifelse
currentpoint 3 -1 roll
restore _mt
} bdef
/_red { gsave dup
currentpoint /Ry exch def /Rx exch def
Rx Ry psz 4 div add _mt
Rx psz 15 add setlinewidth .95 setgray 0 setlinecap
add Ry psz 4 div add _lt stroke
Rx Ry _mt
grestore
0 rmoveto
}bdef
/_redshow {currentpoint
/Ry exch def /Rx exch def
dup stringwidth pop Rx Ry psz 4 div add _mt
Rx psz 15 add setlinewidth .95 setgray 0 setlinecap
add Ry psz 4 div add _lt stroke Rx Ry _mt 0 0 0 setrgbcolor
show currentpoint _mt
}bdef
/_rmxy {_rmt} bdef
/_s /stroke load def
/_SH bon {/bon false def} if
{/sflg true def /_S /_rshow load def
} bdef
/_sh { ron {/sflg false def bflg {_B} if}
{/_S /show load def /sflg false def bflg {_B} if}ifelse
}bdef
/_sp { gsave stroke grestore } bdef
/_ST {currentpoint /Sy exch def /Sx exch def} bdef
/_st {gsave
currentpoint pop
Sx dup Sy _mt sub
(\320) stringwidth pop div
dup floor cvi dup
dup 0 gt {{(\320) show} repeat}{pop} ifelse sub
dup 0 gt {1 scale (\320) show}{pop} ifelse
grestore
} bdef
/_U {currentpoint /Uy exch def /Ux exch def} bdef
/_u {gsave
currentpoint
-30 add _mt
Ux Uy -30 add _lt
12 setlinewidth
stroke
grestore
} bdef
/_w /setlinewidth load def
end
/#copies 1 def /wpdict2 100 dict def
wpdict begin wpdict2 begin

_bd
/_rhs{readhexstring}bdef/_tr{translate}bdef
/_ix{index}bdef/_mx{matrix}bdef
/ife{ifelse}bdef/_x{exch}bdef
/_is{save 4 1 roll
dup/picstr _x 7 add 8 idiv string def
3 1 roll _tr dup 1 scale
dup 1 1[5 -1 roll 0 0 1 0 0]
{currentfile picstr _rhs pop}image restore}bdef
/_epsi{1 eq{{1 _x sub}currenttransfer _ccprocs settransfer}if
/yp _x def/xp _x def/dhgt _x def/dwid _x def
4 copy sub/swid _x def
sub/shgt _x def
add 2 div/icx _x def add 2 div/icy _x def
xp dwid 2 div add icx sub yp dhgt 2 div sub
icy sub _tr icx icy _tr
360 _x sub rotate
dwid swid div/xsc _x def _x
dhgt shgt div/ysc _x def _x
dup 1 eq{xsc neg/xsc _x def pop}
{dup 2 eq{ysc neg /ysc _x def pop}
{3 eq{ysc neg/ysc _x def xsc neg/xsc _x def}
{}ife}ife}ife
xsc ysc scale
100 div _x 100 div _x scale
icx neg icy neg _tr}bdef
/_c{3{255 div 3 1 roll}repeat setrgbcolor}bdef
/eq3{3 copy 2 _ix eq{eq{true}{false}ife}{pop
pop false}ife}bdef
/g{255 div setgray}bdef
/_clr{ron{6 3 roll pop pop pop}{eq3{pop
pop g}{_c}ife}ife}bdef
/_r{/ron false def eq3{1 sub neg g pop
pop}{setrgbcolor}ife}bdef
/_ircms{save 15 1 roll
1 eq{{1 exch sub}currenttransfer _ccprocs settransfer}if
/pstr _x string def _tr
/Cli _x def/USy _x def/USx _x def/Rot _x def/HTd _x def
/WDd _x def/Bdep _x def/HTs _x def/WDs _x def/MIR _x def
USx 100 div USy 100 div scale
WDd WDs sub 2 div HTd HTs sub 2 div neg _tr
WDs HTs 2 div neg _x 2 div _x _tr
Rot 360 _x sub rotate WDd HTd HTs div _x WDs div _x scale
WDs 2 div neg HTs 2 div _tr
WDs HTs scale WDs HTs Bdep MIR 0
eq{[WDs 0 0 HTs neg 0 0]}{MIR 1 eq{[WDs 0 0 HTs 0 HTs]}
{MIR 128 eq{[WDs neg 0 0 HTs neg WDs 0]}
{[WDs neg 0 0 HTs WDs HTs]}ife}ife}ife
{currentfile pstr _rhs pop}Cli
0 eq{image}{false 3 colorimage}ife
restore}bdef
/_bp{save 2 setlinecap 2 setmiterlimit
.06 .06 scale 0 0 moveto}bdef
/tctm _mx def/trot _mx def/tscale _mx def/rmtx _mx def
/fr{72 0 rmtx defaultmatrix dtransform
/yres _x def/xres _x def
xres dup mul yres dup mul add sqrt}bdef
/sus{/spotf _x def/sang _x def/csz _x def
/m tctm currentmatrix def/rm sang trot rotate def
/sm csz dup tscale scale def
sm rm m m concatmatrix m concatmatrix pop
1 0 m dtransform /y1 _x def/x1 _x def
/veclength x1 dup mul y1 dup mul add sqrt def
/frcy fr veclength div def /nsang y1 x1 atan def
frcy nsang/spotf load setscreen}bdef
/bitis{/ybit _x def /xbit _x def
/bval bstring ybit bwidth mul xbit 8 idiv add get def
/mask 1 7 xbit 8 mod sub bitshift def
bval mask and 0 ne}bdef
/bps{/y _x def /x _x def
/xndx x 1 add 2 div bpside mul cvi def
/yndx y 1 add 2 div bpside mul cvi def
xndx yndx bitis
{/onb onb 1 add def 1}{/ofb ofb 1 add def 0}ife}bdef
/stpatt{/csz _x def /angle _x def /bwidth _x def
/bpside _x def /bstring _x def
/onb 0 def /ofb 0 def
csz angle /bps load
sus{}settransfer
ofb ofb onb add div _g}bdef
/_fp{8 1 0 cpi stpatt}bdef
/_pf{gsave eofill grestore}bdef
/_np{newpath}bdef/_lc{setlinecap}bdef
/_sr{/cpi _x def}bdef
/nbuff 50 string def
letter _bp 0 13200 10200 _ornt /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
3367 11083 _m
/Times-RomanR 900 _ff
(AVRIL)_S 100 _t
(Programmers)_S 100 _t
(Guide)_S 6833 11083 _m
/Times-RomanR 600 _ff
4530 10793 _m
/Times-RomanR 720 _ff
(Version)_S 80 _t
(1.0)_S 5670 10793 _m
4343 10520 _m
(August)_S 80 _t
(8,)_S 80 _t
(1994)_S 5857 10520 _m
4453 9974 _m
(Bernie)_S 80 _t
(Roehl)_S 5747 9974 _m
/Times-RomanR 600 _ff
1200 8919 _m
/Times-RomanR 900 _ff
(Part)_S 100 _t
(I)_S 100 _t
(--)_S 100 _t
(An)_S 100 _t
(Introduction)_S 4233 8919 _m
/Times-RomanR 600 _ff
1200 8426 _m
(This)_S 67 _t
(document)_S 67 _t
(is)_S 67 _t
(divided)_S 67 _t
(into)_S 67 _t
(two)_S 67 _t
(parts:)_S 67 _t
(an)_S 67 _t
(introduction)_S 67 _t
(to)_S 67 _t
(AVRIL)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(technical)_S 67 _t
(reference.)_S 1200 7960 _m
/Times-BoldR 600 _ff
(What)_S 67 _t
(is)_S 67 _t
(AVRIL?)_S /Times-RomanR 600 _ff
1800 7494 _m
(AVRIL)_S 67 _t
(is)_S 67 _t
(A)_S 67 _t
(Virtual)_S 67 _t
(Reality)_S 67 _t
(Interface)_S 67 _t
(Library,)_S 67 _t
(a)_S 67 _t
(software)_S 67 _t
(package)_S 67 _t
(that)_S 67 _t
(allows)_S 67 _t
(you)_S 67 _t
(to)_S 1200 7261 _m
(create)_S 67 _t
(and)_S 67 _t
(interact)_S 67 _t
(with)_S 67 _t
(virtual)_S 67 _t
(worlds.)_S 134 _t
(It)_S 67 _t
(consists)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(fast)_S 67 _t
(polygon-based)_S 67 _t
(rendering)_S 67 _t
(engine)_S 1200 7028 _m
(and)_S 67 _t
(a)_S 67 _t
(set)_S 67 _t
(of)_S 67 _t
(support)_S 67 _t
(routines)_S 67 _t
(that)_S 67 _t
(make)_S 67 _t
(virtual)_S 67 _t
(world)_S 67 _t
(creation)_S 67 _t
(a)_S 67 _t
(reasonably)_S 67 _t
(straightforward)_S 1200 6795 _m
(process.)_S 1800 6329 _m
(AVRIL)_S 67 _t
(is)_S 67 _t
(designed)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(fast,)_S 67 _t
(portable)_S 67 _t
(and)_S 67 _t
(easy)_S 67 _t
(to)_S 67 _t
(use.)_S 134 _t
(It's)_S 67 _t
(written)_S 67 _t
(entirely)_S 67 _t
(in)_S 67 _t
(ANSI)_S 1200 6096 _m
(C,)_S 67 _t
(except)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(very)_S 67 _t
(low-level)_S 67 _t
(routines)_S 67 _t
(that)_S 67 _t
(actually)_S 67 _t
(write)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(display.)_S 134 _t
(The)_S 67 _t
(386)_S 67 _t
(version)_S 1200 5863 _m
(also)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(few)_S 67 _t
(short)_S 67 _t
(assembly-language)_S 67 _t
(routines)_S 67 _t
(to)_S 67 _t
(handle)_S 67 _t
(some)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(fixed)_S 67 _t
(point)_S 67 _t
(math.)_S 134 _t
(The)_S 1200 5630 _m
(API)_S 67 _t
(\(Applications)_S 67 _t
(Program)_S 67 _t
(Interface\))_S 67 _t
(is)_S 67 _t
(simple)_S 67 _t
(and)_S 67 _t
(well-documented,)_S 67 _t
(which)_S 67 _t
(should)_S 67 _t
(make)_S 1200 5397 _m
(applications)_S 67 _t
(easy)_S 67 _t
(to)_S 67 _t
(develop.)_S 1800 4931 _m
(Most)_S 67 _t
(important,)_S 67 _t
(AVRIL)_S 67 _t
(is)_S 67 _t
(free)_S 67 _t
(for)_S 67 _t
(non-commercial)_S 67 _t
(use.)_S 134 _t
(The)_S 67 _t
(problem)_S 67 _t
(with)_S 67 _t
(most)_S 1200 4698 _m
(current)_S 67 _t
(VR)_S 67 _t
(libraries)_S 67 _t
(is)_S 67 _t
(that)_S 67 _t
(they're)_S 67 _t
(very,)_S 67 _t
(very)_S 67 _t
(expensive;)_S 67 _t
(most)_S 67 _t
(of)_S 67 _t
(them)_S 67 _t
(cost)_S 67 _t
(more)_S 67 _t
(than)_S 67 _t
(the)_S 1200 4465 _m
(computers)_S 67 _t
(they)_S 67 _t
(run)_S 67 _t
(on!)_S 134 _t
(AVRIL)_S 67 _t
(is)_S 67 _t
(intended)_S 67 _t
(to)_S 67 _t
(give)_S 67 _t
(everyone)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
(interest)_S 67 _t
(in)_S 67 _t
(VR)_S 67 _t
(an)_S 1200 4232 _m
(opportunity)_S 67 _t
(to)_S 67 _t
(develop)_S 67 _t
(some)_S 67 _t
(simple)_S 67 _t
(applications)_S 67 _t
(without)_S 67 _t
(having)_S 67 _t
(to)_S 67 _t
(invest)_S 67 _t
(huge)_S 67 _t
(sums)_S 67 _t
(of)_S 1200 3999 _m
(money.)_S 1200 3533 _m
/Times-BoldR 600 _ff
(What)_S 67 _t
(does)_S 67 _t
("free)_S 67 _t
(for)_S 67 _t
(non-commercial)_S 67 _t
(use")_S 67 _t
(mean?)_S /Times-RomanR 600 _ff
1800 3067 _m
(It)_S 67 _t
(means)_S 67 _t
(that)_S 67 _t
(if)_S 67 _t
(you're)_S 67 _t
(only)_S 67 _t
(writing)_S 67 _t
(programs)_S 67 _t
(for)_S 67 _t
(your)_S 67 _t
(own)_S 67 _t
(use,)_S 67 _t
(or)_S 67 _t
(to)_S 67 _t
(give)_S 67 _t
(away)_S 67 _t
(free)_S 1200 2834 _m
(to)_S 67 _t
(others,)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(use)_S 67 _t
(AVRIL)_S 67 _t
(without)_S 67 _t
(paying)_S 67 _t
(anything.)_S 8900 1255 _m
(1)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
/Times-BoldR 600 _ff
(Who)_S 67 _t
(developed)_S 67 _t
(AVRIL?)_S /Times-RomanR 600 _ff
1800 11389 _m
(AVRIL)_S 67 _t
(was)_S 67 _t
(developed)_S 67 _t
(by)_S 67 _t
(Bernie)_S 67 _t
(Roehl,)_S 67 _t
(between)_S 67 _t
(November)_S 67 _t
(of)_S 67 _t
(1993)_S 67 _t

(and)_S 67 _t
(April)_S 67 _t
(of)_S 1200 11156 _m
(1994.)_S 134 _t
(It's)_S 67 _t
(designed)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(somewhat)_S 67 _t
(backward-compatible)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
(earlier)_S 67 _t
(rendering)_S 67 _t
(engine)_S 1200 10923 _m
(called)_S 67 _t
(REND386)_S 67 _t
(that)_S 67 _t
(was)_S 67 _t
(developed)_S 67 _t
(by)_S 67 _t
(Bernie)_S 67 _t
(Roehl)_S 67 _t
(and)_S 67 _t
(Dave)_S 67 _t
(Stampe.)_S 1200 10457 _m
/Times-BoldR 600 _ff
(So)_S 67 _t
(what)_S 67 _t
(makes)_S 67 _t
(AVRIL)_S 67 _t
(different)_S 67 _t
(from)_S 67 _t
(REND386?)_S /Times-RomanR 600 _ff
1800 9991 _m
(From)_S 67 _t
(the)_S 67 _t
(beginning,)_S 67 _t
(we)_S 67 _t
(knew)_S 67 _t
(that)_S 67 _t
(REND386)_S 67 _t
(would)_S 67 _t
(never)_S 67 _t
(run)_S 67 _t
(on)_S 67 _t
(anything)_S 67 _t
(but)_S 67 _t
(386-)_S 1200 9758 _m
(based)_S 67 _t
(computers;)_S 67 _t
(that's)_S 67 _t
(why)_S 67 _t
(we)_S 67 _t
(called)_S 67 _t
(it)_S 67 _t
("REND386")_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
(place.)_S 134 _t
(REND386)_S 67 _t
(was)_S 67 _t
(fast,)_S 1200 9525 _m
(but)_S 67 _t
(it)_S 67 _t
(achieved)_S 67 _t
(its)_S 67 _t
(speed)_S 67 _t
(at)_S 67 _t
(the)_S 67 _t
(price)_S 67 _t
(of)_S 67 _t
(portability;)_S 67 _t
(large)_S 67 _t
(parts)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(code)_S 67 _t
(were)_S 67 _t
(hand-)_S 1200 9292 _m
(translated)_S 67 _t
(to)_S 67 _t
(386)_S 67 _t
(assembly)_S 67 _t
(language.)_S 134 _t
(This)_S 67 _t
(obviously)_S 67 _t
(reduced)_S 67 _t
(the)_S 67 _t
(portability)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(software,)_S 1200 9059 _m
(as)_S 67 _t
(well)_S 67 _t
(as)_S 67 _t
(making)_S 67 _t
(it)_S 67 _t
(more)_S 67 _t
(difficult)_S 67 _t
(to)_S 67 _t
(maintain.)_S 1800 8593 _m
(AVRIL,)_S 67 _t
(by)_S 67 _t
(contrast,)_S 67 _t
(is)_S 67 _t
(written)_S 67 _t
(entirely)_S 67 _t
(in)_S 67 _t
(C.)_S 134 _t
(It's)_S 67 _t
(fast)_S 67 _t
(because)_S 67 _t
(the)_S 67 _t
(algorithms)_S 67 _t
(are)_S 67 _t
(well-)_S 1200 8360 _m
(chosen)_S 67 _t
(and)_S 67 _t
(carefully)_S 67 _t
(written.)_S 134 _t
(While)_S 67 _t
(it's)_S 67 _t
(not)_S 67 _t
(quite)_S 67 _t
(as)_S 67 _t
(fast)_S 67 _t
(overall)_S 67 _t
(as)_S 67 _t
(REND386,)_S 67 _t
(there)_S 67 _t
(are)_S 1200 8127 _m
(actually)_S 67 _t
(some)_S 67 _t
(situations)_S 67 _t
(where)_S 67 _t
(it's)_S 67 _t
(faster;)_S 67 _t
(once)_S 67 _t
(it's)_S 67 _t
(been)_S 67 _t
(optimized)_S 67 _t
(a)_S 67 _t
(bit,)_S 67 _t
(the)_S 67 _t
(speed)_S 67 _t
(should)_S 67 _t
(be)_S 1200 7894 _m
(comparable.)_S 134 _t
(Since)_S 67 _t
(it's)_S 67 _t
(written)_S 67 _t
(in)_S 67 _t
(C,)_S 67 _t
(AVRIL)_S 67 _t
(is)_S 67 _t
(also)_S 67 _t
(much)_S 67 _t
(easier)_S 67 _t
(to)_S 67 _t
(maintain)_S 67 _t
(than)_S 67 _t
(REND386)_S 1200 7661 _m
(was.)_S 1200 7165 _m
/Times-BoldR 720 _ff
(Using)_S 80 _t
(AVRIL)_S 2640 7165 _m
/Times-RomanR 600 _ff
1800 6689 _m
(AVRIL)_S 67 _t
(is)_S 67 _t
(very)_S 67 _t
(easy)_S 67 _t
(to)_S 67 _t
(use.)_S 134 _t
(Rather)_S 67 _t
(than)_S 67 _t
(spend)_S 67 _t
(a)_S 67 _t
(lot)_S 67 _t
(of)_S 67 _t
(time)_S 67 _t
(discussing)_S 67 _t
(the)_S 67 _t
(details)_S 67 _t
(of)_S 1200 6456 _m
(how)_S 67 _t
(it)_S 67 _t
(works,)_S 67 _t
(let's)_S 67 _t
(start)_S 67 _t
(by)_S 67 _t
(creating)_S 67 _t
(a)_S 67 _t
(simple)_S 67 _t
(AVRIL)_S 67 _t
(program:)_S 1200 6044 _m
/CourierR 400 _ff
(/*)_S 80 _t
(EXAMPLE1)_S 80 _t
(--)_S 80 _t
(a)_S 80 _t
(cube)_S 80 _t
(*/)_S 1200 5778 _m
(/*)_S 80 _t
(Written)_S 80 _t
(by)_S 80 _t
(Bernie)_S 80 _t
(Roehl,)_S 80 _t
(April)_S 80 _t
(1994)_S 80 _t
(*/)_S 1200 5512 _m
(#include)_S 80 _t
("avril.h")_S 1200 5246 _m
(void)_S 80 _t
(main\(\))_S 1800 5113 _m
({)_S 1800 4980 _m
(vrl_Object)_S 80 _t
(*cube;)_S 1800 4847 _m
(vrl_Light)_S 80 _t
(*light;)_S 1800 4714 _m
(vrl_Camera)_S 80 _t
(*camera;)_S 1800 4448 _m
(vrl_SystemStartup\(\);)_S 1800 4182 _m
(cube)_S 80 _t
(=)_S 80 _t
(vrl_ObjectCreate\(vrl_PrimitiveBox\(100,)_S 80 _t
(100,)_S 80 _t
(100,)_S 80 _t
(NULL\)\);)_S 1800 4049 _m
(vrl_ObjectRotY\(cube,)_S 80 _t
(float2angle\(45\)\);)_S 1800 3783 _m
(light)_S 80 _t
(=)_S 80 _t
(vrl_LightCreate\(\);)_S 1800 3650 _m
(vrl_LightRotY\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 3517 _m
(vrl_LightRotX\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 3251 _m
(camera)_S 80 _t
(=)_S 80 _t
(vrl_CameraCreate\(\);)_S 1800 3118 _m
(vrl_CameraRotX\(camera,)_S 80 _t
(float2angle\(45\)\);)_S 1800 2985 _m
(vrl_CameraMove\(camera,)_S 80 _t
(0,)_S 80 _t
(500,)_S 80 _t
(-500\);)_S 1800 2719 _m
(vrl_SystemRun\(\);)_S 1800 2586 _m
(})_S 1200 2266 _m
/Times-RomanR 600 _ff
(Notice)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(only)_S 67 _t
(file)_S 67 _t
(we)_S 67 _t
(had)_S 67 _t
(to)_S 67 _t
(#include)_S 67 _t
(was)_S 67 _t
("avril.h";)_S 67 _t
(that)_S 67 _t
(file)_S 67 _t
(contains)_S 67 _t
(prototypes)_S 67 _t
(for)_S 67 _t
(all)_S 1200 2033 _m
(the)_S 67 _t
(AVRIL)_S 67 _t
(functions,)_S 67 _t
(along)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(useful)_S 67 _t
(macros.)_S 134 _t
(The)_S 67 _t
(avril.h)_S 67 _t
(file)_S 67 _t
(#includes)_S 1200 1800 _m
()_S 67 _t
(\(since)_S 67 _t
(it)_S 67 _t
(references)_S 67 _t
(the)_S 67 _t
(FILE)_S 67 _t
(*)_S 67 _t
(type\))_S 67 _t
(so)_S 67 _t
(there's)_S 67 _t
(no)_S 67 _t
(need)_S 67 _t
(for)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
(do)_S 67 _t
(so)_S 67 _t
(yourself.)_S 8900 1255 _m
(2)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(The)_S 67 _t
(program)_S 67 _t
(shown)_S 67 _t
(above)_S 67 _t
(simply)_S 67 _t
(creates)_S 67 _t
(a)_S 67 _t
(cube,)_S 67 _t
(a)_S 67 _t
(light)_S 67 _t
(source)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(virtual)_S 67 _t
(camera.)_S 67 _t
1200 11622 _m
(All)_S 67 _t
(the)_S 67 _t
(AVRIL)_S 67 _t
(routines)_S 67 _t
(and)_S 67 _t
(data)_S 67 _t
(types)_S 67 _t
(have)_S 67 _t
(names)_S 67 _t
(beginning)_S 67 _t
(with)_S 67 _t
("vrl_";)_S 67 _t
(this)_S 67 _t
(ensures)_S 67 _t
(that)_S 1200 11389 _m
(they)_S 67 _t
(won't)_S 67 _t
(conflict)_S 67 _t
(with)_S 67 _t
(any)_S 67 _t
(routines)_S 67 _t
(you)_S 67 _t
(write.)_S 134 _t
(The)_S 67 _t
(vrl_SystemStartup\(\))_S 67 _t
(routine)_S 67 _t
(does)_S 67 _t
(all)_S 67 _t
(the)_S 1200 11156 _m
(system)_S 67 _t
(initialization;)_S 67 _t
(the)_S 67 _t
(source)_S 67 _t
(code)_S 67 _t
(for)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(vrl_System)_S 67 _t
(functions)_S 67 _t
(is)_S 67 _t
(found)_S 67 _t
(in)_S 67 _t
(system.c,)_S 67 _t
(in)_S 1200 10923 _m
(case)_S 67 _t
(you're)_S 67 _t
(curious)_S 67 _t
(as)_S 67 _t
(to)_S 67 _t
(how)_S 67 _t
(they)_S 67 _t
(work.)_S 134 _t
(We'll)_S 67 _t
(be)_S 67 _t
(looking)_S 67 _t
(at)_S 67 _t
(them)_S 67 _t
(in)_S 67 _t
(detail)_S 67 _t
(later.)_S 1800 10457 _m
(Once)_S 67 _t
(the)_S 67 _t
(initialization)_S 67 _t
(is)_S 67 _t
(done,)_S 67 _t
(the)_S 67 _t
(program)_S 67 _t
(creates)_S 67 _t
(the)_S 67 _t
(cube)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(a)_S 67 _t
(routine)_S 67 _t
(that)_S 1200 10224 _m
(generates)_S 67 _t
(a)_S 67 _t
(primitive)_S 67 _t
(box)_S 67 _t
(shape;)_S 67 _t
(the)_S 67 _t
(sides)_S 67 _t
(are)_S 67 _t
(all)_S 67 _t
(100)_S 67 _t
(units)_S 67 _t
(in)_S 67 _t
(length.)_S 134 _t
(After)_S 67 _t
(it's)_S 67 _t
(been)_S 67 _t
(created,)_S 1200 9991 _m
(the)_S 67 _t
(cube)_S 67 _t
(is)_S 67 _t
(rotated)_S 67 _t
(45)_S 67 _t
(degrees)_S 67 _t
(around)_S 67 _t
(the)_S 67 _t
(vertical)_S 67 _t
(\(Y\))_S 67 _t
(axis.)_S 134 _t
(The)_S 67 _t
(float2angle\(\))_S 67 _t
(routine)_S 67 _t
(converts)_S 1200 9758 _m
(a)_S 67 _t
(floating-point)_S 67 _t
(number)_S 67 _t
(into)_S 67 _t
(an)_S 67 _t
(internal)_S 67 _t
(format)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(storing)_S 67 _t
(angles.)_S 1800 9292 _m
(A)_S 67 _t
(directional)_S 67 _t
(light)_S 67 _t
(source)_S 67 _t
(is)_S 67 _t
(then)_S 67 _t
(created,)_S 67 _t
(and)_S 67 _t
(rotated)_S 67 _t
(45)_S 67 _t
(degrees)_S 67 _t
(in)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(X)_S 67 _t
(and)_S 67 _t
(Y.)_S 67 _t
1200 9059 _m
(Next,)_S 67 _t
(a)_S 67 _t
(virtual)_S 67 _t
(camera)_S 67 _t
(is)_S 67 _t
(created,)_S 67 _t
(rotated)_S 67 _t
(and)_S 67 _t
(moved)_S 67 _t
(into)_S 67 _t
(position.)_S 134 _t
(Finally,)_S 67 _t
(vrl_SystemRun\(\))_S 1200 8826 _m
(is)_S 67 _t
(called;)_S 67 _t
(vrl_SystemRun\(\))_S 67 _t
(sits)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(loop,)_S 67 _t
(checking)_S 67 _t
(for)_S 67 _t
(keyboard)_S 67 _t
(or)_S 67 _t
(mouse)_S 67 _t
(activity)_S 67 _t
(and)_S 67 _t
(doing)_S 1200 8593 _m
(the)_S 67 _t
(rendering)_S 67 _t
(as)_S 67 _t
(needed.)_S 1800 8127 _m
(To)_S 67 _t
(compile)_S 67 _t
(and)_S 67 _t
(link)_S 67 _t
(the)_S 67 _t
(program)_S 67 _t
(using)_S 67 _t
(Borland)_S 67 _t
(C++,)_S 67 _t
(you)_S 67 _t
(would)_S 67 _t
(give)_S 67 _t
(the)_S 67 _t
(following)_S 1200 7894 _m
(command:)_S 1800 7482 _m
/CourierR 400 _ff
(bcc)_S 80 _t
(-ml)_S 80 _t
(example1.c)_S 80 _t
(input.c)_S 80 _t
(avril.lib)_S /Times-RomanR 600 _ff
1200 7062 _m
(This)_S 67 _t
(compiles)_S 67 _t
(example1.c)_S 67 _t
(and)_S 67 _t
(input.c)_S 67 _t
(and)_S 67 _t
(links)_S 67 _t
(them)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(AVRIL)_S 67 _t
(library.)_S 134 _t
(The)_S 67 _t
(current)_S 1200 6829 _m
(default)_S 67 _t
(version)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(low-level)_S 67 _t
(display)_S 67 _t
(routines)_S 67 _t
(in)_S 67 _t
(avril.lib)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(old)_S 67 _t
(REND386)_S 67 _t
("vd256.rvd")_S 1200 6596 _m
(driver,)_S 67 _t
(which)_S 67 _t
(must)_S 67 _t
(be)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(directory)_S 67 _t
(or)_S 67 _t
(in)_S 67 _t
(your)_S 67 _t
(PATH)_S 67 _t
(when)_S 67 _t
(the)_S 67 _t
(compiled)_S 67 _t
(program)_S 1200 6363 _m
(is)_S 67 _t
(run.)_S 134 _t
(There)_S 67 _t
(will)_S 67 _t
(soon)_S 67 _t
(be)_S 67 _t
(other)_S 67 _t
(display)_S 67 _t
(routines)_S 67 _t
(that)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(use)_S 67 _t
(with)_S 67 _t
(AVRIL.)_S 1200 5897 _m
(The)_S 67 _t
(routines)_S 67 _t
(in)_S 67 _t
(input.c)_S 67 _t
(are)_S 67 _t
(discussed)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(later)_S 67 _t
(section.)_S 1200 5401 _m
/Times-BoldR 720 _ff
(Sharing)_S 80 _t
(Shapes)_S 2814 5401 _m
/Times-RomanR 600 _ff
1800 4925 _m
(Our)_S 67 _t
(first)_S 67 _t
(example)_S 67 _t
(was)_S 67 _t
(pretty)_S 67 _t
(straightforward;)_S 67 _t
(let's)_S 67 _t
(try)_S 67 _t
(something)_S 67 _t
(more)_S 67 _t
(complex.)_S 1200 4513 _m
/CourierR 400 _ff
(/*)_S 80 _t
(EXAMPLE2)_S 80 _t
(--)_S 80 _t
(several)_S 80 _t
(asteroids,)_S 80 _t
(sharing)_S 80 _t
(the)_S 80 _t
(same)_S 80 _t
(geometry)_S 80 _t
(*/)_S 1200 4247 _m
(/*)_S 80 _t
(Written)_S 80 _t
(by)_S 80 _t
(Bernie)_S 80 _t
(Roehl,)_S 80 _t
(April)_S 80 _t
(1994)_S 80 _t
(*/)_S 1200 3981 _m
(#include)_S 80 _t
()_S 1200 3715 _m
(#include)_S 80 _t
("avril.h")_S 1200 3449 _m
(void)_S 80 _t
(main\(\))_S 1800 3316 _m
({)_S 1800 3183 _m
(FILE)_S 80 _t
(*infile;)_S 1800 3050 _m
(vrl_Light)_S 80 _t
(*light;)_S 1800 2917 _m
(vrl_Camera)_S 80 _t
(*camera;)_S 1800 2784 _m
(vrl_Shape)_S 80 _t
(*asteroidshape)_S 80 _t
(=)_S 80 _t
(NULL;)_S 1800 2651 _m
(int)_S 80 _t
(i;)_S 1800 2385 _m
(vrl_SystemStartup\(\);)_S 1800 2119 _m
(vrl_WorldSetHorizon\(0\);)_S 320 _t
(/*)_S 80 _t
(turn)_S 80 _t
(off)_S 80 _t
(horizon)_S 80 _t
(*/)_S 1800 1986 _m
(vrl_WorldSetSkyColor\(0\);)_S 240 _t
(/*)_S 80 _t
(black)_S 80 _t
(sky)_S 80 _t
(*/)_S 1800 1853 _m
(vrl_WorldSetAmbient\(float2factor\(0.1\)\);)_S 160 _t
(/*)_S 80 _t
(low)_S 80 _t
(ambient)_S 80 _t
(light)_S 80 _t
(*/)_S 8900 1255 _m
/Times-RomanR 600 _ff
(3)_S /CourierR 400 _ff
_ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(infile)_S 80 _t
(=)_S 80 _t
(fopen\("asteroid.plg",)_S 80 _t
("r"\);)_S 1800 11776 _m
(if)_S 80 _t
(\(infile\))_S 2400 11643 _m
({)_S 2400 11510 _m
(asteroidshape)_S 80 _t
(=)_S 80 _t
(vrl_ReadPLG\(infile\);)_S 2400 11377 _m
(fclose\(infile\);)_S 2400 11244 _m
(})_S 1800 10978 _m
(light)_S 80 _t
(=)_S 80 _t
(vrl_LightCreate\(\);)_S 1800 10845 _m
(vrl_LightRotY\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 10712 _m
(vrl_LightRotX\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 10579 _m
(vrl_LightSetIntensity\(light,)_S 80 _t
(float2factor\(0.9\)\);)_S 1800 10313 _m
(camera)_S 80 _t
(=)_S 80 _t
(vrl_CameraCreate\(\);)_S 1800 10180 _m
(vrl_CameraMove\(camera,)_S 80 _t
(0,)_S 80 _t
(100,)_S 80 _t
(-50\);)_S 1800 9914 _m
(for)_S 80 _t
(\(i)_S 80 _t
(=)_S 80 _t
(0;)_S 80 _t
(i)_S 80 _t
(<)_S 80 _t
(10;)_S 80 _t
(++i\))_S 2400 9781 _m
({)_S 2400 9648 _m
(vrl_Object)_S 80 _t
(*obj)_S 80 _t
(=)_S 80 _t
(vrl_ObjectCreate\(asteroidshape\);)_S 2400 9515 _m
(vrl_ObjectMove\(obj,)_S 80 _t
(rand\(\))_S 80 _t
(%)_S 80 _t
(1000,)_S 80 _t
(rand\(\))_S 80 _t
(%)_S 80 _t
(1000,)_S 80 _t
(rand\(\))_S 80 _t
(%)_S 80 _t
(1000\);)_S 2400 9382 _m
(})_S 1800 9116 _m
(vrl_SystemRun\(\);)_S 1800 8983 _m
(})_S 1200 8663 _m
/Times-RomanR 600 _ff
(This)_S 67 _t
(program)_S 67 _t
(illustrates)_S 67 _t
(a)_S 67 _t
(useful)_S 67 _t
(memory-saving)_S 67 _t
(feature)_S 67 _t
(of)_S 67 _t
(AVRIL.)_S 134 _t
(The)_S 67 _t
(shape)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(object)_S 1200 8430 _m
(\(i.e.,)_S 67 _t
(its)_S 67 _t
(geometric)_S 67 _t
(description\))_S 67 _t
(is)_S 67 _t
(separate)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(information)_S 67 _t
(about)_S 67 _t
(its)_S 67 _t
(location)_S 67 _t
(and)_S 1200 8197 _m
(orientation.)_S 134 _t
(Any)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(objects)_S 67 _t
(can)_S 67 _t
(share)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(geometric)_S 67 _t
(description,)_S 67 _t
(saving)_S 1200 7964 _m
(substantial)_S 67 _t
(amounts)_S 67 _t
(of)_S 67 _t
(memory.)_S 134 _t
(A)_S 67 _t
(geometric)_S 67 _t
(description)_S 67 _t
(is)_S 67 _t
(called)_S 67 _t
(a)_S 67 _t
(vrl_Shape,)_S 67 _t
(and)_S 67 _t
(consists)_S 1200 7731 _m
(of)_S 67 _t
(a)_S 67 _t
(set)_S 67 _t
(of)_S 67 _t
(vertices,)_S 67 _t
(facets)_S 67 _t
(and)_S 67 _t
(other)_S 67 _t
(information.)_S 1800 7265 _m
(The)_S 67 _t
(program)_S 67 _t
(shown)_S 67 _t
(above)_S 67 _t
(begins)_S 67 _t
(by)_S 67 _t
(turning)_S 67 _t
(off)_S 67 _t
(the)_S 67 _t
(horizon)_S 67 _t
(\(it's)_S 67 _t
(on)_S 67 _t
(by)_S 67 _t
(default\))_S 67 _t
(and)_S 1200 7032 _m
(setting)_S 67 _t
(the)_S 67 _t
(sky)_S 67 _t
(color)_S 67 _t
(to)_S 67 _t
(0)_S 67 _t
(\(black\).)_S 134 _t
(The)_S 67 _t
(sky)_S 67 _t
(color)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(screen)_S 67 _t
(clear)_S 67 _t
(color)_S 67 _t
(if)_S 67 _t
(there's)_S 67 _t
(no)_S 1200 6799 _m
(horizon.)_S 134 _t
(Next,)_S 67 _t
(the)_S 67 _t
(file)_S 67 _t
("asteroid.plg")_S 67 _t
(is)_S 67 _t
(loaded;)_S 67 _t
(AVRIL)_S 67 _t
(supports)_S 67 _t
(the)_S 67 _t
(PLG)_S 67 _t
(file)_S 67 _t
(format,)_S 1200 6566 _m
(described)_S 67 _t
(in)_S 67 _t
(Appendix)_S 67 _t
(C.)_S 134 _t
(The)_S 67 _t
(vrl_ReadPLG\(\))_S 67 _t
(function)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(vrl_Shape)_S 67 _t
(\(the)_S 1200 6333 _m
(same)_S 67 _t
(data)_S 67 _t
(type)_S 67 _t
(that)_S 67 _t
(was)_S 67 _t
(returned)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(vrl_PrimitiveBox\(\))_S 67 _t
(function)_S 67 _t
(in)_S 67 _t
(our)_S 67 _t
(first)_S 67 _t
(example\).)_S 1800 5867 _m
(A)_S 67 _t
(light)_S 67 _t
(source)_S 67 _t
(and)_S 67 _t
(camera)_S 67 _t
(are)_S 67 _t
(again)_S 67 _t
(set)_S 67 _t
(up,)_S 67 _t
(and)_S 67 _t
(ten)_S 67 _t
(virtual)_S 67 _t
(objects)_S 67 _t
(are)_S 67 _t
(created)_S 67 _t
(using)_S 1200 5634 _m
(the)_S 67 _t
(shape)_S 67 _t
(that)_S 67 _t
(was)_S 67 _t
(loaded)_S 67 _t
(by)_S 67 _t
(vrl_ReadPLG\(\).)_S 134 _t
(Notice)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(file)_S 67 _t
(only)_S 67 _t
(had)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(read)_S 67 _t
(once,)_S 1200 5401 _m
(and)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(vertices)_S 67 _t
(and)_S 67 _t
(facets)_S 67 _t
(making)_S 67 _t
(up)_S 67 _t
(an)_S 67 _t
(asteroid)_S 67 _t
(are)_S 67 _t
(only)_S 67 _t
(stored)_S 67 _t
(once)_S 67 _t
(in)_S 67 _t
(memory.)_S 134 _t
(Each)_S 1200 5168 _m
(of)_S 67 _t
(the)_S 67 _t
(asteroids)_S 67 _t
(is)_S 67 _t
(moved)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(random)_S 67 _t
(location)_S 67 _t
(in)_S 67 _t
(an)_S 67 _t
(imaginary)_S 67 _t
(box)_S 67 _t
(1000)_S 67 _t
(units)_S 67 _t
(on)_S 67 _t
(a)_S 67 _t
(side.)_S 1800 4702 _m
(As)_S 67 _t
(you)_S 67 _t
(move)_S 67 _t
(around,)_S 67 _t
(you'll)_S 67 _t
(notice)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(appearance)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(asteroid)_S 67 _t
(changes)_S 1200 4469 _m
(depending)_S 67 _t
(on)_S 67 _t
(how)_S 67 _t
(far)_S 67 _t
(away)_S 67 _t
(you)_S 67 _t
(are)_S 67 _t
(from)_S 67 _t
(it;)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(get)_S 67 _t
(close)_S 67 _t
(enough,)_S 67 _t
(it's)_S 67 _t
(a)_S 67 _t
(rough,)_S 67 _t
(craggy)_S 1200 4236 _m
(surface.)_S 134 _t
(The)_S 67 _t
("asteroid.plg")_S 67 _t
(file)_S 67 _t
(stores)_S 67 _t
(multiple)_S 67 _t
(representations)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(object,)_S 67 _t
(and)_S 67 _t
(AVRIL)_S 1200 4003 _m
(automatically)_S 67 _t
(selects)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(those)_S 67 _t
(representations)_S 67 _t
(based)_S 67 _t
(on)_S 67 _t
(distance.)_S 134 _t
(This)_S 67 _t
(can)_S 67 _t
(speed)_S 67 _t
(up)_S 67 _t
(the)_S 1200 3770 _m
(rendering)_S 67 _t
(process)_S 67 _t
(by)_S 67 _t
(allowing)_S 67 _t
(fewer)_S 67 _t
(vertices)_S 67 _t
(and)_S 67 _t
(facets)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(when)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(is)_S 67 _t
(far)_S 1200 3537 _m
(away.)_S 1200 3041 _m
/Times-BoldR 720 _ff
(Making)_S 80 _t
(Maps)_S 2654 3041 _m
/Times-RomanR 600 _ff
1800 2565 _m
(AVRIL)_S 67 _t
(not)_S 67 _t
(only)_S 67 _t
(separates)_S 67 _t
(geometry)_S 67 _t
(from)_S 67 _t
(location/orientation)_S 67 _t
(information,)_S 67 _t
(it)_S 67 _t
(also)_S 1200 2332 _m
(stores)_S 67 _t
(surface)_S 67 _t
(descriptions)_S 67 _t
(separately.)_S 134 _t
(Each)_S 67 _t
(object)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
("surface)_S 67 _t
(map")_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(it,)_S 1200 2099 _m
(which)_S 67 _t
(stores)_S 67 _t
(pointers)_S 67 _t
(to)_S 67 _t
(actual)_S 67 _t
(vrl_Surface)_S 67 _t
(descriptors.)_S 134 _t
(Each)_S 67 _t
(surface)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(type,)_S 67 _t
(a)_S 67 _t
(hue)_S 67 _t
(and)_S 67 _t
(a)_S 1200 1866 _m
(brightness;)_S 67 _t
(in)_S 67 _t
(our)_S 67 _t
(examples,)_S 67 _t
(the)_S 67 _t
(surface)_S 67 _t
(type)_S 67 _t
(is)_S 67 _t
(always)_S 67 _t
(SURFACE_FLAT)_S 67 _t
(\(meaning)_S 67 _t
(that)_S 67 _t
(flat)_S 8900 1255 _m
(4)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(shading)_S 67 _t
(is)_S 67 _t
(used\).)_S 134 _t
(The)_S 67 _t
(hue)_S 67 _t
(is)_S 67 _t
(what)_S 67 _t
(most)_S 67 _t
(people)_S 67 _t
(think)_S 67 _t
(of)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
("color",)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(brightness)_S 67 _t
(is)_S 1200 11622 _m
(how)_S 67 _t
(much)_S 67 _t
(light)_S 67 _t
(the)_S 67 _t
(surface)_S 67 _t
(reflects)_S 67 _t
(back)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(eye.)_S 134 _t
(The)_S 67 _t
(higher)_S 67 _t
(the)_S 67 _t
(brightness)_S 67 _t
(value)_S 67 _t
(and)_S 67 _t
(the)_S 1200 11389 _m
(more)_S 67 _t
(directly)_S 67 _t
(that)_S 67 _t
(light)_S 67 _t
(is)_S 67 _t
(striking)_S 67 _t
(the)_S 67 _t
(surface,)_S 67 _t
(the)_S 67 _t
(more)_S 67 _t
(intense)_S 67 _t
(the)_S 67 _t
(color.)_S 1800 10923 _m
(You)_S 67 _t
(can)_S 67 _t
(assign)_S 67 _t
(surface)_S 67 _t
(maps)_S 67 _t
(to)_S 67 _t
(objects,)_S 67 _t
(and)_S 67 _t
(change)_S 67 _t
(them)_S 67 _t
(whenever)_S 67 _t
(you)_S 67 _t
(like.)_S 134 _t
(Our)_S 1200 10688 _m
(third)_S 67 _t
(example)_S 67 _t
(program)_S 67 _t
(uses)_S 67 _t
(two)_S 67 _t
(different)_S 67 _t
(surface)_S 67 _t
(maps,)_S 67 _t
(called)_S 67 _t
6396 10688 _m
/Times-ItalicR 600 _ff
(map1)_S 6841 10688 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
7263 10688 _m
/Times-ItalicR 600 _ff
(map2)_S 7708 10688 _m
/Times-RomanR 600 _ff
(:)_S 1200 10276 _m
/CourierR 400 _ff
(/*)_S 80 _t
(EXAMPLE3)_S 80 _t
(--)_S 80 _t
(surface)_S 80 _t
(maps)_S 80 _t
(*/)_S 1200 10010 _m
(/*)_S 80 _t
(Written)_S 80 _t
(by)_S 80 _t
(Bernie)_S 80 _t
(Roehl,)_S 80 _t
(April)_S 80 _t
(1994)_S 80 _t
(*/)_S 1200 9744 _m
(#include)_S 80 _t
()_S 1200 9478 _m
(#include)_S 80 _t
("avril.h")_S 1200 9212 _m
(void)_S 80 _t
(main\(\))_S 1800 9079 _m
({)_S 1800 8946 _m
(FILE)_S 80 _t
(*infile;)_S 1800 8813 _m
(vrl_Light)_S 80 _t
(*light;)_S 1800 8680 _m
(vrl_Camera)_S 80 _t
(*camera;)_S 1800 8547 _m
(vrl_Shape)_S 80 _t
(*colorthing)_S 80 _t
(=)_S 80 _t
(NULL;)_S 1800 8414 _m
(vrl_Surfacemap)_S 80 _t
(*map1,)_S 80 _t
(*map2;)_S 1800 8281 _m
(int)_S 80 _t
(i;)_S 1800 8015 _m
(vrl_SystemStartup\(\);)_S 1800 7749 _m
(map1)_S 80 _t
(=)_S 80 _t
(vrl_SurfacemapCreate\(6\);)_S 1800 7616 _m
(map2)_S 80 _t
(=)_S 80 _t
(vrl_SurfacemapCreate\(6\);)_S 1800 7483 _m
(for)_S 80 _t
(\(i)_S 80 _t
(=)_S 80 _t
(0;)_S 80 _t
(i)_S 80 _t
(<)_S 80 _t
(6;)_S 80 _t
(++i\))_S 2400 7350 _m
({)_S 2400 7217 _m
(vrl_SurfacemapSetSurface\(map1,)_S 80 _t
(i,)_S 80 _t
(vrl_SurfaceCreate\(i)_S 80 _t
(+)_S 80 _t
(1\)\);)_S 2400 7084 _m
(vrl_SurfacemapSetSurface\(map2,)_S 80 _t
(i,)_S 80 _t
(vrl_SurfaceCreate\(7)_S 80 _t
(+)_S 80 _t
(i\)\);)_S 2400 6951 _m
(})_S 1800 6685 _m
(infile)_S 80 _t
(=)_S 80 _t
(fopen\("colorful.plg",)_S 80 _t
("r"\);)_S 1800 6552 _m
(if)_S 80 _t
(\(infile\))_S 2400 6419 _m
({)_S 2400 6286 _m
(colorthing)_S 80 _t
(=)_S 80 _t
(vrl_ReadPLG\(infile\);)_S 2400 6153 _m
(fclose\(infile\);)_S 2400 6020 _m
(})_S 1800 5754 _m
(light)_S 80 _t
(=)_S 80 _t
(vrl_LightCreate\(\);)_S 1800 5621 _m
(vrl_LightRotY\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 5488 _m
(vrl_LightRotX\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 5222 _m
(camera)_S 80 _t
(=)_S 80 _t
(vrl_CameraCreate\(\);)_S 1800 5089 _m
(vrl_CameraMove\(camera,)_S 80 _t
(0,)_S 80 _t
(100,)_S 80 _t
(-50\);)_S 1800 4823 _m
(for)_S 80 _t
(\(i)_S 80 _t
(=)_S 80 _t
(0;)_S 80 _t
(i)_S 80 _t
(<)_S 80 _t
(10;)_S 80 _t
(++i\))_S 2400 4690 _m
({)_S 2400 4557 _m
(vrl_Object)_S 80 _t
(*obj)_S 80 _t
(=)_S 80 _t
(vrl_ObjectCreate\(colorthing\);)_S 2400 4424 _m

(if)_S 80 _t
(\(i)_S 80 _t
(&)_S 80 _t
(1\))_S 3000 4291 _m
(vrl_ObjectSetSurfacemap\(obj,)_S 80 _t
(map1\);)_S 2400 4158 _m
(else)_S 3000 4025 _m
(vrl_ObjectSetSurfacemap\(obj,)_S 80 _t
(map2\);)_S 2400 3892 _m
(vrl_ObjectMove\(obj,)_S 80 _t
(rand\(\))_S 80 _t
(%)_S 80 _t
(1000,)_S 80 _t
(rand\(\))_S 80 _t
(%)_S 80 _t
(1000,)_S 80 _t
(rand\(\))_S 80 _t
(%)_S 80 _t
(1000\);)_S 2400 3759 _m
(})_S 1800 3493 _m
(vrl_SystemRun\(\);)_S 1800 3360 _m
(})_S 1200 3040 _m
/Times-RomanR 600 _ff
(The)_S 67 _t
(program)_S 67 _t
(creates)_S 67 _t
(the)_S 67 _t
(two)_S 67 _t
(maps)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(vrl_SurfacemapCreate\(\))_S 67 _t
(function;)_S 67 _t
(the)_S 67 _t
(parameter)_S 1200 2807 _m
(is)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(entries)_S 67 _t
(the)_S 67 _t
(map)_S 67 _t
(should)_S 67 _t
(have.)_S 134 _t
(Six)_S 67 _t
(entries)_S 67 _t
(are)_S 67 _t
(then)_S 67 _t
(created)_S 67 _t
(in)_S 67 _t
(each)_S 67 _t
(map)_S 67 _t
(by)_S 1200 2574 _m
(calling)_S 67 _t
(vrl_SurfaceCreate\(\);)_S 67 _t
(the)_S 67 _t
(parameter)_S 67 _t
(to)_S 67 _t
(that)_S 67 _t
(function)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(hue.)_S 134 _t
(The)_S 67 _t
(first)_S 67 _t
(map)_S 67 _t
(will)_S 67 _t
(use)_S 1200 2341 _m
(hues)_S 67 _t
(1)_S 67 _t
(through)_S 67 _t
(6)_S 67 _t
(inclusive,)_S 67 _t
(the)_S 67 _t
(second)_S 67 _t
(will)_S 67 _t
(use)_S 67 _t
(hues)_S 67 _t
(7)_S 67 _t
(through)_S 67 _t
(12.)_S 134 _t
(A)_S 67 _t
(shape)_S 67 _t
(is)_S 67 _t
(then)_S 67 _t
(loaded)_S 1200 2108 _m
(from)_S 67 _t
(the)_S 67 _t
(file)_S 67 _t
("colorful.plg";)_S 67 _t
(that)_S 67 _t
(file)_S 67 _t
(uses)_S 67 _t
(indexed)_S 67 _t
(surface)_S 67 _t
(descriptors)_S 67 _t
(\(0x8000,)_S 67 _t
(0x8001)_S 67 _t
(etc\))_S 8900 1255 _m
(5)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(that)_S 67 _t
(refer)_S 67 _t
(to)_S 67 _t
(entries)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(surface)_S 67 _t
(map.)_S 134 _t
(Refer)_S 67 _t
(to)_S 67 _t
(Appendix)_S 67 _t
(C)_S 67 _t
(for)_S 67 _t
(more)_S 67 _t
(details)_S 67 _t
(about)_S 67 _t
(surface)_S 1200 11622 _m
(descriptors.)_S 1800 11156 _m
(The)_S 67 _t
(light)_S 67 _t
(source)_S 67 _t
(and)_S 67 _t
(camera)_S 67 _t
(are)_S 67 _t
(again)_S 67 _t
(set)_S 67 _t
(up,)_S 67 _t
(and)_S 67 _t
(ten)_S 67 _t
(objects)_S 67 _t
(are)_S 67 _t
(created.)_S 134 _t
(Half)_S 67 _t
(of)_S 1200 10921 _m
(them)_S 67 _t
(\(the)_S 67 _t
(odd-numbered)_S 67 _t
(ones\))_S 67 _t
(are)_S 67 _t
(assigned)_S 67 _t
4846 10921 _m
/Times-ItalicR 600 _ff
(map1)_S 5290 10921 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
(the)_S 67 _t
(others)_S 67 _t
(are)_S 67 _t
(assigned)_S 67 _t
7647 10921 _m
/Times-ItalicR 600 _ff
(map2)_S 8091 10921 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(The)_S 1200 10688 _m
(objects)_S 67 _t
(are)_S 67 _t
(again)_S 67 _t
(positioned)_S 67 _t
(randomly.)_S 1800 10222 _m
(Notice)_S 67 _t
(how)_S 67 _t
(half)_S 67 _t
(the)_S 67 _t
(cubes)_S 67 _t
(are)_S 67 _t
(a)_S 67 _t
(different)_S 67 _t
(color)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(other)_S 67 _t
(half.)_S 134 _t
(Each)_S 67 _t
(set)_S 67 _t
(of)_S 1200 9989 _m
(surface)_S 67 _t
(descriptions)_S 67 _t
(is)_S 67 _t
(only)_S 67 _t
(stored)_S 67 _t
(once,)_S 67 _t
(and)_S 67 _t
(each)_S 67 _t
(surface)_S 67 _t
(map)_S 67 _t
(is)_S 67 _t
(shared)_S 67 _t
(by)_S 67 _t
(five)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(ten)_S 1200 9756 _m
(cubes.)_S 134 _t
(All)_S 67 _t
(the)_S 67 _t
(cubes)_S 67 _t
(share)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(vrl_Shape)_S 67 _t
(information,)_S 67 _t
(which)_S 67 _t
(is)_S 67 _t
(only)_S 67 _t
(stored)_S 67 _t
(once.)_S 1200 9260 _m
/Times-BoldR 720 _ff
(A)_S 80 _t
(Real)_S 80 _t
(Taskmaster)_S 3213 9260 _m
/Times-RomanR 600 _ff
1800 8784 _m
(AVRIL)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(pseudo-tasking)_S 67 _t
(facility,)_S 67 _t
(which)_S 67 _t
(allows)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
(add)_S 67 _t
(routines)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(list)_S 67 _t
(that)_S 1200 8551 _m
(gets)_S 67 _t
(processed)_S 67 _t
(continuously)_S 67 _t
(while)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(runs.)_S 134 _t
(Each)_S 67 _t
(task)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(function)_S 67 _t
(and)_S 67 _t
(possibly)_S 1200 8318 _m
(some)_S 67 _t
(data,)_S 67 _t
(as)_S 67 _t
(well)_S 67 _t
(as)_S 67 _t
(an)_S 67 _t
(indication)_S 67 _t
(of)_S 67 _t
(how)_S 67 _t
(often)_S 67 _t
(it)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(run.)_S 1800 7852 _m
(Our)_S 67 _t
(fourth)_S 67 _t
(example)_S 67 _t
(is)_S 67 _t
(more)_S 67 _t
(complex)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
(three;)_S 67 _t
(it)_S 67 _t
(creates)_S 67 _t
(several)_S 67 _t
(primitive)_S 1200 7619 _m
(shapes,)_S 67 _t
(sets)_S 67 _t
(up)_S 67 _t
(surface)_S 67 _t
(maps,)_S 67 _t
(and)_S 67 _t
(creates)_S 67 _t
(tasks)_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(the)_S 67 _t
(objects)_S 67 _t
(move)_S 67 _t
(by)_S 67 _t
(themselves.)_S 67 _t
1200 7386 _m
(We'll)_S 67 _t
(have)_S 67 _t
(spinning)_S 67 _t
(cubes,)_S 67 _t
(bouncing)_S 67 _t
(spheres)_S 67 _t
(and)_S 67 _t
(pulsating)_S 67 _t
(cylinders.)_S 134 _t
(Let's)_S 67 _t
(look)_S 67 _t
(at)_S 67 _t
(the)_S 1200 7153 _m
(mainline)_S 67 _t
(first:)_S /CourierR 400 _ff
1200 6841 _m
(/*)_S 80 _t
(EXAMPLE4)_S 80 _t
(--)_S 80 _t
(simple)_S 80 _t
(object)_S 80 _t
(behaviours)_S 80 _t
(*/)_S 1200 6575 _m
(/*)_S 80 _t
(Written)_S 80 _t
(by)_S 80 _t
(Bernie)_S 80 _t
(Roehl,)_S 80 _t
(April)_S 80 _t
(1994)_S 80 _t
(*/)_S 1200 6309 _m
(#include)_S 80 _t
()_S 1200 6043 _m
(#include)_S 80 _t
("avril.h")_S 1200 5777 _m
(static)_S 80 _t
(vrl_Angle)_S 80 _t
(spinrate;)_S 1200 5644 _m
(static)_S 80 _t
(vrl_Time)_S 80 _t
(bounce_period;)_S 1200 5511 _m
(static)_S 80 _t
(vrl_Scalar)_S 80 _t
(maxheight;)_S 1200 5378 _m
(static)_S 80 _t
(vrl_Time)_S 80 _t
(pulse_period;)_S 1200 5112 _m
(static)_S 80 _t
(void)_S 80 _t
(spin\(void\))_S 1800 4979 _m
({)_S 1800 4846 _m
(vrl_ObjectRotY\(vrl_TaskGetData\(\),)_S 80 _t
(vrl_TaskGetElapsed\(\))_S 80 _t
(*)_S 80 _t
(spinrate\);)_S 1800 4713 _m
(vrl_SystemRequestRefresh\(\);)_S 1800 4580 _m
(})_S 1200 4314 _m
(static)_S 80 _t
(void)_S 80 _t
(bounce\(void\))_S 1800 4181 _m
({)_S 1800 4048 _m
(vrl_Object)_S 80 _t
(*obj)_S 80 _t
(=)_S 80 _t
(vrl_TaskGetData\(\);)_S 1800 3915 _m
(unsigned)_S 80 _t
(long)_S 80 _t
(off;)_S 1800 3782 _m
(vrl_Scalar)_S 80 _t
(height;)_S 1800 3649 _m
(off)_S 80 _t
(=)_S 80 _t
(\(360)_S 80 _t
(*)_S 80 _t
(\(vrl_TaskGetTimeNow\(\))_S 80 _t
(%)_S 80 _t
(bounce_period\)\))_S 80 _t
(/)_S 80 _t
(bounce_period;)_S 1800 3516 _m
(height)_S 80 _t
(=)_S 80 _t
(vrl_FactorMultiply\(vrl_Sine\(float2angle\(off\)\),)_S 80 _t
(maxheight\);)_S 1800 3383 _m
(vrl_ObjectMove\(obj,)_S 80 _t
(vrl_ObjectGetX\(obj\),)_S 80 _t
(height,)_S 80 _t
(vrl_ObjectGetZ\(obj\)\);)_S 1800 3250 _m
(vrl_SystemRequestRefresh\(\);)_S 1800 3117 _m
(})_S 1200 2851 _m
(static)_S 80 _t
(void)_S 80 _t
(pulsate\(void\))_S 1800 2718 _m
({)_S 1800 2585 _m
(vrl_Surface)_S 80 _t
(*surf)_S 80 _t
(=)_S 80 _t
(vrl_SurfacemapGetSurface\(\(vrl_Surfacemap)_S 80 _t
(*\))_S 80 _t
(vrl_TaskGetData\(\),)_S 80 _t
(0\);)_S 1800 2452 _m
(unsigned)_S 80 _t
(long)_S 80 _t
(off;)_S 1800 2319 _m
(int)_S 80 _t
(brightness;)_S 1800 2186 _m
(off)_S 80 _t
(=)_S 80 _t
(\(360)_S 80 _t
(*)_S 80 _t
(\(vrl_TaskGetTimeNow\(\))_S 80 _t
(%)_S 80 _t
(pulse_period\)\))_S 80 _t
(/)_S 80 _t
(pulse_period;)_S 1800 2053 _m
(brightness)_S 80 _t
(=)_S 80 _t
(abs\(vrl_FactorMultiply\(vrl_Sine\(float2angle\(off\)\),)_S 80 _t
(255\)\);)_S 1800 1920 _m
(vrl_SurfaceSetBrightness\(surf,)_S 80 _t
(brightness\);)_S 1800 1787 _m
(vrl_SystemRequestRefresh\(\);)_S 8900 1255 _m
/Times-RomanR 600 _ff
(6)_S /CourierR 400 _ff
_ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(})_S 1200 11643 _m
(void)_S 80 _t
(main\(\))_S 1800 11510 _m
({)_S 1800 11377 _m
(vrl_Light)_S 80 _t
(*light;)_S 1800 11244 _m
(vrl_Camera)_S 80 _t
(*camera;)_S 1800 11111 _m
(vrl_Shape)_S 80 _t
(*cube,)_S 80 _t
(*sphere,)_S 80 _t
(*cylinder;)_S 1800 10978 _m
(vrl_Surfacemap)_S 80 _t
(*cubemap,)_S 80 _t
(*pulsemap;)_S 1800 10845 _m
(int)_S 80 _t
(i;)_S 1800 10579 _m
(vrl_SystemStartup\(\);)_S 1800 10313 _m
(cube)_S 80 _t
(=)_S 80 _t
(vrl_PrimitiveBox\(100,)_S 80 _t
(100,)_S 80 _t
(100,)_S 80 _t
(NULL\);)_S 1800 10180 _m
(sphere)_S 80 _t
(=)_S 80 _t
(vrl_PrimitiveSphere\(100,)_S 80 _t
(6,)_S 80 _t
(6,)_S 80 _t
(NULL\);)_S 1800 10047 _m
(cylinder)_S 80 _t
(=)_S 80 _t
(vrl_PrimitiveCylinder\(100,)_S 80 _t
(50,)_S 80 _t
(100,)_S 80 _t
(8,)_S 80 _t
(NULL\);)_S 1800 9781 _m
(cubemap)_S 80 _t
(=)_S 80 _t
(vrl_SurfacemapCreate\(1\);)_S 1800 9648 _m
(vrl_SurfacemapSetSurface\(cubemap,)_S 80 _t
(0,)_S 80 _t
(vrl_SurfaceCreate\(5\)\);)_S 1800 9515 _m
(pulsemap)_S 80 _t
(=)_S 80 _t
(vrl_SurfacemapCreate\(1\);)_S 1800 9382 _m
(vrl_SurfacemapSetSurface\(pulsemap,)_S 80 _t
(0,)_S 80 _t
(vrl_SurfaceCreate\(14\)\);)_S 1800 9116 _m
(spinrate)_S 80 _t
(=)_S 80 _t
(float2angle\(72.0)_S 80 _t
(/)_S 80 _t
(vrl_TimerGetTickRate\(\)\);)_S 160 _t
(/*)_S 80 _t
(deg)_S 80 _t
(per)_S 80 _t
(tick)_S 80 _t
(*/)_S 1800 8983 _m
(bounce_period)_S 80 _t
(=)_S 80 _t
(4)_S 80 _t
(*)_S 80 _t
(vrl_TimerGetTickRate\(\);)_S 160 _t
(/*)_S 80 _t
(four-second)_S 80 _t
(period)_S 80 _t
(*/)_S 1800 8850 _m
(maxheight)_S 80 _t
(=)_S 80 _t
(float2scalar\(400\);)_S 320 _t
(/*)_S 80 _t
(maximum)_S 80 _t
(height)_S 80 _t
(in)_S 80 _t
(units)_S 80 _t
(*/)_S 1800 8717 _m
(pulse_period)_S 80 _t
(=)_S 160 _t
(2)_S 80 _t
(*)_S 80 _t
(vrl_TimerGetTickRate\(\);)_S 160 _t
(/*)_S 80 _t
(two-second)_S 80 _t
(period)_S 80 _t
(*/)_S 1800 8451 _m
(light)_S 80 _t
(=)_S 80 _t
(vrl_LightCreate\(\);)_S 1800 8318 _m
(vrl_LightRotY\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 8185 _m
(vrl_LightRotX\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 7919 _m
(camera)_S 80 _t
(=)_S 80 _t
(vrl_CameraCreate\(\);)_S 1800 7786 _m
(vrl_CameraRotY\(camera,)_S 80 _t
(float2angle\(5\)\);)_S 1800 7653 _m
(vrl_CameraMove\(camera,)_S 80 _t
(0,)_S 80 _t
(200,)_S 80 _t
(-4400\);)_S 1800 7387 _m
(for)_S 80 _t
(\(i)_S 80 _t
(=)_S 80 _t
(0;)_S 80 _t
(i)_S 80 _t
(<)_S 80 _t
(10;)_S 80 _t
(++i\))_S 2400 7254 _m
({)_S 2400 7121 _m
(vrl_Object)_S 80 _t
(*obj)_S 80 _t
(=)_S 80 _t
(vrl_ObjectCreate\(NULL\);)_S 2400 6988 _m
(vrl_ObjectMove\(obj,)_S 80 _t
(rand\(\))_S 80 _t
(%)_S 80 _t
(1000,)_S 80 _t
(rand\(\))_S 80 _t
(%)_S 80 _t
(1000,)_S 80 _t
(rand\(\))_S 80 _t
(%)_S 80 _t
(1000\);)_S 2400 6855 _m
(switch)_S 80 _t
(\(i)_S 80 _t
(&)_S 80 _t
(3\))_S 3000 6722 _m
({)_S 3000 6589 _m
(case)_S 80 _t
(0:)_S 3600 6456 _m
(vrl_ObjectSetShape\(obj,)_S 80 _t
(cube\);)_S 3600 6323 _m
(break;)_S 3000 6190 _m
(case)_S 80 _t
(1:)_S 3600 6057 _m
(vrl_ObjectSetShape\(obj,)_S 80 _t
(cube\);)_S 3600 5924 _m
(vrl_ObjectSetSurfacemap\(obj,)_S 80 _t
(cubemap\);)_S 3600 5791 _m
(vrl_TaskCreate\(spin,)_S 80 _t
(obj,)_S 80 _t
(10\);)_S 3600 5658 _m
(break;)_S 3000 5525 _m
(case)_S 80 _t
(2:)_S 3600 5392 _m
(vrl_ObjectSetShape\(obj,)_S 80 _t
(sphere\);)_S 3600 5259 _m
(vrl_TaskCreate\(bounce,)_S 80 _t
(obj,)_S 80 _t
(10\);)_S 3600 5126 _m
(break;)_S 3000 4993 _m
(case)_S 80 _t
(3:)_S 3600 4860 _m
(vrl_ObjectSetShape\(obj,)_S 80 _t
(cylinder\);)_S 3600 4727 _m
(vrl_ObjectSetSurfacemap\(obj,)_S 80 _t
(pulsemap\);)_S 3600 4594 _m
(break;)_S 3000 4461 _m
(})_S 2400 4328 _m
(vrl_TaskCreate\(pulsate,)_S 80 _t
(pulsemap,)_S 80 _t
(10\);)_S 2400 4195 _m
(})_S 1800 3929 _m
(vrl_SystemRun\(\);)_S 1800 3796 _m
(})_S 1200 3476 _m
/Times-RomanR 600 _ff
(Three)_S 67 _t
(primitive)_S 67 _t

(shapes)_S 67 _t
(are)_S 67 _t
(created)_S 67 _t
(--)_S 67 _t
(a)_S 67 _t
(box)_S 67 _t
(\(100)_S 67 _t
(units)_S 67 _t
(on)_S 67 _t
(a)_S 67 _t
(side\),)_S 67 _t
(a)_S 67 _t
(sphere)_S 67 _t
(\(100)_S 67 _t
(units)_S 67 _t
(in)_S 1200 3243 _m
(radius,)_S 67 _t
(with)_S 67 _t
(6)_S 67 _t
(facets)_S 67 _t
(around)_S 67 _t
(its)_S 67 _t
("latitude")_S 67 _t
(and)_S 67 _t
(6)_S 67 _t
(slices)_S 67 _t
(around)_S 67 _t
(its)_S 67 _t
("longitude"\))_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(tapered)_S 1200 3010 _m
(cylinder)_S 67 _t
(\(base)_S 67 _t
(radius)_S 67 _t
(100,)_S 67 _t
(top)_S 67 _t
(radius)_S 67 _t
(50,)_S 67 _t
(height)_S 67 _t
(100)_S 67 _t
(units)_S 67 _t
(with)_S 67 _t
(8)_S 67 _t
(sides\).)_S 134 _t
(Two)_S 67 _t
(surface)_S 67 _t
(maps)_S 1200 2775 _m
(are)_S 67 _t
(created,)_S 67 _t
(each)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(single)_S 67 _t
(surface;)_S 67 _t
(one)_S 67 _t
(called)_S 67 _t
5363 2775 _m
/Times-ItalicR 600 _ff
(cubemap)_S 6085 2775 _m
/Times-RomanR 600 _ff
67 _t
(using)_S 67 _t
(hue)_S 67 _t
(5)_S 67 _t
(and)_S 67 _t
(one)_S 67 _t
(called)_S 1200 2540 _m
/Times-ItalicR 600 _ff
(pulsemap)_S 1967 2540 _m
/Times-RomanR 600 _ff
67 _t
(using)_S 67 _t
(hue)_S 67 _t
(14.)_S 1800 2072 _m
(Some)_S 67 _t
(global)_S 67 _t
(variables)_S 67 _t
(are)_S 67 _t
(then)_S 67 _t
(set;)_S 67 _t
4746 2072 _m
/Times-ItalicR 600 _ff
(spinrate)_S 5402 2072 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(rate)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(cubes)_S 67 _t
(should)_S 67 _t
(spin,)_S 67 _t
(in)_S 1200 1839 _m
(degrees)_S 67 _t
(per)_S 67 _t
("tick".)_S 134 _t
(A)_S 67 _t
(tick)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(small)_S 67 _t
(unit)_S 67 _t
(of)_S 67 _t
(time;)_S 67 _t
(the)_S 67 _t
(timer)_S 67 _t
(runs)_S 67 _t
(at)_S 67 _t
(1000)_S 67 _t
(ticks)_S 67 _t
(per)_S 67 _t
(second,)_S 67 _t
(so)_S 8900 1255 _m
(7)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(each)_S 67 _t
(tick)_S 67 _t
(is)_S 67 _t
(one)_S 67 _t
(millisecond.)_S 134 _t
(In)_S 67 _t
(case)_S 67 _t
(this)_S 67 _t
(changes,)_S 67 _t
(you)_S 67 _t
(should)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(routine)_S 1200 11622 _m
(vrl_TimerGetTickRate\(\))_S 67 _t
(to)_S 67 _t
(found)_S 67 _t
(out)_S 67 _t
(how)_S 67 _t
(many)_S 67 _t
(ticks)_S 67 _t
(per)_S 67 _t
(second)_S 67 _t
(the)_S 67 _t
(timer)_S 67 _t
(is)_S 67 _t
(running)_S 67 _t
(at.)_S 1800 11156 _m
(We)_S 67 _t
(do)_S 67 _t
(the)_S 67 _t
(float2angle\(\))_S 67 _t
(conversion)_S 67 _t
(here)_S 67 _t
(rather)_S 67 _t
(than)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(spin\(\))_S 67 _t
(task)_S 67 _t
(itself;)_S 67 _t
(by)_S 67 _t
(storing)_S 1200 10923 _m
(the)_S 67 _t
(vrl_Angle)_S 67 _t
(value,)_S 67 _t
(we)_S 67 _t
(avoid)_S 67 _t
(having)_S 67 _t
(to)_S 67 _t
(do)_S 67 _t
(the)_S 67 _t
(conversion)_S 67 _t
(each)_S 67 _t
(time)_S 67 _t
(through)_S 67 _t
(the)_S 67 _t
(simulation)_S 1200 10690 _m
(loop.)_S 134 _t
(Also)_S 67 _t
(notice)_S 67 _t
(that)_S 67 _t
(we)_S 67 _t
(divide)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(rate)_S 67 _t
(at)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(timer)_S 67 _t
(runs,)_S 67 _t
(in)_S 67 _t
(ticks)_S 67 _t
(per)_S 1200 10457 _m
(second;)_S 67 _t
(the)_S 67 _t
(rotation)_S 67 _t
(rate)_S 67 _t
(is)_S 67 _t
(72)_S 67 _t
(degrees)_S 67 _t
(per)_S 67 _t
(second,)_S 67 _t
(so)_S 67 _t
(we)_S 67 _t
(divide)_S 67 _t
(by)_S 67 _t
(ticks)_S 67 _t
(per)_S 67 _t
(second)_S 67 _t
(to)_S 67 _t
(get)_S 67 _t
(the)_S 1200 10224 _m
(rotation)_S 67 _t
(rate)_S 67 _t
(in)_S 67 _t
(degrees)_S 67 _t
(per)_S 67 _t
(tick.)_S 1800 9756 _m
(The)_S 67 _t
2178 9756 _m
/Times-ItalicR 600 _ff
(bounce_period)_S 3378 9756 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(4)_S 67 _t
(seconds,)_S 67 _t
(converted)_S 67 _t
(to)_S 67 _t
(ticks;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(time)_S 67 _t
(it)_S 67 _t
(takes)_S 67 _t
(a)_S 67 _t
(bouncing)_S 1200 9523 _m
(ball)_S 67 _t
(to)_S 67 _t
(go)_S 67 _t
(through)_S 67 _t
(one)_S 67 _t
(complete)_S 67 _t
(up-down)_S 67 _t
(cycle.)_S 134 _t
(The)_S 67 _t
(maximum)_S 67 _t
(height)_S 67 _t
(a)_S 67 _t
(ball)_S 67 _t
(will)_S 67 _t
(rise)_S 67 _t
(to)_S 67 _t
(is)_S 1200 9288 _m
/Times-ItalicR 600 _ff
(maxheight)_S 2033 9288 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
(arbitrarily)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(400)_S 67 _t
(units.)_S 134 _t
(Note)_S 67 _t
(the)_S 67 _t
(conversion)_S 67 _t
(from)_S 67 _t
(floating-point)_S 67 _t
(to)_S 67 _t
(the)_S 1200 9053 _m
(internal)_S 67 _t
("vrl_Scalar")_S 67 _t
(format.)_S 134 _t
(The)_S 67 _t
4025 9053 _m
/Times-ItalicR 600 _ff
(pulse_period)_S 5070 9053 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(two)_S 67 _t
(seconds.)_S 1800 8587 _m
(Again,)_S 67 _t
(a)_S 67 _t
(light)_S 67 _t
(and)_S 67 _t
(camera)_S 67 _t
(are)_S 67 _t
(set)_S 67 _t
(up)_S 67 _t
(so)_S 67 _t
(we)_S 67 _t
(can)_S 67 _t
(view)_S 67 _t
(the)_S 67 _t
(scene,)_S 67 _t
(and)_S 67 _t
(ten)_S 67 _t
(objects)_S 67 _t
(are)_S 1200 8354 _m
(created)_S 67 _t
(and)_S 67 _t
(randomly)_S 67 _t
(positioned.)_S 134 _t
(Some)_S 67 _t
(of)_S 67 _t
(them)_S 67 _t
(are)_S 67 _t
(simple)_S 67 _t
(cubes)_S 67 _t
(\(using)_S 67 _t
(the)_S 67 _t
(default)_S 67 _t
(color)_S 1200 8121 _m
(assigned)_S 67 _t
(by)_S 67 _t
(vrl_PrimitiveBox\(\)\).)_S 134 _t
(Some)_S 67 _t
(of)_S 67 _t
(them)_S 67 _t
(are)_S 67 _t
(spinning)_S 67 _t
(cubes,)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(single-entry)_S 1200 7888 _m
(surfacemap.)_S 1800 7422 _m
(A)_S 67 _t
(task)_S 67 _t
(is)_S 67 _t
(created)_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(each)_S 67 _t
(cube)_S 67 _t
(spin.)_S 134 _t
(Each)_S 67 _t
(task)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(function,)_S 67 _t
(some)_S 67 _t
(data,)_S 67 _t
(and)_S 67 _t
(a)_S 1200 7189 _m
("period")_S 67 _t
(which)_S 67 _t
(indicates)_S 67 _t
(how)_S 67 _t
(often)_S 67 _t
(the)_S 67 _t
(task)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(run.)_S 134 _t
(In)_S 67 _t
(this)_S 67 _t
(case,)_S 67 _t
(the)_S 67 _t
(function)_S 67 _t
(is)_S 67 _t
(spin\(\),)_S 1200 6956 _m
(the)_S 67 _t
(data)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(spun,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(period)_S 67 _t
(is)_S 67 _t
(10)_S 67 _t
(ticks.)_S 134 _t
(The)_S 67 _t
(period)_S 67 _t
(doesn't)_S 1200 6723 _m
(affect)_S 67 _t
(the)_S 67 _t
(speed)_S 67 _t
(at)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(cube)_S 67 _t
(will)_S 67 _t
(spin;)_S 67 _t
(it)_S 67 _t
(only)_S 67 _t
(determines)_S 67 _t
(how)_S 67 _t
(often)_S 67 _t
(the)_S 67 _t
(spin\(\))_S 67 _t
(function)_S 1200 6490 _m
(should)_S 67 _t
(be)_S 67 _t
(called.)_S 134 _t
(The)_S 67 _t
(smaller)_S 67 _t
(the)_S 67 _t
(number,)_S 67 _t
(the)_S 67 _t
(more)_S 67 _t
(often)_S 67 _t
(the)_S 67 _t
(routine)_S 67 _t
(will)_S 67 _t
(run)_S 67 _t
(and)_S 67 _t
(the)_S 1200 6257 _m
("smoother")_S 67 _t
(the)_S 67 _t
(motion)_S 67 _t
(will)_S 67 _t
(be;)_S 67 _t
(of)_S 67 _t
(course,)_S 67 _t
(running)_S 67 _t
(the)_S 67 _t
(tasks)_S 67 _t
(more)_S 67 _t
(often)_S 67 _t
(takes)_S 67 _t
(CPU)_S 67 _t
(cycles)_S 1200 6024 _m
(away)_S 67 _t
(from)_S 67 _t
(rendering.)_S 1800 5558 _m
(The)_S 67 _t
(bouncing)_S 67 _t
(balls)_S 67 _t
(are)_S 67 _t
(handled)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(way)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(spinning)_S 67 _t
(cubes.)_S 134 _t
(The)_S 67 _t
(cylinders)_S 1200 5325 _m
(don't)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(task)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(them;)_S 67 _t
(instead)_S 67 _t
(a)_S 67 _t
(separate)_S 67 _t
(task)_S 67 _t
(is)_S 67 _t
(set)_S 67 _t
(up)_S 67 _t
(that)_S 67 _t
(will)_S 67 _t
(cause)_S 67 _t
(the)_S 1200 5092 _m
(pulsing)_S 67 _t
(to)_S 67 _t
(happen.)_S 134 _t
(The)_S 67 _t
(data)_S 67 _t
(for)_S 67 _t
(that)_S 67 _t
(task)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(pointer,)_S 67 _t
(but)_S 67 _t
(rather)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(a)_S 1200 4859 _m
(surface)_S 67 _t
(map.)_S 1800 4393 _m
(The)_S 67 _t
(tasks)_S 67 _t
(themselves)_S 67 _t
(are)_S 67 _t
(quite)_S 67 _t
(straightforward.)_S 134 _t
(The)_S 67 _t
(simplest)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(spin\(\))_S 67 _t
(task,)_S 67 _t
(which)_S 1200 4160 _m
(is)_S 67 _t
(only)_S 67 _t
(two)_S 67 _t
(lines)_S 67 _t
(long:)_S 1200 3748 _m
/CourierR 400 _ff
(static)_S 80 _t
(void)_S 80 _t
(spin\(void\))_S 1800 3615 _m
({)_S 1800 3482 _m
(vrl_ObjectRotY\(vrl_TaskGetData\(\),)_S 80 _t
(vrl_TaskGetElapsed\(\))_S 80 _t
(*)_S 80 _t
(spinrate\);)_S 1800 3349 _m
(vrl_SystemRequestRefresh\(\);)_S 1800 3216 _m
(})_S /Times-RomanR 600 _ff
1200 2796 _m
(This)_S 67 _t
(task)_S 67 _t
(gets)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(its)_S 67 _t
(data)_S 67 _t
(using)_S 67 _t
(vrl_TaskGetData\(\);)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(object)_S 1200 2563 _m
(associated)_S 67 _t
(with)_S 67 _t
(this)_S 67 _t
(task.)_S 134 _t
(The)_S 67 _t
(task)_S 67 _t
(also)_S 67 _t
(gets)_S 67 _t
(the)_S 67 _t
(elapsed)_S 67 _t
(time)_S 67 _t
(\(in)_S 67 _t
(ticks\))_S 67 _t
(since)_S 67 _t
(it)_S 67 _t
(last)_S 67 _t
(ran,)_S 1200 2328 _m
(multiplies)_S 67 _t
(that)_S 67 _t
(value)_S 67 _t
(by)_S 67 _t
3201 2328 _m
/Times-ItalicR 600 _ff
(spinrate)_S 3857 2328 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
(and)_S 67 _t
(rotates)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(by)_S 67 _t
(that)_S 67 _t
(amount)_S 67 _t
(around)_S 67 _t
(the)_S 67 _t
(vertical)_S 67 _t
(\(Y\))_S 1200 2095 _m
(axis.)_S 134 _t
(The)_S 67 _t
(spin\(\))_S 67 _t
(function)_S 67 _t
(then)_S 67 _t
(calls)_S 67 _t
(vrl_SystemRequestRefresh\(\),)_S 67 _t
(which)_S 67 _t
(tells)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(that)_S 1200 1862 _m
(the)_S 67 _t
(screen)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(refreshed)_S 67 _t
(\(since)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(has)_S 67 _t
(moved\).)_S 8900 1255 _m
(8)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(The)_S 67 _t
(bounce\(\))_S 67 _t
(task)_S 67 _t
(is)_S 67 _t
(only)_S 67 _t
(slightly)_S 67 _t
(more)_S 67 _t
(complex;)_S 67 _t
(it)_S 67 _t
(uses)_S 67 _t
(the)_S 67 _t
(sine)_S 67 _t
(function)_S 67 _t
(to)_S 67 _t
(determine)_S 1200 11622 _m
(the)_S 67 _t
(height)_S 67 _t
(at)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(positioned:)_S 1200 11210 _m
/CourierR 400 _ff
(static)_S 80 _t
(void)_S 80 _t
(bounce\(void\))_S 1800 11077 _m
({)_S 1800 10944 _m
(vrl_Object)_S 80 _t
(*obj)_S 80 _t
(=)_S 80 _t
(vrl_TaskGetData\(\);)_S 1800 10811 _m
(unsigned)_S 80 _t
(long)_S 80 _t
(off;)_S 1800 10678 _m
(vrl_Scalar)_S 80 _t
(height;)_S 1800 10545 _m
(off)_S 80 _t
(=)_S 80 _t
(\(360)_S 80 _t
(*)_S 80 _t
(\(vrl_TaskGetTimeNow\(\))_S 80 _t
(%)_S 80 _t
(bounce_period\)\))_S 80 _t
(/)_S 80 _t
(bounce_period;)_S 1800 10412 _m
(height)_S 80 _t
(=)_S 80 _t
(vrl_FactorMultiply\(vrl_Sine\(float2angle\(off\)\),)_S 80 _t
(maxheight\);)_S 1800 10279 _m
(vrl_ObjectMove\(obj,)_S 80 _t
(vrl_ObjectGetX\(obj\),)_S 80 _t
(height,)_S 80 _t
(vrl_ObjectGetZ\(obj\)\);)_S 1800 10146 _m
(vrl_SystemRequestRefresh\(\);)_S 1800 10013 _m
(})_S /Times-RomanR 600 _ff
1200 9593 _m
(The)_S 67 _t
(current)_S 67 _t
(time)_S 67 _t
(is)_S 67 _t
(obtained)_S 67 _t
(from)_S 67 _t
(vrl_TaskGetTimeNow\(\),)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(%)_S 67 _t
(operator)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(find)_S 1200 9360 _m
(the)_S 67 _t
(modulus)_S 67 _t
(\(remainder\))_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(time)_S 67 _t
(relative)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(bounce)_S 67 _t
(period.)_S 134 _t
(That)_S 67 _t
(value,)_S 1200 9127 _m
(divided)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(bounce)_S 67 _t
(period,)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(fraction)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(bounce)_S 67 _t
(period)_S 67 _t
(that)_S 67 _t
(has)_S 67 _t
(elapsed.)_S 134 _t
(We)_S 1200 8894 _m
(multiply)_S 67 _t
(that)_S 67 _t
(by)_S 67 _t
(360)_S 67 _t
(\(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(degrees)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(circle\))_S 67 _t
(to)_S 67 _t
(get)_S 67 _t
(an)_S 67 _t
(offset)_S 67 _t
(value;)_S 67 _t
(we)_S 67 _t
(take)_S 67 _t
(the)_S 1200 8661 _m
(sine)_S 67 _t
(of)_S 67 _t
(that)_S 67 _t
(value)_S 67 _t
(\(using)_S 67 _t
(the)_S 67 _t
(fast)_S 67 _t
(vrl_Sine\(\))_S 67 _t
(routine\))_S 67 _t
(and)_S 67 _t
(multiply)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(maximum)_S 67 _t
(height)_S 1200 8428 _m
(value.)_S 134 _t
(The)_S 67 _t
(vrl_FactorMultiply\(\))_S 67 _t
(routine)_S 67 _t
(takes)_S 67 _t
(a)_S 67 _t
(fractional)_S 67 _t
(number)_S 67 _t
(\(of)_S 67 _t
(the)_S 67 _t
(type)_S 67 _t
(returned)_S 67 _t
(by)_S 1200 8195 _m
(vrl_Sine\(\)\))_S 67 _t
(and)_S 67 _t
(multiplies)_S 67 _t
(it)_S 67 _t
(by)_S 67 _t
(a)_S 67 _t
(vrl_Scalar)_S 67 _t
(value)_S 67 _t
(to)_S 67 _t
(get)_S 67 _t
(a)_S 67 _t
(\(smaller\))_S 67 _t
(vrl_Scalar)_S 67 _t
(value.)_S 1800 7729 _m
(We)_S 67 _t
(use)_S 67 _t
(vrl_ObjectMove\(\))_S 67 _t
(to)_S 67 _t
(actually)_S 67 _t
(position)_S 67 _t
(the)_S 67 _t
(object.)_S 134 _t
(Notice)_S 67 _t
(the)_S 67 _t
(use)_S 67 _t
(of)_S 1200 7496 _m
(vrl_ObjectGetX\(\))_S 67 _t
(and)_S 67 _t
(vrl_ObjectGetZ\(\))_S 67 _t
(to)_S 67 _t
(find)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(X)_S 67 _t
(and)_S 67 _t
(Z)_S 67 _t
(values)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(object's)_S 1200 7263 _m
(location;)_S 67 _t
(we)_S 67 _t
(don't)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(alter)_S 67 _t
(those)_S 67 _t
(values,)_S 67 _t
(only)_S 67 _t
(the)_S 67 _t
(height.)_S 134 _t
(A)_S 67 _t
(call)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(function)_S 1200 7030 _m
(vrl_SystemRequestRefresh\(\))_S 67 _t
(ensures)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(screen)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(redrawn)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(at)_S 67 _t
(its)_S 67 _t
(new)_S 1200 6797 _m
(height.)_S 1800 6331 _m
(The)_S 67 _t
(pulsate\(\))_S 67 _t
(task)_S 67 _t
(is)_S 67 _t
(similar)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(bounce\(\))_S 67 _t
(task,)_S 67 _t
(but)_S 67 _t
(instead)_S 67 _t
(of)_S 67 _t
(computing)_S 67 _t
(a)_S 67 _t
(height)_S 67 _t
(it)_S 1200 6098 _m
(computes)_S 67 _t
(a)_S 67 _t
(brightness)_S 67 _t
(and)_S 67 _t
(sets)_S 67 _t
(it)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(new)_S 67 _t
(brightness)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(surface.)_S 134 _t
(Brightness)_S 1200 5865 _m
(values)_S 67 _t
(are)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(range)_S 67 _t
(of)_S 67 _t
(0)_S 67 _t
(to)_S 67 _t
(255.)_S 1200 5369 _m
/Times-BoldR 720 _ff
(Left)_S 80 _t
(to)_S 80 _t
(Our)_S 80 _t
(Own)_S 80 _t
(Devices)_S 3840 5369 _m
/Times-RomanR 600 _ff
1800 4893 _m
(AVRIL)_S 67 _t
(supports)_S 67 _t
(the)_S 67 _t
(use)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(variety)_S 67 _t
(of)_S 67 _t
(input)_S 67 _t
(devices)_S 67 _t
(for)_S 67 _t
(manipulating)_S 67 _t
(your)_S 67 _t
(viewpoint)_S 1200 4660 _m
(and)_S 67 _t
(the)_S 67 _t
(objects)_S 67 _t
(in)_S 67 _t
(your)_S 67 _t
(virtual)_S 67 _t
(world.)_S 134 _t
(Our)_S 67 _t
(next)_S 67 _t
(example)_S 67 _t
(shows)_S 67 _t
(one)_S 67 _t
(way)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(them.)_S 1200 4248 _m
/CourierR 400 _ff
(/*)_S 80 _t
(EXAMPLE5)_S 80 _t
(--)_S 80 _t
(manipulating)_S 80 _t
(a)_S 80 _t
(cube)_S 80 _t
(with)_S 80 _t
(the)_S 80 _t
(Logitech)_S 80 _t
(Cyberman)_S 80 _t
(*/)_S 1200 3982 _m
(/*)_S 80 _t
(Written)_S 80 _t
(by)_S 80 _t
(Bernie)_S 80 _t
(Roehl,)_S 80 _t
(August)_S 80 _t
(1994)_S 80 _t
(*/)_S 1200 3716 _m
(#include)_S 80 _t
()_S 1200 3450 _m
(#include)_S 80 _t
("avril.h")_S 1200 3317 _m
(#include)_S 80 _t
("avrildrv.h")_S 1200 3051 _m
(vrl_Object)_S 80 _t
(*cube)_S 80 _t
(=)_S 80 _t
(NULL;)_S 1200 2785 _m
(static)_S 80 _t
(void)_S 80 _t
(cube_mover\(void\))_S 1800 2652 _m
({)_S 1800 2519 _m
(vrl_Device)_S 80 _t
(*dev)_S 80 _t
(=)_S 80 _t
(vrl_TaskGetData\(\);)_S 1800 2386 _m
(vrl_Object)_S 80 _t
(*viewer)_S 80 _t
(=)_S 80 _t
(vrl_CameraGetObject\(vrl_WorldGetCamera\(\)\);)_S 1800 2253 _m
(vrl_Vector)_S 80 _t
(v;)_S 1800 2120 _m
(if)_S 80 _t
(\(dev->buttons\))_S 2400 1987 _m
({)_S 2400 1854 _m
(vrl_ObjectRotReset\(cube\);)_S 2400 1721 _m
(vrl_ObjectRotY\(cube,)_S 80 _t
(float2angle\(45\)\);)_S 8900 1255 _m
/Times-RomanR 600 _ff
(9)_S /CourierR 400 _ff
_ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
2400 11909 _m
(vrl_ObjectVectorMove\(cube,)_S 80 _t
(vrl_VectorNULL\);)_S 2400 11776 _m
(})_S 1800 11643 _m
(vrl_ObjectRotate\(cube,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(YROT\),)_S 2400 11510 _m
(Y,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 11377 _m
(vrl_ObjectRotate\(cube,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(XROT\),)_S 2400 11244 _m
(X,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 11111 _m
(vrl_ObjectRotate\(cube,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(ZROT\),)_S 2400 10978 _m
(Z,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 10845 _m
(vrl_VectorCreate\(v,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(X\),)_S 2400 10712 _m
(vrl_DeviceGetValue\(dev,)_S 80 _t
(Y\),)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(Z\)\);)_S 1800 10579 _m
(vrl_ObjectTranslate\(cube,)_S 80 _t
(v,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 10446 _m
(vrl_SystemRequestRefresh\(\);)_S 1800 10313 _m
(})_S 1200 10047 _m
(void)_S 80 _t
(main\(\))_S 1800 9914 _m
({)_S 1800 9781 _m
(vrl_Light)_S 80 _t
(*light;)_S 1800 9648 _m
(vrl_Camera)_S 80 _t
(*camera;)_S 1800 9515 _m
(vrl_Device)_S 80 _t
(*dev;)_S 1800 9249 _m
(vrl_SystemStartup\(\);)_S 1800 8983 _m
(cube)_S 80 _t
(=)_S 80 _t
(vrl_ObjectCreate\(vrl_PrimitiveBox\(100,)_S 80 _t
(100,)_S 80 _t
(100,)_S 80 _t
(NULL\)\);)_S 1800 8850 _m
(vrl_ObjectRotY\(cube,)_S 80 _t
(float2angle\(45\)\);)_S 1800 8584 _m
(light)_S 80 _t
(=)_S 80 _t
(vrl_LightCreate\(\);)_S 1800 8451 _m
(vrl_LightRotY\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 8318 _m
(vrl_LightRotX\(light,)_S 80 _t
(float2angle\(45\)\);)_S 1800 8052 _m
(camera)_S 80 _t
(=)_S 80 _t
(vrl_CameraCreate\(\);)_S 1800 7919 _m
(vrl_CameraRotX\(camera,)_S 80 _t
(float2angle\(45\)\);)_S 1800 7786 _m
(vrl_CameraMove\(camera,)_S 80 _t
(0,)_S 80 _t
(500,)_S 80 _t
(-500\);)_S 1800 7520 _m
(dev)_S 80 _t
(=)_S 80 _t
(vrl_DeviceOpen\(vrl_CybermanDevice,)_S 80 _t
(vrl_SerialOpen\(0x2F8,)_S 80 _t
(3,)_S 80 _t
(2000\)\);)_S 1800 7387 _m
(if)_S 80 _t
(\(dev\))_S 2400 7254 _m
({)_S 2400 7121 _m
(vrl_DeviceSetScale\(dev,)_S 80 _t
(X,)_S 80 _t
(float2scalar\(50\)\);)_S 2400 6988 _m
(vrl_DeviceSetScale\(dev,)_S 80 _t
(Y,)_S 80 _t
(float2scalar\(50\)\);)_S 2400 6855 _m
(vrl_DeviceSetScale\(dev,)_S 80 _t
(Z,)_S 80 _t
(float2scalar\(50\)\);)_S 2400 6722 _m
(vrl_TaskCreate\(cube_mover,)_S 80 _t
(dev,)_S 80 _t
(0\);)_S 2400 6589 _m
(})_S 1800 6323 _m
(vrl_SystemRun\(\);)_S 1800 6190 _m
(})_S /Times-RomanR 600 _ff
1200 5770 _m
(As)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(see,)_S 67 _t
(there's)_S 67 _t
(not)_S 67 _t
(much)_S 67 _t
(to)_S 67 _t
(it.)_S 134 _t
(Most)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(code)_S 67 _t
(is)_S 67 _t
(exactly)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(as)_S 67 _t
(our)_S 67 _t
(first)_S 1200 5537 _m
(example;)_S 134 _t
(The)_S 67 _t
(only)_S 67 _t
(difference)_S 67 _t
(is)_S 67 _t
(that)_S 67 _t
(just)_S 67 _t
(before)_S 67 _t
(we)_S 67 _t
(start)_S 67 _t
(running)_S 67 _t
(the)_S 67 _t
(main)_S 67 _t
(loop,)_S 67 _t
(we)_S 67 _t
(open)_S 67 _t
(up)_S 1200 5304 _m
(a)_S 67 _t
(device.)_S 134 _t
(The)_S 67 _t
(first)_S 67 _t
(parameter)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(vrl_DeviceOpen\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(address)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(function)_S 1200 5071 _m
(that)_S 67 _t
(is)_S 67 _t
(responsible)_S 67 _t
(for)_S 67 _t
(operating)_S 67 _t
(the)_S 67 _t
(device;)_S 67 _t
(in)_S 67 _t
(this)_S 67 _t
(case,)_S 67 _t
(it's)_S 67 _t
(called)_S 67 _t
(vrl_CybermanDevice,)_S 67 _t
(and)_S 1200 4838 _m
(it)_S 67 _t
(read)_S 67 _t
(the)_S 67 _t
(Logitech)_S 67 _t
(Cyberman.)_S 134 _t
(Notice)_S 67 _t
(that)_S 67 _t
(we)_S 67 _t
(#included)_S 67 _t
(the)_S 67 _t
(avrildrv.h)_S 67 _t
(file;)_S 67 _t
(it)_S 67 _t
(has)_S 1200 4605 _m
(declarations)_S 67 _t
(for)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(functions.)_S 134 _t
(When)_S 67 _t
(you)_S 67 _t
(create)_S 67 _t
(a)_S 67 _t
(new)_S 67 _t
(device)_S 67 _t
(driver)_S 67 _t
(\(as)_S 67 _t
(described)_S 1200 4372 _m
(in)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(appendices)_S 67 _t
(to)_S 67 _t
(this)_S 67 _t
(document\))_S 67 _t
(you)_S 67 _t
(should)_S 67 _t
(put)_S 67 _t
(an)_S 67 _t
(entry)_S 67 _t
(into)_S 67 _t
(the)_S 67 _t
(avrildrv.h)_S 67 _t
(file)_S 67 _t
(for)_S 1200 4139 _m
(it.)_S 1800 3673 _m
(The)_S 67 _t
(second)_S 67 _t
(parameter)_S 67 _t
(to)_S 67 _t
(vrl_DeviceOpen\(\))_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(serial)_S 67 _t
(port;)_S 67 _t
(we)_S 67 _t
(could)_S 67 _t
(have)_S 1200 3440 _m
(opened)_S 67 _t
(the)_S 67 _t
(serial)_S 67 _t
(port,)_S 67 _t
(assigned)_S 67 _t
(it)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(variable,)_S 67 _t
(and)_S 67 _t
(passed)_S 67 _t
(that)_S 67 _t
(variable)_S 67 _t
(to)_S 67 _t
(the)_S 1200 3207 _m
(vrl_DeviceOpen\(\))_S 67 _t
(function,)_S 67 _t
(but)_S 67 _t
(there)_S 67 _t
(was)_S 67 _t
(no)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(in)_S 67 _t
(this)_S 67 _t
(case.)_S 1800 2741 _m
(The)_S 67 _t
(values)_S 67 _t
(0x2F8)_S 67 _t
(and)_S 67 _t
(3)_S 67 _t
(are)_S 67 _t
(the)_S 67 _t
(hardware)_S 67 _t
(address)_S 67 _t
(and)_S 67 _t
(IRQ)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(COM2)_S 67 _t
(port)_S 1200 2508 _m
(on)_S 67 _t
(a)_S 67 _t
(PC-compatible;)_S 67 _t
(this)_S 67 _t
(example)_S 67 _t
(is)_S 67 _t
(very)_S 67 _t
(platform-specific,)_S 67 _t
(but)_S 67 _t
(we'll)_S 67 _t
(see)_S 67 _t
(shortly)_S 67 _t
(how)_S 67 _t
(to)_S 67 _t
(get)_S 1200 2275 _m
(around)_S 67 _t
(that.)_S 134 _t
(The)_S 67 _t
(value)_S 67 _t
(2000)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(size)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(input)_S 67 _t
(buffer)_S 67 _t
(the)_S 67 _t
(serial)_S 67 _t
(port)_S 67 _t
(should)_S 67 _t
(use.)_S 8800 1255 _m
(10)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(Assuming)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(was)_S 67 _t
(successfully)_S 67 _t
(opened,)_S 67 _t
(we)_S 67 _t
(scale)_S 67 _t
(the)_S 67 _t
(X,)_S 67 _t
(Y)_S 67 _t
(and)_S 67 _t
(Z)_S 67 _t
(translation)_S 1200 11622 _m
(values)_S 67 _t
(read)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(50)_S 67 _t
(units;)_S 67 _t
(that)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(the)_S 67 _t
(maximum)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(world-space)_S 1200 11389 _m
(units)_S 67 _t
(per)_S 67 _t
(second)_S 67 _t
(that)_S 67 _t
(we)_S 67 _t
(can)_S 67 _t
(move)_S 67 _t
(objects)_S 67 _t
(using)_S 67 _t
(this)_S 67 _t
(device.)_S 134 _t
(Finally,)_S 67 _t
(we)_S 67 _t
(create)_S 67 _t
(a)_S 67 _t
(task)_S 67 _t
(whose)_S 1200 11156 _m
(data)_S 67 _t
(parameter)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(our)_S 67 _t
(newly-opened)_S 67 _t
(device.)_S 1800 10690 _m
(The)_S 67 _t
(task)_S 67 _t
(that)_S 67 _t
(does)_S 67 _t
(the)_S 67 _t
(work)_S 67 _t
(of)_S 67 _t
(moving)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(is)_S 67 _t
(called)_S 67 _t
(cube_mover\(\).)_S 134 _t
(You'll)_S 1200 10457 _m
(notice)_S 67 _t
(that)_S 67 _t
(unlike)_S 67 _t
(our)_S 67 _t
(first)_S 67 _t
(example)_S 67 _t
(program,)_S 67 _t
(we've)_S 67 _t
(declared)_S 67 _t
(the)_S 67 _t
(cube)_S 67 _t
(object)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(global)_S 1200 10224 _m
(variable)_S 67 _t
(instead)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(local)_S 67 _t
(one;)_S 67 _t
(this)_S 67 _t
(so)_S 67 _t
(that)_S 67 _t
(cube_mover\(\))_S 67 _t
(can)_S 67 _t
(access)_S 67 _t
(it.)_S 1800 9758 _m
(The)_S 67 _t
(cube_mover\(\))_S 67 _t
(task)_S 67 _t
(starts)_S 67 _t
(by)_S 67 _t
(getting)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(pointer,)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(object)_S 1200 9525 _m
(corresponding)_S 67 _t
(to)_S 67 _t
(our)_S 67 _t
(viewpoint.)_S 1800 9113 _m
/CourierR 400 _ff
(vrl_Device)_S 80 _t
(*dev)_S 80 _t
(=)_S 80 _t
(vrl_TaskGetData\(\);)_S 1800 8980 _m
(vrl_Object)_S 80 _t
(*viewer)_S 80 _t
(=)_S 80 _t
(vrl_CameraGetObject\(vrl_WorldGetCamera\(\)\);)_S /Times-RomanR 600 _ff
1200 8560 _m
(It)_S 67 _t
(then)_S 67 _t
(checks)_S 67 _t
(to)_S 67 _t
(see)_S 67 _t
(if)_S 67 _t
(any)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(buttons)_S 67 _t
(are)_S 67 _t
(down)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(device;)_S 67 _t
(if)_S 67 _t
(they)_S 67 _t
(are,)_S 67 _t
(it)_S 67 _t
(resets)_S 67 _t
(the)_S 1200 8327 _m
(cube's)_S 67 _t
(rotations,)_S 67 _t
(rotates)_S 67 _t
(it)_S 67 _t
(to)_S 67 _t
(its)_S 67 _t
(original)_S 67 _t
(angle)_S 67 _t
(of)_S 67 _t
(45)_S 67 _t
(degrees)_S 67 _t
(around)_S 67 _t
(the)_S 67 _t
(Y)_S 67 _t
(axis,)_S 67 _t
(and)_S 67 _t
(moves)_S 67 _t
(it)_S 1200 8094 _m
(back)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(origin.)_S /CourierR 400 _ff
1800 7782 _m
(if)_S 80 _t
(\(dev->buttons\))_S 2400 7649 _m
({)_S 2400 7516 _m
(vrl_ObjectRotReset\(cube\);)_S 2400 7383 _m
(vrl_ObjectRotY\(cube,)_S 80 _t
(float2angle\(45\)\);)_S 2400 7250 _m
(vrl_ObjectVectorMove\(cube,)_S 80 _t
(vrl_VectorNULL\);)_S 2400 7117 _m
(})_S /Times-RomanR 600 _ff
1200 6697 _m
(Next,)_S 67 _t
(cube_mover\(\))_S 67 _t
(rotates)_S 67 _t
(the)_S 67 _t
(cube.)_S 134 _t
(First)_S 67 _t
(it)_S 67 _t
(does)_S 67 _t
(the)_S 67 _t
(Y)_S 67 _t
(axis,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(X)_S 67 _t
(axis,)_S 67 _t
(and)_S 67 _t
(finally)_S 67 _t
(the)_S 1200 6464 _m
(Z)_S 67 _t
(axis.)_S 134 _t
(In)_S 67 _t
(each)_S 67 _t
(case,)_S 67 _t
(it)_S 67 _t
(rotates)_S 67 _t
(the)_S 67 _t
(cube)_S 67 _t
(relative)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(viewer)_S 67 _t
(object)_S 67 _t
(by)_S 67 _t
(an)_S 67 _t
(amount)_S 67 _t
(that)_S 67 _t
(is)_S 1200 6231 _m
(read)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(device.)_S 1800 5819 _m
/CourierR 400 _ff
(vrl_ObjectRotate\(cube,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(YROT\),)_S 2400 5686 _m
(Y,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 5553 _m
(vrl_ObjectRotate\(cube,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(XROT\),)_S 2400 5420 _m
(X,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 5287 _m
(vrl_ObjectRotate\(cube,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(ZROT\),)_S 2400 5154 _m
(Z,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S /Times-RomanR 600 _ff
1200 4734 _m
(The)_S 67 _t
(final)_S 67 _t
(step)_S 67 _t
(is)_S 67 _t
(to)_S 67 _t
(read)_S 67 _t
(the)_S 67 _t
(X,)_S 67 _t
(Y)_S 67 _t
(and)_S 67 _t
(Z)_S 67 _t
(translation)_S 67 _t
(values)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(device,)_S 67 _t
(store)_S 67 _t
(them)_S 67 _t
(in)_S 67 _t
(a)_S 1200 4501 _m
(vector,)_S 67 _t
(and)_S 67 _t
(translate)_S 67 _t
(\(move\))_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(along)_S 67 _t
(that)_S 67 _t
(vector)_S 67 _t
(relative)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(viewer.)_S 1800 4089 _m
/CourierR 400 _ff
(vrl_VectorCreate\(v,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(X\),)_S 2400 3956 _m
(vrl_DeviceGetValue\(dev,)_S 80 _t
(Y\),)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(Z\)\);)_S 1800 3823 _m
(vrl_ObjectTranslate\(cube,)_S 80 _t
(v,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 3690 _m
(vrl_SystemRequestRefresh\(\);)_S /Times-RomanR 600 _ff
1200 3270 _m
(That's)_S 67 _t
(it.)_S 1200 2774 _m
/Times-BoldR 720 _ff
(An)_S 80 _t
(Independence)_S 80 _t
(Movement)_S 4187 2774 _m
/Times-RomanR 600 _ff
1800 2298 _m
(The)_S 67 _t
(example)_S 67 _t
(program)_S 67 _t
(above)_S 67 _t
(works)_S 67 _t
(fine.)_S 134 _t
(If)_S 67 _t
(you)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(Cyberman.)_S 134 _t
(And)_S 67 _t
(if)_S 67 _t
(it's)_S 67 _t
(on)_S 1200 2065 _m
(COM2.)_S 134 _t
(And)_S 67 _t
(if)_S 67 _t
(all)_S 67 _t
(you)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(do)_S 67 _t
(is)_S 67 _t
(move)_S 67 _t
(a)_S 67 _t
(cube.)_S 134 _t
(Wouldn't)_S 67 _t
(it)_S 67 _t
(be)_S 67 _t
(nice)_S 67 _t
(to)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(little)_S 67 _t
(more)_S 1200 1832 _m
(flexibility?)_S 8800 1255 _m
(11)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(As)_S 67 _t
(it)_S 67 _t
(turns)_S 67 _t
(out,)_S 67 _t
(you)_S 67 _t
(can.)_S 134 _t
(AVRIL)_S 67 _t
(supports)_S 67 _t
(the)_S 67 _t
(use)_S 67 _t
(of)_S 67 _t
("configuration)_S 67 _t
(files")_S 67 _t
(that)_S 67 _t
(store)_S 1200 11622 _m
(information)_S 67 _t
(about)_S 67 _t
(a)_S 67 _t
(user's)_S 67 _t
(preferences)_S 67 _t
(and)_S 67 _t
(hardware)_S 67 _t
(configuration.)_S 134 _t
(Our)_S 67 _t
(next)_S 67 _t
(example)_S 67 _t
(uses)_S 1200 11389 _m
(that)_S 67 _t
(configuration)_S 67 _t
(information)_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(our)_S 67 _t
(life)_S 67 _t
(simpler.)_S 1200 10977 _m
/CourierR 400 _ff
(/*)_S 80 _t
(EXAMPLE6)_S 80 _t
(--)_S 80 _t
(using)_S 80 _t
(the)_S 80 _t
(configuration)_S 80 _t
(file)_S 80 _t
(to)_S 80 _t
(simplify)_S 80 _t
(setup)_S 80 _t
(*/)_S 1200 10711 _m
(/*)_S 80 _t
(Written)_S 80 _t
(by)_S 80 _t
(Bernie)_S 80 _t
(Roehl,)_S 80 _t
(August)_S 80 _t
(1994)_S 80 _t
(*/)_S 1200 10445 _m
(#include)_S 80 _t
("avril.h")_S 1200 10179 _m
(static)_S 80 _t
(void)_S 80 _t
(object_manipulator\(void\))_S 1800 10046 _m
({)_S 1800 9913 _m
(extern)_S 80 _t
(vrl_Object)_S 80 _t
(*active_object;)_S 160 _t
(/*)_S 80 _t
(defined)_S 80 _t
(in)_S 80 _t
(input.c)_S 80 _t
(*/)_S 1800 9780 _m
(vrl_Device)_S 80 _t
(*dev)_S 80 _t
(=)_S 80 _t
(vrl_TaskGetData\(\);)_S 1800 9647 _m
(vrl_Object)_S 80 _t
(*viewer)_S 80 _t
(=)_S 80 _t
(vrl_CameraGetObject\(vrl_WorldGetCamera\(\)\);)_S 1800 9514 _m
(vrl_Vector)_S 80 _t
(v;)_S 1800 9381 _m
(if)_S 80 _t
(\(dev->buttons\))_S 2400 9248 _m
({)_S 2400 9115 _m
(vrl_ObjectRotReset\(active_object\);)_S 2400 8982 _m
(vrl_ObjectVectorMove\(active_object,)_S 80 _t
(vrl_VectorNULL\);)_S 2400 8849 _m
(})_S 1800 8716 _m
(vrl_ObjectRotate\(active_object,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(YROT\),)_S 2400 8583 _m
(Y,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 8450 _m
(vrl_ObjectRotate\(active_object,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(XROT\),)_S 2400 8317 _m
(X,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 8184 _m
(vrl_ObjectRotate\(active_object,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(ZROT\),)_S 2400 8051 _m
(Z,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 7918 _m
(vrl_VectorCreate\(v,)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(X\),)_S 2400 7785 _m
(vrl_DeviceGetValue\(dev,)_S 80 _t
(Y\),)_S 80 _t
(vrl_DeviceGetValue\(dev,)_S 80 _t
(Z\)\);)_S 1800 7652 _m
(vrl_ObjectTranslate\(active_object,)_S 80 _t
(v,)_S 80 _t
(VRL_COORD_OBJREL,)_S 80 _t
(viewer\);)_S 1800 7519 _m
(vrl_SystemRequestRefresh\(\);)_S 1800 7386 _m
(})_S 1200 7120 _m
(void)_S 80 _t
(main\(int)_S 80 _t
(argc,)_S 80 _t
(char)_S 80 _t
(*argv[]\))_S 1800 6987 _m
({)_S 1800 6854 _m
(vrl_Device)_S 80 _t
(*dev;)_S 1800 6721 _m
(vrl_SystemStartup\(\);)_S 1800 6588 _m
(vrl_ReadCFGfile\("example6.cfg"\);)_S 1800 6455 _m
(vrl_SystemCommandLine\(argc,)_S 80 _t
(argv\);)_S 1800 6322 _m
(dev)_S 80 _t
(=)_S 80 _t
(vrl_DeviceFind\("manipulator"\);)_S 1800 6189 _m
(if)_S 80 _t
(\(dev\))_S 2400 6056 _m
(vrl_TaskCreate\(object_manipulator,)_S 80 _t
(dev,)_S 80 _t
(0\);)_S 1800 5923 _m
(vrl_SystemRun\(\);)_S 1800 5790 _m
(})_S /Times-RomanR 600 _ff
1200 5370 _m
(Our)_S 67 _t
(main\(\))_S 67 _t
(is)_S 67 _t
(shorter,)_S 67 _t
(and)_S 67 _t
(simpler.)_S 134 _t
(You'll)_S 67 _t
(notice)_S 67 _t
(that)_S 67 _t
(we've)_S 67 _t
(added)_S 67 _t
(a)_S 67 _t
(call)_S 67 _t
(to)_S 1200 5137 _m
(vrl_ReadCFGfile\(\);)_S 67 _t
(it)_S 67 _t
(reads)_S 67 _t
(the)_S 67 _t
(configuration)_S 67 _t
(file)_S 67 _t
(we)_S 67 _t
(specify)_S 67 _t
(\(in)_S 67 _t
(this)_S 67 _t
(case)_S 67 _t
("example6.cfg"\),)_S 1200 4904 _m
(and)_S 67 _t
(configures)_S 67 _t
(and)_S 67 _t
(initializes)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(devices)_S 67 _t
(\(even)_S 67 _t
(opening)_S 67 _t
(the)_S 67 _t
(serial)_S 67 _t
(ports)_S 67 _t
(as)_S 67 _t
(specified)_S 67 _t
(in)_S 67 _t
(the)_S 1200 4671 _m
(configuration)_S 67 _t
(file\).)_S 134 _t
(The)_S 67 _t
(format)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(configuration)_S 67 _t
(file)_S 67 _t
(is)_S 67 _t
(described)_S 67 _t
(in)_S 67 _t
(Appendix)_S 67 _t
(B.)_S 1800 4205 _m
(The)_S 67 _t
(vrl_SystemCommandLine\(\))_S 67 _t
(function)_S 67 _t
(reads)_S 67 _t
(the)_S 67 _t
(command)_S 67 _t
(line,)_S 67 _t
(and)_S 67 _t
(loads)_S 67 _t
(whatever)_S 1200 3972 _m
(PLG)_S 67 _t
(files,)_S 67 _t
(FIG)_S 67 _t
(files)_S 67 _t
(and)_S 67 _t
(WLD)_S 67 _t
(files)_S 67 _t
(we)_S 67 _t
(specify)_S 67 _t
(there.)_S 134 _t
(The)_S 67 _t
(vrl_DeviceFind\(\))_S 67 _t
(function)_S 67 _t
(for)_S 67 _t
(a)_S 1200 3739 _m
(device)_S 67 _t
(that)_S 67 _t
(was)_S 67 _t
(given)_S 67 _t
(the)_S 67 _t
(name)_S 67 _t
("manipulator")_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(configuration)_S 67 _t
(file,)_S 67 _t
(and)_S 67 _t
(if)_S 67 _t
(it)_S 67 _t
(finds)_S 67 _t
(one)_S 67 _t
(it)_S 1200 3506 _m
(creates)_S 67 _t
(a)_S 67 _t
(task)_S 67 _t
(to)_S 67 _t
(move)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(manipulation)_S 67 _t
(device.)_S 1800 3040 _m
(The)_S 67 _t
(object_manipulator\(\))_S 67 _t
(function)_S 67 _t
(is)_S 67 _t
(almost)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(as)_S 67 _t
(cube_mover\(\),)_S 67 _t
(but)_S 67 _t
(it)_S 67 _t
(uses)_S 67 _t
(an)_S 1200 2805 _m
(external)_S 67 _t
(variable)_S 67 _t
(called)_S 67 _t
3167 2805 _m
/Times-ItalicR 600 _ff
(active_object)_S 4233 2805 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(As)_S 67 _t
(we'll)_S 67 _t
(see)_S 67 _t
(later,)_S 67 _t
(this)_S 67 _t
(variable)_S 67 _t
(is)_S 67 _t
(found)_S 67 _t
(in)_S 67 _t
(input.c)_S 1200 2572 _m
(\(where)_S 67 _t
(it)_S 67 _t
(gets)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(most)_S 67 _t
(recently)_S 67 _t
(selected)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(mouse\).)_S 8800 1255 _m
(12)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(Using)_S 67 _t
(this)_S 67 _t
(program,)_S 67 _t
(we)_S 67 _t
(can)_S 67 _t
(explore)_S 67 _t
(a)_S 67 _t
(virtual)_S 67 _t
(world,)_S 67 _t
(click)_S 67 _t
(on)_S 67 _t
(objects)_S 67 _t
(to)_S 67 _t
(select)_S 67 _t
(them,)_S 1200 11622 _m
(and)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(manipulator)_S 67 _t
(device)_S 67 _t
(we)_S 67 _t
(specify)_S 67 _t
(in)_S 67 _t
(our)_S 67 _t
(configuration)_S 67 _t
(file)_S 67 _t
(to)_S 67 _t
(manipulate)_S 67 _t
(the)_S 67 _t
(selected)_S 1200 11389 _m
(object.)_S 134 _t
(All)_S 67 _t
(with)_S 67 _t
(just)_S 67 _t
(a)_S 67 _t
(few)_S 67 _t
(lines)_S 67 _t
(of)_S 67 _t
(code.)_S 1200 10893 _m
/Times-BoldR 720 _ff
(A)_S 80 _t
(Tiny)_S 80 _t
(Program)_S 2933 10893 _m
/Times-RomanR 600 _ff
1800 10417 _m
(AVRIL)_S 67 _t
(provides)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(useful)_S 67 _t
(utility)_S 67 _t
(routines)_S 67 _t
(that)_S 67 _t
(reduce)_S 67 _t
(the)_S 67 _t
(amount)_S 67 _t
(of)_S 67 _t
(actual)_S 1200 10184 _m
(programming)_S 67 _t
(you)_S 67 _t
(have)_S 67 _t
(to)_S 67 _t
(do)_S 67 _t
(in)_S 67 _t
(order)_S 67 _t
(to)_S 67 _t
(create)_S 67 _t
(a)_S 67 _t
(virtual)_S 67 _t
(world.)_S 134 _t
(A)_S 67 _t
(minimal)_S 67 _t
(AVRIL)_S 67 _t
(program)_S 1200 9951 _m
(looks)_S 67 _t
(like)_S 67 _t
(this:)_S 1200 9539 _m
/CourierR 400 _ff
(/*)_S 80 _t
(A)_S 80 _t
(very)_S 80 _t
(simple)_S 80 _t
(demo)_S 80 _t
(of)_S 80 _t
(AVRIL)_S 80 _t
(*/)_S 1200 9273 _m
(/*)_S 80 _t
(Written)_S 80 _t
(by)_S 80 _t
(Bernie)_S 80 _t
(Roehl,)_S 80 _t
(April)_S 80 _t
(1994)_S 80 _t
(*/)_S 1200 9007 _m
(#include)_S 80 _t
("avril.h")_S 1200 8741 _m
(void)_S 80 _t
(main\(int)_S 80 _t
(argc,)_S 80 _t
(char)_S 80 _t
(*argv[]\))_S 1800 8608 _m
({)_S 1800 8475 _m
(vrl_SystemStartup\(\);)_S 1800 8342 _m
(vrl_ReadCFGfile\(NULL\);)_S 1800 8209 _m
(vrl_SystemCommandLine\(argc,)_S 80 _t
(argv\);)_S 1800 8076 _m
(vrl_SystemRun\(\);)_S 1800 7943 _m
(})_S /Times-RomanR 600 _ff
1200 7523 _m
(The)_S 67 _t
(NULL)_S 67 _t
(parameter)_S 67 _t
(to)_S 67 _t
(vrl_ReadCFGfile\(\))_S 67 _t
(causes)_S 67 _t
(it)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(its)_S 67 _t
(built-in)_S 67 _t
(default)_S 67 _t
(of)_S 67 _t
("avril.cfg".)_S 67 _t
1200 7290 _m
(This)_S 67 _t
(example)_S 67 _t
(shows)_S 67 _t
(just)_S 67 _t
(how)_S 67 _t
(little)_S 67 _t
(it)_S 67 _t
(takes)_S 67 _t
(to)_S 67 _t
(create)_S 67 _t
(a)_S 67 _t
(VR)_S 67 _t
(program)_S 67 _t
(using)_S 67 _t
(AVRIL.)_S 1200 6794 _m
/Times-BoldR 720 _ff
(Of)_S 80 _t
(Mice)_S 80 _t
(and)_S 80 _t
(Menus)_S 3293 6794 _m
/Times-RomanR 600 _ff
1800 6318 _m
(By)_S 67 _t
(now,)_S 67 _t
(you've)_S 67 _t
(probably)_S 67 _t
(noticed)_S 67 _t
(that)_S 67 _t
(something)_S 67 _t
(is)_S 67 _t
(missing;)_S 67 _t
(how)_S 67 _t
(have)_S 67 _t
(our)_S 67 _t
(programs)_S 1200 6085 _m
(been)_S 67 _t
(able)_S 67 _t
(to)_S 67 _t
(respond)_S 67 _t
(to)_S 67 _t
(our)_S 67 _t
(keystrokes)_S 67 _t
(and)_S 67 _t
(mouse)_S 67 _t
(presses?)_S 134 _t
(Well,)_S 67 _t
(AVRIL)_S 67 _t
(does)_S 67 _t
(some)_S 67 _t
(of)_S 67 _t
(this)_S 1200 5852 _m
(for)_S 67 _t
(you)_S 67 _t
(automatically.)_S 134 _t
(When)_S 67 _t
(you)_S 67 _t
(call)_S 67 _t
(vrl_SystemRun\(\),)_S 67 _t
(you're)_S 67 _t
(essentially)_S 67 _t
(turning)_S 67 _t
(control)_S 67 _t
(of)_S 1200 5619 _m
(the)_S 67 _t
(application)_S 67 _t
(over)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(system.)_S 134 _t
(From)_S 67 _t
(time)_S 67 _t
(to)_S 67 _t
(time,)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(will)_S 67 _t
(make)_S 67 _t
(calls)_S 67 _t
(back)_S 67 _t
(to)_S 1200 5386 _m
(your)_S 67 _t
(application)_S 67 _t
(to)_S 67 _t
(give)_S 67 _t
(you)_S 67 _t
(control)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(need)_S 67 _t
(it.)_S 134 _t
(\(If)_S 67 _t
(you)_S 67 _t
(don't)_S 67 _t
(like)_S 67 _t
(this)_S 67 _t
(approach,)_S 67 _t
(you're)_S 1200 5153 _m
(not)_S 67 _t
(stuck)_S 67 _t
(with)_S 67 _t
(it;)_S 67 _t
(the)_S 67 _t
(source)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(vrl_System)_S 67 _t
(functions)_S 67 _t
(is)_S 67 _t
(provided,)_S 67 _t
(so)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(do)_S 67 _t
(things)_S 1200 4920 _m
(however)_S 67 _t
(you)_S 67 _t
(like\).)_S 1800 4454 _m
(There)_S 67 _t
(are)_S 67 _t
(currently)_S 67 _t
(five)_S 67 _t
(places)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(calls)_S 67 _t
(your)_S 67 _t
(application.)_S 134 _t
(Just)_S 67 _t
(before)_S 1200 4221 _m
(starting)_S 67 _t
(its)_S 67 _t
(main)_S 67 _t
(internal)_S 67 _t
(loop,)_S 67 _t
(it)_S 67 _t
(calls)_S 67 _t
(vrl_ApplicationInit\(\).)_S 134 _t
(Just)_S 67 _t
(after)_S 67 _t
(it)_S 67 _t
(clears)_S 67 _t
(the)_S 67 _t
(screen)_S 67 _t
(\(or)_S 1200 3988 _m
(draws)_S 67 _t
(the)_S 67 _t
(horizon,)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(case)_S 67 _t
(may)_S 67 _t
(be\))_S 67 _t
(but)_S 67 _t
(before)_S 67 _t
(it)_S 67 _t
(does)_S 67 _t
(the)_S 67 _t
(actual)_S 67 _t
(rendering)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(scene,)_S 67 _t
(it)_S 1200 3755 _m
(calls)_S 67 _t
(vrl_ApplicationDrawUnder\(\).)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(use)_S 67 _t
(that)_S 67 _t
(routine)_S 67 _t
(to)_S 67 _t
("underlay")_S 67 _t
(information)_S 67 _t
(on)_S 67 _t
(the)_S 1200 3522 _m
(screen)_S 67 _t
(that)_S 67 _t
(appears)_S 67 _t
(behind)_S 67 _t
(any)_S 67 _t
(objects)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(drawn.)_S 134 _t
(If)_S 67 _t
(you)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(your)_S 67 _t
(own)_S 1200 3289 _m
(background,)_S 67 _t
(just)_S 67 _t
(turn)_S 67 _t
(off)_S 67 _t
(screen)_S 67 _t
(clearing)_S 67 _t
(using)_S 67 _t
(vrl_WorldSetScreenClear\(0\))_S 67 _t
(and)_S 67 _t
(do)_S 67 _t
(your)_S 1200 3056 _m
(background)_S 67 _t
(drawing)_S 67 _t
(in)_S 67 _t
(vrl_ApplicationDrawUnder\(\).)_S 1800 2590 _m
(After)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(has)_S 67 _t
(rendered)_S 67 _t
(the)_S 67 _t
(entire)_S 67 _t
(scene,)_S 67 _t
(it)_S 67 _t
(calls)_S 67 _t
(vrl_ApplicationDrawOver\(\);)_S 67 _t
(this)_S 1200 2357 _m
(allows)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
("overlay")_S 67 _t
(information)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen.)_S 134 _t
(The)_S 67 _t
(vrl_ApplicationDrawOver\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 1200 2124 _m
(where)_S 67 _t
(you)_S 67 _t
(would)_S 67 _t
(put)_S 67 _t
(any)_S 67 _t
("heads-up)_S 67 _t
(display")_S 67 _t
(type)_S 67 _t
(information,)_S 67 _t
(such)_S 67 _t
(as)_S 67 _t
(frame)_S 67 _t
(rate)_S 67 _t
(or)_S 1200 1891 _m
(orientation)_S 67 _t
(information.)_S 8800 1255 _m
(13)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(Whenever)_S 67 _t
(a)_S 67 _t
(keystroke)_S 67 _t
(is)_S 67 _t
(detected,)_S 67 _t
(it's)_S 67 _t
(passed)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(vrl_ApplicationKey\(\))_S 67 _t
(routine.)_S 67 _t
1200 11622 _m
(Similarly,)_S 67 _t
(mouse-up)_S 67 _t
(events)_S 67 _t
(are)_S 67 _t
(passed)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(application)_S 67 _t
(using)_S 67 _t
(vrl_ApplicationMouseUp\(\).)_S 1800 11156 _m
(All)_S 67 _t
(of)_S 67 _t
(these)_S 67 _t
(routines)_S 67 _t
(have)_S 67 _t
(default)_S 67 _t
(versions)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(AVRIL)_S 67 _t
(library,)_S 67 _t
(so)_S 67 _t
(you)_S 67 _t
(don't)_S 67 _t
(have)_S 67 _t
(to)_S 1200 10923 _m
(write)_S 67 _t
(all)_S 67 _t
(of)_S 67 _t
(them.)_S 134 _t
(The)_S 67 _t
(default)_S 67 _t
(versions)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(functions)_S 67 _t
(vrl_ApplicationDrawUnder\(\),)_S 1200 10690 _m
(vrl_ApplicationDrawOver\(\))_S 67 _t
(and)_S 67 _t
(vrl_ApplicationMouseUp\(\))_S 67 _t
(are)_S 67 _t
(empty)_S 67 _t
(\(i.e.,)_S 67 _t
(they)_S 67 _t
(don't)_S 67 _t
(do)_S 1200 10457 _m
(anything\).)_S 134 _t
(The)_S 67 _t
(default)_S 67 _t
(version)_S 67 _t
(of)_S 67 _t
(vrl_ApplicationKey\(\))_S 67 _t
(just)_S 67 _t
(checks)_S 67 _t
(to)_S 67 _t
(see)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(has)_S 1200 10224 _m
(pressed)_S 67 _t
(the)_S 67 _t
(ESC)_S 67 _t
(key;)_S 67 _t
(if)_S 67 _t
(they)_S 67 _t
(have,)_S 67 _t
(vrl_SystemStopRunning\(\))_S 67 _t
(is)_S 67 _t
(called.)_S 1800 9758 _m
(In)_S 67 _t
(addition)_S 67 _t
(to)_S 67 _t
(all)_S 67 _t
(this,)_S 67 _t
(there's)_S 67 _t
(a)_S 67 _t
(simple)_S 67 _t
(menu)_S 67 _t
(system)_S 67 _t
(built)_S 67 _t
(into)_S 67 _t
(this)_S 67 _t
(version)_S 67 _t
(of)_S 67 _t
(AVRIL;)_S 1200 9525 _m
(it)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(described)_S 67 _t
(later.)_S 1200 9029 _m
/Times-BoldR 720 _ff
(A)_S 80 _t
(Moving)_S 80 _t
(Experience)_S 3467 9029 _m
/Times-RomanR 600 _ff
1200 8553 _m
(Objects)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(functions)_S 67 _t
(and)_S 67 _t
(data)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(them.)_S 134 _t
(When)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(walks)_S 67 _t
(through)_S 1200 8320 _m
(the)_S 67 _t
(hierarchy)_S 67 _t
(of)_S 67 _t
(objects,)_S 67 _t
(it)_S 67 _t
(calls)_S 67 _t
(each)_S 67 _t
(object's)_S 67 _t
(function;)_S 67 _t
(those)_S 67 _t
(functions)_S 67 _t
(can)_S 67 _t
(make)_S 67 _t
(use)_S 67 _t
(of)_S 67 _t
(the)_S 1200 8087 _m
(data)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(object.)_S 1800 7621 _m
(The)_S 67 _t
(default)_S 67 _t
(vrl_ApplicationInit\(\))_S 67 _t
(routine)_S 67 _t
(sets)_S 67 _t
(up)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(function)_S 67 _t
(to)_S 67 _t
(let)_S 67 _t
(an)_S 67 _t
(input)_S 1200 7388 _m
(device)_S 67 _t
(\(the)_S 67 _t
(keypad)_S 67 _t
(by)_S 67 _t
(default\))_S 67 _t
(move)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(around.)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(look)_S 67 _t
(at)_S 67 _t
(the)_S 67 _t
(code)_S 67 _t
(in)_S 67 _t
(input.c)_S 67 _t
(for)_S 1200 7155 _m
(all)_S 67 _t
(the)_S 67 _t
(details,)_S 67 _t
(but)_S 67 _t
(essentially)_S 67 _t
(here's)_S 67 _t
(what)_S 67 _t
(it)_S 67 _t
(does)_S 1800 6743 _m
/CourierR 400 _ff
(vrl_Device)_S 80 _t
(*headdev)_S 80 _t
(=)_S 80 _t
(vrl_DeviceFind\("head"\);)_S 1800 6610 _m
(if)_S 80 _t
(\(headdev)_S 80 _t
(==)_S 80 _t
(NULL\))_S 2400 6477 _m
(headdev)_S 80 _t
(=)_S 80 _t
(vrl_DeviceOpen\(vrl_KeypadDevice,)_S 80 _t
(0\);)_S 1800 6344 _m
(head)_S 80 _t
(=)_S 80 _t
(vrl_CameraGetObject\(vrl_WorldGetCamera\(\)\);)_S 1800 6211 _m
(vrl_ObjectSetApplicationData\(head,)_S 80 _t
(headdev\);)_S 1800 6078 _m
(vrl_ObjectSetFunction\(head,)_S 80 _t
(object_move_locally\);)_S /Times-RomanR 600 _ff
1200 5658 _m
(If)_S 67 _t
(no)_S 67 _t
(head)_S 67 _t
(device)_S 67 _t
(is)_S 67 _t
(found)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(configuration)_S 67 _t
(file,)_S 67 _t
(the)_S 67 _t
(keypad)_S 67 _t
(is)_S 67 _t
(used.)_S 134 _t
(The)_S 67 _t
(head)_S 67 _t
(is)_S 67 _t
(found)_S 1200 5425 _m
(\(the)_S 67 _t
(head)_S 67 _t
(being)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(to)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(camera)_S 67 _t
(is)_S 67 _t
(attached\),)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(head)_S 67 _t
(object's)_S 67 _t
(application-)_S 1200 5192 _m
(specific)_S 67 _t
(data)_S 67 _t
(field)_S 67 _t
(is)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(point)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(headdev.)_S 134 _t
(The)_S 67 _t
(head's)_S 67 _t
(function)_S 67 _t
(is)_S 67 _t
(set)_S 67 _t
(to)_S 1200 4959 _m
(object_move_locally\(\),)_S 67 _t
(which)_S 67 _t
(looks)_S 67 _t
(like)_S 67 _t
(this:)_S 1200 4547 _m
/CourierR 400 _ff
(static)_S 80 _t
(int)_S 80 _t
(object_move_locally\(vrl_Object)_S 80 _t
(*obj\))_S 1800 4414 _m
({)_S 1800 4281 _m
(return)_S 80 _t
(object_mover\(obj,)_S 80 _t
(vrl_ObjectGetApplicationData\(obj\),)_S 80 _t
(VRL_COORD_LOCAL\);)_S 1800 4148 _m
(})_S /Times-RomanR 600 _ff
1200 3728 _m
(The)_S 67 _t
(functions)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(set)_S 67 _t
(on)_S 67 _t
(objects)_S 67 _t
(get)_S 67 _t
(called)_S 67 _t
(whenever)_S 67 _t
(the)_S 67 _t
(world)_S 67 _t
(is)_S 67 _t
(updated)_S 67 _t
(by)_S 67 _t
(the)_S 1200 3495 _m
(vrl_ObjectUpdate\(\))_S 67 _t
(or)_S 67 _t
(vrl_WorldUpdate\(\))_S 67 _t
(routines.)_S 134 _t
(When)_S 67 _t
(object_move_locally\(\))_S 67 _t
(gets)_S 67 _t
(called,)_S 1200 3262 _m
(it)_S 67 _t
(just)_S 67 _t
(calls)_S 67 _t
(object_mover\(\))_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(object,)_S 67 _t
(passing)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(pointer)_S 67 _t
(which)_S 67 _t
(is)_S 67 _t
(stored)_S 67 _t
(in)_S 67 _t
(the)_S 1200 3029 _m
(object's)_S 67 _t
(application)_S 67 _t
(data.)_S 1800 2563 _m
(The)_S 67 _t
(object_mover\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(basically)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(movement)_S 67 _t
(tasks)_S 67 _t
(that)_S 67 _t
(were)_S 1200 2330 _m
(described)_S 67 _t
(earlier)_S 67 _t
(\(the)_S 67 _t
(ones)_S 67 _t
(in)_S 67 _t
(example)_S 67 _t
(6\))_S 67 _t
(but)_S 67 _t
(slightly)_S 67 _t
(more)_S 67 _t
(general.)_S 8800 1255 _m
(14)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11825 _m
/Times-BoldR 720 _ff
(Lots)_S 80 _t
(of)_S 80 _t
(Input)_S 2587 11825 _m
/Times-RomanR 600 _ff
1800 11349 _m
(The)_S 67 _t
(file)_S 67 _t
(input.c)_S 67 _t
(contains)_S 67 _t
(simple)_S 67 _t
(versions)_S 67 _t
(of)_S 67 _t
(vrl_ApplicationDrawOver\(\),)_S 1200 11116 _m
(vrl_ApplicationMouseUp\(\),)_S 67 _t
(vrl_ApplicationKey\(\))_S 67 _t
(and)_S 67 _t
(vrl_ApplicationInit\(\))_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(shared)_S 67 _t
(by)_S 1200 10883 _m
(all)_S 67 _t
(our)_S 67 _t
(example)_S 67 _t
(programs.)_S 134 _t
(The)_S 67 _t
(vrl_ApplicationMouseUp\(\))_S 67 _t
(routine)_S 67 _t
(looks)_S 67 _t
(like)_S 67 _t
(this:)_S /CourierR 400 _ff
1200 10338 _m
(vrl_Object)_S 80 _t
(*active_object)_S 80 _t
(=)_S 80 _t
(NULL;)_S 160 _t
(/*)_S 80 _t
(points)_S 80 _t
(to)_S 80 _t
(the)_S 80 _t
(currently-selected)_S 80 _t
(object,)_S 80 _t
(if)_S 80 _t
(any)_S 80 _t
(*/)_S 1200 10072 _m
(void)_S 80 _t
(vrl_ApplicationMouseUp\(int)_S 80 _t
(x,)_S 80 _t
(int)_S 80 _t
(y,)_S 80 _t
(unsigned)_S 80 _t
(int)_S 80 _t
(buttons\))_S 1800 9939 _m
({)_S 1800 9806 _m
(vrl_Object)_S 80 _t
(*old_active)_S 80 _t
(=)_S 80 _t
(active_object;)_S 1800 9673 _m
(if)_S 80 _t
(\(\(buttons)_S 80 _t
(&)_S 80 _t
(1\))_S 80 _t
(==)_S 80 _t
(0\))_S 2400 9540 _m
(return;)_S 1800 9407 _m
(vrl_RenderMonitorInit\(x,)_S 80 _t
(y\);)_S 1800 9274 _m
(vrl_SystemRender\(NULL\);)_S 160 _t
(/*)_S 80 _t
(redraw)_S 80 _t
(screen)_S 80 _t
(*/)_S 1800 9141 _m
(if)_S 80 _t
(\(vrl_RenderMonitorRead\(&active_object,)_S 80 _t
(NULL,)_S 80 _t
(NULL\)\))_S 2400 9008 _m
({)_S 2400 8875 _m
(if)_S 80 _t
(\(active_object)_S 80 _t
(==)_S 80 _t
(old_active\))_S 3000 8742 _m
(active_object)_S 80 _t
(=)_S 80 _t
(NULL;)_S 2400 8609 _m
(else)_S 3000 8476 _m
(vrl_ObjectSetHighlight\(active_object,)_S 80 _t
(1\);)_S 2400 8343 _m
(})_S 1800 8210 _m
(if)_S 80 _t
(\(old_active\))_S 2400 8077 _m
(vrl_ObjectSetHighlight\(old_active,)_S 80 _t
(0\);)_S 1800 7944 _m
(vrl_SystemRequestRefresh\(\);)_S 1800 7811 _m
(})_S /Times-RomanR 600 _ff
1200 7391 _m
(This)_S 67 _t
(routine)_S 67 _t
(uses)_S 67 _t
(the)_S 67 _t
("Monitor")_S 67 _t
(facility)_S 67 _t
(of)_S 67 _t
(AVRIL)_S 67 _t
(to)_S 67 _t
(allow)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(to)_S 67 _t
(select)_S 67 _t
(objects.)_S 134 _t
(The)_S 1200 7158 _m
(mouse)_S 67 _t
(location)_S 67 _t
(is)_S 67 _t
(passed)_S 67 _t
(to)_S 67 _t
(vrl_RenderMonitor\(\);)_S 67 _t
(this)_S 67 _t
(tells)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(to)_S 67 _t
(keep)_S 67 _t
(an)_S 67 _t
(eye)_S 67 _t
(on)_S 67 _t
(that)_S 1200 6925 _m
(point)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen.)_S 134 _t
(The)_S 67 _t
(screen)_S 67 _t
(is)_S 67 _t
(then)_S 67 _t
(re-drawn)_S 67 _t
(using)_S 67 _t
(vrl_SystemRender\(\),)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(monitor)_S 1200 6692 _m
(is)_S 67 _t
(read)_S 67 _t
(using)_S 67 _t
(vrl_RenderMonitorRead\(\).)_S 134 _t
(If)_S 67 _t
(that)_S 67 _t
(function)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value,)_S 67 _t
(then)_S 67 _t
(the)_S 1200 6457 _m
(mouse)_S 67 _t
(cursor)_S 67 _t
(was)_S 67 _t
(on)_S 67 _t
(top)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(object;)_S 67 _t
(since)_S 67 _t
(we)_S 67 _t
(passed)_S 67 _t
5803 6457 _m
/Times-ItalicR 600 _ff
(&active_object)_S 7025 6457 _m
/Times-RomanR 600 _ff
67 _t
(to)_S 67 _t
(the)_S 1200 6222 _m
(vrl_RenderMonitorRead\(\))_S 67 _t
(function,)_S 67 _t
4150 6222 _m
/Times-ItalicR 600 _ff
(active_object)_S 5217 6222 _m
/Times-RomanR 600 _ff
67 _t
(now)_S 67 _t
(points)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(mouse)_S 1200 5989 _m
(cursor)_S 67 _t
(was)_S 67 _t
(on)_S 67 _t
(top)_S 67 _t
(of.)_S 134 _t
(This)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(that)_S 67 _t
(got)_S 67 _t
(moved)_S 67 _t
(around)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(manipulation)_S 67 _t
(device)_S 67 _t
(in)_S 1200 5754 _m
(example)_S 67 _t
(6.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(clicks)_S 67 _t
(again)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(previously-selected)_S 67 _t
(object,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
7703 5754 _m
/Times-ItalicR 600 _ff
(active_object)_S 8770 5754 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 1200 5521 _m
(set)_S 67 _t
(to)_S 67 _t
(NULL;)_S 67 _t
(otherwise,)_S 67 _t
(the)_S 67 _t
(newly-activated)_S 67 _t
(object)_S 67 _t
(gets)_S 67 _t
(its)_S 67 _t
(highlighting)_S 67 _t
(turned)_S 67 _t
(on.)_S 134 _t
(In)_S 67 _t
(any)_S 1200 5288 _m
(case,)_S 67 _t
(we)_S 67 _t
(un-highlight)_S 67 _t
(the)_S 67 _t
(previously)_S 67 _t
(active)_S 67 _t
(object,)_S 67 _t
(and)_S 67 _t
(tell)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(the)_S 67 _t
(screen)_S 67 _t
(needs)_S 67 _t
(to)_S 67 _t
(be)_S 1200 5055 _m
(refreshed)_S 67 _t
(\(since)_S 67 _t
(the)_S 67 _t
(highlighting)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(has)_S 67 _t
(changed\).)_S 1800 4589 _m
(The)_S 67 _t
(vrl_ApplicationKey\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(very)_S 67 _t
(simple;)_S 67 _t
(the)_S 67 _t
(only)_S 67 _t
(complicated)_S 67 _t
(part)_S 67 _t
(is)_S 67 _t
(that)_S 67 _t
(it)_S 1200 4356 _m
(handles)_S 67 _t
(auto-repeat)_S 67 _t
(of)_S 67 _t
(keystrokes:)_S 1200 3944 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ApplicationKey\(unsigned)_S 80 _t
(int)_S 80 _t
(c\))_S 1800 3811 _m
({)_S 1800 3678 _m
(static)_S 80 _t
(int)_S 80 _t
(lastkey)_S 80 _t
(=)_S 80 _t
(0;)_S 1800 3545 _m
(if)_S 80 _t
(\(c)_S 80 _t
(==)_S 80 _t
(INS\))_S 2400 3412 _m
({)_S 2400 3279 _m
(int)_S 80 _t
(i;)_S 2400 3146 _m
(for)_S 80 _t
(\(i)_S 80 _t
(=)_S 80 _t
(0;)_S 80 _t
(i)_S 80 _t
(<)_S 80 _t
(100;)_S 80 _t
(++i\))_S 3000 3013 _m
({)_S 3000 2880 _m
(process_key\(lastkey\);)_S 3000 2747 _m
(vrl_SystemRender\(vrl_ObjectUpdate\(vrl_WorldGetObjectTree\(\)\)\);)_S 3000 2614 _m
(})_S 2400 2481 _m
(})_S 1800 2348 _m
(else)_S 2400 2215 _m
(process_key\(lastkey)_S 80 _t
(=)_S 80 _t
(c\);)_S 1800 2082 _m
(})_S 8800 1255 _m
/Times-RomanR 600 _ff
(15)_S /CourierR 400 _ff
_ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(If)_S 67 _t
(the)_S 67 _t
(key)_S 67 _t
(is)_S 67 _t
(INS)_S 67 _t
(\(defined)_S 67 _t
(in)_S 67 _t
(avrilkey.h\),)_S 67 _t
(the)_S 67 _t
(last)_S 67 _t
(key)_S 67 _t
(is)_S 67 _t
(re-processed)_S 67 _t
(100)_S 67 _t
(times;)_S 67 _t
(all)_S 67 _t
(other)_S 67 _t
(keys)_S 1200 11620 _m
(are)_S 67 _t
(processed)_S 67 _t
(once,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
3529 11620 _m
/Times-ItalicR 600 _ff
(lastkey)_S 4084 11620 _m
/Times-RomanR 600 _ff
67 _t
(variable)_S 67 _t
(is)_S 67 _t
(updated.)_S 134 _t
(Notice)_S 67 _t
(the)_S 67 _t
(call)_S 67 _t
(to)_S 1200 11387 _m
(vrl_SystemRender\(\);)_S 67 _t
(it)_S 67 _t
(looks)_S 67 _t
(pretty)_S 67 _t
(complicated,)_S 67 _t
(but)_S 67 _t
(after)_S 67 _t
(you)_S 67 _t
(read)_S 67 _t
(some)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(later)_S 67 _t
(sections)_S 1200 11154 _m
(it)_S 67 _t
(will)_S 67 _t
(make)_S 67 _t
(more)_S 67 _t
(sense.)_S 134 _t
(We)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(update)_S 67 _t
(the)_S 67 _t
(world)_S 67 _t
(and)_S 67 _t
(re-render)_S 67 _t
(the)_S 67 _t
(scene)_S 67 _t
(after)_S 67 _t
(every)_S 1200 10921 _m
(keystroke,)_S 67 _t
(so)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(will)_S 67 _t
(see)_S 67 _t
(the)_S 67 _t
(ongoing)_S 67 _t
(changes.)_S 1800 10455 _m
(The)_S 67 _t
(process_key\(\))_S 67 _t
(function)_S 67 _t
(is)_S 67 _t
(fairly)_S 67 _t
(long,)_S 67 _t
(and)_S 67 _t
(will)_S 67 _t
(probably)_S 67 _t
(change)_S 67 _t
(from)_S 67 _t
(version)_S 67 _t
(to)_S 1200 10222 _m
(version)_S 67 _t
(of)_S 67 _t
(AVRIL.)_S 134 _t
(Most)_S 67 _t
(of)_S 67 _t
(it)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(pretty)_S 67 _t
(easy)_S 67 _t
(to)_S 67 _t
(understand,)_S 67 _t
(so)_S 67 _t
(you)_S 67 _t
(may)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(take)_S 1200 9989 _m
(a)_S 67 _t
(few)_S 67 _t
(minutes)_S 67 _t
(to)_S 67 _t
(look)_S 67 _t
(through)_S 67 _t
(the)_S 67 _t
(source)_S 67 _t
(code)_S 67 _t
(in)_S 67 _t
(input.c)_S 67 _t
(\(where)_S 67 _t
(you'll)_S 67 _t
(also)_S 67 _t
(find)_S 67 _t
(the)_S 67 _t
(source)_S 1200 9756 _m
(for)_S 67 _t
(the)_S 67 _t
(vrl_ApplicationMouseUp\(\))_S 67 _t
(and)_S 67 _t
(vrl_ApplicationDrawOver\(\))_S 67 _t
(routines\).)_S 1800 9290 _m
(The)_S 67 _t
(vrl_ApplicationDrawOver\(\))_S 67 _t
(routine)_S 67 _t
(provides)_S 67 _t
(the)_S 67 _t
(position,)_S 67 _t
(frame)_S 67 _t
(rate,)_S 67 _t
(compass)_S 67 _t
(and)_S 1200 9057 _m
("heads-up)_S 67 _t
(display")_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(AVRIL)_S 67 _t
(demos.)_S 134 _t
(It)_S 67 _t
(looks)_S 67 _t
(like)_S 67 _t
(this:)_S 1200 8645 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ApplicationDrawOver\(vrl_RenderStatus)_S 80 _t
(*stat\))_S 1800 8512 _m
({)_S 1800 8379 _m
(vrl_Camera)_S 80 _t
(*cam)_S 80 _t
(=)_S 80 _t
(vrl_WorldGetCamera\(\);)_S 1800 8246 _m
(char)_S 80 _t
(buff[100];)_S 1800 8113 _m
(if)_S 80 _t
(\(vrl_ConfigGetPositionDisplay\(\)\))_S 2400 7980 _m
({)_S 2400 7847 _m
(sprintf\(buff,)_S 80 _t
("Position:)_S 80 _t
(%ld,%ld",)_S 80 _t
(vrl_CameraGetX\(cam\),)_S 80 _t
(vrl_CameraGetZ\(cam\)\);)_S 2400 7714 _m
(vrl_UserInterfaceDropText\(10,)_S 80 _t
(10,)_S 80 _t
(15,)_S 80 _t
(buff\);)_S 2400 7581 _m
(})_S 1800 7448 _m
(if)_S 80 _t
(\(vrl_ConfigGetFramerateDisplay\(\)\))_S 2400 7315 _m
({)_S 2400 7182 _m
(sprintf\(buff,)_S 80 _t
("Frames/sec:)_S 80 _t
(%ld",)_S 80 _t
(vrl_SystemGetFrameRate\(\)\);)_S 2400 7049 _m
(vrl_UserInterfaceDropText\(5,)_S 80 _t
(170,)_S 80 _t
(15,)_S 80 _t
(buff\);)_S 2400 6916 _m
(})_S 1800 6783 _m
(if)_S 80 _t
(\(vrl_ConfigGetCompassDisplay\(\)\))_S 2400 6650 _m
(vrl_UserInterfaceDrawCompass\(cam,)_S 80 _t
(250,)_S 80 _t
(40,)_S 80 _t
(35\);)_S 1800 6517 _m
(if)_S 80 _t
(\(showhud\))_S 2400 6384 _m
({)_S 2400 6251 _m
(sprintf\(buff,)_S 80 _t
("%c%c%c",)_S 3000 6118 _m
(stat->memory)_S 80 _t
(?)_S 160 _t
('M')_S 80 _t
(:)_S 80 _t
(')_S 80 _t
(',)_S 3000 5985 _m
(stat->objects)_S 80 _t
(?)_S 80 _t
('O')_S 80 _t
(:)_S 80 _t
(')_S 80 _t
(',)_S 3000 5852 _m
(stat->facets)_S 80 _t
(?)_S 160 _t
('F')_S 80 _t
(:)_S 80 _t
(')_S 80 _t
('\);)_S 2400 5719 _m
(vrl_UserInterfaceDropText\(10,)_S 80 _t
(20,)_S 80 _t
(15,)_S 80 _t
(buff\);)_S 2400 5586 _m
(})_S 1800 5453 _m
(if)_S 80 _t
(\(vrl_MouseGetUsage\(\)\))_S 2400 5320 _m
({)_S 2400 5187 _m
(vrl_Device)_S 80 _t
(*dev)_S 80 _t
(=)_S 80 _t
(vrl_MouseGetPointer\(\);)_S 2400 5054 _m
(if)_S 80 _t
(\(dev\))_S 3000 4921 _m
({)_S 3000 4788 _m
(int)_S 80 _t
(x)_S 80 _t
(=)_S 80 _t
(vrl_DeviceGetCenter\(dev,)_S 80 _t
(X\);)_S 3000 4655 _m
(int)_S 80 _t
(y)_S 80 _t
(=)_S 80 _t
(vrl_DeviceGetCenter\(dev,)_S 80 _t
(Y\);)_S 3000 4522 _m
(int)_S 80 _t
(deadx)_S 80 _t
(=)_S 80 _t
(vrl_DeviceGetDeadzone\(dev,)_S 80 _t
(X\);)_S 3000 4389 _m
(int)_S 80 _t
(deady)_S 80 _t
(=)_S 80 _t
(vrl_DeviceGetDeadzone\(dev,)_S 80 _t
(Y\);)_S 3000 4256 _m
(/*)_S 80 _t
(white)_S 80 _t
(inner)_S 80 _t
(box)_S 80 _t
(*/)_S 3000 4123 _m
(vrl_DisplayLine\(x)_S 80 _t
(-)_S 80 _t
(deadx,)_S 80 _t
(y)_S 80 _t
(-)_S 80 _t
(deady,)_S 80 _t
(x)_S 80 _t
(+)_S 80 _t
(deadx,)_S 80 _t
(y)_S 80 _t
(-)_S 80 _t
(deady,)_S 80 _t
(15\);)_S 3000 3990 _m
(vrl_DisplayLine\(x)_S 80 _t
(-)_S 80 _t
(deadx,)_S 80 _t
(y)_S 80 _t
(+)_S 80 _t
(deady,)_S 80 _t
(x)_S 80 _t
(+)_S 80 _t
(deadx,)_S 80 _t
(y)_S 80 _t
(+)_S 80 _t
(deady,)_S 80 _t
(15\);)_S 3000 3857 _m
(vrl_DisplayLine\(x)_S 80 _t
(-)_S 80 _t
(deadx,)_S 80 _t
(y)_S 80 _t
(-)_S 80 _t
(deady,)_S 80 _t
(x)_S 80 _t
(-)_S 80 _t
(deadx,)_S 80 _t

(y)_S 80 _t
(+)_S 80 _t
(deady,)_S 80 _t
(15\);)_S 3000 3724 _m
(vrl_DisplayLine\(x)_S 80 _t
(+)_S 80 _t
(deadx,)_S 80 _t
(y)_S 80 _t
(-)_S 80 _t
(deady,)_S 80 _t
(x)_S 80 _t
(+)_S 80 _t
(deadx,)_S 80 _t
(y)_S 80 _t
(+)_S 80 _t
(deady,)_S 80 _t
(15\);)_S 3000 3591 _m
(/*)_S 80 _t
(black)_S 80 _t
(outer)_S 80 _t
(box)_S 80 _t
(*/)_S 3000 3458 _m
(vrl_DisplayLine\(x-deadx-1,)_S 80 _t
(y-deady-1,)_S 80 _t
(x+deadx+1,)_S 80 _t
(y-deady-1,)_S 80 _t
(0\);)_S 3000 3325 _m
(vrl_DisplayLine\(x-deadx-1,)_S 80 _t
(y+deady+1,)_S 80 _t
(x+deadx+1,)_S 80 _t
(y+deady+1,)_S 80 _t
(0\);)_S 3000 3192 _m
(vrl_DisplayLine\(x-deadx-1,)_S 80 _t
(y-deady-1,)_S 80 _t
(x-deadx-1,)_S 80 _t
(y+deady+1,)_S 80 _t
(0\);)_S 3000 3059 _m
(vrl_DisplayLine\(x+deadx+1,)_S 80 _t
(y-deady-1,)_S 80 _t
(x+deadx+1,)_S 80 _t
(y+deady+1,)_S 80 _t
(0\);)_S 3000 2926 _m
(})_S 2400 2793 _m
(})_S 1800 2660 _m
(})_S /Times-RomanR 600 _ff
1200 2240 _m
(There)_S 67 _t
(are)_S 67 _t
(several)_S 67 _t
("configuration")_S 67 _t
(variables)_S 67 _t
(that)_S 67 _t
(get)_S 67 _t
(accessed)_S 67 _t
(to)_S 67 _t
(determine)_S 67 _t
(what)_S 67 _t
(information)_S 1200 2007 _m
(should)_S 67 _t
(be)_S 67 _t
(overlaid)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(display;)_S 67 _t
(the)_S 67 _t
(state)_S 67 _t
(of)_S 67 _t
(those)_S 67 _t
(configuration)_S 67 _t
(variables)_S 67 _t
(is)_S 67 _t
(toggled)_S 67 _t
(by)_S 67 _t
(code)_S 8800 1255 _m
(16)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(in)_S 67 _t
(process_key\(\).)_S 134 _t
(This)_S 67 _t
(configuration)_S 67 _t
(information)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(explained)_S 67 _t
(in)_S 67 _t
(more)_S 67 _t
(detail)_S 67 _t
(later,)_S 67 _t
(in)_S 67 _t
(the)_S 1200 11622 _m
(section)_S 67 _t
(about)_S 67 _t
(configuration)_S 67 _t
(files.)_S 1800 11156 _m
(The)_S 67 _t
(call)_S 67 _t
(to)_S 67 _t
(vrl_WorldGetCamera\(\))_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(currently-active)_S 67 _t
(virtual)_S 1200 10921 _m
(camera.)_S 134 _t
(The)_S 67 _t
(buffer)_S 67 _t
2895 10921 _m
/Times-ItalicR 600 _ff
(buff[])_S 3362 10921 _m
/Times-RomanR 600 _ff
67 _t
(will)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(construct)_S 67 _t
(strings)_S 67 _t
(that)_S 67 _t
(we)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(display)_S 67 _t
(on)_S 67 _t
(the)_S 1200 10688 _m
(screen.)_S 1800 10222 _m
(If)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(wants)_S 67 _t
(their)_S 67 _t
(location)_S 67 _t
(displayed,)_S 67 _t
(a)_S 67 _t
(text)_S 67 _t
(string)_S 67 _t
(containing)_S 67 _t
(the)_S 67 _t
(camera's)_S 67 _t
(current)_S 1200 9989 _m
(X)_S 67 _t
(and)_S 67 _t
(Z)_S 67 _t
(values)_S 67 _t
(is)_S 67 _t
(constructed)_S 67 _t
(and)_S 67 _t
(displayed)_S 67 _t
(at)_S 67 _t
(location)_S 67 _t
(\(10,)_S 67 _t
(10\))_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen.)_S 134 _t
(The)_S 67 _t
(first)_S 1200 9756 _m
(value)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(horizontal)_S 67 _t
(distance)_S 67 _t
(in)_S 67 _t
(pixels)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(left)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(screen,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(second)_S 67 _t
(value)_S 67 _t
(is)_S 1200 9523 _m
(the)_S 67 _t
(vertical)_S 67 _t
(distance)_S 67 _t
(in)_S 67 _t
(pixels)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(top)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(screen.)_S 134 _t
(The)_S 67 _t
(color)_S 67 _t
(used)_S 67 _t
(is)_S 67 _t
(15,)_S 67 _t
(which)_S 67 _t
(is)_S 1200 9290 _m
(white.)_S 134 _t
(The)_S 67 _t
(vrl_UserInterfaceDropText\(\))_S 67 _t
(function)_S 67 _t
(automatically)_S 67 _t
(produces)_S 67 _t
(a)_S 67 _t
("drop)_S 67 _t
(shadow")_S 1200 9057 _m
(behind)_S 67 _t
(the)_S 67 _t
(text,)_S 67 _t
(ensuring)_S 67 _t
(it's)_S 67 _t
(visible)_S 67 _t
(even)_S 67 _t

(if)_S 67 _t
(it's)_S 67 _t
(overlaid)_S 67 _t
(on)_S 67 _t
(top)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(white)_S 67 _t
(background.)_S 1800 8591 _m
(If)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(wants)_S 67 _t
(a)_S 67 _t
(compass)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(shown,)_S 67 _t
(the)_S 67 _t
(vrl_UserInterfaceDrawCompass\(\))_S 67 _t
(routine)_S 1200 8358 _m
(is)_S 67 _t
(called.)_S 134 _t
(The)_S 67 _t
(compass)_S 67 _t
(is)_S 67 _t
(displayed)_S 67 _t
(at)_S 67 _t
(location)_S 67 _t
(\(250,)_S 67 _t
(40\))_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen,)_S 67 _t
(and)_S 67 _t
(each)_S 67 _t
("arm")_S 67 _t
(of)_S 67 _t
(the)_S 1200 8125 _m
(compass)_S 67 _t
(is)_S 67 _t
(35)_S 67 _t
(pixels)_S 67 _t
(long.)_S 1800 7657 _m
(If)_S 67 _t
(the)_S 67 _t
2312 7657 _m
/Times-ItalicR 600 _ff
(showhud)_S 3023 7657 _m
/Times-RomanR 600 _ff
67 _t
(variable)_S 67 _t
(is)_S 67 _t
(set,)_S 67 _t
(a)_S 67 _t
(variety)_S 67 _t
(of)_S 67 _t
(debugging)_S 67 _t
(information)_S 67 _t
(is)_S 67 _t
(displayed.)_S 134 _t
(When)_S 1200 7424 _m
(the)_S 67 _t
(renderer)_S 67 _t
(draws)_S 67 _t
(a)_S 67 _t
(scene,)_S 67 _t
(it)_S 67 _t
(may)_S 67 _t
(run)_S 67 _t
(out)_S 67 _t
(of)_S 67 _t
(internal)_S 67 _t
(memory,)_S 67 _t
(or)_S 67 _t
(it)_S 67 _t
(may)_S 67 _t
(find)_S 67 _t
(there)_S 67 _t
(are)_S 67 _t
(too)_S 1200 7191 _m
(many)_S 67 _t
(objects)_S 67 _t
(or)_S 67 _t
(facets)_S 67 _t
(for)_S 67 _t
(it)_S 67 _t
(to)_S 67 _t
(process.)_S 134 _t
(If)_S 67 _t
(this)_S 67 _t
(happens,)_S 67 _t
(it)_S 67 _t
(sets)_S 67 _t
(bits)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(special)_S 67 _t
(structure;)_S 67 _t
(a)_S 1200 6958 _m
(pointer)_S 67 _t
(to)_S 67 _t
(this)_S 67 _t
(structure)_S 67 _t
(is)_S 67 _t
(passed)_S 67 _t
(to)_S 67 _t
(vrl_ApplicationDrawOver\(\),)_S 67 _t
(so)_S 67 _t
(that)_S 67 _t
(it)_S 67 _t
(can)_S 67 _t
(alert)_S 67 _t
(the)_S 67 _t
(user)_S 1200 6725 _m
(to)_S 67 _t
(the)_S 67 _t
(problem.)_S 134 _t
(In)_S 67 _t
(this)_S 67 _t
(case,)_S 67 _t
(an)_S 67 _t
('M')_S 67 _t
(is)_S 67 _t
(displayed)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(renderer)_S 67 _t
(ran)_S 67 _t
(out)_S 67 _t
(of)_S 67 _t
(memory,)_S 67 _t
(an)_S 67 _t
('O')_S 67 _t
(is)_S 1200 6492 _m
(displayed)_S 67 _t
(if)_S 67 _t
(there)_S 67 _t
(were)_S 67 _t
(too)_S 67 _t
(many)_S 67 _t
(objects,)_S 67 _t
(and)_S 67 _t
(an)_S 67 _t
('F')_S 67 _t
(is)_S 67 _t
(displayed)_S 67 _t
(if)_S 67 _t
(there)_S 67 _t
(were)_S 67 _t
(too)_S 67 _t
(many)_S 1200 6259 _m
(facets.)_S 1800 5793 _m
(If)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(is)_S 67 _t
(in)_S 67 _t
(6D)_S 67 _t
(input)_S 67 _t
(device)_S 67 _t
(mode,)_S 67 _t
(a)_S 67 _t
(small)_S 67 _t
(square)_S 67 _t
(is)_S 67 _t
(drawn)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen;)_S 67 _t
(if)_S 67 _t
(the)_S 1200 5560 _m
(mouse)_S 67 _t
(cursor)_S 67 _t
(is)_S 67 _t
(inside)_S 67 _t
(this)_S 67 _t
(box,)_S 67 _t
(there'll)_S 67 _t
(be)_S 67 _t
(no)_S 67 _t
(movement.)_S 134 _t
(It's)_S 67 _t
(sort)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(visual)_S 67 _t
("dead)_S 67 _t
(zone",)_S 67 _t
(if)_S 1200 5327 _m
(you)_S 67 _t
(will.)_S 134 _t
(The)_S 67 _t
(idea)_S 67 _t
(for)_S 67 _t
(this)_S 67 _t
(box)_S 67 _t
(came)_S 67 _t
(from)_S 67 _t
(a)_S 67 _t
(demo)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(Superscape)_S 67 _t
(VR)_S 67 _t
(system;)_S 67 _t
(it)_S 67 _t
(was)_S 67 _t
(a)_S 1200 5094 _m
(clever)_S 67 _t
(enough)_S 67 _t
(idea)_S 67 _t
(that)_S 67 _t
(I)_S 67 _t
(adopted)_S 67 _t
(it)_S 67 _t
(for)_S 67 _t
(this)_S 67 _t
(example.)_S 1200 4598 _m
/Times-BoldR 720 _ff
(Into)_S 80 _t
(the)_S 80 _t
(System)_S 2840 4598 _m
/Times-RomanR 600 _ff
1800 4122 _m
(We've)_S 67 _t
(talked)_S 67 _t
(a)_S 67 _t
(lot)_S 67 _t
(so)_S 67 _t
(far)_S 67 _t
(about)_S 67 _t
(the)_S 67 _t
(vrl_System)_S 67 _t
(routines;)_S 67 _t
(now)_S 67 _t
(let's)_S 67 _t
(take)_S 67 _t
(a)_S 67 _t
(closer)_S 67 _t
(look)_S 67 _t
(at)_S 1200 3889 _m
(how)_S 67 _t
(they)_S 67 _t
(work.)_S 1200 3477 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_SystemStartup\(void\))_S 1800 3344 _m
({)_S 1800 3211 _m
(vrl_MathInit\(\);)_S 1800 3078 _m
(if)_S 80 _t
(\(vrl_DisplayInit\(0\)\))_S 2400 2945 _m
({)_S 2400 2812 _m
(printf\("Could)_S 80 _t
(not)_S 80 _t
(enter)_S 80 _t
(graphics)_S 80 _t
(mode!\\n"\);)_S 2400 2679 _m
(return)_S 80 _t
(-1;)_S 2400 2546 _m
(})_S 1800 2413 _m
(atexit\(vrl_DisplayQuit\);)_S 1800 2280 _m
(vrl_MouseInit\(\);)_S 1800 2147 _m
(atexit\(vrl_MouseQuit\);)_S 1800 2014 _m
(if)_S 80 _t
(\(vrl_TimerInit\(\)\))_S 2400 1881 _m
(return)_S 80 _t
(-2;)_S 1800 1748 _m
(atexit\(vrl_TimerQuit\);)_S 8800 1255 _m
/Times-RomanR 600 _ff
(17)_S /CourierR 400 _ff
_ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(if)_S 80 _t
(\(vrl_RenderInit\(800,)_S 80 _t
(800,)_S 80 _t
(500,)_S 80 _t
(5,)_S 80 _t
(65000\)\))_S 2400 11776 _m
(return)_S 80 _t
(-3;)_S 1800 11643 _m
(atexit\(vrl_RenderQuit\);)_S 1800 11510 _m
(atexit\(vrl_DeviceCloseAll\);)_S 1800 11377 _m
(atexit\(vrl_SerialCloseAll\);)_S 1800 11244 _m
(/*)_S 80 _t
(make)_S 80 _t
(sure)_S 80 _t
(that)_S 80 _t
(exit\(\))_S 80 _t
([and)_S 80 _t
(therefore)_S 80 _t
(the)_S 80 _t
(atexit\(\))_S 80 _t
(functions])_S 80 _t
(get)_S 1800 11111 _m
80 _t
80 _t
80 _t
(called)_S 80 _t
(if)_S 80 _t
(there)_S 80 _t
(are)_S 80 _t
(any)_S 80 _t
(fatal)_S 80 _t
(errors)_S 80 _t
(*/)_S 1800 10978 _m
(signal\(SIGABRT,)_S 80 _t
(exit\);)_S 1800 10845 _m
(signal\(SIGFPE,)_S 80 _t
(exit\);)_S 1800 10712 _m
(signal\(SIGILL,)_S 80 _t
(exit\);)_S 1800 10579 _m
(signal\(SIGINT,)_S 80 _t
(exit\);)_S 1800 10446 _m
(signal\(SIGSEGV,)_S 80 _t
(exit\);)_S 1800 10313 _m
(signal\(SIGTERM,)_S 80 _t
(exit\);)_S 1800 10180 _m
(vrl_SystemStartRunning\(\);)_S 1800 10047 _m
(vrl_SystemRequestRefresh\(\);)_S 1800 9914 _m
(return)_S 80 _t
(0;)_S 1800 9781 _m
(})_S /Times-RomanR 600 _ff
1200 9361 _m
(The)_S 67 _t
(vrl_SystemStartup\(\))_S 67 _t
(routine)_S 67 _t
(does)_S 67 _t
(the)_S 67 _t
(initialization)_S 67 _t
(of)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(various)_S 67 _t
(AVRIL)_S 67 _t
(subsystems.)_S 67 _t
1200 9128 _m
(It)_S 67 _t
(starts)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(vrl_MathInit\(\),)_S 67 _t
(which)_S 67 _t
(sets)_S 67 _t
(up)_S 67 _t
(the)_S 67 _t
(trig)_S 67 _t
(tables)_S 67 _t
(used)_S 67 _t
(internally)_S 67 _t
(by)_S 67 _t
(AVRIL)_S 67 _t
(\(for)_S 1200 8895 _m
(example,)_S 67 _t
(a)_S 67 _t
(table)_S 67 _t
(of)_S 67 _t
(sines)_S 67 _t
(that's)_S 67 _t
(used)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(vrl_Sine\(\))_S 67 _t
(function)_S 67 _t
(described)_S 67 _t
(earlier\).)_S 134 _t
(Then)_S 67 _t
(the)_S 1200 8662 _m
(display)_S 67 _t
(is)_S 67 _t
(initialized)_S 67 _t
(into)_S 67 _t
(graphics)_S 67 _t
(mode,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(and)_S 67 _t
(timer)_S 67 _t
(are)_S 67 _t
(set)_S 67 _t
(up.)_S 1800 8196 _m
(After)_S 67 _t
(that,)_S 67 _t
(the)_S 67 _t
(rendering)_S 67 _t
(engine)_S 67 _t
(itself)_S 67 _t
(is)_S 67 _t
(initialized;)_S 67 _t
(the)_S 67 _t
(parameters)_S 67 _t
(to)_S 67 _t
(the)_S 1200 7963 _m
(vrl_RenderInit\(\))_S 67 _t
(function)_S 67 _t
(may)_S 67 _t
(change)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(future)_S 67 _t
(release)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(software,)_S 67 _t
(but)_S 67 _t
(for)_S 67 _t
(now)_S 67 _t
(just)_S 1200 7730 _m
(use)_S 67 _t
(the)_S 67 _t
(values)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(shown)_S 67 _t
(above.)_S 134 _t
(The)_S 67 _t
(value)_S 67 _t
(52000)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(amount)_S 67 _t
(of)_S 67 _t
(memory)_S 67 _t
(the)_S 67 _t
(renderer)_S 1200 7497 _m
(should)_S 67 _t
(allocate)_S 67 _t
(for)_S 67 _t
(its)_S 67 _t
(internal)_S 67 _t
(use;)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(renderer)_S 67 _t
(needs)_S 67 _t
(more)_S 67 _t
(than)_S 67 _t
(this)_S 67 _t
(amount)_S 67 _t
(of)_S 67 _t
(memory)_S 1200 7264 _m
(when)_S 67 _t
(rendering)_S 67 _t
(a)_S 67 _t
(scene,)_S 67 _t
(it)_S 67 _t
(will)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
("memory")_S 67 _t
(value)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(status)_S 67 _t
(struct)_S 67 _t
(described)_S 67 _t
(earlier)_S 1200 7031 _m
(\(which)_S 67 _t
(is)_S 67 _t
(passed)_S 67 _t
(to)_S 67 _t
(vrl_ApplicationDrawOver\(\)\).)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(renderer)_S 67 _t
(is)_S 67 _t
(unable)_S 67 _t
(to)_S 67 _t
(initialize)_S 67 _t
(itself)_S 1200 6798 _m
(\(for)_S 67 _t
(example,)_S 67 _t
(if)_S 67 _t
(it)_S 67 _t
(couldn't)_S 67 _t
(allocate)_S 67 _t
(the)_S 67 _t
(specified)_S 67 _t
(amount)_S 67 _t
(of)_S 67 _t
(memory\))_S 67 _t
(then)_S 67 _t
(vrl_RenderInit\(\))_S 1200 6565 _m
(returns)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value.)_S 1800 6099 _m
(Notice)_S 67 _t
(the)_S 67 _t
(use)_S 67 _t
(of)_S 67 _t
(atexit\(\))_S 67 _t
(to)_S 67 _t
(ensure)_S 67 _t
(that)_S 67 _t
(everything)_S 67 _t
(is)_S 67 _t
(shut)_S 67 _t
(down)_S 67 _t
(properly)_S 67 _t
(when)_S 67 _t
(the)_S 1200 5866 _m
(program)_S 67 _t
(exits.)_S 134 _t
(The)_S 67 _t
(signal\(\))_S 67 _t
(calls)_S 67 _t
(ensure)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(exit\(\))_S 67 _t
(routine)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(called)_S 67 _t
(in)_S 67 _t
(case)_S 67 _t
(of)_S 67 _t
(any)_S 1200 5633 _m
(errors;)_S 67 _t
(exit\(\))_S 67 _t
(will)_S 67 _t
(in)_S 67 _t
(turn)_S 67 _t
(call)_S 67 _t
(the)_S 67 _t
(various)_S 67 _t
(atexit\(\))_S 67 _t
(functions,)_S 67 _t
(cleanly)_S 67 _t
(closing)_S 67 _t
(down)_S 67 _t
(the)_S 67 _t
(system.)_S 1800 5167 _m
(Finally,)_S 67 _t
(vrl_SystemStartRunning\(\))_S 67 _t
(is)_S 67 _t
(called)_S 67 _t
(and)_S 67 _t
(an)_S 67 _t
(initial)_S 67 _t
(display)_S 67 _t
(refresh)_S 67 _t
(is)_S 67 _t
(requested.)_S 67 _t
1200 4934 _m
(The)_S 67 _t
(vrl_SystemStartRunning\(\),)_S 67 _t
(vrl_SystemStopRunning\(\),)_S 67 _t
(and)_S 67 _t
(vrl_SystemIsRunning\(\))_S 67 _t
(routines)_S 1200 4701 _m
(are)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(control)_S 67 _t
(whether)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(is)_S 67 _t
(currently)_S 67 _t
("running")_S 67 _t
(or)_S 67 _t
(not.)_S 134 _t
(They)_S 67 _t
(just)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(check)_S 1200 4466 _m
(the)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(variable)_S 67 _t
3268 4466 _m
/Times-ItalicR 600 _ff
(system_is_running)_S 4768 4466 _m
/Times-RomanR 600 _ff
(;)_S 67 _t
(however,)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(routines)_S 67 _t
(makes)_S 67 _t
(your)_S 67 _t
(code)_S 67 _t
(a)_S 1200 4233 _m
(bit)_S 67 _t
(more)_S 67 _t
(readable.)_S 134 _t
(It's)_S 67 _t
(also)_S 67 _t
(possible)_S 67 _t
(to)_S 67 _t
(redefine)_S 67 _t
(those)_S 67 _t
(routines)_S 67 _t
(to)_S 67 _t
(do)_S 67 _t
(something)_S 67 _t
(in)_S 67 _t
(addition)_S 67 _t
(to)_S 1200 4000 _m
(just)_S 67 _t
(setting)_S 67 _t
(or)_S 67 _t
(clearing)_S 67 _t
(a)_S 67 _t
(flag.)_S 1800 3534 _m
(The)_S 67 _t
(vrl_SystemRun\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(main)_S 67 _t
(loop)_S 67 _t
(of)_S 67 _t
(every)_S 67 _t
(AVRIL)_S 67 _t
(application.)_S 134 _t
(It)_S 67 _t
(looks)_S 1200 3301 _m
(like)_S 67 _t
(this:)_S 1200 2889 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_SystemRun\(void\))_S 1800 2756 _m
({)_S 1800 2623 _m
(vrl_ApplicationInit\(\);)_S 1800 2490 _m
(while)_S 80 _t
(\(vrl_SystemIsRunning\(\)\))_S 2400 2357 _m
({)_S 2400 2224 _m
(vrl_Object)_S 80 _t
(*list;)_S 2400 2091 _m
(if)_S 80 _t
(\(vrl_KeyboardCheck\(\)\))_S 3000 1958 _m
(vrl_ApplicationKey\(vrl_KeyboardRead\(\)\);)_S 2400 1825 _m
(check_mouse\(\);)_S 2400 1692 _m
(vrl_TaskRun\(\);)_S 8800 1255 _m
/Times-RomanR 600 _ff
(18)_S /CourierR 400 _ff
_ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
2400 11909 _m
(vrl_DevicePollAll\(\);)_S 2400 11776 _m
(list)_S 80 _t
(=)_S 80 _t
(vrl_WorldUpdate\(\);)_S 2400 11643 _m
(if)_S 80 _t
(\(vrl_SystemQueryRefresh\(\)\))_S 3000 11510 _m
(vrl_SystemRender\(list\);)_S 2400 11377 _m
(})_S 1800 11244 _m
(})_S /Times-RomanR 600 _ff
1200 10824 _m
(It)_S 67 _t
(shouldn't)_S 67 _t
(come)_S 67 _t
(as)_S 67 _t
(any)_S 67 _t
(surprise)_S 67 _t
(that)_S 67 _t
(this)_S 67 _t
(looks)_S 67 _t
(like)_S 67 _t
(an)_S 67 _t
(event)_S 67 _t
(loop)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(GUI)_S 67 _t
(application;)_S 67 _t
(on)_S 1200 10591 _m
(some)_S 67 _t
(systems,)_S 67 _t
(that's)_S 67 _t
(exactly)_S 67 _t
(how)_S 67 _t
(vrl_SystemRun\(\))_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(implemented.)_S 134 _t
(However,)_S 67 _t
(on)_S 67 _t
(a)_S 67 _t
(DOS)_S 1200 10358 _m
(platform)_S 67 _t
(it's)_S 67 _t
(necessary)_S 67 _t
(to)_S 67 _t
(explicitly)_S 67 _t
(check)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(and)_S 67 _t
(keyboard)_S 67 _t
(for)_S 67 _t
(activity.)_S 1800 9892 _m
(If)_S 67 _t
(a)_S 67 _t
(key)_S 67 _t
(has)_S 67 _t
(been)_S 67 _t
(pressed,)_S 67 _t
(the)_S 67 _t
(keyboard)_S 67 _t
(is)_S 67 _t
(read)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(key)_S 67 _t
(is)_S 67 _t
(passed)_S 67 _t
(to)_S 1200 9659 _m
(vrl_ApplicationKey\(\).)_S 134 _t
(The)_S 67 _t
(function)_S 67 _t
(check_mouse\(\))_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(interrogate)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(for)_S 1200 9426 _m
(updates:)_S 1200 9014 _m
/CourierR 400 _ff
(static)_S 80 _t
(void)_S 80 _t
(check_mouse\(void\))_S 1800 8881 _m
({)_S 1800 8748 _m
(unsigned)_S 80 _t
(int)_S 80 _t
(mouse_buttons;)_S 1800 8615 _m
(if)_S 80 _t
(\(vrl_MouseGetUsage\(\)\))_S 160 _t
(/*)_S 80 _t
(being)_S 80 _t
(used)_S 80 _t
(as)_S 80 _t
(6D)_S 80 _t
(pointing)_S 80 _t
(device)_S 80 _t
(*/)_S 2400 8482 _m
(return;)_S 1800 8349 _m
(if)_S 80 _t
(\(!vrl_MouseRead\(NULL,)_S 80 _t
(NULL,)_S 80 _t
(NULL\)\))_S 160 _t
(/*)_S 80 _t
(mouse)_S 80 _t
(hasn't)_S 80 _t
(changed)_S 80 _t
(*/)_S 2400 8216 _m
(return;)_S 1800 8083 _m
(vrl_MouseRead\(NULL,)_S 80 _t
(NULL,)_S 80 _t
(&mouse_buttons\);)_S 1800 7950 _m
(if)_S 80 _t
(\(mouse_buttons\))_S 160 _t
(/*)_S 80 _t
(button)_S 80 _t
(down)_S 80 _t
(*/)_S 2400 7817 _m
({)_S 2400 7684 _m
(int)_S 80 _t
(mouse_x,)_S 80 _t
(mouse_y;)_S 2400 7551 _m
(int)_S 80 _t
(win_x,)_S 80 _t
(win_y;)_S 2400 7418 _m
(unsigned)_S 80 _t
(int)_S 80 _t
(down_buttons)_S 80 _t
(=)_S 80 _t
(mouse_buttons;)_S 2400 7285 _m
(vrl_DisplayGetWindow\(&win_x,)_S 80 _t
(&win_y,)_S 80 _t
(NULL,)_S 80 _t
(NULL\);)_S 2400 7152 _m
(while)_S 80 _t
(\(mouse_buttons\))_S 160 _t
(/*)_S 80 _t
(wait)_S 80 _t
(for)_S 80 _t
(button)_S 80 _t
(release)_S 80 _t
(*/)_S 3000 7019 _m
(vrl_MouseRead\(&mouse_x,)_S 80 _t
(&mouse_y,)_S 80 _t
(&mouse_buttons\);)_S 2400 6886 _m
(if)_S 80 _t
(\(down_buttons)_S 80 _t
(&)_S 80 _t
(0x07\))_S 3000 6753 _m
(vrl_ApplicationMouseUp\(mouse_x)_S 80 _t
(-)_S 80 _t
(win_x,)_S 80 _t
(mouse_y)_S 80 _t
(-)_S 80 _t
(win_y,)_S 80 _t
(down_buttons\);)_S 2400 6620 _m
(})_S 1800 6487 _m
(})_S /Times-RomanR 600 _ff
1200 6067 _m
(The)_S 67 _t
(vrl_MouseGetUsage\(\))_S 67 _t
(call)_S 67 _t
(is)_S 67 _t
(necessary)_S 67 _t
(because)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(in)_S 67 _t
(either)_S 67 _t
(of)_S 67 _t
(two)_S 1200 5834 _m
(completely)_S 67 _t
(different)_S 67 _t
(ways:)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(pointing)_S 67 _t
(device)_S 67 _t
(for)_S 67 _t
(selecting)_S 67 _t
(objects)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen,)_S 67 _t
(or)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(6)_S 1200 5601 _m
(Degree-Of-Freedom)_S 67 _t
(\(6D\))_S 67 _t
(input)_S 67 _t
(device;)_S 67 _t
(the)_S 67 _t
(6D)_S 67 _t
(mode)_S 67 _t
(is)_S 67 _t
(described)_S 67 _t
(later,)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(section)_S 67 _t
(on)_S 67 _t
(input)_S 1200 5368 _m
(devices.)_S 134 _t
(If)_S 67 _t
(vrl_MouseGetUsage\(\))_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(is)_S 67 _t
(being)_S 67 _t
(used)_S 67 _t
(as)_S 67 _t
(a)_S 1200 5135 _m
(6D)_S 67 _t
(input)_S 67 _t
(device,)_S 67 _t
(and)_S 67 _t
(input)_S 67 _t
(from)_S 67 _t
(it)_S 67 _t
(shouldn't)_S 67 _t
(be)_S 67 _t
(processed)_S 67 _t
(any)_S 67 _t
(further)_S 67 _t
(at)_S 67 _t
(this)_S 67 _t
(point.)_S 1800 4669 _m
(If)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(hasn't)_S 67 _t
(changed)_S 67 _t
(location)_S 67 _t
(or)_S 67 _t
(button)_S 67 _t
(status,)_S 67 _t
(the)_S 67 _t
(call)_S 67 _t
(to)_S 67 _t
(vrl_MouseRead\(\))_S 67 _t
(will)_S 1200 4436 _m
(return)_S 67 _t
(zero,)_S 67 _t
(in)_S 67 _t
(which)_S 67 _t
(case)_S 67 _t
(no)_S 67 _t
(further)_S 67 _t
(processing)_S 67 _t
(is)_S 67 _t
(done.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(buttons)_S 67 _t
(are)_S 67 _t
(down,)_S 67 _t
(the)_S 1200 4203 _m
(routine)_S 67 _t
(tracks)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(input)_S 67 _t
(until)_S 67 _t
(the)_S 67 _t
(buttons)_S 67 _t
(are)_S 67 _t
(released.)_S 134 _t
(The)_S 67 _t
(button)_S 67 _t
(status)_S 67 _t
(is)_S 67 _t
(saved)_S 67 _t
(in)_S 67 _t
(the)_S 1200 3968 _m
(variable)_S 67 _t
1911 3968 _m
/Times-ItalicR 600 _ff
(down_buttons)_S 3034 3968 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
(and)_S 67 _t
(then)_S 67 _t
(passed)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(routine)_S 67 _t
(vrl_ApplicationMouseUp\(\))_S 67 _t
(along)_S 67 _t
(with)_S 1200 3735 _m
(the)_S 67 _t
(mouse)_S 67 _t
(cursor)_S 67 _t
(location)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(window.)_S 1800 3269 _m
(Back)_S 67 _t
(in)_S 67 _t
(vrl_SystemRun\(\),)_S 67 _t
(the)_S 67 _t
(vrl_TaskRun\(\))_S 67 _t
(function)_S 67 _t
(is)_S 67 _t
(called)_S 67 _t
(to)_S 67 _t
(run)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(tasks)_S 67 _t
(that)_S 1200 3036 _m
(have)_S 67 _t
(been)_S 67 _t
(created)_S 67 _t
(\(like)_S 67 _t
(the)_S 67 _t
(spin\(\),)_S 67 _t
(bounce\(\))_S 67 _t
(and)_S 67 _t
(pulsate\(\))_S 67 _t
(tasks)_S 67 _t
(we)_S 67 _t
(used)_S 67 _t
(in)_S 67 _t
(example)_S 67 _t
(4\).)_S 134 _t
(Next,)_S 1200 2803 _m
(vrl_WorldUpdate\(\))_S 67 _t
(is)_S 67 _t
(called;)_S 67 _t
(it)_S 67 _t
(walks)_S 67 _t
(the)_S 67 _t
(hierarchical)_S 67 _t
(tree)_S 67 _t
(of)_S 67 _t
(objects)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(world,)_S 67 _t
(updating)_S 1200 2570 _m
(their)_S 67 _t
(location)_S 67 _t
(and)_S 67 _t
(orientation)_S 67 _t
(information)_S 67 _t
(and)_S 67 _t
(threading)_S 67 _t
(them)_S 67 _t
(onto)_S 67 _t
(a)_S 67 _t
(linked)_S 67 _t
(list)_S 67 _t
(which)_S 67 _t
(is)_S 1200 2337 _m
(returned)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(vrl_WorldUpdate\(\))_S 67 _t
(function.)_S 134 _t
(Walking)_S 67 _t
(the)_S 67 _t
(tree)_S 67 _t
(also)_S 67 _t
(causes)_S 67 _t
(the)_S 1200 2104 _m
(function)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(each)_S 67 _t
(object)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(called.)_S 8800 1255 _m
(19)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(If)_S 67 _t
(the)_S 67 _t
(display)_S 67 _t
(needs)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(redrawn)_S 67 _t
(\(i.e.)_S 67 _t
(the)_S 67 _t
(vrl_SystemRequestRefresh\(\))_S 67 _t
(routine)_S 67 _t
(that)_S 67 _t
(we)_S 1200 11622 _m
(mentioned)_S 67 _t
(earlier)_S 67 _t
(has)_S 67 _t
(been)_S 67 _t
(called)_S 67 _t
(at)_S 67 _t
(least)_S 67 _t
(once)_S 67 _t
(since)_S 67 _t
(we)_S 67 _t
(last)_S 67 _t
(re-drew)_S 67 _t
(the)_S 67 _t
(screen\))_S 67 _t
(then)_S 67 _t
(the)_S 1200 11389 _m
(vrl_SystemRender\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(called,)_S 67 _t
(and)_S 67 _t
(is)_S 67 _t
(given)_S 67 _t
(the)_S 67 _t
(linked)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(objects)_S 67 _t
(to)_S 67 _t
(render.)_S 1800 10923 _m
(The)_S 67 _t
(vrl_SystemRender\(\))_S 67 _t
(routine)_S 67 _t
(does)_S 67 _t
(the)_S 67 _t
(actual)_S 67 _t
(updating)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(screen.)_S 134 _t
(Even)_S 67 _t
(though)_S 1200 10690 _m
(source)_S 67 _t
(is)_S 67 _t
(provided,)_S 67 _t
(you)_S 67 _t
(should)_S 67 _t
(use)_S 67 _t
(this)_S 67 _t
(routine)_S 67 _t
(as-is;)_S 67 _t
(it's)_S 67 _t
(likely)_S 67 _t
(to)_S 67 _t
(change)_S 67 _t
(in)_S 67 _t
(future)_S 67 _t
(releases)_S 67 _t
(of)_S 1200 10457 _m
(AVRIL,)_S 67 _t
(and)_S 67 _t
(several)_S 67 _t
(additional)_S 67 _t
(features)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(added.)_S 134 _t
(The)_S 67 _t
(code)_S 67 _t
(currently)_S 67 _t
(looks)_S 67 _t
(like)_S 67 _t
(this:)_S 1200 10045 _m
/CourierR 400 _ff
(vrl_RenderStatus)_S 80 _t
(*vrl_SystemRender\(vrl_Object)_S 80 _t
(*list\))_S 1800 9912 _m
({)_S 1800 9779 _m
(static)_S 80 _t
(vrl_Object)_S 80 _t
(*lastlist)_S 80 _t
(=)_S 80 _t
(NULL;)_S 1800 9646 _m
(int)_S 80 _t
(pagenum;)_S 1800 9513 _m
(vrl_RenderStatus)_S 80 _t
(*stat;)_S 1800 9380 _m
(vrl_Time)_S 80 _t
(render_start;)_S 1800 9247 _m
(if)_S 80 _t
(\(list)_S 80 _t
(==)_S 80 _t
(NULL\))_S 2400 9114 _m
({)_S 2400 8981 _m
(list)_S 80 _t
(=)_S 80 _t
(lastlist;)_S 2400 8848 _m
(if)_S 80 _t
(\(list)_S 80 _t
(==)_S 80 _t
(NULL\))_S 3000 8715 _m
(return)_S 80 _t
(NULL;)_S 2400 8582 _m
(})_S 1800 8449 _m
(else)_S 2400 8316 _m
(lastlist)_S 80 _t
(=)_S 80 _t
(list;)_S 1800 8183 _m
(pagenum)_S 80 _t
(=)_S 80 _t
(vrl_DisplayGetDrawPage\(\);)_S 1800 8050 _m
(if)_S 80 _t
(\(++pagenum)_S 80 _t
(>=)_S 80 _t
(vrl_DisplayGetNpages\(\)\))_S 2400 7917 _m
(pagenum)_S 80 _t
(=)_S 80 _t
(0;)_S 1800 7784 _m
(vrl_DisplaySetDrawPage\(pagenum\);)_S 1800 7651 _m
(render_start)_S 80 _t
(=)_S 80 _t
(vrl_TimerRead\(\);)_S 1800 7518 _m
(vrl_RenderBegin\(vrl_WorldGetCamera\(\),)_S 80 _t
(vrl_WorldGetLights\(\)\);)_S 1800 7385 _m
(vrl_RenderSetAmbient\(vrl_WorldGetAmbient\(\)\);)_S 1800 7252 _m
(if)_S 80 _t
(\(vrl_WorldGetScreenClear\(\)\))_S 2400 7119 _m
({)_S 2400 6986 _m
(if)_S 80 _t
(\(vrl_WorldGetHorizon\(\))_S 80 _t
(&&)_S 80 _t
(!vrl_DisplayGetDrawMode\(\)\))_S 3000 6853 _m
(vrl_RenderHorizon\(\);)_S 2400 6720 _m
(else)_S 3000 6587 _m
(vrl_DisplayClear\(vrl_WorldGetSkyColor\(\)\);)_S 2400 6454 _m
(})_S 1800 6321 _m
(vrl_ApplicationDrawUnder\(\);)_S 1800 6188 _m
(stat)_S 80 _t
(=)_S 80 _t
(vrl_RenderObjlist\(list\);)_S 1800 6055 _m
(last_render_ticks)_S 80 _t
(=)_S 80 _t
(vrl_TimerRead\(\))_S 80 _t
(-)_S 80 _t
(render_start;)_S 1800 5922 _m
(vrl_ApplicationDrawOver\(stat\);)_S 1800 5789 _m
(vrl_MouseCursorHide\(\);)_S 1800 5656 _m
(vrl_DisplayUpdate\(\);)_S 1800 5523 _m
(vrl_DisplaySetViewPage\(pagenum\);)_S 1800 5390 _m
(vrl_MouseCursorShow\(\);)_S 1800 5257 _m
(need_to_redraw)_S 80 _t
(=)_S 80 _t
(0;)_S 1800 5124 _m
(return)_S 80 _t
(stat;)_S 1800 4991 _m
(})_S /Times-RomanR 600 _ff
1200 4571 _m
(If)_S 67 _t
(the)_S 67 _t
(list)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(vrl_SystemRender\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(given)_S 67 _t
(is)_S 67 _t
(NULL)_S 67 _t
(\(as)_S 67 _t
(was)_S 67 _t
(the)_S 67 _t
(case)_S 67 _t
(in)_S 67 _t
(our)_S 1200 4338 _m
(example)_S 67 _t
(vrl_ApplicationMouseUp\(\))_S 67 _t
(routine)_S 67 _t
(in)_S 67 _t
(input.c\))_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(last)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(objects)_S 67 _t
(rendered)_S 67 _t
(is)_S 1200 4105 _m
(used.)_S 1800 3639 _m
(The)_S 67 _t
(system)_S 67 _t
(uses)_S 67 _t
(the)_S 67 _t
(concept)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
("draw")_S 67 _t
(page)_S 67 _t
(\(on)_S 67 _t
(which)_S 67 _t
(drawing)_S 67 _t
(takes)_S 67 _t
(place\))_S 67 _t
(and)_S 67 _t
(a)_S 1200 3406 _m
("view")_S 67 _t
(page)_S 67 _t
(\(which)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(one)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(is)_S 67 _t
(currently)_S 67 _t
(viewing\).)_S 134 _t
(The)_S 67 _t
(vrl_SystemRender\(\))_S 67 _t
(routine)_S 1200 3173 _m
(gets)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(drawing)_S 67 _t
(page)_S 67 _t
(number,)_S 67 _t
(and)_S 67 _t
(increments)_S 67 _t
(it)_S 67 _t
(\(so)_S 67 _t
(we)_S 67 _t
(start)_S 67 _t
(drawing)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(next)_S 1200 2940 _m
(page\).)_S 134 _t
(It)_S 67 _t
(wraps)_S 67 _t
(back)_S 67 _t
(to)_S 67 _t
(page)_S 67 _t
(zero)_S 67 _t
(after)_S 67 _t
(it's)_S 67 _t
(drawn)_S 67 _t
(the)_S 67 _t
(last)_S 67 _t
(available)_S 67 _t
(display)_S 67 _t
(page.)_S 134 _t
(It)_S 67 _t
(then)_S 67 _t
(sets)_S 1200 2705 _m
(the)_S 67 _t
1511 2705 _m
/Times-ItalicR 600 _ff
(render_start)_S 2511 2705 _m
/Times-RomanR 600 _ff
67 _t
(variable)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(time)_S 67 _t
(\(to)_S 67 _t
(keep)_S 67 _t
(track)_S 67 _t
(of)_S 67 _t
(how)_S 67 _t
(long)_S 67 _t
(it)_S 67 _t
(takes)_S 67 _t
(to)_S 67 _t
(draw)_S 67 _t
(this)_S 1200 2472 _m
(screen\),)_S 67 _t
(then)_S 67 _t
(calls)_S 67 _t
(vrl_RenderBegin\(\))_S 67 _t
(to)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(camera)_S 67 _t
(and)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(light)_S 67 _t
(sources.)_S 134 _t
(It)_S 1200 2239 _m
(sets)_S 67 _t
(the)_S 67 _t
(ambient)_S 67 _t
(light)_S 67 _t
(level)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(that)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(world,)_S 67 _t
(checks)_S 67 _t
(to)_S 67 _t
(see)_S 67 _t
(if)_S 67 _t
(it)_S 67 _t
(should)_S 67 _t
(clear)_S 67 _t
(the)_S 1200 2006 _m
(screen,)_S 67 _t
(then)_S 67 _t
(either)_S 67 _t
(clears)_S 67 _t
(it)_S 67 _t
(or)_S 67 _t
(draws)_S 67 _t
(a)_S 67 _t
(horizon.)_S 134 _t
(The)_S 67 _t
(vrl_ApplicationDrawUnder\(\))_S 67 _t
(routine)_S 67 _t
(we)_S 1200 1773 _m
(looked)_S 67 _t
(at)_S 67 _t
(earlier)_S 67 _t
(is)_S 67 _t
(then)_S 67 _t
(called,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(vrl_RenderObjectlist\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(called)_S 67 _t
(to)_S 67 _t
(do)_S 67 _t
(the)_S 8800 1255 _m
(20)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11853 _m
(actual)_S 67 _t
(rendering.)_S 134 _t
(The)_S 67 _t
3073 11853 _m
/Times-ItalicR 600 _ff
(last_render_ticks)_S 4462 11853 _m
/Times-RomanR 600 _ff
67 _t
(variable)_S 67 _t
(is)_S 67 _t
(set;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(returned)_S 67 _t
(by)_S 1200 11620 _m
(vrl_SystemGetRenderTime\(\),)_S 67 _t
(and)_S 67 _t
(is)_S 67 _t
(also)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(compute)_S 67 _t
(the)_S 67 _t
(frame)_S 67 _t
(rate)_S 67 _t
(returned)_S 67 _t
(by)_S 1200 11387 _m
(vrl_SystemGetFrameRate\(\).)_S 1800 10921 _m
(The)_S 67 _t
(vrl_ApplicationDrawOver\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(then)_S 67 _t
(called)_S 67 _t
(to)_S 67 _t
(put)_S 67 _t
(any)_S 67 _t
(additional)_S 1200 10688 _m
(information)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(display.)_S 134 _t
(The)_S 67 _t
(cursor)_S 67 _t
(is)_S 67 _t
(hidden,)_S 67 _t
(and)_S 67 _t
(vrl_DisplayUpdate\(\))_S 67 _t
(is)_S 67 _t
(called;)_S 67 _t
(this)_S 67 _t
(is)_S 1200 10455 _m
(necessary,)_S 67 _t
(since)_S 67 _t
(some)_S 67 _t
(display)_S 67 _t
(systems)_S 67 _t
(don't)_S 67 _t
(have)_S 67 _t
(multiple)_S 67 _t
(pages)_S 67 _t
(and)_S 67 _t
(instead)_S 67 _t
(use)_S 67 _t
(an)_S 67 _t
(off-)_S 1200 10222 _m
(screen)_S 67 _t
(buffer)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(vrl_DisplayUpdate\(\))_S 67 _t
(routine)_S 67 _t
(copies)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(screen.)_S 134 _t
(For)_S 67 _t
(systems)_S 67 _t
(that)_S 1200 9989 _m
(have)_S 67 _t
(multiple-page)_S 67 _t
(displays,)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(view)_S 67 _t
(page)_S 67 _t
(is)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(\(now)_S 67 _t
(finished\))_S 67 _t
(drawing)_S 67 _t
(page.)_S 67 _t
1200 9756 _m
(The)_S 67 _t
(mouse)_S 67 _t
(cursor)_S 67 _t
(is)_S 67 _t
(then)_S 67 _t
(revealed)_S 67 _t
(again,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(need_to_redraw)_S 67 _t
(variable)_S 67 _t
(\(which)_S 67 _t
(was)_S 67 _t
(set)_S 67 _t
(by)_S 1200 9523 _m
(vrl_SystemRequestRefresh\(\)\))_S 67 _t
(is)_S 67 _t
(cleared.)_S 1800 9057 _m
(The)_S 67 _t
(final)_S 67 _t
(vrl_System)_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(vrl_SystemCommandLine\(\).)_S 134 _t
(It)_S 67 _t
(just)_S 67 _t
(goes)_S 67 _t
(through)_S 67 _t
(the)_S 1200 8824 _m
(command-line)_S 67 _t
(parameters)_S 67 _t
(and)_S 67 _t
(calls)_S 67 _t
(the)_S 67 _t
(appropriate)_S 67 _t
(routines)_S 67 _t
(to)_S 67 _t
(read)_S 67 _t
(the)_S 67 _t
(various)_S 67 _t
(types)_S 67 _t
(of)_S 67 _t
(files:)_S 1200 8412 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_SystemCommandLine\(int)_S 80 _t
(argc,)_S 80 _t
(char)_S 80 _t
(*argv[]\))_S 1800 8279 _m
({)_S 1800 8146 _m
(int)_S 80 _t
(i;)_S 1800 8013 _m
(vrl_Camera)_S 80 _t
(*cam;)_S 1800 7880 _m
(for)_S 80 _t
(\(i)_S 80 _t
(=)_S 80 _t
(1;)_S 80 _t
(i)_S 80 _t
(<)_S 80 _t
(argc;)_S 80 _t
(++i\))_S 160 _t
(/*)_S 80 _t
(i)_S 80 _t
(=)_S 80 _t
(1)_S 80 _t
(to)_S 80 _t
(skip)_S 80 _t
(argv[0])_S 80 _t
(*/)_S 2400 7747 _m
({)_S 2400 7614 _m
(FILE)_S 80 _t
(*in)_S 80 _t
(=)_S 80 _t
(fopen\(argv[i],)_S 80 _t
("r"\);)_S 2400 7481 _m
(if)_S 80 _t
(\(in)_S 80 _t
(==)_S 80 _t
(NULL\))_S 80 _t
(continue;)_S 2400 7348 _m
(if)_S 80 _t
(\(strstr\(argv[i],)_S 80 _t
(".wld"\)\))_S 3000 7215 _m
(vrl_ReadWLD\(in\);)_S 2400 7082 _m
(else)_S 80 _t
(if)_S 80 _t
(\(strstr\(argv[i],)_S 80 _t
(".fig"\)\))_S 3000 6949 _m
(vrl_ReadFIG\(in,)_S 80 _t
(NULL,)_S 80 _t
(NULL\);)_S 2400 6816 _m
(else)_S 80 _t
(if)_S 80 _t
(\(strstr\(argv[i],)_S 80 _t
(".plg"\)\))_S 3000 6683 _m
(vrl_ReadObjectPLG\(in\);)_S 2400 6550 _m
(/*)_S 80 _t
(ignore)_S 80 _t
(anything)_S 80 _t
(else)_S 80 _t
(*/)_S 2400 6417 _m
(fclose\(in\);)_S 2400 6284 _m
(})_S 1800 6151 _m
(if)_S 80 _t
(\(!vrl_WorldGetCamera\(\)\))_S 240 _t
(/*)_S 80 _t
(need)_S 80 _t
(to)_S 80 _t
(have)_S 80 _t
(a)_S 80 _t
(camera)_S 80 _t
(*/)_S 2400 6018 _m
(vrl_CameraCreate\(\);)_S 1800 5885 _m
(vrl_WorldUpdate\(\);)_S 1800 5752 _m
(})_S /Times-RomanR 600 _ff
1200 5332 _m
(After)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(files)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(command)_S 67 _t
(line)_S 67 _t
(have)_S 67 _t
(been)_S 67 _t
(processed,)_S 67 _t
(the)_S 67 _t
(vrl_SystemCommandLine\(\))_S 1200 5099 _m
(routine)_S 67 _t
(checks)_S 67 _t
(to)_S 67 _t
(see)_S 67 _t
(if)_S 67 _t
(a)_S 67 _t
(current)_S 67 _t
(camera)_S 67 _t
(has)_S 67 _t
(been)_S 67 _t
(set.)_S 134 _t
(If)_S 67 _t
(not,)_S 67 _t
(a)_S 67 _t
(new)_S 67 _t
(camera)_S 67 _t
(is)_S 67 _t
(created.)_S 1200 4603 _m
/Times-BoldR 720 _ff
(Configuration)_S 80 _t
(Files)_S 3213 4603 _m
/Times-RomanR 600 _ff
1200 4127 _m
(AVRIL)_S 67 _t
(supports)_S 67 _t
(the)_S 67 _t
(loading)_S 67 _t
(of)_S 67 _t
(configuration)_S 67 _t
(files;)_S 67 _t
(the)_S 67 _t
(format)_S 67 _t
(of)_S 67 _t
(these)_S 67 _t
(files)_S 67 _t
(is)_S 67 _t
(given)_S 67 _t
(in)_S 1200 3894 _m
(Appendix)_S 67 _t
(B.)_S 134 _t
(The)_S 67 _t
(functions)_S 67 _t
(that)_S 67 _t
(support)_S 67 _t
(loading)_S 67 _t
(configuration)_S 67 _t
(information)_S 67 _t
(are)_S 1800 3482 _m
/CourierR 400 _ff
(int)_S 80 _t
(vrl_ReadCFG\(FILE)_S 80 _t
(*in\);)_S 1800 3349 _m
(int)_S 80 _t
(vrl_ReadCFGfile\(char)_S 80 _t
(*filename\);)_S /Times-RomanR 600 _ff
1200 2929 _m
(The)_S 67 _t
(vrl_ReadCFG\(\))_S 67 _t
(function)_S 67 _t
(reads)_S 67 _t
(a)_S 67 _t
(configuration)_S 67 _t
(file)_S 67 _t
(and)_S 67 _t
(stores)_S 67 _t
(the)_S 67 _t
(information)_S 67 _t
(from)_S 67 _t
(it)_S 67 _t
(in)_S 1200 2696 _m
(an)_S 67 _t
(internal)_S 67 _t
(set)_S 67 _t
(of)_S 67 _t
(data)_S 67 _t
(structures.)_S 134 _t
(Any)_S 67 _t
(devices)_S 67 _t
(specified)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(file)_S 67 _t
(are)_S 67 _t
(opened,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(serial)_S 1200 2463 _m
(ports)_S 67 _t
(they)_S 67 _t
(use)_S 67 _t
(are)_S 67 _t
(opened)_S 67 _t
(as)_S 67 _t
(well.)_S 134 _t
(If)_S 67 _t
(a)_S 67 _t
(display)_S 67 _t
(driver)_S 67 _t
(is)_S 67 _t
(specified,)_S 67 _t
(the)_S 67 _t
(display)_S 67 _t
(is)_S 67 _t
(initialized)_S 1200 2230 _m
(using)_S 67 _t
(that)_S 67 _t
(driver.)_S 134 _t
(The)_S 67 _t
(vrl_ReadCFGfile\(\))_S 67 _t
(routine)_S 67 _t
(does)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(thing,)_S 67 _t
(but)_S 67 _t
(uses)_S 67 _t
(the)_S 67 _t
(name)_S 67 _t
(of)_S 67 _t
(a)_S 1200 1997 _m
(file)_S 67 _t
(rather)_S 67 _t
(than)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(an)_S 67 _t
(already-opened)_S 67 _t
(file.)_S 134 _t
(The)_S 67 _t
(filename)_S 67 _t
(is)_S 67 _t
(processed)_S 67 _t
(to)_S 67 _t
(prepend)_S 67 _t
(the)_S 8800 1255 _m
(21)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(current)_S 67 _t
(loadpath)_S 67 _t
(\(unless)_S 67 _t
(the)_S 67 _t
(filename)_S 67 _t
(begins)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(slash\).)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(filename)_S 67 _t
(is)_S 67 _t
(NULL,)_S 67 _t
(then)_S 1200 11622 _m
("avril.cfg")_S 67 _t
(is)_S 67 _t
(used.)_S 1800 11156 _m
(There)_S 67 _t
(are)_S 67 _t
(routines)_S 67 _t
(for)_S 67 _t
(reading,)_S 67 _t
(setting)_S 67 _t
(and)_S 67 _t
(toggling)_S 67 _t
(the)_S 67 _t
(various)_S 67 _t
(flags)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(can)_S 1200 10923 _m
(specify)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(configuration)_S 67 _t
(file:)_S 1800 10511 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ConfigSetCompassDisplay\(vrl_Boolean)_S 80 _t
(flag\);)_S 1800 10378 _m
(vrl_Boolean)_S 80 _t
(vrl_ConfigGetCompassDisplay\(void\);)_S 1800 10245 _m
(void)_S 80 _t
(vrl_ConfigToggleCompassDisplay\(void\);)_S 1800 10112 _m
(void)_S 80 _t
(vrl_ConfigSetPositionDisplay\(vrl_Boolean)_S 80 _t
(flag\);)_S 1800 9979 _m
(vrl_Boolean)_S 80 _t
(vrl_ConfigGetPositionDisplay\(void\);)_S 1800 9846 _m
(void)_S 80 _t
(vrl_ConfigTogglePositionDisplay\(void\);)_S 1800 9713 _m
(void)_S 80 _t
(vrl_ConfigSetFramerateDisplay\(vrl_Boolean)_S 80 _t
(flag\);)_S 1800 9580 _m
(vrl_Boolean)_S 80 _t
(vrl_ConfigGetFramerateDisplay\(void\);)_S 1800 9447 _m
(void)_S 80 _t
(vrl_ConfigToggleFramerateDisplay\(void\);)_S /Times-RomanR 600 _ff
1200 9027 _m
(If)_S 67 _t
(you)_S 67 _t
(wanted)_S 67 _t
(to)_S 67 _t
(let)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(specify)_S 67 _t
(a)_S 67 _t
(configuration)_S 67 _t
(file)_S 67 _t
(to)_S 67 _t
(load)_S 67 _t
(by)_S 67 _t
(setting)_S 67 _t
(the)_S 67 _t
(AVRIL)_S 1200 8794 _m
(environment)_S 67 _t
(variable,)_S 67 _t
(you)_S 67 _t
(would)_S 67 _t
(make)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(call:)_S 1800 8382 _m
/CourierR 400 _ff
(vrl_ReadCFGfile\(getenv\("AVRIL"\)\);)_S /Times-RomanR 600 _ff
1200 7962 _m
(If)_S 67 _t
(no)_S 67 _t
(AVRIL)_S 67 _t
(environment)_S 67 _t
(variable)_S 67 _t
(is)_S 67 _t
(found,)_S 67 _t
(getenv\(\))_S 67 _t
(will)_S 67 _t
(return)_S 67 _t
(NULL)_S 67 _t
(and)_S 67 _t
(avril.cfg)_S 67 _t
(will)_S 67 _t
(be)_S 1200 7729 _m
(used.)_S 1200 7190 _m
/Times-RomanR 900 _ff
(Part)_S 100 _t
(II)_S 100 _t
(-)_S 100 _t
(Technical)_S 100 _t
(Reference)_S 4782 7190 _m
/Times-RomanR 600 _ff
1800 6697 _m
(This)_S 67 _t
(section)_S 67 _t
(describes)_S 67 _t
(AVRIL)_S 67 _t
(from)_S 67 _t
(a)_S 67 _t
(technical)_S 67 _t
(perspective,)_S 67 _t
(and)_S 67 _t
(describes)_S 67 _t
(the)_S 67 _t
(data)_S 1200 6464 _m
(types)_S 67 _t
(and)_S 67 _t
(functions)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(available.)_S 134 _t
(Anything)_S 67 _t
(that)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(documented)_S 67 _t
(here)_S 67 _t
(should)_S 67 _t
(not)_S 67 _t
(be)_S 1200 6231 _m
(used,)_S 67 _t
(since)_S 67 _t
(it's)_S 67 _t
(subject)_S 67 _t
(to)_S 67 _t
(change)_S 67 _t
(in)_S 67 _t
(future)_S 67 _t
(releases)_S 67 _t
(of)_S 67 _t
(AVRIL.)_S 134 _t
(Also)_S 67 _t
(keep)_S 67 _t
(in)_S 67 _t
(mind)_S 67 _t
(that)_S 67 _t
(some)_S 1200 5998 _m
(of)_S 67 _t
(the)_S 67 _t
(routines)_S 67 _t
(described)_S 67 _t
(below)_S 67 _t
(may)_S 67 _t
(be)_S 67 _t
(implemented)_S 67 _t
(as)_S 67 _t
(macros,)_S 67 _t
(and)_S 67 _t
(that)_S 67 _t
(this)_S 67 _t
(may)_S 67 _t
(also)_S 1200 5765 _m
(change)_S 67 _t
(in)_S 67 _t
(future)_S 67 _t
(releases;)_S 67 _t
(none)_S 67 _t
(of)_S 67 _t
(your)_S 67 _t
(code)_S 67 _t
(should)_S 67 _t
(assume)_S 67 _t
(that)_S 67 _t
(any)_S 67 _t
(particular)_S 67 _t
(routine)_S 67 _t
(is)_S 1200 5532 _m
(either)_S 67 _t
(a)_S 67 _t
(macro)_S 67 _t
(or)_S 67 _t
(a)_S 67 _t
(real)_S 67 _t
(function.)_S 1800 5066 _m
(There)_S 67 _t
(are)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(important)_S 67 _t
(concepts)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(essential)_S 67 _t
(to)_S 67 _t
(an)_S 67 _t
(understanding)_S 67 _t
(of)_S 1200 4833 _m
(how)_S 67 _t
(AVRIL)_S 67 _t
(works.)_S 134 _t
(Let's)_S 67 _t
(start)_S 67 _t
(by)_S 67 _t
(examining)_S 67 _t
(them.)_S 1200 4337 _m
/Times-BoldR 720 _ff
(Basic)_S 80 _t
(Data)_S 80 _t
(Types)_S 3013 4337 _m
/Times-RomanR 600 _ff
1800 3861 _m
(AVRIL)_S 67 _t
(uses)_S 67 _t
(a)_S 67 _t
(left-handed)_S 67 _t
(coordinate)_S 67 _t
(system;)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(X)_S 67 _t
(axis)_S 67 _t
(points)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(right,)_S 67 _t
(and)_S 67 _t
(the)_S 1200 3628 _m
(Y)_S 67 _t
(axis)_S 67 _t
(points)_S 67 _t
(up,)_S 67 _t
(then)_S 67 _t
(Z)_S 67 _t
(points)_S 67 _t
(straight)_S 67 _t
(ahead.)_S 134 _t
(If)_S 67 _t
(you're)_S 67 _t
(looking)_S 67 _t
(at)_S 67 _t
(the)_S 67 _t
(origin)_S 67 _t
(from)_S 67 _t
(the)_S 1200 3395 _m
(positive)_S 67 _t
(end)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(axis,)_S 67 _t
(a)_S 67 _t
(clockwise)_S 67 _t
(rotation)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(positive)_S 67 _t
(rotation)_S 67 _t
(angle.)_S 1800 2929 _m
(Distances)_S 67 _t
(in)_S 67 _t
(AVRIL)_S 67 _t
(are)_S 67 _t
(represented)_S 67 _t
(by)_S 67 _t
(vrl_Scalars,)_S 67 _t
(and)_S 67 _t
(rotation)_S 67 _t
(angles)_S 67 _t
(by)_S 67 _t
(vrl_Angles.)_S 67 _t
1200 2696 _m
(AVRIL)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(compiled)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(either)_S 67 _t
(floating)_S 67 _t
(point)_S 67 _t
(or)_S 67 _t
(fixed)_S 67 _t
(point,)_S 67 _t
(so)_S 67 _t
(it's)_S 67 _t
(important)_S 67 _t
(to)_S 67 _t
(use)_S 1200 2463 _m
(the)_S 67 _t
(vrl_Scalar)_S 67 _t
(and)_S 67 _t
(vrl_Angle)_S 67 _t
(types)_S 67 _t
(for)_S 67 _t
(portability.)_S 134 _t
(vrl_Scalars)_S 67 _t
(should)_S 67 _t
(always)_S 67 _t
(be)_S 67 _t
(treated)_S 67 _t
(as)_S 1200 2230 _m
(\(long\))_S 67 _t
(integer)_S 67 _t
(values,)_S 67 _t
(regardless)_S 67 _t
(of)_S 67 _t
(whether)_S 67 _t
(floating)_S 67 _t
(or)_S 67 _t
(fixed)_S 67 _t
(point)_S 67 _t
(is)_S 67 _t
(used.)_S 134 _t
(vrl_Angles)_S 67 _t
(are)_S 1200 1997 _m
(always)_S 67 _t
(measured)_S 67 _t
(in)_S 67 _t
(degrees)_S 67 _t
(\(converted)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(internal)_S 67 _t
(vrl_Angle)_S 67 _t
(format,)_S 67 _t
(of)_S 67 _t
(course\).)_S 134 _t
(A)_S 67 _t
(third)_S 8800 1255 _m
(22)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(fundamental)_S 67 _t
(data)_S 67 _t
(type)_S 67 _t
(is)_S 67 _t
(vrl_Factor,)_S 67 _t
(which)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(things)_S 67 _t
(like)_S 67 _t
(the)_S 67 _t
(return)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(trig)_S 1200 11622 _m
(functions;)_S 67 _t
(a)_S 67 _t
(special)_S 67 _t
(constant)_S 67 _t
(called)_S 67 _t
(VRL_UNITY)_S 67 _t
(is)_S 67 _t
(#defined)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(a)_S 67 _t
(vrl_Factor)_S 67 _t
(of)_S 67 _t
(1.)_S 1800 11156 _m
(In)_S 67 _t
(a)_S 67 _t
(floating)_S 67 _t
(point)_S 67 _t
(implementation,)_S 67 _t
(all)_S 67 _t
(three)_S 67 _t
(types)_S 67 _t
(\(vrl_Scalars,)_S 67 _t
(vrl_Angles)_S 67 _t
(and)_S 1200 10923 _m
(vrl_Factors\))_S 67 _t
(are)_S 67 _t
(stored)_S 67 _t
(as)_S 67 _t
(floats;)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(fixed-point)_S 67 _t
(implementation,)_S 67 _t
(they're)_S 67 _t
(all)_S 67 _t
(32-bit)_S 67 _t
(integers)_S 1200 10690 _m
(\(which)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
("long")_S 67 _t
(on)_S 67 _t
(many)_S 67 _t
(systems\).)_S 134 _t
(The)_S 67 _t
(following)_S 67 _t
(macros)_S 67 _t
(are)_S 67 _t
(provided)_S 67 _t
(for)_S 67 _t
(converting)_S 1200 10457 _m
(between)_S 67 _t
(floating)_S 67 _t
(point)_S 67 _t
(\(or)_S 67 _t
(regular)_S 67 _t
(integers\))_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(three)_S 67 _t
(special)_S 67 _t
(types:)_S 1800 10045 _m
/CourierR 400 _ff
(float2scalar\(float\);)_S 1800 9912 _m
(scalar2float\(vrl_Scalar\);)_S 1800 9646 _m
(float2angle\(float\);)_S 1800 9513 _m
(angle2float\(vrl_Angle\);)_S 1800 9247 _m
(float2factor\(float\);)_S 1800 9114 _m
(factor2float\(vrl_Factor\);)_S /Times-RomanR 600 _ff
1200 8694 _m
(Several)_S 67 _t
(routines)_S 67 _t
(are)_S 67 _t
(provided)_S 67 _t
(to)_S 67 _t
(support)_S 67 _t
(portable)_S 67 _t
(multiplication)_S 67 _t
(and)_S 67 _t
(division)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(types:)_S 1800 8282 _m
/CourierR 400 _ff
(vrl_Factor)_S 80 _t
(vrl_ScalarDivide\(vrl_Scalar)_S 80 _t
(a,)_S 80 _t
(vrl_Scalar)_S 80 _t
(b\);)_S 1800 8149 _m
(vrl_Scalar)_S 80 _t
(vrl_ScalarMultDiv\(vrl_Scalar)_S 80 _t
(a,)_S 80 _t
(vrl_Scalar)_S 80 _t
(b,)_S 80 _t
(vrl_Scalar)_S 80 _t
(c\);)_S 1800 8016 _m
(vrl_Scalar)_S 80 _t
(vrl_FactorMultiply\(vrl_Factor)_S 80 _t
(a,)_S 80 _t
(vrl_Scalar)_S 80 _t
(b\);)_S /Times-RomanR 600 _ff
1200 7596 _m
(The)_S 67 _t
(first)_S 67 _t
(of)_S 67 _t
(these)_S 67 _t
(routines)_S 67 _t
(simply)_S 67 _t
(divides)_S 67 _t
(two)_S 67 _t
(vrl_Scalars)_S 67 _t
(and)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(vrl_Factor)_S 67 _t
(result;)_S 67 _t
(the)_S 1200 7361 _m
(absolute)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
2667 7361 _m
/Times-ItalicR 600 _ff
(a)_S 2767 7361 _m
/Times-RomanR 600 _ff
67 _t
(should)_S 67 _t
(be)_S 67 _t
(less)_S 67 _t
(than)_S 67 _t
(the)_S 67 _t
(absolute)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
6248 7361 _m
/Times-ItalicR 600 _ff
(b)_S 6348 7361 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(The)_S 67 _t
(second)_S 67 _t
(routine)_S 67 _t
(multiplies)_S 1200 7128 _m
(two)_S 67 _t
(vrl_Scalars)_S 67 _t
(and)_S 67 _t
(divides)_S 67 _t
(by)_S 67 _t
(a)_S 67 _t
(third,)_S 67 _t
(using)_S 67 _t
(a)_S 67 _t
(64-bit)_S 67 _t
(intermediate)_S 67 _t
(result;)_S 67 _t
(in)_S 67 _t
(other)_S 67 _t
(words,)_S 67 _t
(it)_S 1200 6893 _m
(computes)_S 67 _t
2034 6893 _m
/Times-ItalicR 600 _ff
(\(a*b\)/c)_S 2611 6893 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(The)_S 67 _t
(third)_S 67 _t
(routine)_S 67 _t
(multiplies)_S 67 _t
(a)_S 67 _t
(vrl_Factor)_S 67 _t
(by)_S 67 _t
(a)_S 67 _t
(vrl_Scalar)_S 67 _t
(and)_S 67 _t
(returns)_S 67 _t
(a)_S 1200 6660 _m
(vrl_Scalar)_S 67 _t
(result;)_S 67 _t
(it)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(multiplying)_S 67 _t
(two)_S 67 _t
(vrl_Factors,)_S 67 _t
(or)_S 67 _t
(an)_S 67 _t
(integer)_S 67 _t
(or)_S 67 _t
(long)_S 1200 6427 _m
(value)_S 67 _t
(by)_S 67 _t
(a)_S 67 _t
(vrl_Factor.)_S 134 _t
(The)_S 67 _t
(order)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(operands)_S 67 _t
(is)_S 67 _t
(significant,)_S 67 _t
(because)_S 67 _t
(C)_S 67 _t
(automatically)_S 1200 6194 _m
(promotes)_S 67 _t
(ints)_S 67 _t
(to)_S 67 _t
(longs.)_S 1800 5728 _m
(On)_S 67 _t
(floating-point)_S 67 _t
(implementations,)_S 67 _t
(there)_S 67 _t
(may)_S 67 _t
(be)_S 67 _t
(occasions)_S 67 _t
(where)_S 67 _t
(the)_S 67 _t
(computed)_S 67 _t
(value)_S 1200 5495 _m
(of)_S 67 _t
(a)_S 67 _t
(vrl_Scalar)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(fractional)_S 67 _t
(part;)_S 67 _t
(in)_S 67 _t
(such)_S 67 _t
(cases)_S 67 _t
(you)_S 67 _t
(should)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(function:)_S 1800 5029 _m
/CourierR 400 _ff
(vrl_Scalar)_S 80 _t
(vrl_ScalarRound\(vrl_Scalar)_S 80 _t
(value\))_S 5320 5029 _m
/Times-RomanR 600 _ff
(;)_S 1200 4563 _m
(to)_S 67 _t
(round)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(nearest)_S 67 _t
(valid)_S 67 _t
(vrl_Scalar)_S 67 _t
(value.)_S 1800 4097 _m
(There)_S 67 _t
(are)_S 67 _t
(currently)_S 67 _t
(two)_S 67 _t
(trig)_S 67 _t
(routines,)_S 67 _t
(vrl_Sine\(\))_S 67 _t
(and)_S 67 _t
(vrl_Cosine\(\);)_S 67 _t
(they)_S 67 _t
(both)_S 67 _t
(take)_S 1200 3864 _m
(vrl_Angles)_S 67 _t
(as)_S 67 _t
(parameters)_S 67 _t
(and)_S 67 _t
(return)_S 67 _t
(vrl_Factors:)_S 1800 3452 _m
/CourierR 400 _ff
(vrl_Factor)_S 80 _t
(vrl_Sine\(vrl_Angle)_S 80 _t
(angle\);)_S 1800 3265 _m
(vrl_Factor)_S 80 _t
(vrl_Cosine\(vrl_Angle)_S 80 _t
(angle\))_S 4840 3265 _m
/Times-RomanR 600 _ff
(;)_S 1200 2799 _m
(The)_S 67 _t
(routine)_S 67 _t
(vrl_MathInit\(\))_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(called)_S 67 _t
(before)_S 67 _t
(calling)_S 67 _t
(any)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(trig)_S 67 _t
(functions;)_S 67 _t
(it)_S 67 _t
(pre-)_S 1200 2566 _m
(computes)_S 67 _t
(the)_S 67 _t
(trig)_S 67 _t
(tables.)_S 134 _t
(This)_S 67 _t
(is)_S 67 _t
(done)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(vrl_SystemStartup\(\))_S 67 _t
(routine)_S 67 _t
(\(found)_S 67 _t
(in)_S 67 _t
(system.c\).)_S 1800 2100 _m
(There)_S 67 _t
(are)_S 67 _t
(several)_S 67 _t
(other)_S 67 _t
(basic)_S 67 _t
(types)_S 67 _t
(used)_S 67 _t
(in)_S 67 _t
(AVRIL:)_S 67 _t
(vrl_Time)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(measure)_S 67 _t
(of)_S 67 _t
(elapsed)_S 1200 1867 _m
(time)_S 67 _t
(in)_S 67 _t
(ticks,)_S 67 _t
(and)_S 67 _t
(vrl_Boolean)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(true/false)_S 67 _t
(type)_S 67 _t
(value)_S 67 _t
(\(non-zero)_S 67 _t
(being)_S 67 _t
(true\).)_S 134 _t
(The)_S 67 _t
(types)_S 8800 1255 _m
(23)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(vrl_32bit)_S 67 _t
(and)_S 67 _t
(vrl_unsigned32bit)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(signed)_S 67 _t
(and)_S 67 _t
(unsigned)_S 67 _t
(32-bit)_S 67 _t
(numbers,)_S 67 _t
(and)_S 1200 11622 _m
(vrl_16bit)_S 67 _t
(and)_S 67 _t
(vrl_unsigned16bit)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(signed)_S 67 _t
(and)_S 67 _t
(unsigned)_S 67 _t
(16-bit)_S 67 _t
(numbers.)_S 1200 11126 _m

/Times-BoldR 720 _ff
(Vectors)_S 1986 11126 _m
/Times-RomanR 600 _ff
1800 10650 _m
(A)_S 67 _t
(vrl_Vector)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(three-element)_S 67 _t
(array,)_S 67 _t
(which)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(indexed)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(#defined)_S 67 _t
(constants)_S 1200 10415 _m
(X,)_S 67 _t
(Y)_S 67 _t
(and)_S 67 _t
(Z;)_S 67 _t
(for)_S 67 _t
(example,)_S 67 _t
(if)_S 67 _t
3557 10415 _m
/Times-ItalicR 600 _ff
(v)_S 3646 10415 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(a)_S 67 _t
(vector)_S 67 _t
(then)_S 67 _t
5048 10415 _m
/Times-ItalicR 600 _ff
(v)_S 5136 10415 _m
/Times-RomanR 600 _ff
([X])_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(X-component)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(vector.)_S 134 _t
(In)_S 1200 10182 _m
(general,)_S 67 _t
(vrl_Vectors)_S 67 _t
(are)_S 67 _t
(made)_S 67 _t
(up)_S 67 _t
(of)_S 67 _t
(three)_S 67 _t
(vrl_Scalars;)_S 67 _t
(however,)_S 67 _t
(a)_S 67 _t
(normalized)_S 67 _t
(vector)_S 67 _t
(\(such)_S 67 _t
(as)_S 1200 9949 _m
(a)_S 67 _t
(facet)_S 67 _t
(normal,)_S 67 _t
(a)_S 67 _t
(basis)_S 67 _t
(vector,)_S 67 _t
(or)_S 67 _t
(a)_S 67 _t
(vector)_S 67 _t
(that's)_S 67 _t
(been)_S 67 _t
(normalized)_S 67 _t
(using)_S 67 _t
(the)_S 1200 9716 _m
(vrl_VectorNormalize\(\))_S 67 _t
(function\))_S 67 _t
(will)_S 67 _t
(actually)_S 67 _t
(have)_S 67 _t
(vrl_Factors)_S 67 _t
(as)_S 67 _t
(elements.)_S 134 _t
(The)_S 67 _t
(following)_S 1200 9483 _m
(functions)_S 67 _t
(perform)_S 67 _t
(fundamental)_S 67 _t
(operations)_S 67 _t
(on)_S 67 _t
(vrl_Vectors:)_S 1800 9071 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_VectorCreate\(vrl_Vector)_S 80 _t
(result,)_S 80 _t
(vrl_Scalar)_S 80 _t
(x,)_S 80 _t
(vrl_Scalar)_S 80 _t
(y,)_S 80 _t
(vrl_Scalar)_S 80 _t
(z\);)_S 1800 8938 _m
(void)_S 80 _t
(vrl_VectorCopy\(vrl_Vector)_S 80 _t
(destination,)_S 80 _t
(vrl_Vector)_S 80 _t
(source\);)_S 1800 8805 _m
(void)_S 80 _t
(vrl_VectorAdd\(vrl_Vector)_S 80 _t
(result,)_S 80 _t
(vrl_Vector)_S 80 _t
(v1,)_S 80 _t
(vrl_Vector)_S 80 _t
(v2\);)_S 1800 8672 _m
(void)_S 80 _t
(vrl_VectorSub\(vrl_Vector)_S 80 _t
(result,)_S 80 _t
(vrl_Vector)_S 80 _t
(v1,)_S 80 _t
(vrl_Vector)_S 80 _t
(v2\);)_S 1800 8539 _m
(void)_S 80 _t
(vrl_VectorNegate\(vrl_Vector)_S 80 _t
(v\);)_S 1800 8406 _m
(vrl_Factor)_S 80 _t
(vrl_VectorDotproduct\(vrl_Vector)_S 80 _t
(v1,)_S 80 _t
(vrl_Vector)_S 80 _t
(v2\);)_S 1800 8273 _m
(vrl_Scalar)_S 80 _t
(vrl_VectorCrossproduct\(vrl_Vector)_S 80 _t
(result,)_S 80 _t
(vrl_Vector)_S 80 _t
(v1,)_S 80 _t
(vrl_Vector)_S 80 _t
(v2\);)_S 1800 8140 _m
(vrl_Scalar)_S 80 _t
(vrl_VectorMagnitude\(vrl_Vector)_S 80 _t
(v\);)_S 1800 8007 _m
(void)_S 80 _t
(vrl_VectorNormalize\(vrl_Vector)_S 80 _t
(v\);)_S 1800 7874 _m
(vrl_Scalar)_S 80 _t
(vrl_VectorDistance\(vrl_Vector)_S 80 _t
(v1,)_S 80 _t
(vrl_Vector)_S 80 _t
(v2\);)_S 1800 7741 _m
(void)_S 80 _t
(vrl_VectorScale\(vrl_Vector)_S 80 _t
(v,)_S 80 _t
(vrl_Scalar)_S 80 _t
(newmag\);)_S 1800 7608 _m
(void)_S 80 _t
(vrl_VectorRescale\(vrl_Vector)_S 80 _t
(v,)_S 80 _t
(vrl_Scalar)_S 80 _t
(newmag\);)_S 1800 7475 _m
(void)_S 80 _t
(vrl_VectorPrint\(FILE)_S 80 _t
(*out,)_S 80 _t
(char)_S 80 _t
(*str,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S 1800 7342 _m
(vrl_Boolean)_S 80 _t
(vrl_VectorEqual\(vrl_Vector)_S 80 _t
(v1,)_S 80 _t
(vrl_Vector)_S 80 _t
(v2\);)_S 1800 7209 _m
(void)_S 80 _t
(vrl_VectorZero\(vrl_Vector)_S 80 _t
(v\);)_S 1200 6889 _m
/Times-RomanR 600 _ff
(The)_S 67 _t
(vrl_VectorCreate\(\))_S 67 _t
(function)_S 67 _t
(takes)_S 67 _t
(three)_S 67 _t
(vrl_Scalars)_S 67 _t
(and)_S 67 _t
(assembles)_S 67 _t
(them)_S 67 _t
(into)_S 67 _t
(a)_S 67 _t
(vrl_Vector.)_S 67 _t
1200 6656 _m
(The)_S 67 _t
(vrl_VectorCopy\(\),)_S 67 _t
(vrl_VectorAdd\(\))_S 67 _t
(and)_S 67 _t
(vrl_VectorSub\(\))_S 67 _t
(routines)_S 67 _t
(do)_S 67 _t
(element-by-element)_S 1200 6423 _m
(copies,)_S 67 _t
(additions)_S 67 _t
(and)_S 67 _t
(subtractions)_S 67 _t
(of)_S 67 _t
(vrl_Vectors.)_S 134 _t
(The)_S 67 _t
(vrl_VectorNegate\(\))_S 67 _t
(function)_S 67 _t
(reverses)_S 1200 6190 _m
(the)_S 67 _t
(direction)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(vrl_Vector)_S 67 _t
(by)_S 67 _t
(flipping)_S 67 _t
(the)_S 67 _t
(sign)_S 67 _t
(of)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(its)_S 67 _t
(components.)_S 134 _t
(The)_S 1200 5957 _m
(vrl_VectorDotproduct\(\))_S 67 _t
(routine)_S 67 _t
(computes)_S 67 _t
(the)_S 67 _t
(dot)_S 67 _t
(product)_S 67 _t
(\(inner)_S 67 _t
(product\))_S 67 _t
(of)_S 67 _t
(two)_S 67 _t
(vectors;)_S 67 _t
(at)_S 1200 5724 _m
(least)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(vectors)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(normalized)_S 67 _t
(for)_S 67 _t
(this)_S 67 _t
(to)_S 67 _t
(work)_S 67 _t
(properly.)_S 1800 5258 _m
(The)_S 67 _t
(vrl_VectorCrossproduct\(\))_S 67 _t
(routine)_S 67 _t
(computes)_S 67 _t
(the)_S 67 _t
(vector)_S 67 _t
(cross)_S 67 _t
(product)_S 67 _t
(\(outer)_S 1200 5025 _m
(product\))_S 67 _t
(of)_S 67 _t
(two)_S 67 _t
(vectors.)_S 134 _t
(This)_S 67 _t
(is)_S 67 _t
(likely)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(slow,)_S 67 _t
(since)_S 67 _t
(it)_S 67 _t
(normalizes)_S 67 _t
(the)_S 67 _t
(result)_S 67 _t
(\(which)_S 1200 4792 _m
(involves)_S 67 _t
(doing)_S 67 _t
(a)_S 67 _t
(square)_S 67 _t
(root)_S 67 _t
(operation\).)_S 134 _t
(It)_S 67 _t
(returns)_S 67 _t
(the)_S 67 _t
(magnitude)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(vector)_S 67 _t
(prior)_S 67 _t
(to)_S 1200 4559 _m
(normalization.)_S 134 _t
(The)_S 67 _t
(vrl_Magnitude\(\))_S 67 _t
(routine)_S 67 _t
(returns)_S 67 _t
(the)_S 67 _t
(magnitude)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(vector,)_S 67 _t
(and)_S 67 _t
(the)_S 1200 4326 _m
(vrl_VectorNormalize\(\))_S 67 _t
(routine)_S 67 _t
(scales)_S 67 _t
(a)_S 67 _t
(vector)_S 67 _t
(so)_S 67 _t
(that)_S 67 _t
(it)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(magnitude)_S 67 _t
(of)_S 67 _t
(1.)_S 1800 3860 _m
(The)_S 67 _t
(vrl_VectorDistance\(\))_S 67 _t
(takes)_S 67 _t
(two)_S 67 _t
(vrl_Vectors)_S 67 _t
(\(each)_S 67 _t
(representing)_S 67 _t
(a)_S 67 _t
(point)_S 67 _t
(in)_S 67 _t
(space\))_S 1200 3627 _m
(and)_S 67 _t
(computes)_S 67 _t
(the)_S 67 _t
(distance)_S 67 _t
(between)_S 67 _t
(those)_S 67 _t
(two)_S 67 _t
(points.)_S 134 _t
(The)_S 67 _t
(vrl_Scale\(\))_S 67 _t
(function)_S 67 _t
(takes)_S 67 _t
(a)_S 1200 3394 _m
(normalized)_S 67 _t
(vrl_Vector)_S 67 _t
(and)_S 67 _t
(scales)_S 67 _t
(all)_S 67 _t
(its)_S 67 _t
(components)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
(amount;)_S 67 _t
(the)_S 67 _t
(vrl_Rescale\(\))_S 1200 3161 _m
(function)_S 67 _t
(takes)_S 67 _t
(a)_S 67 _t
(non-normalized)_S 67 _t
(vector)_S 67 _t
(and)_S 67 _t
(re-scales)_S 67 _t
(it)_S 67 _t
(to)_S 67 _t
(have)_S 67 _t
(the)_S 67 _t
(specified)_S 67 _t
(magnitude.)_S 1800 2695 _m
(The)_S 67 _t
(vrl_VectorPrint\(\))_S 67 _t
(routine)_S 67 _t
(prints)_S 67 _t
(out)_S 67 _t
(a)_S 67 _t
(message)_S 67 _t
(followed)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(values)_S 67 _t
(of)_S 67 _t
(each)_S 67 _t
(of)_S 1200 2462 _m
(the)_S 67 _t
(components)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(vrl_Vector,)_S 67 _t
(enclosed)_S 67 _t
(in)_S 67 _t
(square)_S 67 _t
(brackets.)_S 134 _t
(Do)_S 67 _t
(not)_S 67 _t
(attempt)_S 67 _t
(to)_S 67 _t
(write)_S 67 _t
(to)_S 67 _t
(the)_S 1200 2229 _m
(screen)_S 67 _t
(with)_S 67 _t
(this)_S 67 _t
(routine,)_S 67 _t
(since)_S 67 _t
(it)_S 67 _t
(will)_S 67 _t
(not)_S 67 _t
(work)_S 67 _t
(well)_S 67 _t
(in)_S 67 _t
(graphics)_S 67 _t
(mode.)_S 8800 1255 _m
(24)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(The)_S 67 _t
(vrl_VectorEqual\(\))_S 67 _t
(routine)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(two)_S 67 _t
(vrl_Vectors)_S 67 _t
(are)_S 1200 11622 _m
(identical;)_S 67 _t
(vrl_VectorZero\(\))_S 67 _t
(sets)_S 67 _t
(the)_S 67 _t
(components)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(vrl_Vector)_S 67 _t
(to)_S 67 _t
(zero.)_S 134 _t
(The)_S 67 _t
([0,0,0])_S 67 _t
(vector)_S 67 _t
(is)_S 1200 11389 _m
(sometimes)_S 67 _t
(needed,)_S 67 _t
(so)_S 67 _t
(a)_S 67 _t
(global)_S 67 _t
(vrl_Vector)_S 67 _t
(variable)_S 67 _t
(called)_S 67 _t
(vrl_VectorNULL)_S 67 _t
(is)_S 67 _t
(defined.)_S 1200 10893 _m
/Times-BoldR 720 _ff
(Matrices)_S 2106 10893 _m
/Times-RomanR 600 _ff
1800 10417 _m
(A)_S 67 _t
(vrl_Matrix)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(4)_S 67 _t
(by)_S 67 _t
(3)_S 67 _t
(array)_S 67 _t
(that)_S 67 _t
(stores)_S 67 _t
(location)_S 67 _t
(and)_S 67 _t
(orientation)_S 67 _t
(information.)_S 134 _t
(All)_S 1200 10184 _m
(AVRIL)_S 67 _t
(matrices)_S 67 _t
(are)_S 67 _t
(homogenous;)_S 67 _t
(the)_S 67 _t
(upper)_S 67 _t
(3)_S 67 _t
(by)_S 67 _t
(3)_S 67 _t
(submatrix)_S 67 _t
(stores)_S 67 _t
(rotation)_S 67 _t
(information)_S 67 _t
(and)_S 1200 9951 _m
(the)_S 67 _t
(last)_S 67 _t
(3-element)_S 67 _t
(row)_S 67 _t
(stores)_S 67 _t
(a)_S 67 _t
(translation)_S 67 _t
(vector.)_S 134 _t
(You)_S 67 _t
(should)_S 67 _t
(never)_S 67 _t
(have)_S 67 _t
(to)_S 67 _t
(deal)_S 67 _t
(with)_S 67 _t
(the)_S 1200 9718 _m
(vrl_Matrix)_S 67 _t
(type)_S 67 _t
(directly.)_S 134 _t
(However,)_S 67 _t
(in)_S 67 _t
(case)_S 67 _t
(you)_S 67 _t
(do)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(deal)_S 67 _t
(with)_S 67 _t
(actual)_S 67 _t
(matrices,)_S 1200 9485 _m
(the)_S 67 _t
(following)_S 67 _t
(routines)_S 67 _t
(are)_S 67 _t
(provided:)_S 1800 9073 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_MatrixIdentity\(vrl_Matrix)_S 80 _t
(m\);)_S 1800 8940 _m
(void)_S 80 _t
(vrl_MatrixCopy\(vrl_Matrix)_S 80 _t
(result,)_S 80 _t
(vrl_Matrix)_S 80 _t
(m\);)_S 1800 8807 _m
(void)_S 80 _t
(vrl_MatrixMultiply\(vrl_Matrix)_S 80 _t
(result,)_S 80 _t
(vrl_Matrix)_S 80 _t
(m1,)_S 80 _t
(vrl_Matrix)_S 80 _t
(m2\);)_S 1800 8674 _m
(void)_S 80 _t
(vrl_MatrixInverse\(vrl_Matrix)_S 80 _t
(result,)_S 80 _t
(vrl_Matrix)_S 80 _t
(m\);)_S 1800 8541 _m
(void)_S 80 _t
(vrl_MatrixRotX\(vrl_Matrix)_S 80 _t
(m,)_S 80 _t
(vrl_Angle)_S 80 _t
(angle,)_S 80 _t
(vrl_Boolean)_S 80 _t
(leftside\);)_S 1800 8408 _m
(void)_S 80 _t
(vrl_MatrixRotY\(vrl_Matrix)_S 80 _t
(m,)_S 80 _t
(vrl_Angle)_S 80 _t
(angle,)_S 80 _t
(vrl_Boolean)_S 80 _t
(leftside\);)_S 1800 8275 _m
(void)_S 80 _t
(vrl_MatrixRotZ\(vrl_Matrix)_S 80 _t
(m,)_S 80 _t
(vrl_Angle)_S 80 _t
(angle,)_S 80 _t
(vrl_Boolean)_S 80 _t
(leftside\);)_S 1800 8142 _m
(void)_S 80 _t
(vrl_MatrixRotVector\(vrl_Matrix)_S 80 _t
(m,)_S 80 _t
(vrl_Angle)_S 80 _t
(angle,)_S 80 _t
(vrl_Vector)_S 80 _t
(vector,)_S 2400 8009 _m
(vrl_Boolean)_S 80 _t
(leftside\);)_S 1800 7876 _m
(void)_S 80 _t
(vrl_MatrixResetRotations\(vrl_Matrix)_S 80 _t
(m\);)_S 1800 7743 _m
(void)_S 80 _t
(vrl_MatrixGetBasis\(vrl_Vector)_S 80 _t
(v,)_S 80 _t
(vrl_Matrix)_S 80 _t
(m,)_S 80 _t
(int)_S 80 _t
(axis\);)_S 1800 7610 _m
(void)_S 80 _t
(vrl_MatrixTranslate\(vrl_Matrix)_S 80 _t
(result,)_S 80 _t
(vrl_Scalar)_S 80 _t
(x,)_S 80 _t
(vrl_Scalar)_S 80 _t
(y,)_S 80 _t
(vrl_Scalar)_S 80 _t
(z\);)_S 1800 7477 _m
(void)_S 80 _t
(vrl_MatrixSetTranslation\(vrl_Matrix)_S 80 _t
(result,)_S 2400 7344 _m
(vrl_Scalar)_S 80 _t
(x,)_S 80 _t
(vrl_Scalar)_S 80 _t
(y,)_S 80 _t
(vrl_Scalar)_S 80 _t
(z\);)_S 1800 7211 _m
(void)_S 80 _t
(vrl_MatrixGetTranslation\(vrl_Vector)_S 80 _t
(v,)_S 80 _t
(vrl_Matrix)_S 80 _t
(m\);)_S /Times-RomanR 600 _ff
1200 6791 _m
(The)_S 67 _t
(vrl_MatrixIdentity\(\))_S 67 _t
(function)_S 67 _t
(sets)_S 67 _t
(the)_S 67 _t
(matrix)_S 67 _t
(to)_S 67 _t
(zeroes,)_S 67 _t
(except)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(diagonal)_S 67 _t
(elements)_S 1200 6558 _m
(which)_S 67 _t
(are)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(VRL_UNITY.)_S 134 _t
(The)_S 67 _t
(vrl_MatrixCopy\(\))_S 67 _t
(and)_S 67 _t
(vrl_MatrixMultiply\(\))_S 67 _t
(routines)_S 67 _t
(are)_S 1200 6325 _m
(used)_S 67 _t
(to)_S 67 _t
(copy)_S 67 _t
(and)_S 67 _t
(multiply)_S 67 _t
(matrices,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(vrl_MatrixInverse\(\))_S 67 _t
(routine)_S 67 _t
(computes)_S 67 _t
(the)_S 67 _t
(matrix)_S 1200 6092 _m
(inverse.)_S 134 _t
(The)_S 67 _t
(various)_S 67 _t
(rotation)_S 67 _t
(functions)_S 67 _t
(apply)_S 67 _t
(a)_S 67 _t
(rotation)_S 67 _t
(around)_S 67 _t
(X,)_S 67 _t
(Y,)_S 67 _t
(Z)_S 67 _t
(or)_S 67 _t
(a)_S 67 _t
(specified)_S 67 _t
(vector)_S 1200 5859 _m
(by)_S 67 _t
(a)_S 67 _t
(given)_S 67 _t
(angle;)_S 67 _t
(the)_S 67 _t
(vrl_MatrixResetRotations\(\))_S 67 _t
(routine)_S 67 _t
(sets)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(rotations)_S 67 _t
(to)_S 67 _t
(zero.)_S 134 _t
(Several)_S 1200 5624 _m
(of)_S 67 _t
(the)_S 67 _t
(vrl_Matrix)_S 67 _t
(routines)_S 67 _t
(use)_S 67 _t
(a)_S 67 _t
3879 5624 _m
/Times-ItalicR 600 _ff
(leftside)_S 4457 5624 _m
/Times-RomanR 600 _ff
67 _t
(parameter;)_S 67 _t
(if)_S 67 _t
(non-zero,)_S 67 _t
(this)_S 67 _t
(parameter)_S 67 _t
(specifies)_S 67 _t
(that)_S 1200 5391 _m
(the)_S 67 _t
(transformation)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(applied)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(pre-multiplication)_S 67 _t
(instead)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(post-multiplication.)_S 1800 4925 _m
(The)_S 67 _t
(function)_S 67 _t
(vrl_MatrixGetBasis\(\))_S 67 _t
(gets)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(basis)_S 67 _t
(vectors)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(rotation)_S 67 _t
(part)_S 67 _t
(of)_S 1200 4692 _m
(the)_S 67 _t
(matrix;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(equivalent)_S 67 _t
(to)_S 67 _t
(\(but)_S 67 _t
(faster)_S 67 _t
(than\))_S 67 _t
(transforming)_S 67 _t
(an)_S 67 _t
(axis-aligned)_S 67 _t
(unit)_S 67 _t
(vector)_S 67 _t
(by)_S 1200 4459 _m
(the)_S 67 _t
(matrix.)_S 134 _t
(In)_S 67 _t
(other)_S 67 _t

(words,)_S 67 _t
(vrl_MatrixGetBasis\(v,)_S 67 _t
(m,)_S 67 _t
(X\))_S 67 _t
(is)_S 67 _t
(equivalent)_S 67 _t
(to)_S 67 _t
(transforming)_S 67 _t
(the)_S 1200 4224 _m
(vector)_S 67 _t
([1,0,0])_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(rotation)_S 67 _t
(part)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(matrix)_S 67 _t
(and)_S 67 _t
(storing)_S 67 _t
(the)_S 67 _t
(result)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(vector)_S 67 _t
8049 4224 _m
/Times-ItalicR 600 _ff
(v)_S 8138 4224 _m
/Times-RomanR 600 _ff
(.)_S 1800 3758 _m
(The)_S 67 _t
(vrl_MatrixTranslate\(\))_S 67 _t
(routine)_S 67 _t
(applies)_S 67 _t
(a)_S 67 _t
(translation)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(matrix,)_S 67 _t
(and)_S 1200 3525 _m
(vrl_MatrixSetTranslation\(\))_S 67 _t
(sets)_S 67 _t
(the)_S 67 _t
(actual)_S 67 _t
(translation)_S 67 _t
(part)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(matrix.)_S 134 _t
(The)_S 1200 3292 _m
(vrl_MatrixGetTranslation\(\))_S 67 _t
(routine)_S 67 _t
(fills)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
(vector)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(translation)_S 67 _t
(part)_S 67 _t
(of)_S 1200 3059 _m
(the)_S 67 _t
(matrix.)_S 8800 1255 _m
(25)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11825 _m
/Times-BoldR 720 _ff
(Transforms)_S 2413 11825 _m
/Times-RomanR 600 _ff
1800 11349 _m
(You)_S 67 _t
(should)_S 67 _t
(never)_S 67 _t
(have)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(any)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(transform)_S 67 _t
(functions)_S 67 _t
(directly;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(all)_S 1200 11116 _m
(handled)_S 67 _t
(for)_S 67 _t
(you)_S 67 _t
(by)_S 67 _t
(AVRIL.)_S 134 _t
(A)_S 67 _t
(vector)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(transformed)_S 67 _t
(by)_S 67 _t
(a)_S 67 _t
(matrix,)_S 67 _t
(or)_S 67 _t
(each)_S 67 _t
(component)_S 67 _t
(of)_S 1200 10883 _m
(the)_S 67 _t
(transform)_S 67 _t
(\(X,)_S 67 _t
(Y)_S 67 _t
(or)_S 67 _t
(Z\))_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(computed)_S 67 _t
(separately:)_S 1800 10471 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_Transform\(vrl_Vector)_S 80 _t
(result,)_S 80 _t
(vrl_Matrix)_S 80 _t
(m,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S 1800 10338 _m
(vrl_Scalar)_S 80 _t
(vrl_TransformX\(vrl_Matrix)_S 80 _t
(m,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S 1800 10205 _m
(vrl_Scalar)_S 80 _t
(vrl_TransformY\(vrl_Matrix)_S 80 _t
(m,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S 1800 10072 _m
(vrl_Scalar)_S 80 _t
(vrl_TransformZ\(vrl_Matrix)_S 80 _t
(m,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S /Times-RomanR 600 _ff
1200 9622 _m
/Times-BoldR 720 _ff
(Coordinate)_S 80 _t
(Systems)_S 3267 9622 _m
/Times-RomanR 600 _ff
1800 9146 _m
(AVRIL)_S 67 _t
(allows)_S 67 _t
(objects)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(translated)_S 67 _t
(or)_S 67 _t
(rotated)_S 67 _t
(in)_S 67 _t
(five)_S 67 _t
(different)_S 67 _t
(coordinate)_S 67 _t
(systems.)_S 67 _t
1200 8913 _m
(This)_S 67 _t
(may)_S 67 _t
(seem)_S 67 _t
(like)_S 67 _t
(a)_S 67 _t
(lot,)_S 67 _t
(but)_S 67 _t
(they're)_S 67 _t
(easy)_S 67 _t
(to)_S 67 _t
(get)_S 67 _t
(used)_S 67 _t
(to.)_S 134 _t
(An)_S 67 _t
(object)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(moved)_S 67 _t
(in)_S 67 _t
(its)_S 67 _t
(own)_S 1200 8680 _m
(local)_S 67 _t
(coordinate)_S 67 _t
(system,)_S 67 _t
(the)_S 67 _t
(coordinate)_S 67 _t
(system)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(it's)_S 67 _t
(attached)_S 67 _t
(to,)_S 67 _t
(the)_S 67 _t
("world")_S 1200 8447 _m
(coordinate)_S 67 _t
(system,)_S 67 _t
(the)_S 67 _t
(viewer's)_S 67 _t
(coordinate)_S 67 _t
(system,)_S 67 _t
(or)_S 67 _t
(the)_S 67 _t
(coordinate)_S 67 _t
(system)_S 67 _t
(of)_S 67 _t
(another)_S 67 _t
(object.)_S 1800 7981 _m
(For)_S 67 _t
(example,)_S 67 _t
(consider)_S 67 _t
(a)_S 67 _t
(bicycle)_S 67 _t
(on)_S 67 _t
(an)_S 67 _t
(open)_S 67 _t
(train)_S 67 _t
(car.)_S 134 _t
(The)_S 67 _t
(bicycle)_S 67 _t
(is)_S 67 _t
(facing)_S 67 _t
(sideways,)_S 1200 7748 _m
(so)_S 67 _t
(that)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(were)_S 67 _t
(sitting)_S 67 _t
(on)_S 67 _t
(it)_S 67 _t
(you'd)_S 67 _t
(be)_S 67 _t
(watching)_S 67 _t
(the)_S 67 _t
(scenery)_S 67 _t
(go)_S 67 _t
(by)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(right)_S 67 _t
(side)_S 67 _t
(of)_S 67 _t
(the)_S 1200 7515 _m
(train.)_S 134 _t
(The)_S 67 _t
(train)_S 67 _t
(itself)_S 67 _t
(is)_S 67 _t
(moving)_S 67 _t
(northeast.)_S 134 _t
(If)_S 67 _t
(we)_S 67 _t
(translate)_S 67 _t
(the)_S 67 _t
(bicycle)_S 67 _t
(along)_S 67 _t
(the)_S 67 _t
(positive)_S 67 _t
(Z)_S 1200 7282 _m
(axis)_S 67 _t
(in)_S 67 _t
(its)_S 67 _t
(local)_S 67 _t
(coordinate)_S 67 _t
(system,)_S 67 _t
(it)_S 67 _t
(will)_S 67 _t
(travel)_S 67 _t
(sideways)_S 67 _t
(off)_S 67 _t
(the)_S 67 _t
(train)_S 67 _t
(car,)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(south-easterly)_S 1200 7049 _m
(direction.)_S 134 _t
(If)_S 67 _t
(we)_S 67 _t
(move)_S 67 _t
(it)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(positive)_S 67 _t
(Z)_S 67 _t
(direction)_S 67 _t
(of)_S 67 _t
(its)_S 67 _t
(parent,)_S 67 _t
(it)_S 67 _t
(will)_S 67 _t
(move)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(rider's)_S 1200 6816 _m
(left,)_S 67 _t
(towards)_S 67 _t
(the)_S 67 _t
(front)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(train)_S 67 _t
(\(northeast\).)_S 134 _t
(If)_S 67 _t
(we)_S 67 _t
(move)_S 67 _t
(it)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(positive)_S 67 _t
(Z)_S 67 _t
(direction)_S 67 _t
(in)_S 67 _t
(the)_S 1200 6583 _m
(world,)_S 67 _t
(it)_S 67 _t
(will)_S 67 _t
(move)_S 67 _t
(due)_S 67 _t
(north.)_S 134 _t
(If)_S 67 _t
(we're)_S 67 _t
(looking)_S 67 _t
(at)_S 67 _t
(it)_S 67 _t
(from)_S 67 _t
(directly)_S 67 _t
(above,)_S 67 _t
(moving)_S 67 _t
(the)_S 67 _t
(bicycle)_S 1200 6350 _m
(in)_S 67 _t
(the)_S 67 _t
(viewer's)_S 67 _t
(positive)_S 67 _t
(Z)_S 67 _t
(direction)_S 67 _t
(would)_S 67 _t
(send)_S 67 _t
(it)_S 67 _t
(through)_S 67 _t
(the)_S 67 _t
(train)_S 67 _t
(car)_S 67 _t
(and)_S 67 _t
(down)_S 67 _t
(into)_S 67 _t
(the)_S 1200 6117 _m
(ground.)_S 134 _t
(If)_S 67 _t
(a)_S 67 _t
(bird)_S 67 _t
(is)_S 67 _t
(flying)_S 67 _t
(due)_S 67 _t
(south,)_S 67 _t
(then)_S 67 _t
(moving)_S 67 _t
(the)_S 67 _t
(bicycle)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(positive)_S 67 _t
(Z)_S 67 _t
(direction)_S 1200 5884 _m
(relative)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(bird)_S 67 _t
(would)_S 67 _t
(make)_S 67 _t
(the)_S 67 _t
(bike)_S 67 _t
(move)_S 67 _t
(due)_S 67 _t
(south.)_S 1800 5418 _m
(We)_S 67 _t
(represent)_S 67 _t
(these)_S 67 _t
(various)_S 67 _t
(coordinate)_S 67 _t
(systems)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(constants)_S 1200 5185 _m
(VRL_COORD_LOCAL,)_S 67 _t
(VRL_COORD_PARENT,)_S 67 _t
(VRL_COORD_WORLD,)_S 67 _t
(and)_S 1200 4952 _m
(VRL_COORD_OBJREL.)_S 134 _t
(The)_S 67 _t
(view-relative)_S 67 _t
(coordinate)_S 67 _t
(system)_S 67 _t
(is)_S 67 _t
(just)_S 67 _t
(a)_S 67 _t
(special)_S 67 _t
(case)_S 67 _t
(of)_S 67 _t
(the)_S 1200 4719 _m
(VRL_COORD_OBJREL)_S 67 _t
(coordinate)_S 67 _t
(frame,)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(viewer)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(movement)_S 1200 4486 _m
(should)_S 67 _t
(be)_S 67 _t
(relative)_S 67 _t
(to.)_S 1200 3990 _m
/Times-BoldR 720 _ff
(Worlds)_S 1960 3990 _m
/Times-RomanR 600 _ff
1800 3514 _m
(In)_S 67 _t
(AVRIL,)_S 67 _t
(a)_S 67 _t
(virtual)_S 67 _t
(world)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(collection)_S 67 _t
(of)_S 67 _t
(objects,)_S 67 _t
(light)_S 67 _t
(sources,)_S 67 _t
(virtual)_S 67 _t
(cameras)_S 67 _t
(and)_S 1200 3281 _m
(miscellaneous)_S 67 _t
(attributes.)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(any)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(worlds)_S 67 _t
(within)_S 67 _t
(a)_S 67 _t
(single)_S 67 _t
(AVRIL)_S 1200 3048 _m
(application;)_S 67 _t
(they're)_S 67 _t
(distinct)_S 67 _t
(from)_S 67 _t
(each)_S 67 _t
(other,)_S 67 _t
(and)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(switch)_S 67 _t
(between)_S 67 _t
(them)_S 67 _t
(whenever)_S 67 _t
(you)_S 1200 2815 _m
(like.)_S 1800 2349 _m
(When)_S 67 _t
(you)_S 67 _t
(run)_S 67 _t
(an)_S 67 _t
(AVRIL)_S 67 _t
(program,)_S 67 _t
(a)_S 67 _t
(default)_S 67 _t
(world)_S 67 _t
(is)_S 67 _t
(created)_S 67 _t
(and)_S 67 _t
(initialized)_S 67 _t
(for)_S 67 _t
(you;)_S 1200 2116 _m
(if)_S 67 _t
(you)_S 67 _t
(only)_S 67 _t
(plan)_S 67 _t
(on)_S 67 _t
(having)_S 67 _t
(one)_S 67 _t
(world)_S 67 _t
(in)_S 67 _t
(your)_S 67 _t
(application,)_S 67 _t
(you)_S 67 _t
(don't)_S 67 _t
(have)_S 67 _t
(to)_S 67 _t
(do)_S 67 _t
(anything)_S 1200 1883 _m
(special.)_S 134 _t
(If)_S 67 _t
(you)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(create)_S 67 _t
(additional)_S 67 _t
(worlds,)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(simply)_S 67 _t
(declare)_S 67 _t
(variables)_S 67 _t
(of)_S 67 _t
(type)_S 8800 1255 _m
(26)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(vrl_World)_S 67 _t
(and)_S 67 _t
(initialize)_S 67 _t
(them)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(vrl_WorldInit\(&yourworld\);)_S 67 _t
(however,)_S 67 _t
(it's)_S 67 _t
(probably)_S 1200 11622 _m
(better)_S 67 _t
(to)_S 67 _t
(dynamically)_S 67 _t
(allocate)_S 67 _t
(them)_S 67 _t
(using)_S 67 _t
(malloc\(\).)_S 134 _t
(In)_S 67 _t
(fact,)_S 67 _t
(the)_S 67 _t
(simplest)_S 67 _t
(way)_S 67 _t
(to)_S 67 _t
(create)_S 67 _t
(a)_S 1200 11389 _m
(world)_S 67 _t
(is)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(vrl_WorldCreate\(\))_S 67 _t
(function,)_S 67 _t
(which)_S 67 _t
(allocates)_S 67 _t
(the)_S 67 _t
(space)_S 67 _t
(and)_S 67 _t
(initializes)_S 67 _t
(the)_S 1200 11156 _m
(world)_S 67 _t
(for)_S 67 _t
(you.)_S 134 _t
(To)_S 67 _t
(make)_S 67 _t
(a)_S 67 _t
(given)_S 67 _t
(world)_S 67 _t
(current,)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(vrl_WorldSetCurrent\(\))_S 67 _t
(function;)_S 67 _t
(the)_S 1200 10923 _m
(vrl_WorldGetCurrent\(\))_S 67 _t
(function)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(get)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(world.)_S 1800 10511 _m
/CourierR 400 _ff
(vrl_World)_S 80 _t
(*vrl_WorldInit\(vrl_World)_S 80 _t
(*world\);)_S 1800 10378 _m
(vrl_World)_S 80 _t
(*vrl_WorldCreate\(void\);)_S 1800 10245 _m
(void)_S 80 _t
(vrl_WorldSetCurrent\(vrl_World)_S 80 _t
(*world\);)_S 1800 10112 _m
(vrl_World)_S 80 _t
(*vrl_WorldGetCurrent\(void\);)_S 1200 9792 _m
/Times-RomanR 600 _ff
(You)_S 67 _t
(can)_S 67 _t
(easily)_S 67 _t
(add)_S 67 _t
(objects,)_S 67 _t
(light)_S 67 _t
(sources)_S 67 _t
(and)_S 67 _t
(cameras)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(world,)_S 67 _t
(and)_S 67 _t
(remove)_S 67 _t
(them;)_S 1200 9559 _m
(you)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(count)_S 67 _t
(how)_S 67 _t
(many)_S 67 _t
(of)_S 67 _t
(each)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(world)_S 67 _t
(contains,)_S 67 _t
(and)_S 67 _t
(get)_S 67 _t
(pointers)_S 67 _t
(to)_S 67 _t
(the)_S 1200 9326 _m
(linked)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(lights,)_S 67 _t
(linked)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(cameras)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(hierarchical)_S 67 _t
(tree)_S 67 _t
(of)_S 67 _t
(objects)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(also)_S 1200 9093 _m
(find)_S 67 _t
(lights,)_S 67 _t
(cameras)_S 67 _t
(and)_S 67 _t
(objects)_S 67 _t
(by)_S 67 _t
(name.)_S 1800 8681 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_WorldAddLight\(vrl_Light)_S 80 _t
(*light\);)_S 1800 8548 _m
(void)_S 80 _t
(vrl_WorldRemoveLight\(vrl_Light)_S 80 _t
(*light\);)_S 1800 8415 _m
(vrl_Light)_S 80 _t
(*vrl_WorldFindLight\(char)_S 80 _t
(*name\);)_S 1800 8149 _m
(void)_S 80 _t
(vrl_WorldAddCamera\(vrl_Camera)_S 80 _t
(*camera\);)_S 1800 8016 _m
(void)_S 80 _t
(vrl_WorldRemoveCamera\(vrl_Camera)_S 80 _t
(*camera\);)_S 1800 7883 _m
(vrl_Camera)_S 80 _t
(*vrl_WorldFindCamera\(char)_S 80 _t
(*name\);)_S 1800 7617 _m
(void)_S 80 _t
(vrl_WorldAddObject\(vrl_Object)_S 80 _t
(*obj\);)_S 1800 7484 _m
(void)_S 80 _t
(vrl_WorldRemoveObject\(vrl_Object)_S 80 _t
(*obj\);)_S 1800 7351 _m
(vrl_Object)_S 80 _t
(*vrl_WorldFindObject\(char)_S 80 _t
(*name\);)_S 1800 7085 _m
(int)_S 80 _t
(vrl_WorldCountObjects\(void\);)_S 1800 6952 _m
(int)_S 80 _t
(vrl_WorldCountLights\(void\);)_S 1800 6819 _m
(int)_S 80 _t
(vrl_WorldCountCameras\(void\);)_S 1800 6553 _m
(vrl_Light)_S 80 _t
(*vrl_WorldGetLights\(void\);)_S 1800 6420 _m
(vrl_Light)_S 80 _t
(*vrl_WorldGetCameras\(void\);)_S 1800 6287 _m
(vrl_Object)_S 80 _t
(*vrl_WorldGetObjectTree\(void\);)_S /Times-RomanR 600 _ff
1200 5867 _m
(If)_S 67 _t
(you)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(iterate)_S 67 _t
(through)_S 67 _t
(the)_S 67 _t
(linked)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(lights)_S 67 _t
(or)_S 67 _t
(cameras,)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(functions)_S 1800 5455 _m
/CourierR 400 _ff
(vrl_Light)_S 80 _t
(*vrl_LightGetNext\(vrl_Light)_S 80 _t
(*light\);)_S 1800 5322 _m
(vrl_Camera)_S 80 _t
(*vrl_CameraGetNext\(vrl_Camera)_S 80 _t
(*camera\);)_S /Times-RomanR 600 _ff
1200 4902 _m
(You)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(obtain)_S 67 _t
(information)_S 67 _t
(about)_S 67 _t
(the)_S 67 _t
(total)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(facets)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(world,)_S 67 _t
(the)_S 67 _t
(minimum)_S 1200 4669 _m
(and)_S 67 _t
(maximum)_S 67 _t
(bounds)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(world,)_S 67 _t
(the)_S 67 _t
(center)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(world)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(radius)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(world's)_S 1200 4436 _m
(bounding)_S 67 _t
(sphere)_S 67 _t
(using)_S 67 _t
(these)_S 67 _t
(functions:)_S 1800 4024 _m
/CourierR 400 _ff
(int)_S 80 _t
(vrl_WorldCountFacets\(void\);)_S 1800 3891 _m
(void)_S 80 _t
(vrl_WorldGetBounds\(vrl_Vector)_S 80 _t
(v1,)_S 80 _t
(vrl_Vector)_S 80 _t
(v2\);)_S 1800 3758 _m
(void)_S 80 _t
(vrl_WorldGetCenter\(vrl_Vector)_S 80 _t
(v\);)_S 1800 3625 _m
(vrl_Scalar)_S 80 _t
(vrl_WorldGetSize\(void\);)_S /Times-RomanR 600 _ff
1200 3205 _m
(Each)_S 67 _t
(world)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
("current)_S 67 _t
(camera")_S 67 _t
(through)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(world)_S 67 _t
(is)_S 67 _t
(seen;)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
(current)_S 1200 2972 _m
(camera,)_S 67 _t
(or)_S 67 _t
(get)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(it)_S 67 _t
(using)_S 67 _t
(these)_S 67 _t
(routines:)_S 1800 2560 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_WorldSetCamera\(vrl_Camera)_S 80 _t
(*cam\);)_S 1800 2427 _m
(vrl_Camera)_S 80 _t
(*vrl_WorldGetCamera\(void\);)_S /Times-RomanR 600 _ff
1200 2007 _m
(The)_S 67 _t
(clearing)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(screen)_S 67 _t
(prior)_S 67 _t
(to)_S 67 _t
(each)_S 67 _t
(frame,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(use)_S 67 _t
(\(and)_S 67 _t
(colors\))_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(horizon,)_S 67 _t
(are)_S 1200 1774 _m
(controlled)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(functions:)_S 8800 1255 _m
(27)_S _ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(void)_S 80 _t
(vrl_WorldSetScreenClear\(int)_S 80 _t
(n\);)_S 1800 11776 _m
(int)_S 80 _t
(vrl_WorldGetScreenClear\(void\);)_S 1800 11643 _m
(void)_S 80 _t
(vrl_WorldToggleScreenClear\(void\);)_S 1800 11377 _m
(void)_S 80 _t
(vrl_WorldSetHorizon\(int)_S 80 _t
(n\);)_S 1800 11244 _m
(int)_S 80 _t
(vrl_WorldGetHorizon\(void\);)_S 1800 11111 _m
(void)_S 80 _t
(vrl_WorldToggleHorizon\(void\);)_S 1800 10845 _m
(void)_S 80 _t
(vrl_WorldSetGroundColor\(int)_S 80 _t
(color\);)_S 1800 10712 _m
(int)_S 80 _t
(vrl_WorldGetGroundColor\(void\);)_S 1800 10446 _m
(void)_S 80 _t
(vrl_WorldSetSkyColor\(int)_S 80 _t
(color\);)_S 1800 10313 _m
(int)_S 80 _t
(vrl_WorldGetSkyColor\(void\);)_S /Times-RomanR 600 _ff
1200 9893 _m
(The)_S 67 _t
(rate)_S 67 _t
(at)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(moves)_S 67 _t
(and)_S 67 _t
(turns)_S 67 _t
(is)_S 67 _t
(controlled)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
("turn")_S 67 _t
(step)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
("move")_S 1200 9660 _m
(step.)_S 134 _t
(In)_S 67 _t
(addition,)_S 67 _t
(the)_S 67 _t
(movement)_S 67 _t
("mode")_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(0)_S 67 _t
(or)_S 67 _t
(1;)_S 67 _t
(if)_S 67 _t
(it's)_S 67 _t
(1)_S 67 _t
(\(the)_S 67 _t
(default\))_S 67 _t
(then)_S 1200 9427 _m
(simple)_S 67 _t
(movement)_S 67 _t
(can)_S 67 _t
(move)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(vertically,)_S 67 _t
(otherwise)_S 67 _t
(they)_S 67 _t
(stay)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(ground.)_S 134 _t
(Note)_S 67 _t
(that)_S 1200 9194 _m
(these)_S 67 _t
(are)_S 67 _t
(really)_S 67 _t
(only)_S 67 _t
(suggestions,)_S 67 _t
(and)_S 67 _t
(it's)_S 67 _t
(up)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(application)_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(use)_S 67 _t
(of)_S 67 _t
(them.)_S 1800 8782 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_WorldSetMovementMode\(int)_S 80 _t
(n\);)_S 1800 8649 _m
(int)_S 80 _t
(vrl_WorldGetMovementMode\(void\);)_S 1800 8516 _m
(void)_S 80 _t
(vrl_WorldToggleMovementMode\(void\);)_S 1800 8250 _m
(void)_S 80 _t
(vrl_WorldSetMovestep\(vrl_Scalar)_S 80 _t
(distance\);)_S 1800 8117 _m
(vrl_Scalar)_S 80 _t
(vrl_WorldGetMovestep\(void\);)_S 1800 7851 _m
(void)_S 80 _t
(vrl_WorldSetTurnstep\(vrl_Angle)_S 80 _t
(angle\);)_S 1800 7718 _m
(vrl_Angle)_S 80 _t
(vrl_WorldGetTurnstep\(void\);)_S /Times-RomanR 600 _ff
1200 7298 _m
(Finally,)_S 67 _t
(additional)_S 67 _t
(aspects)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(virtual)_S 67 _t
(world)_S 67 _t
(such)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(ambient)_S 67 _t
(light)_S 67 _t
(level)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
("scale)_S 1200 7065 _m
(factor")_S 67 _t
(\(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(real-world)_S 67 _t
(millimeters)_S 67 _t
(per)_S 67 _t
(unit)_S 67 _t
(of)_S 67 _t
(distance)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(virtual)_S 67 _t
(world\))_S 67 _t
(can)_S 67 _t
(be)_S 1200 6832 _m
(set)_S 67 _t
(and)_S 67 _t
(queried)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(functions:)_S 1800 6420 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_WorldSetAmbient\(vrl_Factor)_S 80 _t
(ambient\);)_S 1800 6287 _m
(vrl_Factor)_S 80 _t
(vrl_WorldGetAmbient\(void\);)_S 1800 6021 _m
(void)_S 80 _t
(vrl_WorldSetScale\(vrl_Scalar)_S 80 _t
(scale\);)_S 1800 5888 _m
(vrl_Scalar)_S 80 _t
(vrl_WorldGetScale\(void\);)_S /Times-RomanR 600 _ff
1200 5438 _m
/Times-BoldR 720 _ff
(Objects)_S 1987 5438 _m
/Times-RomanR 600 _ff
1800 4962 _m
(Objects)_S 67 _t
(are)_S 67 _t
(the)_S 67 _t
(most)_S 67 _t
(important)_S 67 _t
(entities)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(virtual)_S 67 _t
(world.)_S 134 _t
(All)_S 67 _t
(objects)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(location)_S 1200 4729 _m
(and)_S 67 _t
(orientation,)_S 67 _t
(and)_S 67 _t
(they)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(attached)_S 67 _t
(to)_S 67 _t
(each)_S 67 _t
(other)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(tree-structured)_S 67 _t
(hierarchy.)_S 134 _t
(Each)_S 1200 4496 _m
(object)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(\(i.e.)_S 67 _t
(geometric)_S 67 _t
(description\))_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(surface)_S 67 _t
(map.)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(create)_S 67 _t
(an)_S 1200 4263 _m
(object)_S 67 _t
(statically)_S 67 _t
(\(by)_S 67 _t
(declaring)_S 67 _t
(a)_S 67 _t
(variable)_S 67 _t
(of)_S 67 _t
(type)_S 67 _t
(vrl_Object\))_S 67 _t
(or)_S 67 _t
(dynamically)_S 67 _t
(\(either)_S 67 _t
(by)_S 67 _t
(using)_S 1200 4030 _m
(malloc\(\))_S 67 _t
(to)_S 67 _t
(allocate)_S 67 _t
(the)_S 67 _t
(space)_S 67 _t
(and)_S 67 _t
(vrl_ObjectInit\(\))_S 67 _t
(to)_S 67 _t
(initialize)_S 67 _t
(it,)_S 67 _t
(or)_S 67 _t
(by)_S 67 _t
(simply)_S 67 _t
(calling)_S 1200 3797 _m
(vrl_ObjectCreate\(\)\).)_S 134 _t
(If)_S 67 _t
(you)_S 67 _t
(use)_S 67 _t
(vrl_ObjectCreate\(\),)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(optionally)_S 67 _t
(specify)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(for)_S 67 _t
(the)_S 1200 3564 _m
(object)_S 67 _t
(to)_S 67 _t
(use;)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(don't)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(assign)_S 67 _t
(a)_S 67 _t
(shape,)_S 67 _t
(use)_S 67 _t
(NULL.)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(destroy)_S 67 _t
(objects)_S 1200 3331 _m
(using)_S 67 _t
(vrl_ObjectDestroy.)_S 1800 2919 _m
/CourierR 400 _ff
(vrl_Object)_S 80 _t
(*vrl_ObjectInit\(vrl_Object)_S 80 _t
(*obj\);)_S 1800 2786 _m
(vrl_Object)_S 80 _t
(*vrl_ObjectCreate\(vrl_Shape)_S 80 _t
(*shape\);)_S 1800 2653 _m
(void)_S 80 _t
(vrl_ObjectDestroy\(vrl_Object)_S 80 _t
(*object\);)_S /Times-RomanR 600 _ff
1200 2100 _m
(You)_S 67 _t
(can)_S 67 _t
(create)_S 67 _t
(an)_S 67 _t
(exact)_S 67 _t
(copy)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(function)_S 8800 1255 _m
(28)_S _ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(vrl_Object)_S 80 _t
(*vrl_ObjectCopy\(vrl_Object)_S 80 _t
(*obj\);)_S /Times-RomanR 600 _ff
1200 11489 _m
(Note)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(newly-created)_S 67 _t
(object)_S 67 _t
(will)_S 67 _t
(share)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(properties)_S 67 _t
(\(including)_S 67 _t
(the)_S 67 _t
(shape)_S 67 _t
(and)_S 1200 11256 _m
(surface)_S 67 _t
(map\))_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(original)_S 67 _t
(and)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(exact)_S 67 _t
(same)_S 67 _t
(location)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(original;)_S 67 _t
(you)_S 67 _t
(should)_S 1200 11023 _m
(probably)_S 67 _t
(move)_S 67 _t
(it.)_S 134 _t
(The)_S 67 _t
(copy)_S 67 _t
(will)_S 67 _t
(have)_S 67 _t
(nothing)_S 67 _t
(attached)_S 67 _t
(to)_S 67 _t
(it)_S 67 _t
(\(it)_S 67 _t
(doesn't)_S 67 _t
(inherit)_S 67 _t
(children)_S 67 _t
(from)_S 1200 10790 _m
(the)_S 67 _t
(original\),)_S 67 _t
(and)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(a)_S 67 _t
(sibling)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(original)_S 67 _t
(\(sharing)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(parent,)_S 67 _t
(if)_S 67 _t
(any\).)_S 1200 10324 _m
(Objects)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(rotated)_S 67 _t
(around)_S 67 _t
(any)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(axes,)_S 67 _t
(in)_S 67 _t
(any)_S 67 _t
(coordinate)_S 67 _t
(frame,)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 1200 10091 _m
(function:)_S 1800 9679 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectRotate\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Angle)_S 80 _t
(angle,)_S 80 _t
(int)_S 80 _t
(axis,)_S 2400 9546 _m
(vrl_CoordFrame)_S 80 _t
(frame,)_S 80 _t
(vrl_Object)_S 80 _t
(*relative_to\);)_S /Times-RomanR 600 _ff
1200 9124 _m
(The)_S 67 _t
1578 9124 _m
/Times-ItalicR 600 _ff
(axis)_S 1900 9124 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(defined)_S 67 _t
(constants)_S 67 _t
(X,)_S 67 _t
(Y)_S 67 _t
(or)_S 67 _t
(Z.)_S 134 _t
(The)_S 67 _t
5937 9124 _m
/Times-ItalicR 600 _ff
(frame)_S 6404 9124 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(coordinate)_S 1200 8889 _m
(frames)_S 67 _t
(discussed)_S 67 _t
(earlier.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
3851 8889 _m
/Times-ItalicR 600 _ff
(frame)_S 4318 8889 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(VRL_COORD_OBJREL,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
7458 8889 _m
/Times-ItalicR 600 _ff
(relative_to)_S /Times-RomanR 600 _ff
1200 8656 _m
(parameter)_S 67 _t
(points)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(that)_S 67 _t
(motion)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(relative)_S 67 _t
(to.)_S 134 _t
(For)_S 67 _t
(example,)_S 67 _t
(to)_S 67 _t
(rotate)_S 67 _t
(an)_S 1200 8423 _m
(object)_S 67 _t
(45)_S 67 _t
(degrees)_S 67 _t
(around)_S 67 _t
(the)_S 67 _t
(viewer's)_S 67 _t
(Z)_S 67 _t
(axis,)_S 67 _t
(you)_S 67 _t
(would)_S 67 _t
(make)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(call:)_S 1800 8011 _m
/CourierR 400 _ff
(vrl_ObjectRotate\(obj,)_S 80 _t
(float2angle\(45\),)_S 80 _t
(Z,)_S 2400 7878 _m
(VRL_COORD_OBJREL,)_S 80 _t
(vrl_CameraGetObject\(vrl_WorldGetCamera\(\)\)\);)_S /Times-RomanR 600 _ff
1200 7458 _m
(You)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(orient)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(to)_S 67 _t
("look")_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(direction)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(function)_S 1800 7046 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectLookAt\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Vector)_S 80 _t
(forward,)_S 80 _t
(vrl_Vector)_S 80 _t
(up\);)_S /Times-RomanR 600 _ff
1200 6624 _m
(The)_S 67 _t
(object)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(rotated)_S 67 _t
(so)_S 67 _t
(that)_S 67 _t
(it's)_S 67 _t
(Z)_S 67 _t
(axis)_S 67 _t
(points)_S 67 _t
(along)_S 67 _t
(the)_S 67 _t
6282 6624 _m
/Times-ItalicR 600 _ff
(forward)_S 6926 6624 _m
/Times-RomanR 600 _ff
67 _t
(vector,)_S 67 _t
(and)_S 67 _t
(its)_S 67 _t
(Y)_S 67 _t
(axis)_S 1200 6389 _m
(points)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(general)_S 67 _t
(direction)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
4269 6389 _m
/Times-ItalicR 600 _ff
(up)_S 4469 6389 _m
/Times-RomanR 600 _ff
67 _t
(vector.)_S 134 _t
(Note)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(actual)_S 67 _t
(Y)_S 67 _t
(orientation)_S 67 _t
(may)_S 67 _t
(be)_S 1200 6154 _m
(different,)_S 67 _t
(unless)_S 67 _t
(you)_S 67 _t
(make)_S 67 _t
(sure)_S 67 _t
(that)_S 67 _t
4207 6154 _m
/Times-ItalicR 600 _ff
(up)_S 4407 6154 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(perpendicular)_S 67 _t
(to)_S 67 _t
6064 6154 _m
/Times-ItalicR 600 _ff
(forward)_S 6708 6154 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(The)_S 67 _t
7270 6154 _m
/Times-ItalicR 600 _ff
(up)_S 7470 6154 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
7893 6154 _m
/Times-ItalicR 600 _ff
(forward)_S /Times-RomanR 600 _ff
1200 5921 _m
(vectors)_S 67 _t
(are)_S 67 _t
(specified)_S 67 _t
(in)_S 67 _t
(world)_S 67 _t
(coordinates,)_S 67 _t
(and)_S 67 _t
(should)_S 67 _t
(both)_S 67 _t
(be)_S 67 _t
(unit)_S 67 _t
(vectors;)_S 67 _t
(you)_S 67 _t
(may)_S 67 _t
(find)_S 67 _t
(the)_S 1200 5688 _m
(vrl_VectorNormalize\(\))_S 67 _t
(function)_S 67 _t
(handy)_S 67 _t
(for)_S 67 _t
(this.)_S 1200 5222 _m
(Translations)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(are)_S 67 _t
(done)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(function:)_S 1800 4810 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectTranslate\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Vector)_S 80 _t
(v,)_S 2400 4677 _m
(vrl_CoordFrame)_S 80 _t
(frame,)_S 80 _t
(vrl_Object)_S 80 _t
(*relative_to\);)_S /Times-RomanR 600 _ff
1200 4255 _m
(The)_S 67 _t
(object)_S 67 _t
(is)_S 67 _t
(moved)_S 67 _t
(along)_S 67 _t
(the)_S 67 _t
(vrl_Vector)_S 67 _t
4702 4255 _m
/Times-ItalicR 600 _ff
(v)_S 4791 4255 _m
/Times-RomanR 600 _ff
67 _t
(in)_S 67 _t
(the)_S 67 _t
(specified)_S 67 _t
6181 4255 _m
/Times-ItalicR 600 _ff
(frame)_S 6647 4255 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(The)_S 67 _t
(meaning)_S 67 _t
(of)_S 67 _t
(the)_S 1200 4020 _m
/Times-ItalicR 600 _ff
(relative_to)_S 2067 4020 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(as)_S 67 _t
(it)_S 67 _t
(was)_S 67 _t
(for)_S 67 _t
(vrl_ObjectRotate\(\).)_S 1200 3554 _m
(The)_S 67 _t
(vrl_ObjectRotate\(\))_S 67 _t
(and)_S 67 _t
(vrl_ObjectTranslate\(\))_S 67 _t
(routines)_S 67 _t
(both)_S 67 _t
(apply)_S 67 _t
(a)_S 67 _t
(rotation)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(current)_S 1200 3321 _m
(state)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(object.)_S 134 _t
(If)_S 67 _t
(you)_S 67 _t
(wish)_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(the)_S 67 _t
(rotations)_S 67 _t
(absolute,)_S 67 _t
(call)_S 67 _t
(vrl_ObjectRotReset\(obj\).)_S 67 _t
1200 3088 _m
(If)_S 67 _t
(you)_S 67 _t
(wish)_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(translations)_S 67 _t
(absolute,)_S 67 _t
(call)_S 67 _t
(vrl_ObjectVectorMove\(obj,)_S 67 _t
(vrl_VectorNULL\).)_S 67 _t
1200 2855 _m
(These)_S 67 _t
(should)_S 67 _t
(both)_S 67 _t
(be)_S 67 _t
(done)_S 67 _t
(before)_S 67 _t
(applying)_S 67 _t
(the)_S 67 _t
(vrl_ObjectRotate\(\))_S 67 _t
(and)_S 67 _t
(vrl_ObjectTranslate\(\))_S 1200 2622 _m
(functions.)_S 1200 2156 _m
(to)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
(translations)_S 67 _t
(to)_S 67 _t
(zero.)_S 8800 1255 _m
(29)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(The)_S 67 _t
(vrl_ObjectRotate\(\))_S 67 _t
(and)_S 67 _t
(vrl_ObjectTranslate\(\))_S 67 _t
(functions)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(all)_S 67 _t
(object)_S 1200 11622 _m
(rotation)_S 67 _t
(and)_S 67 _t
(translation.)_S 134 _t
(Some)_S 67 _t
(older)_S 67 _t
(functions)_S 67 _t
(are)_S 67 _t
(also)_S 67 _t
(provided)_S 67 _t
(for)_S 67 _t
(rotating)_S 67 _t
(and)_S 67 _t
(moving)_S 1200 11389 _m
(objects)_S 67 _t
(relative)_S 67 _t
(to)_S 67 _t
(their)_S 67 _t
(parent)_S 67 _t
(\(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(more)_S 67 _t
(common)_S 67 _t
(cases\);)_S 67 _t
(they)_S 67 _t
(are)_S 67 _t
(as)_S 67 _t
(follows:)_S 1800 10977 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectMove\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Scalar)_S 80 _t
(x,)_S 80 _t
(vrl_Scalar)_S 80 _t
(y,)_S 80 _t
(vrl_Scalar)_S 80 _t
(z\);)_S 1800 10844 _m
(void)_S 80 _t
(vrl_ObjectRelMove\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Scalar)_S 80 _t
(x,)_S 80 _t
(vrl_Scalar)_S 80 _t
(y,)_S 80 _t
(vrl_Scalar)_S 80 _t
(z\);)_S 1800 10711 _m
(void)_S 80 _t
(vrl_ObjectRotX\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Angle)_S 80 _t
(angle\);)_S 1800 10578 _m
(void)_S 80 _t
(vrl_ObjectRotY\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Angle)_S 80 _t
(angle\);)_S 1800 10445 _m
(void)_S 80 _t
(vrl_ObjectRotZ\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Angle)_S 80 _t
(angle\);)_S 1800 10312 _m
(void)_S 80 _t
(vrl_ObjectRotVector\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Angle)_S 80 _t
(angle,)_S 80 _t
(vrl_Vector)_S 80 _t
(vector\);)_S 1800 10179 _m
(void)_S 80 _t
(vrl_ObjectVectorMove\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S 1800 10046 _m
(void)_S 80 _t
(vrl_ObjectVectorRelMove\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S /Times-RomanR 600 _ff
1200 9626 _m
(An)_S 67 _t
(object's)_S 67 _t
(current)_S 67 _t
(location)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(world)_S 67 _t
(coordinate)_S 67 _t
(frame)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(obtained)_S 67 _t
(in)_S 67 _t
(two)_S 67 _t
(ways,)_S 1200 9393 _m
(either)_S 67 _t
(component-by-component)_S 67 _t
(for)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(X,)_S 67 _t
(Y)_S 67 _t
(and)_S 67 _t
(Z,)_S 67 _t
(or)_S 67 _t
(copied)_S 67 _t
(into)_S 67 _t
(a)_S 67 _t
(vector:)_S 1800 8981 _m
/CourierR 400 _ff
(vrl_Scalar)_S 80 _t
(vrl_ObjectGetX\(vrl_Object)_S 80 _t
(*object\);)_S 1800 8848 _m
(vrl_Scalar)_S 80 _t
(vrl_ObjectGetY\(vrl_Object)_S 80 _t
(*object\);)_S 1800 8715 _m
(vrl_Scalar)_S 80 _t
(vrl_ObjectGetZ\(vrl_Object)_S 80 _t
(*object\);)_S 1800 8582 _m
(void)_S 80 _t
(vrl_ObjectGetLocation\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S 1200 8262 _m
/Times-RomanR 600 _ff
(The)_S 67 _t
(current)_S 67 _t
(world-space)_S 67 _t
(orientation)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(object's)_S 67 _t
("forward",)_S 67 _t
("up")_S 67 _t
(and)_S 67 _t
("right")_S 67 _t
(vectors)_S 67 _t
(can)_S 67 _t
(be)_S 1200 8029 _m
(obtained)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(routines:)_S 1800 7617 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectGetForwardVector\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S 1800 7484 _m
(void)_S 80 _t
(vrl_ObjectGetRightVector\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S 1800 7351 _m
(void)_S 80 _t
(vrl_ObjectGetUpVector\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S /Times-RomanR 600 _ff
1200 6931 _m
(The)_S 67 _t
(vectors)_S 67 _t
(filled)_S 67 _t
(in)_S 67 _t
(by)_S 67 _t
(these)_S 67 _t
(routines)_S 67 _t
(will)_S 67 _t
(all)_S 67 _t
(be)_S 67 _t
(normalized.)_S 1200 6465 _m
(An)_S 67 _t
(object)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(attached)_S 67 _t
(to)_S 67 _t
(another)_S 67 _t
(object,)_S 67 _t
(or)_S 67 _t
(detached)_S 67 _t
(from)_S 67 _t
(whatever)_S 67 _t
(object)_S 67 _t
(it)_S 67 _t
(is)_S 67 _t
(currently)_S 1200 6232 _m
(attached)_S 67 _t
(to:)_S 1800 5820 _m
/CourierR 400 _ff
(vrl_Object)_S 80 _t
(*vrl_ObjectAttach\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(vrl_Object)_S 80 _t
(*newparent\);)_S 1800 5687 _m
(vrl_Object)_S 80 _t
(*vrl_ObjectDetach\(vrl_Object)_S 80 _t
(*obj\);)_S /Times-RomanR 600 _ff
1200 5267 _m
(Note)_S 67 _t
(that)_S 67 _t
(movement)_S 67 _t
(and)_S 67 _t
(rotation)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(VRL_COORD_PARENT)_S 67 _t
(system)_S 67 _t
(\(including)_S 67 _t
(that)_S 1200 5034 _m
(performed)_S 67 _t
(using)_S 67 _t
(vrl_ObjectRotX\(\))_S 67 _t
(and)_S 67 _t
(other)_S 67 _t
(similar)_S 67 _t
(functions\))_S 67 _t
(is)_S 67 _t
(carried)_S 67 _t
(out)_S 67 _t
(relative)_S 67 _t
(to)_S 67 _t
(the)_S 1200 4801 _m
(object's)_S 67 _t
(parent.)_S 134 _t
(In)_S 67 _t
(other)_S 67 _t
(words,)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(is)_S 67 _t
(attached)_S 67 _t
(to)_S 67 _t
(another)_S 67 _t
(object,)_S 67 _t
(its)_S 67 _t
(location)_S 67 _t
(and)_S 1200 4568 _m
(orientation)_S 67 _t
(will)_S 67 _t
(depend)_S 67 _t
(on)_S 67 _t
(that)_S 67 _t
(of)_S 67 _t
(its)_S 67 _t
(parent;)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(parent)_S 67 _t
(moves,)_S 67 _t
(the)_S 67 _t
(child)_S 67 _t
(will)_S 67 _t
(move)_S 67 _t
(with)_S 67 _t
(it.)_S 67 _t
1200 4335 _m
(However,)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(child)_S 67 _t
(moves)_S 67 _t
(the)_S 67 _t
(parent)_S 67 _t
(will)_S 67 _t
(stay)_S 67 _t
(where)_S 67 _t
(it)_S 67 _t
(is.)_S 1200 3869 _m
(You)_S 67 _t
(can)_S 67 _t
(find)_S 67 _t
(the)_S 67 _t
("root")_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(tree)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(function:)_S 1800 3457 _m
/CourierR 400 _ff
(vrl_Object)_S 80 _t
(*vrl_ObjectFindRoot\(vrl_Object)_S 80 _t
(*obj\);)_S /Times-RomanR 600 _ff
1200 3037 _m
(You)_S 67 _t
(can)_S 67 _t
(walk)_S 67 _t
(an)_S 67 _t
(entire)_S 67 _t
(object)_S 67 _t
(tree,)_S 67 _t
(executing)_S 67 _t
(a)_S 67 _t
(function)_S 67 _t
(on)_S 67 _t
(each)_S 67 _t
(node)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(tree,)_S 67 _t
(using)_S 67 _t
(the)_S 1200 2804 _m
(following)_S 67 _t
(routine:)_S 1800 2392 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectTraverse\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(int)_S 80 _t
(\(*function\)\(vrl_Object)_S 80 _t
(*obj\)\);)_S /Times-RomanR 600 _ff
8800 1255 _m
(30)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(The)_S 67 _t
(function)_S 67 _t
(is)_S 67 _t
(called)_S 67 _t
(once)_S 67 _t
(for)_S 67 _t
(each)_S 67 _t
(object)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(hierarchy,)_S 67 _t
(and)_S 67 _t
(is)_S 67 _t
(given)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 1200 11622 _m
(object)_S 67 _t
(it's)_S 67 _t
(being)_S 67 _t
(called)_S 67 _t
(on;)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(function)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value)_S 67 _t
(at)_S 67 _t
(any)_S 67 _t
(point,)_S 67 _t
(the)_S 67 _t
(tree)_S 67 _t
(is)_S 67 _t
(not)_S 1200 11389 _m
(processed)_S 67 _t
(any)_S 67 _t
(further.)_S 134 _t
(All)_S 67 _t
(parent)_S 67 _t
(objects)_S 67 _t
(are)_S 67 _t
(processed)_S 67 _t
(before)_S 67 _t
(their)_S 67 _t
(descendants.)_S 1200 10923 _m
(The)_S 67 _t
(distance)_S 67 _t
(between)_S 67 _t
(two)_S 67 _t
(objects)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(found)_S 67 _t
(using)_S 1800 10511 _m
/CourierR 400 _ff
(vrl_Scalar)_S 80 _t
(vrl_ObjectComputeDistance\(vrl_Object)_S 80 _t
(*obj1,)_S 80 _t
(vrl_Object)_S 80 _t
(*obj2\);)_S /Times-RomanR 600 _ff
1200 10091 _m
(The)_S 67 _t
(shape)_S 67 _t
(and)_S 67 _t
(surface)_S 67 _t
(map)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(altered)_S 67 _t
(at)_S 67 _t
(any)_S 67 _t
(time,)_S 67 _t
(and)_S 67 _t
(as)_S 67 _t
(often)_S 67 _t
(as)_S 67 _t
(needed,)_S 1200 9858 _m
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(routines:)_S 1800 9446 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectSetShape\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(vrl_Shape)_S 80 _t
(*shape\);)_S 1800 9313 _m
(vrl_Shape)_S 80 _t
(*vrl_ObjectGetShape\(vrl_Object)_S 80 _t
(*object\);)_S 1800 9047 _m
(void)_S 80 _t
(vrl_ObjectSetSurfacemap\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(vrl_Surfacemap)_S 80 _t
(*map\);)_S 1800 8914 _m
(vrl_Surfacemap)_S 80 _t
(*vrl_ObjectGetSurfacemap\(vrl_Object)_S 80 _t
(*object\);)_S /Times-RomanR 600 _ff
1200 8494 _m
(Objects)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(flagged)_S 67 _t
(as)_S 67 _t
(invisible)_S 67 _t
(\(in)_S 67 _t
(which)_S 67 _t
(case)_S 67 _t
(they're)_S 67 _t
(not)_S 67 _t
(drawn\))_S 67 _t
(or)_S 67 _t
(highlighted)_S 67 _t
(\(in)_S 67 _t
(which)_S 1200 8261 _m
(case)_S 67 _t
(they're)_S 67 _t
(drawn)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(bright)_S 67 _t
(outline\).)_S 134 _t
(They)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
("layer")_S 67 _t
(property,)_S 67 _t
(and)_S 1200 8028 _m
(individual)_S 67 _t
(layers)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(made)_S 67 _t
(visible)_S 67 _t
(or)_S 67 _t
(invisible,)_S 67 _t
(as)_S 67 _t
(described)_S 67 _t
(later)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(section)_S 67 _t
(on)_S 67 _t
(Layers.)_S 67 _t
1200 7795 _m
(Note)_S 67 _t
(that)_S 67 _t
(layer)_S 67 _t
(zero)_S 67 _t
(is)_S 67 _t
(always)_S 67 _t
(visible;)_S 67 _t
(in)_S 67 _t
(effect,)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(whose)_S 67 _t
(layer)_S 67 _t
(is)_S 67 _t
(zero)_S 67 _t
(will)_S 67 _t
(appear)_S 67 _t
(on)_S 1200 7562 _m
(all)_S 67 _t
(layers.)_S 134 _t
(The)_S 67 _t
(following)_S 67 _t
(routines)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(set,)_S 67 _t
(query)_S 67 _t
(and)_S 67 _t
(toggle)_S 67 _t
(those)_S 67 _t
(values:)_S 1800 7150 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectSetVisibility\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(int)_S 80 _t
(vis\);)_S 1800 7017 _m
(int)_S 80 _t
(vrl_ObjectGetVisibility\(vrl_Object)_S 80 _t
(*object\);)_S 1800 6884 _m
(void)_S 80 _t
(vrl_ObjectToggleVisibility\(vrl_Object)_S 80 _t
(*object\);)_S 1800 6618 _m
(void)_S 80 _t
(vrl_ObjectSetHighlight\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(highlight\);)_S 1800 6485 _m
(int)_S 80 _t
(vrl_ObjectGetHighlight\(vrl_Object)_S 80 _t
(*object\);)_S 1800 6352 _m
(void)_S 80 _t
(vrl_ObjectToggleHighlight\(vrl_Object)_S 80 _t
(*object\);)_S 1800 6086 _m
(void)_S 80 _t
(vrl_ObjectSetLayer\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(int)_S 80 _t
(layer\);)_S 1800 5953 _m
(int)_S 80 _t
(vrl_ObjectGetLayer\(vrl_Object)_S 80 _t
(*object\);)_S /Times-RomanR 600 _ff
1200 5533 _m
(AVRIL)_S 67 _t
(will)_S 67 _t
(normally)_S 67 _t
(select)_S 67 _t
(a)_S 67 _t
(level)_S 67 _t
(of)_S 67 _t
(detail)_S 67 _t
(for)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(automatically;)_S 67 _t
(however,)_S 67 _t
(you)_S 67 _t
(can)_S 1200 5300 _m
(override)_S 67 _t
(this)_S 67 _t
(mechanism)_S 67 _t
(on)_S 67 _t
(an)_S 67 _t
(object-by-object)_S 67 _t
(basis)_S 67 _t
(using)_S 67 _t
(two)_S 67 _t
(routines)_S 67 _t
(to)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(get)_S 67 _t
(the)_S 1200 5067 _m
(current)_S 67 _t
("forced")_S 67 _t
(rep)_S 67 _t
(for)_S 67 _t
(an)_S 67 _t
(object:)_S 1800 4655 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectSetRep\(vrl_Object)_S 80 _t
(*object,)_S 80 _t
(vrl_Rep)_S 80 _t
(*rep\);)_S 1800 4522 _m
(vrl_Rep)_S 80 _t
(*vrl_ObjectGetRep\(vrl_Object)_S 80 _t
(*object\);)_S /Times-RomanR 600 _ff
1200 4102 _m
(If)_S 67 _t
(you)_S 67 _t
(want)_S 67 _t
(automatic)_S 67 _t
(representation)_S 67 _t
(selection)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(re-enabled)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(object,)_S 67 _t
(just)_S 67 _t
(use)_S 1200 3869 _m
(vrl_ObjectSetRep\(obj,)_S 67 _t
(NULL\).)_S 1200 3403 _m
(Whenever)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(moves,)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(objects)_S 67 _t
("descended")_S 67 _t
(from)_S 67 _t
(that)_S 67 _t
(object)_S 67 _t
(must)_S 67 _t
(be)_S 67 _t
(updated.)_S 67 _t
1200 3170 _m
(The)_S 67 _t
(following)_S 67 _t
(function)_S 67 _t
(will)_S 67 _t
(update)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(and)_S 67 _t
(all)_S 67 _t
(its)_S 67 _t
(descendants;)_S 67 _t
(you)_S 67 _t
(should)_S 67 _t
(generally)_S 1200 2937 _m
(only)_S 67 _t
(call)_S 67 _t
(this)_S 67 _t
(once)_S 67 _t
(per)_S 67 _t
(frame,)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(tree)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(world:)_S 1800 2525 _m
/CourierR 400 _ff
(vrl_Object)_S 80 _t
(*vrl_ObjectUpdate\(vrl_Object)_S 80 _t
(*object\);)_S /Times-RomanR 600 _ff
1200 2105 _m
(The)_S 67 _t
(macro)_S 67 _t
(vrl_WorldUpdate\(\))_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(do)_S 67 _t
(this)_S 67 _t
(more)_S 67 _t
(concisely.)_S 8800 1255 _m
(31)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(A)_S 67 _t
(vrl_Object)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(several)_S 67 _t
(other)_S 67 _t
(properties)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(it.)_S 134 _t
(These)_S 67 _t
(include)_S 67 _t
(a)_S 1200 11622 _m
(name,)_S 67 _t
(a)_S 67 _t
(function,)_S 67 _t
(and)_S 67 _t
(some)_S 67 _t
(application-specific)_S 67 _t
(data.)_S 134 _t
(The)_S 67 _t
(function)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
(object)_S 1200 11389 _m
(gets)_S 67 _t
(called)_S 67 _t
(whenever)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(is)_S 67 _t
(processed)_S 67 _t
(during)_S 67 _t
(the)_S 67 _t
(tree-walking)_S 67 _t
(that)_S 67 _t
(vrl_ObjectUpdate\(\))_S 1200 11156 _m
(performs.)_S 134 _t
(The)_S 67 _t
(following)_S 67 _t
(routines)_S 67 _t
(allow)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
(get)_S 67 _t
(and)_S 67 _t
(set)_S 67 _t
(these)_S 67 _t
(additional)_S 67 _t
(properties:)_S 1800 10744 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ObjectSetName\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(char)_S 80 _t
(*str\);)_S 1800 10611 _m
(char)_S 80 _t
(*vrl_ObjectGetName\(vrl_Object)_S 80 _t
(*obj\);)_S 1800 10478 _m
(void)_S 80 _t
(vrl_ObjectSetFunction\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(int)_S 80 _t
(\(*fn\)\(vrl_Object)_S 80 _t
(*\)\);)_S 1800 10345 _m
(void)_S 80 _t
(*vrl_ObjectGetFunction\(vrl_Object)_S 80 _t
(*obj\);)_S 1800 10212 _m
(void)_S 80 _t
(vrl_ObjectSetApplicationData\(vrl_Object)_S 80 _t
(*obj,)_S 80 _t
(void)_S 80 _t
(*data\);)_S 1800 10079 _m
(void)_S 80 _t
(*vrl_ObjectGetApplicationData\(vrl_Object)_S 80 _t
(*obj\);)_S /Times-RomanR 600 _ff
1200 9629 _m
/Times-BoldR 720 _ff
(Shapes)_S 1920 9629 _m
/Times-RomanR 600 _ff
1800 9153 _m
(As)_S 67 _t
(described)_S 67 _t
(earlier,)_S 67 _t
(AVRIL)_S 67 _t
(keeps)_S 67 _t
(shape)_S 67 _t
(information)_S 67 _t
(separate)_S 67 _t
(from)_S 67 _t
(object)_S 1200 8920 _m
(descriptions,)_S 67 _t
(so)_S 67 _t
(that)_S 67 _t
(shapes)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(re-used)_S 67 _t
(by)_S 67 _t
(multiple)_S 67 _t
(objects.)_S 134 _t
(Shapes)_S 67 _t
(\(entities)_S 67 _t
(of)_S 67 _t
(type)_S 1200 8687 _m
(vrl_Shape\))_S 67 _t
(are)_S 67 _t
(generally)_S 67 _t
(read)_S 67 _t
(from)_S 67 _t
(PLG)_S 67 _t
(files)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(vrl_ReadPLG\(\))_S 67 _t
(function,)_S 67 _t
(described)_S 1200 8454 _m
(later.)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(create)_S 67 _t
(them)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(vrl_Primitive)_S 67 _t
(family)_S 67 _t
(of)_S 67 _t
(functions,)_S 67 _t
(also)_S 67 _t
(described)_S 1200 8221 _m
(later)_S 67 _t
(in)_S 67 _t
(this)_S 67 _t
(document.)_S 1800 7755 _m
(You)_S 67 _t
(can)_S 67 _t
(modify)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(after)_S 67 _t
(it's)_S 67 _t
(been)_S 67 _t
(loaded;)_S 67 _t
(bear)_S 67 _t
(in)_S 67 _t
(mind)_S 67 _t
(that)_S 67 _t
(any)_S 67 _t
(changes)_S 67 _t
(you)_S 1200 7522 _m
(make)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(will)_S 67 _t
(affect)_S 67 _t
(all)_S 67 _t
(objects)_S 67 _t
(using)_S 67 _t
(that)_S 67 _t
(shape!)_S 134 _t
(To)_S 67 _t
(re-scale)_S 67 _t
(a)_S 67 _t
(shape,)_S 67 _t
(or)_S 67 _t
(shift)_S 67 _t
(all)_S 67 _t
(the)_S 1200 7289 _m
(vertices)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(shape)_S 67 _t
(relative)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(shape's)_S 67 _t
(origin)_S 67 _t
(point,)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(functions:)_S 1800 6877 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ShapeRescale\(vrl_Shape)_S 80 _t
(*shape,)_S 80 _t
(float)_S 80 _t
(sx,)_S 80 _t
(float)_S 80 _t
(sy,)_S 80 _t
(float)_S 80 _t
(sz\);)_S 1800 6744 _m
(void)_S 80 _t
(vrl_ShapeOffset\(vrl_Shape)_S 80 _t
(*shape,)_S 80 _t
(vrl_Scalar)_S 80 _t
(tx,)_S 80 _t
(vrl_Scalar)_S 80 _t
(ty,)_S 80 _t
(vrl_Scalar)_S 80 _t
(tz\);)_S 1200 6424 _m
/Times-RomanR 600 _ff
(After)_S 67 _t
(making)_S 67 _t
(changes)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(\(or)_S 67 _t
(any)_S 67 _t
(representation)_S 67 _t
(within)_S 67 _t
(a)_S 67 _t
(shape\),)_S 67 _t
(you)_S 67 _t
(should)_S 67 _t
(call)_S 1200 6191 _m
(vrl_ShapeUpdate\(\))_S 67 _t
(to)_S 67 _t
(recompute)_S 67 _t
(the)_S 67 _t
(shape's)_S 67 _t
(bounds.)_S 1800 5779 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ShapeUpdate\(vrl_Shape)_S 80 _t
(*shape\);)_S /Times-RomanR 600 _ff
1200 5359 _m
(Shapes)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(default)_S 67 _t
(surface)_S 67 _t
(map,)_S 67 _t
(which)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(objects)_S 67 _t
(that)_S 67 _t
(don't)_S 67 _t
(set)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(their)_S 1200 5126 _m
(own.)_S 134 _t
(A)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(shape's)_S 67 _t
(default)_S 67 _t
(surface)_S 67 _t
(map)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(obtained,)_S 67 _t
(or)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(new)_S 1200 4893 _m
(surfacemap)_S 67 _t
(for)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(set,)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(the)_S 67 _t
(functions)_S 1800 4481 _m
/CourierR 400 _ff
(vrl_Surfacemap)_S 80 _t
(*vrl_ShapeGetSurfacemap\(vrl_Shape)_S 80 _t
(*shape\);)_S 1800 4348 _m
(void)_S 80 _t
(vrl_ShapeSetSurfacemap\(vrl_Shape)_S 80 _t
(*shape,)_S 80 _t
(vrl_Surfacemap)_S 80 _t
(*map\);)_S /Times-RomanR 600 _ff
1200 3928 _m
(To)_S 67 _t
(get)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(representation)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(that)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(at)_S 67 _t
(a)_S 67 _t
(given)_S 67 _t
(on-screen)_S 67 _t
(size,)_S 1200 3695 _m
(use)_S 67 _t
(following)_S 67 _t
(function:)_S /CourierR 400 _ff
1800 3383 _m
(vrl_Rep)_S 80 _t
(*vrl_ShapeGetRep\(vrl_Shape)_S 80 _t
(*shape,)_S 80 _t
(vrl_Scalar)_S 80 _t
(size\);)_S /Times-RomanR 600 _ff
1200 2963 _m
(To)_S 67 _t
(add)_S 67 _t
(an)_S 67 _t
(additional)_S 67 _t
(representation)_S 67 _t
(to)_S 67 _t
(an)_S 67 _t
(existing)_S 67 _t
(shape,)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(function)_S /CourierR 400 _ff
1800 2651 _m
(void)_S 80 _t
(vrl_ShapeAddRep\(vrl_Shape)_S 80 _t
(*shape,)_S 80 _t
(vrl_Rep)_S 80 _t
(*rep,)_S 80 _t
(vrl_Scalar)_S 80 _t
(size\);)_S /Times-RomanR 600 _ff
1200 2229 _m
(The)_S 67 _t
1578 2229 _m
/Times-ItalicR 600 _ff
(size)_S 1878 2229 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(gives)_S 67 _t
(the)_S 67 _t
(apparent)_S 67 _t
(on-screen)_S 67 _t
(size)_S 67 _t
(in)_S 67 _t
(pixels)_S 67 _t
(at)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(shape)_S 67 _t
(should)_S 67 _t
(be)_S 1200 1996 _m
(used.)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(find)_S 67 _t
(out)_S 67 _t
(how)_S 67 _t
(many)_S 67 _t
(representations)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(has)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(function)_S 8800 1255 _m
(32)_S _ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(int)_S 80 _t
(vrl_ShapeCountReps\(vrl_Shape)_S 80 _t
(*shape\);)_S /Times-RomanR 600 _ff
1200 11489 _m
(A)_S 67 _t
(shape's)_S 67 _t
(name)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(set)_S 67 _t
(or)_S 67 _t
(obtained)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(functions)_S 1800 11077 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ShapeSetName\(vrl_Shape)_S 80 _t
(*shape,)_S 80 _t
(char)_S 80 _t
(*str\);)_S 1800 10944 _m
(char)_S 80 _t
(*vrl_ShapeGetNext\(vrl_Shape)_S 80 _t
(*shape\);)_S /Times-RomanR 600 _ff
1200 10524 _m
(Shapes)_S 67 _t
(are)_S 67 _t
(kept)_S 67 _t
(internally)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(singly-linked)_S 67 _t
(list;)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(iterate)_S 67 _t
(through)_S 67 _t
(the)_S 67 _t
(list,)_S 67 _t
(the)_S 1200 10291 _m
(following)_S 67 _t
(two)_S 67 _t
(functions)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(used)_S /CourierR 400 _ff
1800 9979 _m
(vrl_Shape)_S 80 _t
(*vrl_ShapeGetList\(void\);)_S 1800 9846 _m
(vrl_Shape)_S 80 _t
(*vrl_ShapeGetNext\(vrl_Shape)_S 80 _t
(*shape\))_S /Times-RomanR 600 _ff
1200 9426 _m
(You)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(locate)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(by)_S 67 _t
(name)_S 67 _t
(using)_S /CourierR 400 _ff
1800 9114 _m
(vrl_Shape)_S 80 _t
(*vrl_ShapeFind\(char)_S 80 _t
(*name\);)_S /Times-RomanR 600 _ff
1200 8664 _m
/Times-BoldR 720 _ff
(Representations)_S 2853 8664 _m
/Times-RomanR 600 _ff
1800 8188 _m
(A)_S 67 _t
(shape)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(any)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(representations,)_S 67 _t
(at)_S 67 _t
(various)_S 67 _t
(levels)_S 67 _t
(of)_S 67 _t
(detail.)_S 134 _t
(Each)_S 1200 7955 _m
(representation)_S 67 _t
(\(vrl_Rep\))_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(set)_S 67 _t
(of)_S 67 _t
(vertices)_S 67 _t
(\(each)_S 67 _t
(of)_S 67 _t
(type)_S 67 _t
(vrl_Vector\))_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(set)_S 67 _t
(of)_S 67 _t
(facets)_S 1200 7722 _m
(\(each)_S 67 _t
(of)_S 67 _t
(type)_S 67 _t
(vrl_Facet\).)_S 134 _t
(A)_S 67 _t
(representation)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
("sorting)_S 67 _t
(type")_S 67 _t
(field;)_S 67 _t
(this)_S 67 _t
(will)_S 67 _t
(be)_S 1200 7489 _m
(explained)_S 67 _t
(in)_S 67 _t
(more)_S 67 _t
(detail)_S 67 _t
(in)_S 67 _t
(future)_S 67 _t
(releases)_S 67 _t
(of)_S 67 _t
(this)_S 67 _t
(documentation.)_S 1800 7023 _m
(You)_S 67 _t
(can)_S 67 _t
(traverse)_S 67 _t
(the)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(representations)_S 67 _t
(for)_S 67 _t
(a)_S 67 _t
(shape,)_S 67 _t
(calling)_S 67 _t
(a)_S 67 _t
(function)_S 67 _t
(on)_S 67 _t
(each)_S 1200 6790 _m
(representation,)_S 67 _t
(by)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(routine:)_S 1800 6378 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_ShapeTraverseReps\(vrl_Shape)_S 80 _t
(*shape,)_S 80 _t
(int)_S 80 _t
(\(*function\(vrl_Rep)_S 80 _t
(*rep\)\)\);)_S /Times-RomanR 600 _ff
1200 5958 _m
(The)_S 67 _t
(function)_S 67 _t
(is)_S 67 _t
(once)_S 67 _t
(called)_S 67 _t
(for)_S 67 _t
(every)_S 67 _t
(representation,)_S 67 _t
(and)_S 67 _t
(is)_S 67 _t
(given)_S 67 _t

(the)_S 67 _t
(representation)_S 67 _t
(as)_S 67 _t
(a)_S 1200 5725 _m
(parameter.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(function)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value,)_S 67 _t
(the)_S 67 _t
(processing)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(representation)_S 67 _t
(list)_S 1200 5492 _m
(stops)_S 67 _t
(at)_S 67 _t
(that)_S 67 _t
(rep.)_S 1800 5026 _m
(The)_S 67 _t
(other)_S 67 _t
(approach)_S 67 _t
(is)_S 67 _t
(to)_S 67 _t
(iterate)_S 67 _t
(through)_S 67 _t
(the)_S 67 _t
(linked)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(representations)_S 67 _t
(using)_S 67 _t
(the)_S 1200 4793 _m
(functions)_S 1800 4381 _m
/CourierR 400 _ff
(vrl_Rep)_S 80 _t
(*vrl_ShapeGetFirstRep\(vrl_Shape)_S 80 _t
(*shape\);)_S 1800 4248 _m
(vrl_Rep)_S 80 _t
(*vrl_RepGetNext\(vrl_Rep)_S 80 _t
(*rep\);)_S /Times-RomanR 600 _ff
1200 3828 _m
(You)_S 67 _t
(can)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(get)_S 67 _t
(a)_S 67 _t
(vrl_Rep's)_S 67 _t
(sorting)_S 67 _t
(type,)_S 67 _t
(find)_S 67 _t
(out)_S 67 _t
(the)_S 67 _t
(approximate)_S 67 _t
(size)_S 67 _t
(\(in)_S 67 _t
(pixels\))_S 67 _t
(at)_S 1200 3595 _m
(which)_S 67 _t
(a)_S 67 _t
(rep)_S 67 _t
(becomes)_S 67 _t
(effective,)_S 67 _t
(as)_S 67 _t
(well)_S 67 _t
(as)_S 67 _t
(count)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(vertices)_S 67 _t
(and)_S 67 _t
(facets)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(rep)_S 1200 3362 _m
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(functions:)_S 1800 2950 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_RepSetSorting\(vrl_Rep)_S 80 _t
(*rep,)_S 80 _t
(int)_S 80 _t
(type\);)_S 1800 2817 _m
(int)_S 80 _t
(vrl_RepGetSorting\(vrl_Rep)_S 80 _t
(*rep\);)_S 1800 2551 _m
(int)_S 80 _t
(vrl_RepGetSize\(vrl_Rep)_S 80 _t
(*rep\);)_S 1800 2285 _m
(int)_S 80 _t
(vrl_RepCountVertices\(vrl_Rep)_S 80 _t
(*rep\);)_S 1800 2152 _m
(int)_S 80 _t
(vrl_RepCountFacets\(vrl_Rep)_S 80 _t
(*rep\);)_S 1200 1832 _m
/Times-RomanR 600 _ff
(There)_S 67 _t
(are)_S 67 _t
(also)_S 67 _t
("traversal")_S 67 _t
(functions)_S 67 _t
(for)_S 67 _t
(vertices)_S 67 _t
(and)_S 67 _t
(facets:)_S 8800 1255 _m
(33)_S _ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(void)_S 80 _t
(vrl_RepTraverseVertices\(vrl_Rep)_S 80 _t
(*rep,)_S 80 _t
(int)_S 80 _t
(\(*function\)\(vrl_Vector)_S 80 _t
(*vertex\)\);)_S 1800 11776 _m
(void)_S 80 _t
(vrl_RepTraverseFacets\(vrl_Rep)_S 80 _t
(*rep,)_S 80 _t
(int)_S 80 _t
(\(*function\)\(vrl_Facet)_S 80 _t
(*facet\)\);)_S /Times-RomanR 600 _ff
1200 11356 _m
(If)_S 67 _t
(you)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(get)_S 67 _t
(or)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
(values)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(vertex's)_S 67 _t
(coordinates,)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(functions)_S 1800 10944 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_RepGetVertex\(vrl_Rep)_S 80 _t
(*rep,)_S 80 _t
(int)_S 80 _t
(n,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S 1800 10811 _m
(void)_S 80 _t
(vrl_RepSetVertex\(vrl_Rep)_S 80 _t
(*rep,)_S 80 _t
(int)_S 80 _t
(n,)_S 80 _t
(vrl_Vector)_S 80 _t
(v\);)_S /Times-RomanR 600 _ff
1200 10391 _m
(Be)_S 67 _t
(careful)_S 67 _t
(when)_S 67 _t
(using)_S 67 _t
(vrl_RepSetVertex\(\);)_S 67 _t
(it's)_S 67 _t
(easy)_S 67 _t
(to)_S 67 _t
(move)_S 67 _t
(a)_S 67 _t
(vertex)_S 67 _t
(and)_S 67 _t
(create)_S 67 _t
(non-planar)_S 1200 10158 _m
(or)_S 67 _t
(non-convex)_S 67 _t
(facets,)_S 67 _t
(which)_S 67 _t
(confuse)_S 67 _t
(the)_S 67 _t
(renderer.)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(only)_S 67 _t
(move)_S 67 _t
(vertices)_S 67 _t
(safely)_S 67 _t
(if)_S 67 _t
(you)_S 1200 9925 _m
(know)_S 67 _t
(the)_S 67 _t
(vrl_Rep)_S 67 _t
(is)_S 67 _t
(composed)_S 67 _t
(entirely)_S 67 _t
(of)_S 67 _t
(triangles,)_S 67 _t
(since)_S 67 _t
(by)_S 67 _t
(their)_S 67 _t
(nature)_S 67 _t
(triangles)_S 67 _t
(are)_S 67 _t
(always)_S 1200 9692 _m
(planar)_S 67 _t
(and)_S 67 _t
(convex.)_S 134 _t
(In)_S 67 _t
(any)_S 67 _t
(case,)_S 67 _t
(be)_S 67 _t
(sure)_S 67 _t
(to)_S 67 _t
(call)_S 67 _t
(vrl_ShapeUpdate\(\))_S 67 _t
(after)_S 67 _t
(moving)_S 67 _t
(any)_S 67 _t
(vertices.)_S 1200 9196 _m
/Times-BoldR 720 _ff
(Facets)_S 1853 9196 _m
/Times-RomanR 600 _ff
1800 8720 _m
(AVRIL's)_S 67 _t
(terminology)_S 67 _t
(is)_S 67 _t
(slightly)_S 67 _t
(different)_S 67 _t
(from)_S 67 _t
(some)_S 67 _t
(other)_S 67 _t
(VR)_S 67 _t
(systems;)_S 67 _t
(a)_S 67 _t
("facet")_S 67 _t
(is)_S 67 _t
(a)_S 1200 8487 _m
(flat)_S 67 _t
(three-dimensional)_S 67 _t
(entity,)_S 67 _t
(whereas)_S 67 _t
(a)_S 67 _t
("polygon")_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(two)_S 67 _t
(dimensional)_S 67 _t
(area)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen.)_S 67 _t
1200 8254 _m
(The)_S 67 _t
(job)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(graphics)_S 67 _t
(pipeline)_S 67 _t
(is)_S 67 _t
(to)_S 67 _t
(turn)_S 67 _t
(facets)_S 67 _t
(into)_S 67 _t
(polygons.)_S 1800 7788 _m
(Facets)_S 67 _t
(in)_S 67 _t
(AVRIL)_S 67 _t
(have)_S 67 _t
(an)_S 67 _t
(array)_S 67 _t
(of)_S 67 _t
(integers)_S 67 _t
(that)_S 67 _t
(specify)_S 67 _t
(which)_S 67 _t
(vertices)_S 67 _t
(in)_S 67 _t
(the)_S 1200 7555 _m
(representation)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(connected)_S 67 _t
(\(and)_S 67 _t
(in)_S 67 _t
(what)_S 67 _t
(sequence\))_S 67 _t
(to)_S 67 _t
(form)_S 67 _t
(the)_S 67 _t
(outline)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(facet.)_S 67 _t
1200 7322 _m
(Facets)_S 67 _t
(also)_S 67 _t
(have)_S 67 _t
(an)_S 67 _t
(index)_S 67 _t
(into)_S 67 _t
(the)_S 67 _t
(surface)_S 67 _t
(map)_S 67 _t
(for)_S 67 _t
(an)_S 67 _t
(object,)_S 67 _t
(to)_S 67 _t
(determine)_S 67 _t
(what)_S 67 _t
(the)_S 67 _t
(surface)_S 1200 7089 _m
(properties)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(facet)_S 67 _t
(should)_S 67 _t
(be.)_S 134 _t
(They)_S 67 _t
(also)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(bit)_S 67 _t
(that)_S 67 _t
(indicates)_S 67 _t
(whether)_S 67 _t
(or)_S 67 _t
(not)_S 67 _t
(the)_S 67 _t
(facet)_S 1200 6856 _m
(should)_S 67 _t
(be)_S 67 _t
(highlighted.)_S 1800 6390 _m
(The)_S 67 _t
(surface)_S 67 _t
(index)_S 67 _t
(of)_S 67 _t
(any)_S 67 _t
(facet)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(set)_S 67 _t
(or)_S 67 _t
(queried)_S 67 _t
(at)_S 67 _t
(any)_S 67 _t
(time)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 1200 6157 _m
(two)_S 67 _t
(routines:)_S 1800 5745 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_FacetSetSurfnum\(vrl_Facet)_S 80 _t
(*facet,)_S 80 _t
(int)_S 80 _t
(n\);)_S 1800 5612 _m
(int)_S 80 _t
(void)_S 80 _t
(vrl_FacetGetSurfnum\(vrl_Facet)_S 80 _t
(*facet\);)_S /Times-RomanR 600 _ff
1200 5192 _m
(The)_S 67 _t
(highlighting)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(facet)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(set,)_S 67 _t
(queried)_S 67 _t
(or)_S 67 _t
(toggled)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(routines:)_S 1800 4780 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_FacetSetHighlight\(vrl_Facet)_S 80 _t
(*facet,)_S 80 _t
(int)_S 80 _t
(high\);)_S 1800 4647 _m
(int)_S 80 _t
(vrl_FacetGetHighlight\(vrl_Facet)_S 80 _t
(*facet\);)_S 1800 4514 _m
(void)_S 80 _t
(vrl_FacetToggleHighlight\(vrl_Facet)_S 80 _t
(*facet\);)_S /Times-RomanR 600 _ff
1200 4094 _m
(The)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(points)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(facet,)_S 67 _t
(the)_S 67 _t
(index)_S 67 _t
(of)_S 67 _t
(any)_S 67 _t
(particular)_S 67 _t
(point,)_S 67 _t
(or)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(vertex)_S 1200 3861 _m
(for)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(point,)_S 67 _t
(can)_S 67 _t
(all)_S 67 _t
(be)_S 67 _t
(obtained)_S 67 _t
(using)_S 67 _t
(these)_S 67 _t
(routines:)_S 1800 3449 _m
/CourierR 400 _ff
(int)_S 80 _t
(vrl_FacetCountPoints\(vrl_Facet)_S 80 _t
(*facet\);)_S 1800 3316 _m
(int)_S 80 _t
(vrl_FacetGetPoint\(vrl_Facet)_S 80 _t
(*facet,)_S 80 _t
(int)_S 80 _t
(n\);)_S 1800 3183 _m
(vrl_Vector)_S 80 _t
(*vrl_FacetGetVertex\(vrl_Rep)_S 80 _t
(*rep,)_S 80 _t
(vrl_Facet)_S 80 _t
(*facet,)_S 80 _t
(int)_S 80 _t
(n\);)_S 80 _t
/Times-RomanR 600 _ff
1200 2763 _m
(vrl_Facets)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(identified)_S 67 _t
(by)_S 67 _t
(an)_S 67 _t
(ID)_S 67 _t
(number.)_S 134 _t
(The)_S 67 _t
(ID)_S 67 _t
(number)_S 67 _t
(for)_S 67 _t
(a)_S 67 _t
(vrl_Facet)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(set)_S 67 _t
(and)_S 1200 2530 _m
(read,)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(vrl_Facet)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(ID)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(found,)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(functions:)_S 1800 2118 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_FacetSetId\(vrl_Facet)_S 80 _t
(*facet,)_S 80 _t
(unsigned)_S 80 _t
(int)_S 80 _t
(n\);)_S 1800 1985 _m
(unsigned)_S 80 _t
(int)_S 80 _t
(vrl_FacetGetId\(vrl_Facet)_S 80 _t
(*facet\);)_S 1800 1852 _m
(vrl_Facet)_S 80 _t
(*vrl_RepFindFacet\(vrl_Rep)_S 80 _t
(*rep,)_S 80 _t
(unsigned)_S 80 _t
(int)_S 80 _t
(id\);)_S /Times-RomanR 600 _ff
8800 1255 _m
(34)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11825 _m
/Times-BoldR 720 _ff
(Surfaces)_S 2080 11825 _m
/Times-RomanR 600 _ff
1800 11349 _m
(AVRIL)_S 67 _t
(surfaces)_S 67 _t
(are)_S 67 _t
(designed)_S 67 _t
(for)_S 67 _t
(expandability.)_S 134 _t
(At)_S 67 _t
(the)_S 67 _t
(moment,)_S 67 _t
(each)_S 67 _t
(vrl_Surface)_S 1200 11116 _m
(consists)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(type,)_S 67 _t
(a)_S 67 _t
(hue)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(brightness.)_S 134 _t
(The)_S 67 _t
(types)_S 67 _t
(are)_S 67 _t
(SURF_SIMPLE)_S 67 _t
(\(no)_S 67 _t
(lighting,)_S 67 _t
(just)_S 67 _t
(a)_S 1200 10883 _m
(fixed)_S 67 _t
(color\),)_S 67 _t
(SURF_FLAT)_S 67 _t
(\(for)_S 67 _t
(flat)_S 67 _t
(shading\),)_S 67 _t
(SURF_METAL)_S 67 _t
(\(for)_S 67 _t
(a)_S 67 _t
(pseudo-metallic)_S 67 _t
(effect\))_S 1200 10650 _m
(and)_S 67 _t
(SURF_GLASS)_S 67 _t
(\(for)_S 67 _t
(a)_S 67 _t
(partially)_S 67 _t
(transparent)_S 67 _t
(effect\).)_S 134 _t
(Surfaces)_S 67 _t
(are)_S 67 _t
(initialized)_S 67 _t
(and)_S 67 _t
(modified)_S 1200 10417 _m
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(routines:)_S 1800 10005 _m
/CourierR 400 _ff
(vrl_Surface)_S 80 _t
(*vrl_SurfaceInit\(vrl_Surface)_S 80 _t
(*surf,)_S 80 _t
(unsigned)_S 80 _t
(char)_S 80 _t
(hue\);)_S 1800 9872 _m
(vrl_Surface)_S 80 _t
(*vrl_SurfaceCreate\(unsigned)_S 80 _t
(char)_S 80 _t
(hue\);)_S 1800 9606 _m
(void)_S 80 _t
(vrl_SurfaceSetType\(vrl_Surface)_S 80 _t
(*surf,)_S 80 _t
(vrl_LightingType)_S 80 _t
(type\);)_S 1800 9473 _m
(vrl_LightingType)_S 80 _t
(vrl_SurfaceGetType\(vrl_Surface)_S 80 _t
(*surf\);)_S 1800 9207 _m
(void)_S 80 _t
(vrl_SurfaceSetHue\(vrl_Surface)_S 80 _t
(*surf,)_S 80 _t
(unsigned)_S 80 _t
(char)_S 80 _t
(h\);)_S 1800 9074 _m
(unsigned)_S 80 _t
(char)_S 80 _t
(vrl_SurfaceGetHue\(vrl_Surface)_S 80 _t
(*surf\);)_S 1800 8808 _m
(void)_S 80 _t
(vrl_SurfaceSetBrightness\(vrl_Surface)_S 80 _t
(*surf,)_S 80 _t
(unsigned)_S 80 _t
(char)_S 80 _t
(b\);)_S 1800 8675 _m
(unsigned)_S 80 _t
(char)_S 80 _t
(vrl_SurfaceGetBrightness\(vrl_Surface)_S 80 _t
(*surf\);)_S /Times-RomanR 600 _ff
1200 8255 _m
(The)_S 67 _t
(hue)_S 67 _t
(and)_S 67 _t
(brightness)_S 67 _t
(values)_S 67 _t
(are)_S 67 _t
(8-bit)_S 67 _t
(unsigned)_S 67 _t
(quantities;)_S 67 _t
(the)_S 67 _t
(maximum)_S 67 _t
(brightness)_S 67 _t
(value)_S 67 _t
(is)_S 1200 8022 _m
(therefore)_S 67 _t
(255.)_S 1800 7556 _m
(For)_S 67 _t
(backwards)_S 67 _t
(compatibility)_S 67 _t
(with)_S 67 _t
(REND386,)_S 67 _t
(AVRIL)_S 67 _t
(includes)_S 67 _t
(functions)_S 67 _t
(to)_S 67 _t
(convert)_S 67 _t
(a)_S 1200 7323 _m
(16-bit)_S 67 _t
(REND386)_S 67 _t
(surface)_S 67 _t
(descriptor)_S 67 _t
(into)_S 67 _t
(a)_S 67 _t
(vrl_Surface,)_S 67 _t
(and)_S 67 _t
(vice-versa:)_S 1800 6911 _m
/CourierR 400 _ff
(vrl_Surface)_S 80 _t
(*vrl_SurfaceFromDesc\(unsigned)_S 80 _t
(int)_S 80 _t
(desc,)_S 80 _t
(vrl_Surface)_S 80 _t
(*surf\);)_S 1800 6778 _m
(unsigned)_S 80 _t
(int)_S 80 _t
(vrl_SurfaceToDesc\(vrl_Surface)_S 80 _t
(*surf\);)_S /Times-RomanR 600 _ff
1200 6328 _m
/Times-BoldR 720 _ff
(Surface)_S 80 _t
(Maps)_S 2640 6328 _m
/Times-RomanR 600 _ff
1800 5852 _m
(Surface)_S 67 _t
(maps)_S 67 _t
(contain)_S 67 _t
(an)_S 67 _t
(array)_S 67 _t
(of)_S 67 _t
(pointers)_S 67 _t
(to)_S 67 _t
(surfaces;)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(create)_S 67 _t
(a)_S 67 _t
(surface)_S 67 _t
(map)_S 1200 5619 _m
(with)_S 67 _t
(room)_S 67 _t
(for)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(entries,)_S 67 _t
(and)_S 67 _t
(access)_S 67 _t
(entries)_S 67 _t
(within)_S 67 _t
(a)_S 67 _t
(map,)_S 67 _t
(using)_S 67 _t
(the)_S 1200 5386 _m
(following)_S 67 _t
(routines:)_S 1800 4974 _m
/CourierR 400 _ff
(vrl_Surfacemap)_S 80 _t
(*vrl_SurfacemapCreate\(int)_S 80 _t
(n\);)_S 1800 4841 _m
(vrl_Surface)_S 80 _t
(*vrl_SurfacemapGetSurface\(vrl_Surfacemap)_S 80 _t
(*map,)_S 80 _t
(int)_S 80 _t
(surfnum\);)_S 1800 4708 _m
(vrl_Surface)_S 80 _t
(*vrl_SurfacemapSetSurface\(vrl_Surfacemap)_S 80 _t
(*map,)_S 80 _t
(int)_S 80 _t
(surfnum,)_S 2400 4575 _m
(vrl_Surface)_S 80 _t
(*surface\);)_S /Times-RomanR 600 _ff
1200 4125 _m
/Times-BoldR 720 _ff
(Lights)_S 1854 4125 _m
/Times-RomanR 600 _ff
1800 3649 _m
(Lights)_S 67 _t
(in)_S 67 _t
(AVRIL)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(properties;)_S 67 _t
(they)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(on)_S 67 _t
(or)_S 67 _t
(off,)_S 67 _t
(they)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(an)_S 1200 3416 _m
(intensity,)_S 67 _t
(and)_S 67 _t
(they)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
(object.)_S 134 _t
(The)_S 67 _t
(on/off)_S 67 _t
(and)_S 67 _t
(intensity)_S 67 _t
(properties)_S 67 _t
(are)_S 1200 3183 _m
(similar)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(household)_S 67 _t
(dimmer;)_S 67 _t
(rotating)_S 67 _t
(the)_S 67 _t
(knob)_S 67 _t
(on)_S 67 _t
(a)_S 67 _t
(dimmer)_S 67 _t
(alters)_S 67 _t
(the)_S 67 _t
(intensity,)_S 67 _t
(and)_S 1200 2950 _m
(pushing)_S 67 _t
(it)_S 67 _t
(in)_S 67 _t
(toggles)_S 67 _t
(the)_S 67 _t
(light)_S 67 _t
(on)_S 67 _t
(and)_S 67 _t
(off.)_S 1800 2484 _m
(The)_S 67 _t
(current)_S 67 _t
(version)_S 67 _t
(of)_S 67 _t
(AVRIL)_S 67 _t
(only)_S 67 _t
(supports)_S 67 _t
(ambient)_S 67 _t
(lights)_S 67 _t
(and)_S 67 _t
(directional)_S 67 _t
(lights;)_S 1200 2251 _m
(point)_S 67 _t
(sources)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(supported)_S 67 _t
(soon.)_S 134 _t
(Any)_S 67 _t
(light)_S 67 _t
(that)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(is)_S 1200 2018 _m
(considered)_S 67 _t
(ambient;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(in)_S 67 _t
(addition)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(overall)_S 67 _t
(ambient)_S 67 _t
(light)_S 67 _t
(level)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(world.)_S 134 _t
(A)_S 1200 1785 _m
(directional)_S 67 _t
(light)_S 67 _t
(uses)_S 67 _t
(the)_S 67 _t
(orientation)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(it's)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(to)_S 67 _t
(determine)_S 67 _t
(which)_S 8800 1255 _m
(35)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(direction)_S 67 _t
(the)_S 67 _t
(light)_S 67 _t
(should)_S 67 _t
(come)_S 67 _t
(from.)_S 134 _t
(A)_S 67 _t
(point)_S 67 _t
(source)_S 67 _t
(light)_S 67 _t
(\(once)_S 67 _t
(implemented\))_S 67 _t
(will)_S 67 _t
(use)_S 67 _t
(the)_S 1200 11622 _m
(location)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(it's)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(to)_S 67 _t
(determine)_S 67 _t
(where)_S 67 _t
(the)_S 67 _t
(light)_S 67 _t
(comes)_S 67 _t
(from.)_S 1800 11156 _m
(As)_S 67 _t
(with)_S 67 _t
(worlds)_S 67 _t
(and)_S 67 _t
(objects,)_S 67 _t
(lights)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(statically)_S 67 _t
(or)_S 67 _t
(dynamically)_S 67 _t
(created)_S 67 _t
(and)_S 1200 10923 _m
(destroyed)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(functions:)_S 1800 10511 _m
/CourierR 400 _ff
(vrl_Light)_S 80 _t
(*vrl_LightInit\(vrl_Light)_S 80 _t
(*light\);)_S 1800 10378 _m
(vrl_Light)_S 80 _t
(*vrl_LightCreate\(void\);)_S 1800 10245 _m
(void)_S 80 _t
(vrl_LightDestroy\(vrl_Light)_S 80 _t
(*light\);)_S /Times-RomanR 600 _ff
1200 9823 _m
(The)_S 67 _t
(light's)_S 67 _t
2156 9823 _m
/Times-ItalicR 600 _ff
(type)_S 2489 9823 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(LIGHT_AMBIENT,)_S 67 _t
(LIGHT_DIRECTIONAL)_S 67 _t
(or)_S 1200 9590 _m
(LIGHT_POINTSOURCE,)_S 67 _t
(and)_S 67 _t
(is)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(queried)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(two)_S 67 _t
(functions:)_S 1800 9178 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_LightSetType\(vrl_Light)_S 80 _t
(*light,)_S 80 _t
(int)_S 80 _t
(type\);)_S 1800 9045 _m
(int)_S 80 _t
(vrl_LightGetType\(vrl_Light)_S 80 _t
(*light\);)_S /Times-RomanR 600 _ff
1200 8625 _m
(The)_S 67 _t
(light's)_S 67 _t
(on/off)_S 67 _t
(status)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(checked)_S 67 _t
(and)_S 67 _t
(altered,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(intensity)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(queried,)_S 67 _t
(using)_S 1200 8392 _m
(these)_S 67 _t
(functions:)_S 1800 7980 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_LightOn\(vrl_Light)_S 80 _t
(*light\);)_S 1800 7847 _m
(void)_S 80 _t
(vrl_LightOff\(vrl_Light)_S 80 _t
(*light\);)_S 1800 7714 _m
(void)_S 80 _t
(vrl_LightToggle\(vrl_Light)_S 80 _t
(*light\);)_S 1800 7581 _m
(vrl_Boolean)_S 80 _t
(vrl_LightIsOn\(vrl_Light)_S 80 _t
(*light\);)_S 1800 7315 _m
(void)_S 80 _t
(vrl_LightSetIntensity\(vrl_Light)_S 80 _t
(*light,)_S 80 _t
(vrl_Factor)_S 80 _t
(inten\);)_S 1800 7182 _m
(vrl_Factor)_S 80 _t
(vrl_LightGetIntensity\(vrl_Light)_S 80 _t
(*light\);)_S /Times-RomanR 600 _ff
1200 6762 _m
(Notice)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(intensity)_S 67 _t
(values)_S 67 _t
(are)_S 67 _t
(vrl_Factors;)_S 67 _t
(they)_S 67 _t
(should)_S 67 _t
(never)_S 67 _t
(be)_S 67 _t
(less)_S 67 _t
(than)_S 67 _t
(zero)_S 67 _t
(or)_S 67 _t
(greater)_S 1200 6529 _m
(than)_S 67 _t
(VRL_UNITY.)_S 1800 6063 _m
(You)_S 67 _t
(can)_S 67 _t
(make)_S 67 _t
(and)_S 67 _t
(break)_S 67 _t
(associations)_S 67 _t
(between)_S 67 _t
(a)_S 67 _t
(light)_S 67 _t
(source)_S 67 _t
(and)_S 67 _t
(an)_S 67 _t
(object,)_S 67 _t
(and)_S 1200 5830 _m
(determine)_S 67 _t
(what)_S 67 _t
(object)_S 67 _t
(a)_S 67 _t
(light)_S 67 _t
(source)_S 67 _t
(is)_S 67 _t
(currently)_S 67 _t
(associated)_S 67 _t
(with,)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(routines:)_S 1800 5418 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_LightAssociate\(vrl_Light)_S 80 _t
(*light,)_S 80 _t
(vrl_Object)_S 80 _t
(*object\);)_S 1800 5285 _m
(void)_S 80 _t
(vrl_LightDisAssociate\(vrl_Light)_S 80 _t
(*light\);)_S 1800 5152 _m
(vrl_Object)_S 80 _t
(*vrl_LightGetObject\(vrl_Light)_S 80 _t
(*light\);)_S /Times-RomanR 600 _ff
1200 4732 _m
(Many)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(routines)_S 67 _t
(that)_S 67 _t
(were)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(objects)_S 67 _t
(earlier)_S 67 _t
(have)_S 67 _t
(counterparts)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(for)_S 1200 4499 _m
(light)_S 67 _t
(sources;)_S 67 _t
(they're)_S 67 _t
(implemented)_S 67 _t
(as)_S 67 _t
(macros)_S 67 _t
(that)_S 67 _t
(just)_S 67 _t
(perform)_S 67 _t
(the)_S 67 _t
(operations)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(object)_S 1200 4266 _m
(with)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(light)_S 67 _t
(source)_S 67 _t
(is)_S 67 _t
(associated.)_S 1800 3854 _m
/CourierR 400 _ff
(vrl_LightMove\(light,)_S 80 _t
(x,)_S 80 _t
(y,)_S 80 _t
(z\);)_S 1800 3721 _m
(vrl_LightRelMove\(light,)_S 80 _t
(x,)_S 80 _t
(y,)_S 80 _t
(z\);)_S 1800 3588 _m
(vrl_LightVectorMove\(light,)_S 80 _t
(v\);)_S 1800 3455 _m
(vrl_LightVectorRelMove\(light,)_S 80 _t
(v\);)_S 1800 3322 _m
(vrl_LightRotX\(light,)_S 80 _t
(angle\);)_S 1800 3189 _m
(vrl_LightRotY\(light,)_S 80 _t
(angle\);)_S 1800 3056 _m
(vrl_LightRotZ\(light,)_S 80 _t
(angle\);)_S 1800 2923 _m
(vrl_LightRotVector\(light,)_S 80 _t
(angle,)_S 80 _t
(vector\);)_S 1800 2790 _m
(vrl_LightRotReset\(light\);)_S 1800 2657 _m
(vrl_LightRotate\(light,)_S 80 _t
(angle,)_S 80 _t
(axis,)_S 80 _t
(frame,)_S 80 _t
(relative_to\);)_S 1800 2524 _m
(vrl_LightLookAt\(light,)_S 80 _t
(forward,)_S 80 _t
(up\);)_S 1800 2391 _m
(vrl_LightAttach\(obj,)_S 80 _t
(newparent\);)_S 1800 2258 _m
(vrl_LightDetach\(obj\);)_S 1800 2125 _m
(vrl_LightGetLocation\(light,)_S 80 _t
(v\);)_S 1800 1992 _m
(vrl_LightGetX\(light\);)_S 1800 1859 _m
(vrl_LightGetY\(light\);)_S 1800 1726 _m
(vrl_LightGetZ\(light\);)_S 8800 1255 _m
/Times-RomanR 600 _ff
(36)_S /CourierR 400 _ff
_ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(It's)_S 67 _t
(important)_S 67 _t
(to)_S 67 _t
(note)_S 67 _t
(the)_S 67 _t
(difference)_S 67 _t
(between)_S 67 _t
(attaching)_S 67 _t
(and)_S 67 _t
(associating)_S 67 _t
(light)_S 67 _t
(sources.)_S 134 _t
(A)_S 67 _t
(light)_S 1200 11622 _m
(source)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
(object,)_S 67 _t
(which)_S 67 _t
(means)_S 67 _t
(it)_S 67 _t
(will)_S 67 _t
(use)_S 67 _t
(that)_S 67 _t
(object's)_S 67 _t
(location)_S 67 _t
(and)_S 1200 11389 _m
(orientation)_S 67 _t
(as)_S 67 _t
(its)_S 67 _t
(own.)_S 134 _t
(The)_S 67 _t
(object)_S 67 _t
(with)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(light)_S 67 _t
(is)_S 67 _t
(associated)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(attached)_S 67 _t
(to)_S 1200 11156 _m
(another)_S 67 _t
(object,)_S 67 _t
(and)_S 67 _t
("inherit")_S 67 _t
(location)_S 67 _t
(and)_S 67 _t
(orientation)_S 67 _t
(information)_S 67 _t
(from)_S 67 _t
(it.)_S 134 _t
(The)_S 1200 10923 _m
(vrl_LightAttach\(\))_S 67 _t
(and)_S 67 _t
(vrl_LightDetach\(\))_S 67 _t
(routines)_S 67 _t
(are)_S 67 _t
(provided)_S 67 _t
(only)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(convenience;)_S 67 _t
(what)_S 1200 10690 _m
(you're)_S 67 _t
(really)_S 67 _t
(attaching)_S 67 _t
(and)_S 67 _t
(detaching)_S 67 _t
(with)_S 67 _t
(those)_S 67 _t
(routines)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(light)_S 67 _t
(is)_S 1200 10457 _m
(associated)_S 67 _t
(with.)_S 134 _t
(You)_S 67 _t
(generally)_S 67 _t
(associate)_S 67 _t
(a)_S 67 _t
(light)_S 67 _t
(source)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(once,)_S 67 _t
(and)_S 67 _t
(leave)_S 67 _t
(it)_S 67 _t
(that)_S 1200 10224 _m
(way;)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(attach)_S 67 _t
(or)_S 67 _t
(detach)_S 67 _t
(the)_S 67 _t
(light)_S 67 _t
(however)_S 67 _t
(you)_S 67 _t
(want)_S 67 _t
(after)_S 67 _t
(that.)_S 1800 9758 _m
(Lights)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(other)_S 67 _t
(attributes)_S 67 _t
(as)_S 67 _t
(well,)_S 67 _t
(just)_S 67 _t
(as)_S 67 _t
(objects)_S 67 _t
(can;)_S 67 _t
(specifically,)_S 67 _t
(they)_S 67 _t
(can)_S 67 _t
(have)_S 1200 9525 _m
(a)_S 67 _t
(name)_S 67 _t
(and)_S 67 _t
(some)_S 67 _t
(application-specific)_S 67 _t
(data,)_S 67 _t
(which)_S 67 _t
(are)_S 67 _t
(accessed)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(functions:)_S 1800 9113 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_LightSetName\(vrl_Light)_S 80 _t
(*light,)_S 80 _t
(char)_S 80 _t
(*str\);)_S 1800 8980 _m
(char)_S 80 _t
(*vrl_LightGetName\(vrl_Light)_S 80 _t
(*light\);)_S 1800 8847 _m
(void)_S 80 _t
(vrl_LightSetApplicationData\(vrl_Light)_S 80 _t
(*light,)_S 80 _t
(void)_S 80 _t
(*data\);)_S 1800 8714 _m
(void)_S 80 _t
(*vrl_LightGetApplicationData\(vrl_Light)_S 80 _t
(*light\);)_S /Times-RomanR 600 _ff
1200 8264 _m
/Times-BoldR 720 _ff
(Cameras)_S 2120 8264 _m
/Times-RomanR 600 _ff
1800 7788 _m
(AVRIL)_S 67 _t
(allows)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
(have)_S 67 _t
(any)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(virtual)_S 67 _t
(cameras.)_S 134 _t
(Each)_S 67 _t
(camera)_S 67 _t
(is)_S 67 _t
(associated)_S 1200 7553 _m
(with)_S 67 _t
(an)_S 67 _t
(object,)_S 67 _t
(much)_S 67 _t
(as)_S 67 _t
(lights)_S 67 _t
(are.)_S 134 _t
(However,)_S 67 _t
(unlike)_S 67 _t
(lights,)_S 67 _t
(cameras)_S 67 _t
6870 7553 _m
/Times-ItalicR 600 _ff
(must)_S 7248 7553 _m
/Times-RomanR 600 _ff
67 _t
(be)_S 67 _t
(associated)_S 67 _t
(with)_S 1200 7320 _m
(an)_S 67 _t
(object;)_S 67 _t
(there's)_S 67 _t
(no)_S 67 _t
(such)_S 67 _t
(thing)_S 67 _t
(as)_S 67 _t
(an)_S 67 _t
("ambient")_S 67 _t
(camera.)_S 134 _t
(Cameras)_S 67 _t
(are)_S 67 _t
(initialized)_S 67 _t
(and)_S 1200 7087 _m
(destroyed)_S 67 _t
(just)_S 67 _t
(like)_S 67 _t
(objects)_S 67 _t
(or)_S 67 _t
(light)_S 67 _t
(sources:)_S 1800 6675 _m
/CourierR 400 _ff
(vrl_Camera)_S 80 _t
(*vrl_CameraInit\(vrl_Camera)_S 80 _t
(*camera\);)_S 1800 6542 _m
(vrl_Camera)_S 80 _t
(*vrl_CameraCreate\(void\);)_S 1800 6409 _m
(void)_S 80 _t
(vrl_CameraDestroy\(vrl_Camera)_S 80 _t
(*camera\);)_S /Times-RomanR 600 _ff
1200 5989 _m
(Cameras)_S 67 _t
(have)_S 67 _t
(only)_S 67 _t
(a)_S 67 _t
(few)_S 67 _t
(properties)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(important;)_S 67 _t
(in)_S 67 _t
(particular,)_S 67 _t
(a)_S 67 _t
(zoom)_S 67 _t
(factor,)_S 67 _t
(an)_S 67 _t
(aspect)_S 1200 5756 _m
(ratio,)_S 67 _t
(and)_S 67 _t
(hither)_S 67 _t
(and)_S 67 _t
(yon)_S 67 _t
(clipping)_S 67 _t
(plane)_S 67 _t
(distances.)_S 134 _t
(These)_S 67 _t
(are)_S 67 _t
(all)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(queried)_S 67 _t
(using)_S 67 _t
(the)_S 1200 5523 _m
(following)_S 67 _t
(routines:)_S 1800 5111 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_CameraSetZoom\(vrl_Camera)_S 80 _t
(*camera,)_S 80 _t
(float)_S 80 _t
(zoom\);)_S 1800 4978 _m
(float)_S 80 _t
(vrl_CameraGetZoom\(vrl_Camera)_S 80 _t
(*camera\);)_S 1800 4712 _m
(void)_S 80 _t
(vrl_CameraSetAspect\(vrl_Camera)_S 80 _t
(*camera,)_S 80 _t
(float)_S 80 _t
(asp\);)_S 1800 4579 _m
(float)_S 80 _t
(vrl_CameraGetAspect\(vrl_Camera)_S 80 _t
(*camera\);)_S 1800 4313 _m
(void)_S 80 _t
(vrl_CameraSetHither\(vrl_Camera)_S 80 _t
(*camera,)_S 80 _t
(vrl_Scalar)_S 80 _t
(hither\);)_S 1800 4180 _m
(vrl_Scalar)_S 80 _t
(vrl_CameraGetHither\(vrl_Camera)_S 80 _t
(*camera\);)_S 1800 3914 _m
(void)_S 80 _t
(vrl_CameraSetYon\(vrl_Camera)_S 80 _t
(*camera,)_S 80 _t
(vrl_Scalar)_S 80 _t
(yon\);)_S 1800 3781 _m
(vrl_Scalar)_S 80 _t
(vrl_CameraGetYon\(vrl_Camera)_S 80 _t
(*camera\);)_S /Times-RomanR 600 _ff
1200 3361 _m
(Notice)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(zoom)_S 67 _t
(factor)_S 67 _t
(and)_S 67 _t
(aspect)_S 67 _t
(ratio)_S 67 _t
(are)_S 67 _t
(floats;)_S 67 _t
(this)_S 67 _t
(may)_S 67 _t
(change)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(future)_S 67 _t
(release)_S 67 _t
(of)_S 1200 3128 _m
(AVRIL.)_S 134 _t
(The)_S 67 _t
(zoom)_S 67 _t
(factor)_S 67 _t
(works)_S 67 _t
(like)_S 67 _t
(the)_S 67 _t
(zoom)_S 67 _t
(on)_S 67 _t
(a)_S 67 _t
(camera;)_S 67 _t
(the)_S 67 _t
(higher)_S 67 _t
(the)_S 67 _t
(zoom,)_S 67 _t
(the)_S 67 _t
(more)_S 1200 2895 _m
(the)_S 67 _t
(image)_S 67 _t
(is)_S 67 _t
(magnified.)_S 134 _t
(The)_S 67 _t
(zoom)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(tangent)_S 67 _t
(of)_S 67 _t
(half)_S 67 _t
(the)_S 67 _t
(field)_S 67 _t
(of)_S 67 _t
(view)_S 67 _t
(\(viewing)_S 67 _t
(angle\).)_S 67 _t
1200 2662 _m
(The)_S 67 _t
(aspect)_S 67 _t
(ratio)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(ratio)_S 67 _t
(between)_S 67 _t
(the)_S 67 _t
(horizontal)_S 67 _t
(and)_S 67 _t
(vertical)_S 67 _t
(zoom)_S 67 _t
(factors.)_S 134 _t
(The)_S 67 _t
(hither)_S 1200 2429 _m
(clipping)_S 67 _t
(distance)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(distance)_S 67 _t
(in)_S 67 _t
(virtual)_S 67 _t
(space)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(camera)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(invisible)_S 67 _t
(plane)_S 67 _t
(at)_S 1200 2196 _m
(which)_S 67 _t
(objects)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
("clipped".)_S 134 _t
(The)_S 67 _t
("yon")_S 67 _t
(distance)_S 67 _t
(is)_S 67 _t
(like)_S 67 _t
(an)_S 67 _t
(invisible)_S 67 _t
(wall;)_S 67 _t
(any)_S 67 _t
(object)_S 1200 1963 _m
(entirely)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(far)_S 67 _t
(side)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(wall)_S 67 _t
(will)_S 67 _t
(not)_S 67 _t
(be)_S 67 _t
(seen.)_S 8800 1255 _m
(37)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(The)_S 67 _t
(routines)_S 67 _t
(for)_S 67 _t
(associating)_S 67 _t
(a)_S 67 _t
(camera)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(and)_S 67 _t
(for)_S 67 _t
(determining)_S 67 _t
(what)_S 67 _t
(object)_S 67 _t
(a)_S 1200 11622 _m
(camera)_S 67 _t
(is)_S 67 _t
(currently)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(are)_S 67 _t
(as)_S 67 _t
(follows:)_S 1800 11210 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_CameraAssociate\(vrl_Camera)_S 80 _t
(*camera,)_S 80 _t
(vrl_Object)_S 80 _t
(*object\);)_S 1800 11077 _m
(vrl_Object)_S 80 _t
(*vrl_CameraGetObject\(vrl_Camera)_S 80 _t
(*camera\);)_S /Times-RomanR 600 _ff
1200 10657 _m
(There's)_S 67 _t
(no)_S 67 _t
(vrl_CameraDisAssociate\(\))_S 67 _t
(function,)_S 67 _t
(as)_S 67 _t
(there)_S 67 _t
(was)_S 67 _t
(for)_S 67 _t
(lights;)_S 67 _t
(cameras)_S 67 _t
(must)_S 67 _t
(be)_S 1200 10424 _m
(associated)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(in)_S 67 _t
(order)_S 67 _t
(to)_S 67 _t
(have)_S 67 _t
(any)_S 67 _t
(meaning.)_S 1800 9958 _m
(Again,)_S 67 _t
(routines)_S 67 _t
(are)_S 67 _t
(provided)_S 67 _t
(for)_S 67 _t
(manipulating)_S 67 _t
(and)_S 67 _t
(querying)_S 67 _t
(the)_S 67 _t
(location)_S 67 _t
(and)_S 1200 9725 _m
(orientation)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(virtual)_S 67 _t
(camera;)_S 67 _t
(these)_S 67 _t
(are)_S 67 _t
(macros,)_S 67 _t
(just)_S 67 _t
(as)_S 67 _t
(they)_S 67 _t
(were)_S 67 _t
(for)_S 67 _t
(lights:)_S 1800 9313 _m
/CourierR 400 _ff
(vrl_CameraMove\(camera,)_S 80 _t
(x,)_S 80 _t
(y,)_S 80 _t
(z\);)_S 1800 9180 _m
(vrl_CameraRelMove\(camera,)_S 80 _t
(x,)_S 80 _t
(y,)_S 80 _t
(z\);)_S 1800 9047 _m
(vrl_CameraVectorMove\(camera,)_S 80 _t
(v\);)_S 1800 8914 _m
(vrl_CameraVectorRelMove\(camera,)_S 80 _t
(v\);)_S 1800 8781 _m
(vrl_CameraRotX\(camera,)_S 80 _t
(angle\);)_S 1800 8648 _m
(vrl_CameraRotY\(camera,)_S 80 _t
(angle\);)_S 1800 8515 _m
(vrl_CameraRotZ\(camera,)_S 80 _t
(angle\);)_S 1800 8382 _m
(vrl_CameraRotVector\(camera,)_S 80 _t
(angle,)_S 80 _t
(vector\);)_S 1800 8249 _m
(vrl_CameraRotReset\(camera\);)_S 1800 8116 _m
(vrl_CameraRotate\(camera,)_S 80 _t
(angle,)_S 80 _t
(axis,)_S 80 _t
(frame,)_S 80 _t
(relative_to\);)_S 1800 7983 _m
(vrl_CameraLookAt\(camera,)_S 80 _t
(forward,)_S 80 _t
(up\);)_S 1800 7850 _m
(vrl_CameraTranslate\(camera,)_S 80 _t
(v,)_S 80 _t
(axis,)_S 80 _t
(frame,)_S 80 _t
(relative_to\);)_S 1800 7717 _m
(vrl_CameraAttach\(obj,)_S 80 _t
(newparent\);)_S 1800 7584 _m
(vrl_CameraDetach\(obj\);)_S 1800 7451 _m
(vrl_CameraGetX\(camera\);)_S 1800 7318 _m
(vrl_CameraGetY\(camera\);)_S 1800 7185 _m
(vrl_CameraGetZ\(camera\);)_S 1800 7052 _m
(vrl_CameraGetLocation\(camera,)_S 80 _t
(v\);)_S /Times-RomanR 600 _ff
1200 6632 _m
(Camera)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(other)_S 67 _t
(attributes)_S 67 _t
(as)_S 67 _t
(well,)_S 67 _t
(just)_S 67 _t
(as)_S 67 _t
(objects)_S 67 _t
(and)_S 67 _t
(lights)_S 67 _t
(can;)_S 67 _t
(specifically,)_S 67 _t
(they)_S 67 _t
(can)_S 1200 6399 _m
(have)_S 67 _t
(a)_S 67 _t
(name)_S 67 _t
(and)_S 67 _t
(some)_S 67 _t
(application-specific)_S 67 _t
(data,)_S 67 _t
(which)_S 67 _t
(are)_S 67 _t
(accessed)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 1200 6166 _m
(functions:)_S 1800 5754 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_CameraSetName\(vrl_Camera)_S 80 _t
(*camera,)_S 80 _t
(char)_S 80 _t
(*str\);)_S 1800 5621 _m
(char)_S 80 _t
(*vrl_CameraGetName\(vrl_Camera)_S 80 _t
(*camera\);)_S 1800 5488 _m
(void)_S 80 _t
(vrl_CameraSetApplicationData\(vrl_Camera)_S 80 _t
(*camera,)_S 80 _t
(void)_S 80 _t
(*data\);)_S 1800 5355 _m
(void)_S 80 _t
(*vrl_CameraGetApplicationData\(vrl_Camera)_S 80 _t
(*camera\);)_S /Times-RomanR 600 _ff
1200 4935 _m
(In)_S 67 _t
(addition,)_S 67 _t
(there)_S 67 _t
(are)_S 67 _t
(three)_S 67 _t
(routines)_S 67 _t
(that)_S 67 _t
(obtain)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
("forward",)_S 67 _t
("right")_S 67 _t
(and)_S 67 _t
("up")_S 67 _t
(vectors)_S 1200 4702 _m
(for)_S 67 _t
(a)_S 67 _t
(camera:)_S 1800 4290 _m
/CourierR 400 _ff
(vrl_CameraGetForwardVector\(camera,)_S 80 _t
(v\))_S 1800 4157 _m
(vrl_CameraGetRightVector\(camera,)_S 80 _t
(v\))_S 1800 4024 _m
(vrl_CameraGetUpVector\(camera,)_S 80 _t
(v\))_S /Times-RomanR 600 _ff
1200 3574 _m
/Times-BoldR 720 _ff
(Layers)_S 1907 3574 _m
/Times-RomanR 600 _ff
1800 3098 _m
(Layers)_S 67 _t
(were)_S 67 _t
(described)_S 67 _t
(earlier,)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(section)_S 67 _t
(on)_S 67 _t
(objects.)_S 134 _t
(The)_S 67 _t
(routines)_S 67 _t
(for)_S 67 _t
(dealing)_S 67 _t
(with)_S 1200 2865 _m
(layers)_S 67 _t
(are)_S 67 _t
(as)_S 67 _t
(follows:)_S 1800 2453 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_LayerOn\(int)_S 80 _t
(n\);)_S 1800 2320 _m
(void)_S 80 _t
(vrl_LayerOff\(int)_S 80 _t
(n\);)_S 1800 2187 _m
(void)_S 80 _t
(vrl_LayerToggle\(int)_S 80 _t
(n\);)_S 1800 2054 _m
(int)_S 80 _t
(vrl_LayerIsOn\(int)_S 80 _t
(n\);)_S 1800 1921 _m
(void)_S 80 _t
(vrl_LayerAllOn\(void\);)_S /Times-RomanR 600 _ff
8800 1255 _m
(38)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(The)_S 67 _t
(last)_S 67 _t
(routine,)_S 67 _t
(vrl_LayerAllOn\(\),)_S 67 _t
(turns)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(layers)_S 67 _t
(on)_S 67 _t
(at)_S 67 _t
(once;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(default)_S 1200 11622 _m
(condition.)_S 1200 11126 _m
/Times-BoldR 720 _ff
(File)_S 80 _t
(I/O)_S 80 _t
(Routines)_S 3000 11126 _m
/Times-RomanR 600 _ff
1800 10650 _m
(AVRIL)_S 67 _t
(supports)_S 67 _t
(the)_S 67 _t
(PLG)_S 67 _t
(file)_S 67 _t
(format,)_S 67 _t
(the)_S 67 _t
(FIG)_S 67 _t
(file)_S 67 _t
(format,)_S 67 _t
(and)_S 67 _t
(most)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(WLD)_S 67 _t
(file)_S 1200 10417 _m
(format;)_S 67 _t
(these)_S 67 _t
(formats)_S 67 _t
(are)_S 67 _t
(described)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(Appendices.)_S 134 _t
(The)_S 67 _t
(library)_S 67 _t
(contains)_S 67 _t
(routines)_S 67 _t
(for)_S 1200 10184 _m
(reading)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(those)_S 67 _t
(formats:)_S 1800 9772 _m
/CourierR 400 _ff
(vrl_Shape)_S 80 _t
(*vrl_ReadPLG\(FILE)_S 80 _t
(*in\);)_S 1800 9639 _m
(vrl_Object)_S 80 _t
(*vrl_ReadObjectPLG\(FILE)_S 80 _t
(*in\);)_S 1800 9506 _m
(int)_S 80 _t
(vrl_ReadWLD\(FILE)_S 80 _t
(*in\);)_S 1800 9373 _m
(vrl_Object)_S 80 _t
(*vrl_ReadFIG\(FILE)_S 80 _t
(*in,)_S 80 _t
(vrl_Object)_S 80 _t
(*parent,)_S 80 _t
(char)_S 80 _t
(*rootname\);)_S /Times-RomanR 600 _ff
1200 8953 _m
(The)_S 67 _t
(vrl_ReadPLG\(\))_S 67 _t
(routine)_S 67 _t
(reads)_S 67 _t
(a)_S 67 _t
(shape)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(specified)_S 67 _t
(file)_S 67 _t
(and)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(it.)_S 67 _t
1200 8720 _m
(The)_S 67 _t
(vrl_ReadObjectPLG\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(similar,)_S 67 _t
(but)_S 67 _t
(it)_S 67 _t
(also)_S 67 _t
(allocates)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(and)_S 67 _t
(assigns)_S 67 _t
(the)_S 1200 8487 _m
(shape)_S 67 _t
(to)_S 67 _t
(it.)_S 1800 8021 _m
(The)_S 67 _t
(vrl_ReadWLD\(\))_S 67 _t
(function)_S 67 _t
(reads)_S 67 _t
(a)_S 67 _t
(world)_S 67 _t
(description)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(file)_S 67 _t
(into)_S 67 _t
(the)_S 67 _t
(current)_S 1200 7788 _m
(world;)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(make)_S 67 _t
(as)_S 67 _t
(many)_S 67 _t
(calls)_S 67 _t
(to)_S 67 _t
(this)_S 67 _t
(routine)_S 67 _t
(as)_S 67 _t
(you)_S 67 _t
(like,)_S 67 _t
(combining)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(WLD)_S 1200 7555 _m
(files.)_S 134 _t
(The)_S 67 _t
(vrl_ReadFIG\(\))_S 67 _t
(routine)_S 67 _t
(lets)_S 67 _t
(you)_S 67 _t
(specify)_S 67 _t
(a)_S 67 _t
("parent")_S 67 _t
(object)_S 67 _t
(to)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(newly-read)_S 1200 7322 _m
(object)_S 67 _t
(tree)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(attached,)_S 67 _t
(as)_S 67 _t
(well)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(name)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(root)_S 67 _t
(object.)_S 134 _t
(Any)_S 67 _t
(segnames)_S 67 _t
(that)_S 67 _t
(are)_S 1200 7089 _m
(assigned)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(FIG)_S 67 _t
(file)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(added)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(world's)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(objects)_S 67 _t
(as)_S 1200 6854 _m
/Times-ItalicR 600 _ff
(rootname.segname)_S 2716 6854 _m
/Times-RomanR 600 _ff
(.)_S 1800 6388 _m
(While)_S 67 _t
(loading)_S 67 _t
(a)_S 67 _t
(PLG)_S 67 _t
(file,)_S 67 _t
(a)_S 67 _t
(scale)_S 67 _t
(factor)_S 67 _t
(and)_S 67 _t
(offset)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(applied.)_S 134 _t
(The)_S 67 _t
(vertices)_S 67 _t
(read)_S 1200 6155 _m
(from)_S 67 _t
(the)_S 67 _t
(file)_S 67 _t
(are)_S 67 _t
(multiplied)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(scaling)_S 67 _t
(factors,)_S 67 _t
(and)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(offsets)_S 67 _t
(are)_S 67 _t
(added)_S 67 _t
(to)_S 67 _t
(them.)_S 67 _t
1200 5922 _m
(The)_S 67 _t
(scale)_S 67 _t
(factors)_S 67 _t
(and)_S 67 _t
(offsets)_S 67 _t
(are)_S 67 _t
(set)_S 67 _t
(using:)_S 1800 5510 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_SetReadPLGscale\(float)_S 80 _t
(x,)_S 80 _t
(float)_S 80 _t
(y,)_S 80 _t
(float)_S 80 _t
(z\);)_S 1800 5377 _m
(void)_S 80 _t
(vrl_SetReadPLGoffset\(float)_S 80 _t
(x,)_S 80 _t
(float)_S 80 _t
(y,)_S 80 _t
(float)_S 80 _t
(z\);)_S /Times-RomanR 600 _ff
1200 4957 _m
(FIG)_S 67 _t
(files)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(scale)_S 67 _t
(factor)_S 67 _t
(applied)_S 67 _t
(to)_S 67 _t
(them.)_S 134 _t
(In)_S 67 _t
(addition,)_S 67 _t
(parts)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(figure)_S 67 _t
(that)_S 67 _t
(have)_S 1200 4724 _m
(a)_S 67 _t
("segnum")_S 67 _t
(value)_S 67 _t
(set)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(pointers)_S 67 _t
(to)_S 67 _t
(their)_S 67 _t
(objects)_S 67 _t
(placed)_S 67 _t
(into)_S 67 _t
(a)_S 67 _t
(parts)_S 67 _t
(array)_S 67 _t
(specified)_S 67 _t
(by)_S 1200 4491 _m
(the)_S 67 _t
(user:)_S 1800 4079 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_SetReadFIGscale\(float)_S 80 _t
(x,)_S 80 _t
(float)_S 80 _t
(y,)_S 80 _t
(float)_S 80 _t
(z\);)_S 1800 3946 _m
(void)_S 80 _t
(vrl_SetReadFIGpartArray\(vrl_Object)_S 80 _t
(**ptr,)_S 80 _t
(int)_S 80 _t
(maxparts\);)_S /Times-RomanR 600 _ff
1200 3524 _m
(If)_S 67 _t
(the)_S 67 _t
1712 3524 _m
/Times-ItalicR 600 _ff
(ptr)_S 1945 3524 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(not)_S 67 _t
(NULL,)_S 67 _t
(then)_S 67 _t
(any)_S 67 _t
(parts)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(FIG)_S 67 _t
(file)_S 67 _t
(that)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(segnum)_S 67 _t
(will)_S 67 _t
(create)_S 67 _t
(an)_S 67 _t
(entry)_S 1200 3289 _m
(in)_S 67 _t
(the)_S 67 _t
(array,)_S 67 _t
(indexed)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(segnum)_S 67 _t
(value.)_S 134 _t
(The)_S 67 _t
5225 3289 _m
/Times-ItalicR 600 _ff
(maxparts)_S 5969 3289 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(elements)_S 67 _t
(the)_S 1200 3056 _m
(caller)_S 67 _t
(has)_S 67 _t
(provided)_S 67 _t
(space)_S 67 _t
(for)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(array.)_S 1800 2590 _m
(There)_S 67 _t
(are)_S 67 _t
(several)_S 67 _t
(other)_S 67 _t
(routines)_S 67 _t
(that)_S 67 _t
(support)_S 67 _t
(file)_S 67 _t
(operations.)_S 134 _t
(Two)_S 67 _t
(routines)_S 67 _t
(maintain)_S 67 _t
(a)_S 1200 2357 _m
(kind)_S 67 _t
(of)_S 67 _t
("current)_S 67 _t
(directory")_S 67 _t
(for)_S 67 _t
(file)_S 67 _t
(loading;)_S 67 _t
(they)_S 67 _t
(are)_S 1800 1945 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_FileSetLoadpath\(char)_S 80 _t
(*path\);)_S 1800 1812 _m
(char)_S 80 _t
(*vrl_FileFixupFilename\(char)_S 80 _t
(*fname\);)_S 8800 1255 _m
/Times-RomanR 600 _ff
(39)_S /CourierR 400 _ff
_ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11622 _m
(The)_S 67 _t
(first)_S 67 _t
(sets)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
(path)_S 67 _t
(\(if)_S 67 _t
(not)_S 67 _t
(NULL\))_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(the)_S 67 _t
(directory)_S 67 _t
(that)_S 67 _t
(subsequent)_S 67 _t
(filename)_S 67 _t
(fixups)_S 1200 11389 _m
(should)_S 67 _t
(use.)_S 134 _t
(The)_S 67 _t
(second)_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(generate)_S 67 _t
(a)_S 67 _t
(full)_S 67 _t
(filename,)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(loadpath)_S 1200 11156 _m
(prepended.)_S 134 _t
(Note)_S 67 _t
(that)_S 67 _t
(filenames)_S 67 _t
(beginning)_S 67 _t
(with)_S 67 _t
('/')_S 67 _t
(or)_S 67 _t
('\\')_S 67 _t
(are)_S 67 _t
(not)_S 67 _t
(modified.)_S 134 _t
(Also)_S 67 _t
(note)_S 67 _t
(that)_S 1200 10923 _m
(vrl_FileFixupFilename\(\))_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(an)_S 67 _t
(internal)_S 67 _t
(buffer,)_S 67 _t
(which)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(rewritten)_S 67 _t
(on)_S 67 _t
(the)_S 1200 10690 _m
(next)_S 67 _t
(call)_S 67 _t
(to)_S 67 _t
(vrl_FileFixupFilename\(\).)_S 134 _t
(If)_S 67 _t
(you)_S 67 _t
(really)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(keep)_S 67 _t
(the)_S 67 _t
(fixed-up)_S 67 _t
(filename)_S 67 _t
(around,)_S 1200 10457 _m
(you)_S 67 _t
(should)_S 67 _t
(strcpy\(\))_S 67 _t
(it)_S 67 _t
(to)_S 67 _t
(another)_S 67 _t
(buffer)_S 67 _t
(or)_S 67 _t
(strdup\(\))_S 67 _t
(it.)_S 1200 9961 _m
/Times-BoldR 720 _ff
(System)_S 80 _t
(and)_S 80 _t
(Application)_S 80 _t
(routines)_S 4600 9961 _m
/Times-RomanR 600 _ff
1800 9485 _m
(These)_S 67 _t
(routines)_S 67 _t
(were)_S 67 _t
(described)_S 67 _t
(in)_S 67 _t
(detail)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(Introduction,)_S 67 _t
(but)_S 67 _t
(here's)_S 67 _t
(a)_S 67 _t
(quick)_S 1200 9252 _m
(summary:)_S 1800 8840 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_SystemStartup\(void\);)_S 1800 8707 _m
(void)_S 80 _t
(vrl_SystemRun\(void\);)_S 1800 8574 _m
(vrl_RenderStatus)_S 80 _t
(*vrl_SystemRender\(vrl_Object)_S 80 _t
(*list\);)_S 1800 8441 _m
(vrl_Time)_S 80 _t
(vrl_SystemGetRenderTime\(void\);)_S 1800 8308 _m
(vrl_Time)_S 80 _t
(vrl_SystemGetFrameRate\(void\);)_S 1800 8175 _m
(void)_S 80 _t
(vrl_SystemCommandLine\(int)_S 80 _t
(argc,)_S 80 _t
(char)_S 80 _t
(*argv[]\);)_S 1800 7909 _m
(void)_S 80 _t
(vrl_SystemRequestRefresh\(void\);)_S 1800 7776 _m
(vrl_Boolean)_S 80 _t
(vrl_SystemQueryRefresh\(void\);)_S 1800 7510 _m
(void)_S 80 _t
(vrl_SystemStartRunning\(void\);)_S 1800 7377 _m
(void)_S 80 _t
(vrl_SystemStopRunning\(void\);)_S 1800 7244 _m
(vrl_Boolean)_S 80 _t
(vrl_SystemIsRunning\(void\);)_S 1800 6978 _m
(void)_S 80 _t
(vrl_ApplicationDrawUnder\(void\);)_S 1800 6845 _m
(void)_S 80 _t
(vrl_ApplicationDrawOver\(vrl_RenderStatus)_S 80 _t
(*stat\);)_S 1800 6712 _m
(void)_S 80 _t
(vrl_ApplicationInit\(void\);)_S 1800 6579 _m
(void)_S 80 _t
(vrl_ApplicationKey\(unsigned)_S 80 _t
(int)_S 80 _t
(c\);)_S 1800 6446 _m
(void)_S 80 _t
(vrl_ApplicationMouseUp\(int)_S 80 _t
(x,)_S 80 _t
(int)_S 80 _t
(y,)_S 80 _t
(unsigned)_S 80 _t
(int)_S 80 _t
(buttons\);)_S /Times-RomanR 600 _ff
1200 6026 _m
(These)_S 67 _t
(are)_S 67 _t
(not)_S 67 _t
(really)_S 67 _t
(part)_S 67 _t
(of)_S 67 _t
(AVRIL's)_S 67 _t
("guts",)_S 67 _t
(since)_S 67 _t
(you)_S 67 _t
(don't)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(anything)_S 67 _t
(in)_S 67 _t
(system.c)_S 1200 5793 _m
(\(which)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(only)_S 67 _t
(module)_S 67 _t
(that)_S 67 _t
(knows)_S 67 _t
(about)_S 67 _t
(the)_S 67 _t
(vrl_Application)_S 67 _t
(functions\).)_S 1200 5297 _m
/Times-BoldR 720 _ff
(User)_S 80 _t
(Interface)_S 2693 5297 _m
/Times-RomanR 600 _ff
1800 4821 _m
(The)_S 67 _t
(current)_S 67 _t
(version)_S 67 _t
(of)_S 67 _t
(AVRIL)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(few)_S 67 _t
(primitive)_S 67 _t
(user)_S 67 _t
(interface)_S 67 _t
(routines)_S 67 _t
(for)_S 67 _t
(you)_S 67 _t
(to)_S 1200 4588 _m
(use.)_S 134 _t
(A)_S 67 _t
(better)_S 67 _t
(user)_S 67 _t
(interface)_S 67 _t
(needs)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(designed;)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(meantime,)_S 67 _t
(here)_S 67 _t
(are)_S 67 _t
(the)_S 67 _t
(routines:)_S 1800 4176 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_UserInterfaceBox\(int)_S 80 _t
(width,)_S 80 _t
(int)_S 80 _t
(height,)_S 80 _t
(int)_S 80 _t
(*x,)_S 80 _t
(int)_S 80 _t
(*y\);)_S 1800 4043 _m
(void)_S 80 _t
(vrl_UserInterfacePopMsg\(char)_S 80 _t
(*msg\);)_S 1800 3910 _m
(void)_S 80 _t
(vrl_UserInterfacePopText\(char)_S 80 _t
(*text[]\);)_S 1800 3777 _m
(int)_S 80 _t
(vrl_UserInterfaceDismiss\(void\);)_S 1800 3644 _m
(int)_S 80 _t
(vrl_UserInterfacePopMenu\(char)_S 80 _t
(*text[]\);)_S 1800 3511 _m
(unsigned)_S 80 _t
(vrl_UserInterfacePopPrompt\(char)_S 80 _t
(*prompt,)_S 80 _t
(char)_S 80 _t
(*buff,)_S 80 _t
(int)_S 80 _t
(n\);)_S /Times-RomanR 600 _ff
1200 3091 _m
(The)_S 67 _t
(vrl_UserInterfaceBox\(\))_S 67 _t
(routine)_S 67 _t
(puts)_S 67 _t
(up)_S 67 _t
(a)_S 67 _t
(nice)_S 67 _t
(bordered)_S 67 _t
(box,)_S 67 _t
(centered)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen.)_S 134 _t
(The)_S 1200 2856 _m
/Times-ItalicR 600 _ff
(width)_S 1645 2856 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
2067 2856 _m
/Times-ItalicR 600 _ff
(height)_S 2567 2856 _m
/Times-RomanR 600 _ff
67 _t
(determine)_S 67 _t
(the)_S 67 _t
(size)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(box.)_S 134 _t
(When)_S 67 _t
(the)_S 67 _t
(routine)_S 67 _t
(returns,)_S 67 _t
7382 2856 _m
/Times-ItalicR 600 _ff
(x)_S 7470 2856 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
7893 2856 _m
/Times-ItalicR 600 _ff
(y)_S 7982 2856 _m
/Times-RomanR 600 _ff
67 _t
(will)_S 1200 2623 _m
(contain)_S 67 _t
(the)_S 67 _t
(screen)_S 67 _t
(coordinates)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(top-left)_S 67 _t
(corner)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(box.)_S 8800 1255 _m
(40)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(The)_S 67 _t
(vrl_UserInterfacePopMsg\(\))_S 67 _t
(routine)_S 67 _t
(displays)_S 67 _t
(a)_S 67 _t
(one-line)_S 67 _t
(text)_S 67 _t
(message.)_S 134 _t
(The)_S 1200 11622 _m
(vrl_UserInterfacePopText\(\))_S 67 _t
(routine)_S 67 _t
(puts)_S 67 _t
(up)_S 67 _t
(a)_S 67 _t
(multi-line)_S 67 _t
(message;)_S 67 _t
(the)_S 67 _t
(array)_S 67 _t
(of)_S 67 _t
(string)_S 67 _t
(pointers)_S 1200 11389 _m
(has)_S 67 _t
(to)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(NULL)_S 67 _t
(pointer)_S 67 _t
(entry)_S 67 _t
(at)_S 67 _t
(the)_S 67 _t
(end.)_S 1800 10923 _m
(The)_S 67 _t
(vrl_UserInterfaceDismiss\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(useful)_S 67 _t
(after)_S 67 _t
(you've)_S 67 _t
(called)_S 67 _t
(either)_S 1200 10690 _m
(vrl_UserInteracePopMsg\(\))_S 67 _t
(or)_S 67 _t
(vrl_UserInterfacePopText\(\);)_S 67 _t
(it)_S 67 _t
(waits)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(to)_S 67 _t
(press)_S 67 _t
(a)_S 67 _t
(key)_S 1200 10457 _m
(or)_S 67 _t
(click)_S 67 _t
(the)_S 67 _t
(mouse.)_S 1800 9991 _m
(The)_S 67 _t
(vrl_UserInterfacePopMenu\(\))_S 67 _t
(routine)_S 67 _t
(displays)_S 67 _t
(a)_S 67 _t
(menu)_S 67 _t
(and)_S 67 _t
(waits)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(to)_S 1200 9758 _m
(select)_S 67 _t
(an)_S 67 _t
(item.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(clicks)_S 67 _t
(on)_S 67 _t
(an)_S 67 _t
(item)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(mouse,)_S 67 _t
(the)_S 67 _t
(index)_S 67 _t
(of)_S 67 _t
(that)_S 67 _t
(item)_S 67 _t
(will)_S 67 _t
(be)_S 1200 9525 _m
(returned)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(function.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(presses)_S 67 _t
(a)_S 67 _t
(key,)_S 67 _t
(the)_S 67 _t
(menu)_S 67 _t
(is)_S 67 _t
(searched)_S 67 _t
(item)_S 67 _t
(by)_S 1200 9292 _m
(item)_S 67 _t
(until)_S 67 _t
(one)_S 67 _t
(is)_S 67 _t
(found)_S 67 _t
(that)_S 67 _t
(has)_S 67 _t
(an)_S 67 _t
(uppercase)_S 67 _t
(letter)_S 67 _t
(matching)_S 67 _t
(the)_S 67 _t
(key)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(entered;)_S 67 _t
(the)_S 1200 9059 _m
(index)_S 67 _t
(of)_S 67 _t
(that)_S 67 _t
(entry)_S 67 _t
(is)_S 67 _t
(returned.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(clicks)_S 67 _t
(outside)_S 67 _t
(the)_S 67 _t
(menu,)_S 67 _t
(or)_S 67 _t
(presses)_S 67 _t
(ESC,)_S 67 _t
(the)_S 67 _t
(value)_S 1200 8826 _m
(-1)_S 67 _t
(is)_S 67 _t
(returned.)_S 1800 8360 _m
(The)_S 67 _t
(vrl_UserInterfacePopPrompt\(\))_S 67 _t
(box)_S 67 _t
(displays)_S 67 _t
(a)_S 67 _t
(prompt)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(and)_S 67 _t
(lets)_S 67 _t
(them)_S 1200 8127 _m
(enter)_S 67 _t
(a)_S 67 _t
(text)_S 67 _t
(response.)_S 134 _t
(The)_S 67 _t
(backspace)_S 67 _t
(key)_S 67 _t
(is)_S 67 _t
(supported.)_S 134 _t
(The)_S 67 _t
(user)_S 67 _t
(can)_S 67 _t
(end)_S 67 _t
(their)_S 67 _t
(input)_S 67 _t
(using)_S 1200 7894 _m
(either)_S 67 _t
(ENTER)_S 67 _t
(or)_S 67 _t
(ESC;)_S 67 _t
(the)_S 67 _t
(key)_S 67 _t
(they)_S 67 _t
(press)_S 67 _t
(to)_S 67 _t
(end)_S 67 _t
(their)_S 67 _t
(input)_S 67 _t
(is)_S 67 _t
(returned)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(the)_S 1200 7661 _m
(function.)_S 1800 7195 _m
(There)_S 67 _t
(are)_S 67 _t
(two)_S 67 _t
(other)_S 67 _t
(routines)_S 67 _t
(which)_S 67 _t
(are)_S 67 _t
(not)_S 67 _t
(really)_S 67 _t
(part)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(interface;)_S 67 _t
(they're)_S 1200 6962 _m
(used)_S 67 _t
(to)_S 67 _t
(overlay)_S 67 _t
(text)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen)_S 67 _t
(or)_S 67 _t
(display)_S 67 _t
(the)_S 67 _t
(compass.)_S 134 _t
(They're)_S 67 _t
(typically)_S 67 _t
(called)_S 67 _t
(from)_S 1200 6729 _m
(vrl_ApplicationDrawOver\(\).)_S 1800 6317 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_UserInterfaceDrawCompass\(vrl_Camera)_S 80 _t
(*camera,)_S 80 _t
(int)_S 80 _t
(x,)_S 80 _t
(int)_S 80 _t
(y,)_S 80 _t
(int)_S 80 _t
(armlen\);)_S 1800 6184 _m
(void)_S 80 _t
(vrl_UserInterfaceDropText\(int)_S 80 _t
(x,)_S 80 _t
(int)_S 80 _t
(y,)_S 80 _t
(int)_S 80 _t
(color,)_S 80 _t
(char)_S 80 _t
(*text\);)_S /Times-RomanR 600 _ff
1200 5762 _m
(In)_S 67 _t
(vrl_UserInterfaceDrawCompass\(\),)_S 67 _t
(the)_S 67 _t
4583 5762 _m
/Times-ItalicR 600 _ff
(x)_S 4672 5762 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
5095 5762 _m
/Times-ItalicR 600 _ff
(y)_S 5184 5762 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(are)_S 67 _t
(the)_S 67 _t
(location)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
("origin")_S 67 _t
(of)_S 67 _t
(the)_S 1200 5527 _m
(compass)_S 67 _t
(and)_S 67 _t
2312 5527 _m
/Times-ItalicR 600 _ff
(armlen)_S 2878 5527 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(length)_S 67 _t
(of)_S 67 _t
(each)_S 67 _t
(arm.)_S 134 _t
(\(The)_S 67 _t
(arms)_S 67 _t
(will)_S 67 _t
(of)_S 67 _t
(course)_S 67 _t
(seem)_S 67 _t
(shorter)_S 1200 5292 _m
(because)_S 67 _t
(of)_S 67 _t
(perspective\).)_S 134 _t
(The)_S 67 _t
3673 5292 _m
/Times-ItalicR 600 _ff
(x)_S 3762 5292 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
3879 5292 _m
/Times-ItalicR 600 _ff
(y)_S 3968 5292 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
4390 5292 _m
/Times-ItalicR 600 _ff
(armlen)_S 4957 5292 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(are)_S 67 _t
(in)_S 67 _t
(screen)_S 67 _t
(coordinates)_S 67 _t
(\(i.e.,)_S 67 _t
(pixels\).)_S 67 _t
1200 5057 _m
(The)_S 67 _t
1578 5057 _m
/Times-ItalicR 600 _ff
(camera)_S 2178 5057 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(obtain)_S 67 _t
(orientation)_S 67 _t
(information)_S 67 _t
(about)_S 67 _t
(the)_S 67 _t
(user's)_S 67 _t
(viewpoint.)_S 1800 4591 _m
(The)_S 67 _t
(vrl_UserInterfaceDropText\(\))_S 67 _t
(routine)_S 67 _t
(displays)_S 67 _t
(the)_S 67 _t
(text)_S 67 _t
(message)_S 67 _t
(at)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
(screen)_S 1200 4358 _m
(coordinates)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
(color,)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(black)_S 67 _t

(\(i.e.,)_S 67 _t
(color)_S 67 _t
(0\))_S 67 _t
(drop)_S 67 _t
(shadow.)_S 1200 3862 _m
/Times-BoldR 720 _ff
(Tasks)_S 1800 3862 _m
/Times-RomanR 600 _ff
1800 3386 _m
(The)_S 67 _t
(pseudo-tasking)_S 67 _t
(mechanism)_S 67 _t
(was)_S 67 _t
(described)_S 67 _t
(back)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(Introduction)_S 67 _t
(section.)_S 134 _t
(Tasks)_S 1200 3153 _m
(are)_S 67 _t
(added)_S 67 _t
(using)_S 67 _t
(vrl_TaskCreate\(\),)_S 67 _t
(which)_S 67 _t
(takes)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(function,)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(data,)_S 1200 2920 _m
(and)_S 67 _t
(the)_S 67 _t
(period.)_S 134 _t
(The)_S 67 _t
(tasks)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(run)_S 67 _t
(periodically)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(vrl_TaskRun\(\),)_S 67 _t
(which)_S 67 _t
(is)_S 1200 2687 _m
(normally)_S 67 _t
(done)_S 67 _t
(in)_S 67 _t
(vrl_SystemRun\(\).)_S 134 _t
(The)_S 67 _t
(tasks)_S 67 _t
(can)_S 67 _t
(obtain)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(their)_S 67 _t
(data)_S 67 _t
(by)_S 67 _t
(calling)_S 1200 2454 _m
(vrl_TaskGetData\(\),)_S 67 _t
(the)_S 67 _t
(elapsed)_S 67 _t
(time)_S 67 _t
(since)_S 67 _t
(they)_S 67 _t
(last)_S 67 _t
(ran)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(vrl_TaskGetElapsed\(\),)_S 67 _t
(and)_S 1200 2221 _m
(the)_S 67 _t
(current)_S 67 _t
(time)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(vrl_TaskGetTimeNow\(\).)_S 134 _t
(Note)_S 67 _t
(that)_S 67 _t
(for)_S 67 _t
(any)_S 67 _t
(given)_S 67 _t
(call)_S 67 _t
(to)_S 1200 1988 _m
(vrl_TaskRun\(\),)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(tasks)_S 67 _t
(will)_S 67 _t
(receive)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(value)_S 67 _t
(from)_S 67 _t
(vrl_TaskGetTimeNow\(\);)_S 67 _t
(this)_S 67 _t
(is)_S 8800 1255 _m
(41)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(different)_S 67 _t
(from)_S 67 _t
(vrl_TimerRead\(\),)_S 67 _t
(since)_S 67 _t
(the)_S 67 _t
(timer)_S 67 _t
(runs)_S 67 _t
(independently)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(tasks.)_S 134 _t
(You)_S 67 _t
(may)_S 1200 11622 _m
(want)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(one)_S 67 _t
(or)_S 67 _t
(the)_S 67 _t
(other)_S 67 _t
(of)_S 67 _t
(those)_S 67 _t
(two)_S 67 _t
(functions)_S 67 _t
(depending)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(circumstances.)_S 1800 11210 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_TaskCreate\(void)_S 80 _t
(\(*function\)\(void\),)_S 80 _t
(void)_S 80 _t
(*data,)_S 80 _t
(vrl_Time)_S 80 _t
(period\);)_S 1800 11077 _m
(void)_S 80 _t
(vrl_TaskRun\(void\);)_S 1800 10944 _m
(void)_S 80 _t
(*vrl_TaskGetData\(void\);)_S 1800 10811 _m
(vrl_Time)_S 80 _t
(vrl_TaskGetElapsed\(void\);)_S 1800 10678 _m
(vrl_Time)_S 80 _t
(vrl_TaskGetTimeNow\(void\);)_S /Times-RomanR 600 _ff
1200 10228 _m
/Times-BoldR 720 _ff
(Primitives)_S 2253 10228 _m
/Times-RomanR 600 _ff
1800 9752 _m
(AVRIL)_S 67 _t
(currently)_S 67 _t
(provides)_S 67 _t
(five)_S 67 _t
(utility)_S 67 _t
(routines)_S 67 _t
(for)_S 67 _t
(creating)_S 67 _t
(simple)_S 67 _t
(geometric)_S 1200 9519 _m
(primitives.)_S 134 _t
(Each)_S 67 _t
(takes)_S 67 _t
(a)_S 67 _t
(surface)_S 67 _t
(map)_S 67 _t
(pointer;)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(NULL,)_S 67 _t
(the)_S 67 _t
(default)_S 67 _t
(color)_S 67 _t
(for)_S 1200 9286 _m
(geometric)_S 67 _t
(primitives)_S 67 _t
(is)_S 67 _t
(used.)_S 1800 8874 _m
/CourierR 400 _ff
(vrl_Shape)_S 80 _t
(*vrl_PrimitiveBox\(vrl_Scalar)_S 80 _t
(width,)_S 80 _t
(vrl_Scalar)_S 80 _t
(height,)_S 80 _t
(vrl_Scalar)_S 80 _t
(depth,)_S 2400 8741 _m
(vrl_Surfacemap)_S 80 _t
(*map\);)_S 1800 8475 _m
(vrl_Shape)_S 80 _t
(*vrl_PrimitiveCone\(vrl_Scalar)_S 80 _t
(radius,)_S 80 _t
(vrl_Scalar)_S 80 _t
(height,)_S 80 _t
(int)_S 80 _t
(nsides,)_S 2400 8342 _m
(vrl_Surfacemap)_S 80 _t
(*map\);)_S 1800 8076 _m
(vrl_Shape)_S 80 _t
(*vrl_PrimitiveCylinder\(vrl_Scalar)_S 80 _t
(bottom_radius,)_S 80 _t
(vrl_Scalar)_S 80 _t
(top_radius,)_S 2400 7943 _m
(vrl_Scalar)_S 80 _t
(height,)_S 80 _t
(int)_S 80 _t
(nsides,)_S 80 _t
(vrl_Surfacemap)_S 80 _t
(*map\);)_S 1800 7677 _m
(vrl_Shape)_S 80 _t
(*vrl_PrimitivePrism\(vrl_Scalar)_S 80 _t
(width,)_S 80 _t
(vrl_Scalar)_S 80 _t
(height,)_S 80 _t
(vrl_Scalar)_S 80 _t
(depth,)_S 2400 7544 _m
(vrl_Surfacemap)_S 80 _t
(*map\);)_S 1800 7278 _m
(vrl_Shape)_S 80 _t
(*vrl_PrimitiveSphere\(vrl_Scalar)_S 80 _t
(radius,)_S 80 _t
(int)_S 80 _t
(vsides,)_S 80 _t
(int)_S 80 _t
(hsides,)_S 2400 7145 _m
(vrl_Surfacemap)_S 80 _t
(*map\);)_S /Times-RomanR 600 _ff
1200 6725 _m
(The)_S 67 _t
(box)_S 67 _t
(and)_S 67 _t
(sphere)_S 67 _t
(have)_S 67 _t
(their)_S 67 _t
(origin)_S 67 _t
(at)_S 67 _t
(their)_S 67 _t
(geometric)_S 67 _t
(centers,)_S 67 _t
(the)_S 67 _t
(cone)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(cylinder)_S 1200 6492 _m
(have)_S 67 _t
(their)_S 67 _t
(origin)_S 67 _t
(at)_S 67 _t
(the)_S 67 _t
(center)_S 67 _t
(of)_S 67 _t
(their)_S 67 _t
(bases,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(prism)_S 67 _t
(has)_S 67 _t
(its)_S 67 _t
(origin)_S 67 _t
(at)_S 67 _t
(one)_S 67 _t
(corner.)_S 134 _t
(You)_S 1200 6259 _m
(can)_S 67 _t
(use)_S 67 _t
(vrl_ShapeOffset\(\))_S 67 _t
(to)_S 67 _t
(change)_S 67 _t
(these)_S 67 _t
(choices)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(wish.)_S 1200 5763 _m
/Times-BoldR 720 _ff
(Rendering)_S 2280 5763 _m
/Times-RomanR 600 _ff
1800 5287 _m
(The)_S 67 _t
(rendering)_S 67 _t
("engine")_S 67 _t
(needs)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(initialized)_S 67 _t
(before)_S 67 _t
(any)_S 67 _t
(actual)_S 67 _t
(rendering)_S 67 _t
(is)_S 67 _t
(done.)_S 67 _t
1200 5054 _m
(The)_S 67 _t
(renderer)_S 67 _t
(needs)_S 67 _t
(to)_S 67 _t
(know)_S 67 _t
(how)_S 67 _t
(much)_S 67 _t
(memory)_S 67 _t
(to)_S 67 _t
(allocate)_S 67 _t
(for)_S 67 _t
(itself,)_S 67 _t
(as)_S 67 _t
(well)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(maximum)_S 1200 4821 _m
(number)_S 67 _t
(of)_S 67 _t
(objects,)_S 67 _t
(facets,)_S 67 _t
(vertices)_S 67 _t
(and)_S 67 _t
(lights)_S 67 _t
(it)_S 67 _t
(will)_S 67 _t
(have)_S 67 _t
(to)_S 67 _t
(contend)_S 67 _t
(with.)_S 134 _t
(When)_S 67 _t
(the)_S 67 _t
(program)_S 1200 4588 _m
(is)_S 67 _t
(ready)_S 67 _t
(to)_S 67 _t
(exit,)_S 67 _t
(vrl_RenderQuit\(\))_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(called)_S 67 _t
(to)_S 67 _t
(cleanly)_S 67 _t
(shut)_S 67 _t
(down)_S 67 _t
(the)_S 67 _t
(engine.)_S 1800 4176 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_RenderInit\(int)_S 80 _t
(maxvert,)_S 80 _t
(int)_S 80 _t
(maxf,)_S 80 _t
(int)_S 80 _t
(maxobjs,)_S 80 _t
(int)_S 80 _t
(maxlights,)_S 2400 4043 _m
(unsigned)_S 80 _t
(int)_S 80 _t
(mempoolsize\);)_S 1800 3910 _m
(void)_S 80 _t
(vrl_RenderQuit\(void\);)_S /Times-RomanR 600 _ff
1200 3490 _m
(The)_S 67 _t
(routines)_S 67 _t
(in)_S 67 _t
(system.c)_S 67 _t
(normally)_S 67 _t
(handle)_S 67 _t
(the)_S 67 _t
(calling)_S 67 _t
(of)_S 67 _t
(vrl_RenderInit\(\),)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(setting)_S 67 _t
(up)_S 67 _t
(of)_S 1200 3257 _m
(an)_S 67 _t
(atexit\(\))_S 67 _t
(function)_S 67 _t
(for)_S 67 _t
(vrl_RenderQuit\(\).)_S 1200 2791 _m
(Two)_S 67 _t
(functions)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(give)_S 67 _t
(the)_S 67 _t
(renderer)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(camera)_S 67 _t
(and)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(lights,)_S 1200 2558 _m
(and)_S 67 _t
(to)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(ambient)_S 67 _t
(lighting)_S 67 _t
(level)_S 67 _t
(\(usually)_S 67 _t
(that)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(world\):)_S 1800 2146 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_RenderBegin\(vrl_Camera)_S 80 _t
(*camera,)_S 80 _t
(vrl_Light)_S 80 _t
(*lights\);)_S 1800 2013 _m
(void)_S 80 _t
(vrl_RenderSetAmbient\(vrl_Factor)_S 80 _t
(amb\);)_S /Times-RomanR 600 _ff
8800 1255 _m
(42)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(Finally,)_S 67 _t
(two)_S 67 _t
(functions)_S 67 _t
(do)_S 67 _t
(the)_S 67 _t
(actual)_S 67 _t
(drawing;)_S 67 _t
(one)_S 67 _t
(draws)_S 67 _t
(a)_S 67 _t
(horizon,)_S 67 _t
(the)_S 67 _t
(other)_S 67 _t
(renders)_S 67 _t
(a)_S 67 _t
(list)_S 67 _t
(of)_S 1200 11622 _m
(objects)_S 67 _t
(\(such)_S 67 _t
(as)_S 67 _t
(that)_S 67 _t
(returned)_S 67 _t
(by)_S 67 _t
(vrl_ObjectUpdate\(\))_S 67 _t
(or)_S 67 _t
(vrl_WorldUpdate\(\)\).)_S 1800 11210 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_RenderHorizon\(void\);)_S 1800 11077 _m
(vrl_Status)_S 80 _t
(*vrl_RenderObjlist\(vrl_Object)_S 80 _t
(*objects\);)_S /Times-RomanR 600 _ff
1200 10657 _m
(The)_S 67 _t
(vrl_RenderObjlist\(\))_S 67 _t
(function)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(status)_S 67 _t
(struct,)_S 67 _t
(which)_S 67 _t
(was)_S 67 _t
(described)_S 67 _t
(in)_S 1200 10424 _m
(the)_S 67 _t
(Introduction)_S 67 _t
(section.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(objects)_S 67 _t
(is)_S 67 _t
(NULL,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(last)_S 67 _t
(non-NULL)_S 67 _t
(list)_S 67 _t
(of)_S 1200 10191 _m
(objects)_S 67 _t
(that)_S 67 _t
(was)_S 67 _t
(passed)_S 67 _t
(is)_S 67 _t
(used)_S 1800 9725 _m
(There)_S 67 _t
(are)_S 67 _t
(two)_S 67 _t
(functions)_S 67 _t
(that)_S 67 _t
(allow)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
(monitor)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(point)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen,)_S 67 _t
(and)_S 1200 9492 _m
(then)_S 67 _t
(see)_S 67 _t
(what)_S 67 _t
(objects)_S 67 _t
(and)_S 67 _t
(facets)_S 67 _t
(were)_S 67 _t
(under)_S 67 _t
(the)_S 67 _t
(cursor)_S 67 _t
(\(and)_S 67 _t
(nearest)_S 67 _t
(the)_S 67 _t
(viewer\).)_S 1800 9080 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_RenderMonitorInit\(int)_S 80 _t
(x,)_S 80 _t
(int)_S 80 _t
(y\);)_S 1800 8947 _m
(vrl_Boolean)_S 80 _t
(vrl_RenderMonitorRead\(vrl_Object)_S 80 _t
(**obj,)_S 80 _t
(vrl_Facet)_S 80 _t
(**facet,)_S 80 _t
(int)_S 80 _t
(*vertnum\);)_S /Times-RomanR 600 _ff
1200 8525 _m
(The)_S 67 _t
1578 8525 _m
/Times-ItalicR 600 _ff
(x)_S 1667 8525 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
2090 8525 _m
/Times-ItalicR 600 _ff
(y)_S 2178 8525 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(are)_S 67 _t
(coordinates)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(screen)_S 67 _t
(window)_S 67 _t
(\(such)_S 67 _t
(as)_S 67 _t
(those)_S 67 _t
(passed)_S 67 _t
(to)_S 1200 8290 _m
(vrl_ApplicationMouseUp\(\)\).)_S 134 _t
(The)_S 67 _t
4017 8290 _m
/Times-ItalicR 600 _ff
(obj)_S 4273 8290 _m
/Times-RomanR 600 _ff
67 _t
(pointer)_S 67 _t
(\(if)_S 67 _t
(not)_S 67 _t
(NULL\))_S 67 _t
(gets)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(point)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(the)_S 1200 8055 _m
(cursor)_S 67 _t
(was)_S 67 _t
(over;)_S 67 _t
(similarly,)_S 67 _t
(the)_S 67 _t
3762 8055 _m
/Times-ItalicR 600 _ff
(facet)_S 4151 8055 _m
/Times-RomanR 600 _ff
67 _t
(pointer)_S 67 _t
(\(if)_S 67 _t
(not)_S 67 _t
(NULL\))_S 67 _t
(gets)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(point)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(facet)_S 67 _t
(the)_S 1200 7820 _m
(cursor)_S 67 _t
(was)_S 67 _t
(over.)_S 134 _t
(The)_S 67 _t
3062 7820 _m
/Times-ItalicR 600 _ff
(vertnum)_S 3718 7820 _m
/Times-RomanR 600 _ff
67 _t
(pointer)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(currently)_S 67 _t
(used.)_S 134 _t
(If)_S 67 _t
(nothing)_S 67 _t
(was)_S 67 _t
(under)_S 67 _t
(the)_S 67 _t
(cursor,)_S 1200 7587 _m
(vrl_RenderMonitorRead\(\))_S 67 _t
(returns)_S 67 _t
(zero.)_S 134 _t
(Remember)_S 67 _t
(that)_S 67 _t
(you)_S 67 _t
(must)_S 67 _t
(call)_S 67 _t
(vrl_RenderObjlist\(\))_S 1200 7354 _m
(between)_S 67 _t
(the)_S 67 _t
(call)_S 67 _t
(to)_S 67 _t
(vrl_RenderMonitorInit\(\))_S 67 _t
(and)_S 67 _t
(vrl_RenderMonitorRead\(\);)_S 67 _t
(typically,)_S 67 _t
(you)_S 1200 7121 _m
(would)_S 67 _t
(call)_S 67 _t
(it)_S 67 _t
(as)_S 67 _t
(vrl_RenderObjlist\(NULL\))_S 67 _t
(to)_S 67 _t
(just)_S 67 _t
(re-render)_S 67 _t
(the)_S 67 _t
(last)_S 67 _t
(object)_S 67 _t
(list)_S 67 _t
(that)_S 67 _t
(was)_S 67 _t
(used.)_S 1200 6625 _m
/Times-BoldR 720 _ff
(The)_S 80 _t
(Keyboard,)_S 80 _t
(the)_S 80 _t
(Mouse)_S 80 _t
(and)_S 80 _t
(the)_S 80 _t
(Timer)_S 5513 6625 _m
/Times-RomanR 600 _ff
1800 6149 _m
(AVRIL)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(set)_S 67 _t
(of)_S 67 _t
(routines)_S 67 _t
(which)_S 67 _t
(deal)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(keyboard,)_S 67 _t
(mouse)_S 67 _t
(and)_S 67 _t
(timer;)_S 67 _t
(these)_S 1200 5916 _m
(will)_S 67 _t
(vary)_S 67 _t
(from)_S 67 _t
(one)_S 67 _t
(platform)_S 67 _t
(to)_S 67 _t
(another,)_S 67 _t
(but)_S 67 _t
(they)_S 67 _t
(should)_S 67 _t
(all)_S 67 _t
(provide)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(high-level)_S 1200 5683 _m
(interface)_S 67 _t
(to)_S 67 _t
(application)_S 67 _t
(software.)_S 1800 5271 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_TimerInit\(void\);)_S 1800 5138 _m
(void)_S 80 _t
(vrl_TimerQuit\(void\);)_S 1800 5005 _m
(vrl_Time)_S 80 _t
(vrl_TimerRead\(void\);)_S 1800 4872 _m
(vrl_Time)_S 80 _t
(vrl_TimerGetTickRate\(void\);)_S 1800 4739 _m
(void)_S 80 _t
(vrl_TimerDelay\(vrl_Time)_S 80 _t
(milliseconds\);)_S 1200 4419 _m
/Times-RomanR 600 _ff
(These)_S 67 _t
(routines)_S 67 _t
(let)_S 67 _t
(you)_S 67 _t
(initialize,)_S 67 _t
(de-initialize)_S 67 _t
(and)_S 67 _t
(read)_S 67 _t
(the)_S 67 _t
(timer.)_S 134 _t
(The)_S 67 _t
(vrl_TimerGetTickRate\(\))_S 1200 4186 _m
(routine)_S 67 _t
(returns)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(ticks)_S 67 _t
(per)_S 67 _t
(second)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(timer)_S 67 _t
(runs)_S 67 _t
(at.)_S 134 _t
(The)_S 67 _t
(higher)_S 67 _t
(this)_S 67 _t
(number)_S 1200 3953 _m
(is,)_S 67 _t
(the)_S 67 _t
(more)_S 67 _t
(accurate)_S 67 _t
(the)_S 67 _t
(frames/second)_S 67 _t
(calculations)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(\(among)_S 67 _t
(other)_S 67 _t
(things\).)_S 134 _t
(It)_S 67 _t
(is)_S 1200 3720 _m
(expected)_S 67 _t
(that)_S 67 _t
(all)_S 67 _t
(future)_S 67 _t
(versions)_S 67 _t
(of)_S 67 _t
(AVRIL)_S 67 _t
(will)_S 67 _t
(use)_S 67 _t
(1000)_S 67 _t
(ticks)_S 67 _t
(per)_S 67 _t
(second,)_S 67 _t
(so)_S 67 _t
(that)_S 67 _t
(each)_S 67 _t
(tick)_S 67 _t
(is)_S 1200 3487 _m
(one)_S 67 _t
(millisecond.)_S 1800 3075 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_MouseInit\(void\);)_S 1800 2942 _m
(void)_S 80 _t
(vrl_MouseQuit\(void\);)_S 1800 2809 _m
(vrl_Boolean)_S 80 _t
(vrl_MouseReset\(void\);)_S 1800 2676 _m
(vrl_Boolean)_S 80 _t
(vrl_MouseRead\(int)_S 80 _t
(*x,)_S 80 _t
(int)_S 80 _t
(*y,)_S 80 _t
(unsigned)_S 80 _t
(int)_S 80 _t
(*buttons\);)_S 1800 2543 _m
(void)_S 80 _t
(vrl_MouseCursorHide\(void\);)_S 1800 2410 _m
(void)_S 80 _t
(vrl_MouseCursorShow\(void\);)_S 1800 2277 _m
(void)_S 80 _t
(vrl_MouseGetLimits\(int)_S 80 _t
(*min_x,)_S 80 _t
(int)_S 80 _t
(*max_x,)_S 80 _t
(int)_S 80 _t
(*min_y,)_S 80 _t
(int)_S 80 _t
(*max_y\);)_S 1800 2144 _m
(void)_S 80 _t
(vrl_MouseSetUsage\(int)_S 80 _t
(u\);)_S 1800 2011 _m
(int)_S 80 _t
(vrl_MouseGetUsage\(void\);)_S 1800 1878 _m
(void)_S 80 _t
(vrl_MouseSetPointer\(void)_S 80 _t
(*u\);)_S 1800 1745 _m
(void)_S 80 _t
(*vrl_MouseGetPointer\(void\);)_S 8800 1255 _m
/Times-RomanR 600 _ff
(43)_S /CourierR 400 _ff
_ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(These)_S 67 _t
(routines)_S 67 _t
(let)_S 67 _t
(you)_S 67 _t
(initialize)_S 67 _t
(and)_S 67 _t
(read)_S 67 _t
(the)_S 67 _t
(mouse.)_S 134 _t
(Whenever)_S 67 _t
(you)_S 67 _t
(write)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(currently)_S 1200 11622 _m
(visible)_S 67 _t
(page)_S 67 _t
(\(the)_S 67 _t
(viewpage\))_S 67 _t
(you)_S 67 _t
(should)_S 67 _t
(first)_S 67 _t
(call)_S 67 _t
(vrl_MouseCursorHide\(\))_S 67 _t
(to)_S 67 _t
(prevent)_S 67 _t
(the)_S 67 _t
(mouse)_S 1200 11389 _m
(from)_S 67 _t
(being)_S 67 _t
("squashed")_S 67 _t
(under)_S 67 _t
(a)_S 67 _t
(falling)_S 67 _t
(polygon.)_S 134 _t
(When)_S 67 _t
(you're)_S 67 _t
(finished)_S 67 _t
(updating)_S 67 _t
(the)_S 67 _t
(display,)_S 1200 11156 _m
(call)_S 67 _t
(vrl_MouseCursorShow\(\))_S 67 _t
(to)_S 67 _t
(let)_S 67 _t
(the)_S 67 _t
(rodent)_S 67 _t
(run)_S 67 _t
(free)_S 67 _t
(again.)_S 134 _t
(The)_S 67 _t
(vrl_SystemRender\(\))_S 1200 10923 _m
(routine,)_S 67 _t
(found)_S 67 _t
(in)_S 67 _t
(system.c,)_S 67 _t
(shows)_S 67 _t
(how)_S 67 _t
(these)_S 67 _t
(routines)_S 67 _t
(are)_S 67 _t
(used.)_S 134 _t
(The)_S 67 _t
(user)_S 67 _t
(interface)_S 67 _t
(routines)_S 67 _t
(do)_S 1200 10690 _m
(the)_S 67 _t
(calls)_S 67 _t
(to)_S 67 _t
(vrl_MouseCursorHide\(\))_S 67 _t
(and)_S 67 _t
(vrl_MouseCursorShow\(\),)_S 67 _t
(so)_S 67 _t
(you)_S 67 _t
(don't)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(worry)_S 1200 10457 _m
(about)_S 67 _t
(them)_S 67 _t
(when)_S 67 _t
(you)_S 67 _t
(use)_S 67 _t
(those)_S 67 _t
(functions.)_S 134 _t
(The)_S 67 _t
(vrl_MouseGetLimits\(\))_S 67 _t
(function)_S 67 _t
(lets)_S 67 _t
(you)_S 67 _t
(find)_S 1200 10224 _m
(out)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(range)_S 67 _t
(of)_S 67 _t
(possible)_S 67 _t
(mouse)_S 67 _t
(X)_S 67 _t
(and)_S 67 _t
(Y)_S 67 _t
(values.)_S 1800 9758 _m
(Since)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(either)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(screen-oriented)_S 67 _t
(pointer)_S 67 _t
(or)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(6D)_S 67 _t
(input)_S 1200 9525 _m
(device,)_S 67 _t
(there)_S 67 _t
(has)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(some)_S 67 _t
(way)_S 67 _t
(of)_S 67 _t
(toggling)_S 67 _t
(between)_S 67 _t
(those)_S 67 _t
(two)_S 67 _t
(functions.)_S 134 _t
(That's)_S 67 _t
(what)_S 67 _t
(the)_S 1200 9292 _m
(vrl_MouseSetUsage\(\))_S 67 _t
(and)_S 67 _t
(vrl_MouseGetUsage\(\))_S 67 _t
(functions)_S 67 _t
(are)_S 67 _t
(for;)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value)_S 67 _t
(means)_S 67 _t
(the)_S 1200 9059 _m
(mouse)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(6D)_S 67 _t
(device,)_S 67 _t
(a)_S 67 _t
(zero)_S 67 _t
(value)_S 67 _t
(means)_S 67 _t
(it's)_S 67 _t
(a)_S 67 _t
(screen)_S 67 _t
(pointer.)_S 1800 8593 _m
(When)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(6D)_S 67 _t
(device,)_S 67 _t
(it's)_S 67 _t
(useful)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(able)_S 67 _t
(to)_S 67 _t
(obtain)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 1200 8360 _m
(vrl_Device)_S 67 _t
(which)_S 67 _t
(is)_S 67 _t
(using)_S 67 _t
(it;)_S 67 _t
(similarly,)_S 67 _t
(the)_S 67 _t
(vrl_Device)_S 67 _t
(function)_S 67 _t
(\(described)_S 67 _t
(later\))_S 67 _t
(must)_S 67 _t
(be)_S 67 _t
(able)_S 1200 8127 _m
(to)_S 67 _t
(set)_S 67 _t
(that)_S 67 _t
(pointer.)_S 134 _t
(That's)_S 67 _t
(what)_S 67 _t
(the)_S 67 _t
(vrl_MouseSetPointer\(\))_S 67 _t
(and)_S 67 _t
(vrl_MouseGetPointer\(\))_S 67 _t
(calls)_S 1200 7894 _m
(do;)_S 67 _t
(they)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(get)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(vrl_Device)_S 67 _t
(that's)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(mouse)_S 67 _t
(for)_S 67 _t
(6D)_S 67 _t
(input.)_S 1800 7482 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_KeyboardCheck\(void\);)_S 1800 7349 _m
(unsigned)_S 80 _t
(int)_S 80 _t
(vrl_KeyboardRead\(void\);)_S /Times-RomanR 600 _ff
1200 6929 _m
(The)_S 67 _t
(vrl_KeyboardCheck\(\))_S 67 _t
(routine)_S 67 _t
(returns)_S 67 _t
(non-zero)_S 67 _t
(if)_S 67 _t
(a)_S 67 _t
(key)_S 67 _t
(has)_S 67 _t
(been)_S 67 _t
(pressed,)_S 67 _t
(and)_S 1200 6696 _m
(vrl_KeyboardRead\(\))_S 67 _t
(returns)_S 67 _t
(the)_S 67 _t
(actual)_S 67 _t
(key.)_S 134 _t
(Most)_S 67 _t
(keys)_S 67 _t
(just)_S 67 _t
(return)_S 67 _t
(their)_S 67 _t
(ASCII)_S 67 _t
(values;)_S 67 _t
(see)_S 67 _t
(the)_S 1200 6463 _m
(file)_S 67 _t
(avrilkey.h)_S 67 _t
(for)_S 67 _t
(definitions)_S 67 _t
(of)_S 67 _t
(special)_S 67 _t
(keys)_S 67 _t
(\(like)_S 67 _t
(arrows,)_S 67 _t
(function)_S 67 _t
(keys,)_S 67 _t
(etc\).)_S 1200 5967 _m
/Times-BoldR 720 _ff
(Display)_S 80 _t
(Routines)_S 2960 5967 _m
/Times-RomanR 600 _ff
1800 5491 _m
(The)_S 67 _t
(interface)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(display)_S 67 _t
(routines)_S 67 _t
(is)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(state)_S 67 _t
(of)_S 67 _t
(flux;)_S 67 _t
(the)_S 67 _t
(2.00)_S 67 _t
(release)_S 67 _t
(of)_S 67 _t
(this)_S 1200 5258 _m
(document)_S 67 _t
(will)_S 67 _t
(provide)_S 67 _t
(the)_S 67 _t
(details,)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(future)_S 67 _t
(appendix)_S 67 _t
(will)_S 67 _t
(explain)_S 67 _t
(how)_S 67 _t
(to)_S 67 _t
(write)_S 67 _t
(your)_S 67 _t
(own)_S 1200 5025 _m
(display)_S 67 _t
(routines.)_S 1200 4529 _m
/Times-BoldR 720 _ff
(PCX)_S 80 _t
(File)_S 80 _t
(Routines)_S 3147 4529 _m
/Times-RomanR 600 _ff
1200 4053 _m
(There)_S 67 _t
(are)_S 67 _t
(two)_S 67 _t
(functions)_S 67 _t
(that)_S 67 _t
(deal)_S 67 _t
(with)_S 67 _t
(files)_S 67 _t
(in)_S 67 _t
(PCX)_S 67 _t
(format:)_S 1800 3641 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_ReadPCX\(FILE)_S 80 _t
(*in\);)_S 1800 3508 _m
(vrl_Boolean)_S 80 _t
(vrl_WritePCX\(FILE)_S 80 _t
(*out\);)_S /Times-RomanR 600 _ff
1200 3088 _m
(The)_S 67 _t
(first)_S 67 _t
(one)_S 67 _t
(reads)_S 67 _t
(a)_S 67 _t
(PCX)_S 67 _t
(file)_S 67 _t
(into)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(drawing)_S 67 _t
(page,)_S 67 _t
(the)_S 67 _t
(other)_S 67 _t
(writes)_S 67 _t
(the)_S 67 _t
(current)_S 1200 2855 _m
(drawing)_S 67 _t
(page)_S 67 _t
(out)_S 67 _t
(to)_S 67 _t
(disk)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(PCX)_S 67 _t
(file.)_S 8800 1255 _m
(44)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11825 _m
/Times-BoldR 720 _ff
(Devices)_S 1973 11825 _m
/Times-RomanR 600 _ff
1200 11349 _m
(AVRIL)_S 67 _t
(has)_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(input)_S 67 _t
(devices)_S 67 _t
(providing)_S 67 _t
(multiple)_S 67 _t
("degrees)_S 67 _t
(of)_S 67 _t
(freedom")_S 67 _t
(\(DOF\).)_S 134 _t
(In)_S 1200 11116 _m
(fact,)_S 67 _t
(AVRIL's)_S 67 _t
(devices)_S 67 _t
(are)_S 67 _t
(even)_S 67 _t
(more)_S 67 _t
(general;)_S 67 _t
(each)_S 67 _t
(device)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(an)_S 67 _t
(arbitrary)_S 67 _t
(number)_S 67 _t
(of)_S 1200 10883 _m
(input)_S 67 _t
(and)_S 67 _t
(output)_S 67 _t
(channels.)_S 1800 10417 _m
(To)_S 67 _t
(use)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(in)_S 67 _t
(AVRIL,)_S 67 _t
(you)_S 67 _t
(must)_S 67 _t
(first)_S 67 _t
("open")_S 67 _t
(it;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(analogous)_S 67 _t
(to)_S 67 _t
(opening)_S 67 _t
(a)_S 1200 10184 _m
(file.)_S 134 _t
(When)_S 67 _t
(you're)_S 67 _t
(finished)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(device,)_S 67 _t
(you)_S 67 _t
(should)_S 67 _t
("close")_S 67 _t
(it;)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(close)_S 67 _t
(all)_S 67 _t
(open)_S 1200 9951 _m
(devices)_S 67 _t
(using)_S 67 _t
(vrl_DeviceCloseAll\(\),)_S 67 _t
(which)_S 67 _t
(is)_S 67 _t
(set)_S 67 _t
(as)_S 67 _t
(an)_S 67 _t
(atexit\(\))_S 67 _t
(function)_S 67 _t
(by)_S 1200 9718 _m
(vrl_SystemStartup\(\).)_S 1800 9306 _m
/CourierR 400 _ff
(vrl_Device)_S 80 _t
(*vrl_DeviceOpen\(vrl_DeviceDriverFunction)_S 80 _t
(fn,)_S 80 _t
(vrl_SerialPort)_S 80 _t
(*port\);)_S 1800 9173 _m
(void)_S 80 _t
(vrl_DeviceClose\(vrl_Device)_S 80 _t
(*device\);)_S 1800 9040 _m
(void)_S 80 _t
(vrl_DeviceCloseAll\(void\);)_S /Times-RomanR 600 _ff
1200 8618 _m
(Most)_S 67 _t
(input)_S 67 _t
(devices)_S 67 _t
(communicate)_S 67 _t
(over)_S 67 _t
(a)_S 67 _t
(serial)_S 67 _t
(port;)_S 67 _t
(the)_S 67 _t
5802 8618 _m
/Times-ItalicR 600 _ff
(port)_S 6136 8618 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(such)_S 67 _t
(a)_S 1200 8385 _m
(port)_S 67 _t
(that's)_S 67 _t
(been)_S 67 _t
(opened)_S 67 _t
(with)_S 67 _t
(vrl_SerialOpen\(\).)_S 134 _t
(See)_S 67 _t
(the)_S 67 _t
(section)_S 67 _t
(on)_S 67 _t
(Serial)_S 67 _t
(Ports)_S 67 _t
(for)_S 67 _t
(more)_S 1200 8152 _m
(details.)_S 134 _t
(Devices)_S 67 _t
(\(such)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(keyboard\))_S 67 _t
(that)_S 67 _t
(don't)_S 67 _t
(use)_S 67 _t
(a)_S 67 _t
(serial)_S 67 _t
(port)_S 67 _t
(should)_S 67 _t
(pass)_S 67 _t
(NULL)_S 67 _t
(as)_S 67 _t
(the)_S 1200 7917 _m
/Times-ItalicR 600 _ff
(port)_S 1533 7917 _m
/Times-RomanR 600 _ff
67 _t
(parameter.)_S 134 _t
(The)_S 67 _t
2962 7917 _m
/Times-ItalicR 600 _ff
(fn)_S 3118 7917 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(function)_S 67 _t
(that)_S 67 _t
(operates)_S 67 _t
(the)_S 67 _t
(device;)_S 67 _t
(there)_S 67 _t
(are)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(of)_S 1200 7684 _m
(these)_S 67 _t
(already)_S 67 _t
(defined)_S 67 _t
(for)_S 67 _t
(popular)_S 67 _t
(devices,)_S 67 _t
(and)_S 67 _t
(it's)_S 67 _t
(easy)_S 67 _t
(to)_S 67 _t
(write)_S 67 _t
(your)_S 67 _t
(own)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(have)_S 67 _t
(unusual)_S 1200 7451 _m
(devices)_S 67 _t
(you)_S 67 _t
(wish)_S 67 _t
(to)_S 67 _t
(support.)_S 134 _t
(They)_S 67 _t
(are)_S 67 _t
(listed)_S 67 _t
(in)_S 67 _t
(avrildrv.h,)_S 67 _t
(and)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(cfg.c)_S 67 _t
(file.)_S 1800 6985 _m
(Devices)_S 67 _t
(can)_S 67 _t
(also)_S 67 _t
(have)_S 67 _t
("nicknames";)_S 67 _t
(for)_S 67 _t
(example,)_S 67 _t
(your)_S 67 _t
(application)_S 67 _t
(might)_S 67 _t
(deal)_S 67 _t
(with)_S 67 _t
(a)_S 1200 6752 _m
(head-tracker)_S 67 _t
(called)_S 67 _t
("headtrack")_S 67 _t
(which)_S 67 _t
(would)_S 67 _t
(be)_S 67 _t
(defined)_S 67 _t
(\(in)_S 67 _t
(the)_S 67 _t
(configuration)_S 67 _t
(file,)_S 67 _t
(most)_S 67 _t
(likely\))_S 1200 6519 _m
(to)_S 67 _t
(be)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(head)_S 67 _t
(tracking)_S 67 _t
(\(e.g.)_S 67 _t
(an)_S 67 _t
(Polhemus)_S 67 _t
(Isotrak)_S 67 _t
(or)_S 67 _t
(a)_S 67 _t
(Logitech)_S 67 _t
(Red)_S 67 _t
(Baron\).)_S 67 _t
1200 6286 _m
(You)_S 67 _t
(can)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(query)_S 67 _t
(the)_S 67 _t
(nickname)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(device,)_S 67 _t
(or)_S 67 _t
(find)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(nickname,)_S 1200 6053 _m
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(functions:)_S 1800 5587 _m
/CourierR 400 _ff
(char)_S 80 _t
(*vrl_DeviceGetNickname\(vrl_Device)_S 80 _t
(*device\))_S 5560 5587 _m
/Times-RomanR 600 _ff
(;)_S 1800 5354 _m
(void)_S 67 _t
(vrl_DeviceSetNickname\(vrl_Device)_S 67 _t
(*device,)_S 67 _t
(char)_S 67 _t
(*nickname\);)_S 1800 5121 _m
(vrl_Device)_S 67 _t
(*vrl_DeviceFind\(char)_S 67 _t
(*nickname\);)_S 1200 4655 _m
(Once)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(has)_S 67 _t
(been)_S 67 _t
(opened,)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(easily)_S 67 _t
(find)_S 67 _t
(out)_S 67 _t
(how)_S 67 _t
(many)_S 67 _t
(input)_S 67 _t
(channels)_S 67 _t
(it)_S 67 _t
(has,)_S 67 _t
(and)_S 1200 4422 _m
(how)_S 67 _t
(many)_S 67 _t
(two-state)_S 67 _t
(buttons)_S 67 _t
(are)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(device,)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(two)_S 67 _t
(functions:)_S 1800 4010 _m
/CourierR 400 _ff
(int)_S 80 _t
(vrl_DeviceGetNchannels\(vrl_Device)_S 80 _t
(*device\);)_S 1800 3877 _m
(int)_S 80 _t
(vrl_DeviceGetNButtons\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
1200 3457 _m
(Sometimes)_S 67 _t
(devices)_S 67 _t
(can)_S 67 _t
(get)_S 67 _t
(into)_S 67 _t
(a)_S 67 _t
(strange)_S 67 _t
(state,)_S 67 _t
(or)_S 67 _t
(drift)_S 67 _t
(from)_S 67 _t
(their)_S 67 _t
(initial)_S 67 _t
(settings;)_S 67 _t
(the)_S 67 _t
(function)_S 1200 3224 _m
(vrl_DeviceReset\(\))_S 67 _t
(resets)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(state)_S 67 _t
(it)_S 67 _t
(was)_S 67 _t
(in)_S 67 _t
(just)_S 67 _t
(after)_S 67 _t
(it)_S 67 _t
(was)_S 67 _t
(opened.)_S 1800 2812 _m
/CourierR 400 _ff
(int)_S 80 _t
(vrl_DeviceReset\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
1200 2392 _m
(Devices)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(periodically)_S 67 _t
("polled")_S 67 _t
(to)_S 67 _t
(see)_S 67 _t
(if)_S 67 _t
(they)_S 67 _t
(have)_S 67 _t
(anything)_S 67 _t
(to)_S 67 _t
(report;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(normally)_S 1200 2159 _m
(done)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(vrl_SystemRun\(\))_S 67 _t
(function.)_S 134 _t
(An)_S 67 _t
(individual)_S 67 _t
(device)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(polled)_S 67 _t
(using)_S 8800 1255 _m
(45)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(vrl_DevicePoll\(\),)_S 67 _t
(which)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value)_S 67 _t
(if)_S 67 _t
(new)_S 67 _t
(data)_S 67 _t
(was)_S 67 _t
(acquired.)_S 134 _t
(All)_S 67 _t
(the)_S 67 _t
(devices)_S 1200 11622 _m
(can)_S 67 _t
(be)_S 67 _t
(polled)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(vrl_DevicePollAll\(\).)_S 1800 11210 _m
/CourierR 400 _ff
(int)_S 80 _t
(vrl_DevicePoll\(vrl_Device)_S 80 _t
(*device\);)_S 1800 11077 _m
(void)_S 80 _t
(vrl_DevicePollAll\(void\);)_S /Times-RomanR 600 _ff
1200 10657 _m
(You)_S 67 _t
(can)_S 67 _t
(get)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(channel's)_S 67 _t
(input)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(vrl_DeviceGetValue\(\),)_S 67 _t
(and)_S 67 _t
(you)_S 1200 10424 _m
(can)_S 67 _t
(read)_S 67 _t
(the)_S 67 _t
(button)_S 67 _t
(status)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(using)_S 67 _t
(vrl_DeviceGetButtons\(\):)_S 1800 10012 _m
/CourierR 400 _ff
(vrl_Scalar)_S 80 _t
(vrl_DeviceGetValue\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel\);)_S 1800 9879 _m
(vrl_unsigned32bit)_S 80 _t
(vrl_DeviceGetButtons\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
1200 9459 _m
(Each)_S 67 _t
(bit)_S 67 _t
(corresponds)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t

(single)_S 67 _t
(button)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(device.)_S 1800 8993 _m
(The)_S 67 _t
(first)_S 67 _t
(six)_S 67 _t
(channel)_S 67 _t
(numbers)_S 67 _t
(are)_S 67 _t
(special,)_S 67 _t
(since)_S 67 _t
(they)_S 67 _t
(correspond)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(six)_S 67 _t
(basic)_S 1200 8760 _m
(degrees)_S 67 _t
(of)_S 67 _t
(freedom)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(can)_S 67 _t
(have.)_S 134 _t
(The)_S 67 _t
(first)_S 67 _t
(three,)_S 67 _t
(whose)_S 67 _t
(channel)_S 67 _t
(numbers)_S 67 _t
(are)_S 67 _t
(the)_S 1200 8527 _m
(#defined)_S 67 _t
(values)_S 67 _t
(X,)_S 67 _t
(Y,)_S 67 _t
(and)_S 67 _t
(Z,)_S 67 _t
(provide)_S 67 _t
(the)_S 67 _t
(three-dimensional)_S 67 _t
(location)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(input)_S 67 _t
(device)_S 67 _t
(in)_S 67 _t
(its)_S 1200 8294 _m
(private)_S 67 _t
(coordinate)_S 67 _t
(system.)_S 134 _t
(The)_S 67 _t
(next)_S 67 _t
(three,)_S 67 _t
(whose)_S 67 _t
(channel)_S 67 _t
(numbers)_S 67 _t
(are)_S 67 _t
(the)_S 67 _t
(#defined)_S 67 _t
(values)_S 1200 8061 _m
(XROT,)_S 67 _t
(YROT)_S 67 _t
(and)_S 67 _t
(ZROT,)_S 67 _t
(provide)_S 67 _t
(the)_S 67 _t
(rotation)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(around)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(three)_S 67 _t
(axes.)_S 67 _t
1200 7828 _m
(Every)_S 67 _t
(device)_S 67 _t
(is)_S 67 _t
(expected)_S 67 _t
(to)_S 67 _t
(provide)_S 67 _t
(at)_S 67 _t
(least)_S 67 _t
(those)_S 67 _t
(six)_S 67 _t
(values;)_S 67 _t
(others,)_S 67 _t
(such)_S 67 _t
(as)_S 67 _t
(glove-like)_S 67 _t
(input)_S 1200 7595 _m
(devices,)_S 67 _t
(may)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(separate)_S 67 _t
(channel)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(flexion)_S 67 _t
(of)_S 67 _t
(each)_S 67 _t
(finger.)_S 1800 7129 _m
(You)_S 67 _t
(can)_S 67 _t
(determine)_S 67 _t
(whether)_S 67 _t
(a)_S 67 _t
(channel's)_S 67 _t
(value)_S 67 _t
(has)_S 67 _t
(changed)_S 67 _t
(since)_S 67 _t
(the)_S 67 _t
(previous)_S 67 _t
(poll)_S 67 _t
(by)_S 1200 6896 _m
(using)_S 67 _t
(vrl_DeviceChannelGetChanged\(\),)_S 67 _t
(and)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(use)_S 67 _t
(vrl_DeviceGetChangedButtons\(\))_S 67 _t
(to)_S 1200 6663 _m
(obtain)_S 67 _t
(a)_S 67 _t
(vrl_unsigned32bit)_S 67 _t
(word)_S 67 _t
(whose)_S 67 _t
(bits)_S 67 _t
(indicate)_S 67 _t
(whether)_S 67 _t
(the)_S 67 _t
(corresponding)_S 67 _t
(buttons)_S 67 _t
(have)_S 1200 6430 _m
(changed)_S 67 _t
(state)_S 67 _t
(since)_S 67 _t
(the)_S 67 _t
(previous)_S 67 _t
(poll.)_S 1800 6018 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_DeviceGetChanged\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel\);)_S 1800 5885 _m
(vrl_unsigned32bit)_S 80 _t
(vrl_DeviceGetChangedButtons\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
1200 5465 _m
(Note)_S 67 _t
(that)_S 67 _t
("previous)_S 67 _t
(poll")_S 67 _t
(means)_S 67 _t
(the)_S 67 _t
(one)_S 67 _t
(prior)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(most)_S 67 _t
(recent)_S 67 _t
(one;)_S 67 _t
(in)_S 67 _t
(other)_S 67 _t
(words,)_S 67 _t
(you)_S 1200 5232 _m
(would)_S 67 _t
(check)_S 67 _t
(the)_S 67 _t
(changed)_S 67 _t
(flags)_S 67 _t
(immediately)_S 67 _t
(after)_S 67 _t
(a)_S 67 _t
(call)_S 67 _t
(to)_S 67 _t
(vrl_DevicePoll\(\))_S 67 _t
(or)_S 1200 4999 _m
(vrl_DevicePollAll\(\))_S 67 _t
(in)_S 67 _t
(order)_S 67 _t
(to)_S 67 _t
(see)_S 67 _t
(if)_S 67 _t
(they've)_S 67 _t
(changed)_S 67 _t
(since)_S 67 _t
(the)_S 67 _t
(last)_S 67 _t
(time)_S 67 _t
(through.)_S 1800 4533 _m
(Some)_S 67 _t
(devices)_S 67 _t
(\(such)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(Logitech)_S 67 _t
(Cyberman)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(Global)_S 67 _t
(Devices)_S 67 _t
(Controller\))_S 67 _t
(are)_S 1200 4300 _m
(capable)_S 67 _t
(of)_S 67 _t
(output)_S 67 _t
(as)_S 67 _t
(well)_S 67 _t
(as)_S 67 _t
(input.)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(find)_S 67 _t
(out)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(output)_S 67 _t
(channels)_S 67 _t
(a)_S 67 _t
(device)_S 1200 4067 _m
(has,)_S 67 _t
(and)_S 67 _t
(set)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(channel)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(value,)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(two)_S 67 _t
(functions:)_S 1800 3655 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_DeviceOutput\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel,)_S 80 _t
(vrl_Scalar)_S 80 _t
(value\);)_S 1800 3522 _m
(int)_S 80 _t
(vrl_DeviceGetNOutputChannels\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
1200 3102 _m
(There)_S 67 _t
(are)_S 67 _t
(some)_S 67 _t
(devices)_S 67 _t
(that)_S 67 _t
(shouldn't)_S 67 _t
(be)_S 67 _t
(polled)_S 67 _t
(too)_S 67 _t
(frequently)_S 67 _t
(\(possibly)_S 67 _t
(because)_S 67 _t
(the)_S 67 _t
(polling)_S 1200 2869 _m
(takes)_S 67 _t
(a)_S 67 _t
(long)_S 67 _t
(time\).)_S 134 _t
(Devices)_S 67 _t
(drivers)_S 67 _t

(typically)_S 67 _t
(set)_S 67 _t
(their)_S 67 _t
(own)_S 67 _t
(polling)_S 67 _t
(frequency)_S 67 _t
(when)_S 67 _t
(they're)_S 1200 2636 _m
(initialized,)_S 67 _t
(but)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(read)_S 67 _t
(and)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
(polling)_S 67 _t
(period)_S 67 _t
(using)_S 67 _t
(these)_S 67 _t
(two)_S 67 _t
(functions:)_S /CourierR 400 _ff
1800 2091 _m
(void)_S 80 _t
(vrl_DeviceSetPeriod\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(vrl_Time)_S 80 _t
(period\);)_S 1800 1958 _m
(vrl_Time)_S 80 _t
(vrl_DeviceGetPeriod\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
8800 1255 _m
(46)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(Some)_S 67 _t
(devices)_S 67 _t
(provide)_S 67 _t
(fewer)_S 67 _t
(than)_S 67 _t
(six)_S 67 _t
(degrees)_S 67 _t
(of)_S 67 _t
(freedom;)_S 67 _t
(in)_S 67 _t
(particular,)_S 67 _t
(some)_S 67 _t
(devices)_S 67 _t
(\(such)_S 67 _t
(as)_S 1200 11622 _m
(sourceless)_S 67 _t
(head)_S 67 _t
(trackers\))_S 67 _t
(provide)_S 67 _t
(only)_S 67 _t
(rotational)_S 67 _t
(information,)_S 67 _t
(while)_S 67 _t
(others)_S 67 _t
(might)_S 67 _t
(provide)_S 67 _t
(only)_S 1200 11389 _m
(positional)_S 67 _t
(information.)_S 134 _t
(In)_S 67 _t
(addition,)_S 67 _t
(some)_S 67 _t
(axes)_S 67 _t
(are)_S 67 _t
(absolute,)_S 67 _t
(while)_S 67 _t
(others)_S 67 _t
(are)_S 67 _t
(relative;)_S 67 _t
(for)_S 1200 11154 _m
(example,)_S 67 _t
(a)_S 67 _t
(magnetic)_S 67 _t
(tracker)_S 67 _t
(provides)_S 67 _t
(absolute)_S 67 _t
(rotation,)_S 67 _t
(whereas)_S 67 _t
(a)_S 67 _t
(joystick)_S 67 _t
(provides)_S 67 _t
(a)_S 67 _t
8291 11154 _m
/Times-ItalicR 600 _ff
(rate)_S 8614 11154 _m
/Times-RomanR 600 _ff
67 _t
(of)_S 1200 10921 _m
(rotation.)_S 134 _t
(Two)_S 67 _t
(functions)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(determine)_S 67 _t
(what)_S 67 _t
(a)_S 67 _t
(device's)_S 67 _t
(suggested)_S 67 _t
(modes)_S 67 _t
(of)_S 67 _t
(operation)_S 1200 10688 _m
(are)_S 67 _t
(for)_S 67 _t
(translation)_S 67 _t
(and)_S 67 _t
(rotation:)_S 1800 10276 _m
/CourierR 400 _ff
(vrl_DeviceMotionMode)_S 80 _t
(vrl_DeviceGetRotationMode\(vrl_Device)_S 80 _t
(*device\);)_S 1800 10143 _m
(vrl_DeviceMotionMode)_S 80 _t
(vrl_DeviceGetTranslationMode\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
1200 9723 _m
(Each)_S 67 _t
(of)_S 67 _t
(these)_S 67 _t
(two)_S 67 _t
(functions)_S 67 _t
(returns)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(values)_S 67 _t
(VRL_MOTION_NONE)_S 67 _t
(\(i.e.,)_S 67 _t
(this)_S 67 _t
(type)_S 1200 9490 _m
(of)_S 67 _t
(motion)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(reported)_S 67 _t
(by)_S 67 _t
(this)_S 67 _t
(device\),)_S 67 _t
(VRL_MOTION_RELATIVE)_S 67 _t
(\(i.e.)_S 67 _t
(this)_S 67 _t
(device)_S 1200 9257 _m
(provides)_S 67 _t
(relative)_S 67 _t
(information\))_S 67 _t
(or)_S 67 _t
(VRL_MOTION_ABSOLUTE)_S 67 _t
(\(this)_S 67 _t
(device)_S 67 _t
(provides)_S 67 _t
(absolute)_S 1200 9024 _m
(information\).)_S 1800 8556 _m
(It's)_S 67 _t
(important)_S 67 _t
(to)_S 67 _t
(note)_S 67 _t
(that)_S 67 _t
(these)_S 67 _t
(are)_S 67 _t
(all)_S 67 _t
5036 8556 _m
/Times-ItalicR 600 _ff
(suggestions)_S 5969 8556 _m
/Times-RomanR 600 _ff
67 _t
(from)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(driver)_S 67 _t
(as)_S 67 _t
(to)_S 67 _t
(how)_S 67 _t
(it)_S 1200 8323 _m
(should)_S 67 _t
(be)_S 67 _t
(used;)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(still)_S 67 _t
(choose,)_S 67 _t
(in)_S 67 _t
(your)_S 67 _t
(application,)_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(any)_S 67 _t
(device)_S 67 _t
(either)_S 67 _t
(absolute)_S 1200 8090 _m
(or)_S 67 _t
(relative.)_S 1800 7624 _m
(To)_S 67 _t
(understand)_S 67 _t
(what)_S 67 _t
(these)_S 67 _t
(next)_S 67 _t
(few)_S 67 _t
(functions)_S 67 _t
(do,)_S 67 _t
(it's)_S 67 _t
(important)_S 67 _t
(to)_S 67 _t
(understand)_S 67 _t
(what)_S 1200 7391 _m
(kind)_S 67 _t
(of)_S 67 _t
(processing)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(does)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(values)_S 67 _t
(once)_S 67 _t
(it)_S 67 _t
(receives)_S 67 _t
(them)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(device.)_S 67 _t
1200 7158 _m
(Each)_S 67 _t
(channel)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(in)_S 67 _t
(either)_S 67 _t
("accumulate")_S 67 _t
(or)_S 67 _t
("non-accumulate")_S 67 _t
(mode.)_S 134 _t
(For)_S 67 _t
(accumulating)_S 1200 6925 _m
(devices,)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(first)_S 67 _t
(checked)_S 67 _t
(to)_S 67 _t
(see)_S 67 _t
(how)_S 67 _t
(close)_S 67 _t
(it)_S 67 _t
(is)_S 67 _t
(to)_S 67 _t
(zero;)_S 67 _t
(if)_S 67 _t
(it's)_S 67 _t
(less)_S 67 _t
(than)_S 67 _t
(a)_S 67 _t
(channel-)_S 1200 6690 _m
(specific)_S 67 _t
1889 6690 _m
/Times-ItalicR 600 _ff
(deadzone)_S 2644 6690 _m
/Times-RomanR 600 _ff
67 _t
(value,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(considered)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(zero.)_S 134 _t
(For)_S 67 _t
(non-accumulating)_S 1200 6457 _m
(devices,)_S 67 _t
(the)_S 67 _t
(deadzone)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(treated)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(minimum)_S 67 _t
(change)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(most)_S 67 _t
(recently)_S 67 _t
(read)_S 1200 6224 _m
(value)_S 67 _t
(for)_S 67 _t
(this)_S 67 _t
(channel;)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(that)_S 67 _t
(moves)_S 67 _t
(by)_S 67 _t
(less)_S 67 _t
(than)_S 67 _t
(the)_S 67 _t
(deadzone)_S 67 _t
(amount)_S 67 _t
(between)_S 1200 5991 _m
(consecutive)_S 67 _t
(polls)_S 67 _t
(will)_S 67 _t
(not)_S 67 _t
(change)_S 67 _t
(in)_S 67 _t
(value.)_S 1800 5525 _m
(The)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(then)_S 67 _t
(scaled)_S 67 _t
(so)_S 67 _t
(that)_S 67 _t
(its)_S 67 _t
(maximum)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(less)_S 67 _t
(than)_S 67 _t
(a)_S 67 _t
(channel-specific)_S 1200 5290 _m
(scale)_S 67 _t
(value.)_S 134 _t
(For)_S 67 _t
(channels)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
4130 5290 _m
/Times-ItalicR 600 _ff
(accumulate)_S 5052 5290 _m
/Times-RomanR 600 _ff
67 _t
(flag)_S 67 _t
(set,)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(also)_S 67 _t
(scaled)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(elapsed)_S 1200 5055 _m
(time;)_S 67 _t
(the)_S 67 _t
1990 5055 _m
/Times-ItalicR 600 _ff
(scale)_S 2401 5055 _m
/Times-RomanR 600 _ff
67 _t
(for)_S 67 _t
(such)_S 67 _t
(channels)_S 67 _t
(is)_S 67 _t
(treated)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(maximum)_S 67 _t
(rate)_S 67 _t
(of)_S 67 _t
(change)_S 67 _t
(per)_S 67 _t
(second.)_S 1200 4587 _m
(The)_S 67 _t
1578 4587 _m
/Times-ItalicR 600 _ff
(scale)_S 1989 4587 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
2412 4587 _m
/Times-ItalicR 600 _ff
(deadzone)_S 3167 4587 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(read)_S 67 _t
(using)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(calls:)_S 1800 4175 _m
/CourierR 400 _ff
(vrl_Scalar)_S 80 _t
(vrl_DeviceGetDeadzone\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel\);)_S 1800 4042 _m
(void)_S 80 _t
(vrl_DeviceSetDeadzone\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel,)_S 80 _t
(vrl_Scalar)_S 80 _t
(value\);)_S 1800 3909 _m
(vrl_Scalar)_S 80 _t
(vrl_DeviceGetScale\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel\);)_S 1800 3776 _m
(vrl_DeviceSetScale\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel,)_S 80 _t
(vrl_Scalar)_S 80 _t
(value\);)_S 1800 3643 _m
(vrl_Boolean)_S 80 _t
(vrl_DeviceGetAccumulate\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel\);)_S 1800 3510 _m
(void)_S 80 _t
(vrl_DeviceSetAccumulate\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel,)_S 80 _t
(vrl_Boolean)_S 80 _t
(value\);)_S /Times-RomanR 600 _ff
1200 3090 _m
(If)_S 67 _t
(you)_S 67 _t
(like,)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(bypass)_S 67 _t
(all)_S 67 _t
(that)_S 67 _t
(processing)_S 67 _t
(and)_S 67 _t
(obtain)_S 67 _t
(the)_S 67 _t
(actual,)_S 67 _t
("raw")_S 67 _t
(value)_S 67 _t
(being)_S 1200 2857 _m
(reported)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(by)_S 67 _t
(calling)_S 1800 2445 _m
/CourierR 400 _ff
(vrl_Scalar)_S 80 _t
(vrl_DeviceGetRawValue\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel\);)_S /Times-RomanR 600 _ff
1200 2025 _m
(Devices)_S 67 _t
(are)_S 67 _t
(kept)_S 67 _t
(internally)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(linked)_S 67 _t
(list;)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(iterate)_S 67 _t
(over)_S 67 _t
(the)_S 67 _t
(list,)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(do)_S 67 _t
(it)_S 1200 1792 _m
(with)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(two)_S 67 _t
(functions:)_S 8800 1255 _m
(47)_S _ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(vrl_Device)_S 80 _t
(*vrl_DeviceGetFirst\(void\);)_S 1800 11776 _m
(vrl_Device)_S 80 _t
(*)_S 80 _t
(vrl_DeviceGetNext\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
1200 11356 _m
(You)_S 67 _t
(can)_S 67 _t
(retrieve)_S 67 _t
(a)_S 67 _t
(human-readable)_S 67 _t
(description)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(the)_S 67 _t
(function)_S 1800 10944 _m
/CourierR 400 _ff
(char)_S 80 _t
(*vrl_DeviceGetDesc\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
1200 10524 _m
(You)_S 67 _t
(can)_S 67 _t
(produce)_S 67 _t
(output)_S 67 _t
(on)_S 67 _t
(any)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(device's)_S 67 _t
(channels)_S 67 _t
(by)_S 67 _t
(calling)_S 1800 10112 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_DeviceOutput\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(int)_S 80 _t
(channel,)_S 80 _t
(vrl_Scalar)_S 80 _t
(value\);)_S /Times-RomanR 600 _ff
1200 9690 _m
(The)_S 67 _t
1578 9690 _m
/Times-ItalicR 600 _ff
(channel)_S 2211 9690 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
(the)_S 67 _t
2945 9690 _m
/Times-ItalicR 600 _ff
(value)_S 3379 9690 _m
/Times-RomanR 600 _ff
67 _t
(\(which)_S 67 _t
(ought)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(range)_S 67 _t
(0)_S 67 _t
(to)_S 67 _t
(255\))_S 67 _t
(are)_S 67 _t
(passed)_S 67 _t
(along)_S 67 _t
(to)_S 67 _t
(the)_S 1200 9457 _m
(device;)_S 67 _t
(if)_S 67 _t
(it's)_S 67 _t
(capable)_S 67 _t
(of)_S 67 _t
(outputting)_S 67 _t
(that)_S 67 _t
(value)_S 67 _t
(on)_S 67 _t
(that)_S 67 _t
(channel,)_S 67 _t
(it)_S 67 _t
(does.)_S 134 _t
(Not)_S 67 _t
(all)_S 67 _t
(devices)_S 67 _t
(are)_S 1200 9224 _m
(capable)_S 67 _t
(of)_S 67 _t
(producing)_S 67 _t
(output,)_S 67 _t
(and)_S 67 _t
(those)_S 67 _t
(that)_S 67 _t

(can)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(variety)_S 67 _t
(of)_S 67 _t
(different)_S 67 _t
(ways)_S 67 _t
(of)_S 67 _t
(doing)_S 67 _t
(it)_S 1200 8991 _m
(\(including)_S 67 _t
(sound)_S 67 _t
(and)_S 67 _t
(vibration\).)_S 134 _t
(All)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(sure)_S 67 _t
(of)_S 67 _t
(is)_S 67 _t
(that)_S 67 _t
(a)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(zero)_S 67 _t
(will)_S 67 _t
(turn)_S 67 _t
(the)_S 1200 8758 _m
(output)_S 67 _t
(off,)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value)_S 67 _t
(will)_S 67 _t
(turn)_S 67 _t
(it)_S 67 _t
(on.)_S 1800 8292 _m
(Some)_S 67 _t
(2D)_S 67 _t
(devices)_S 67 _t
(can)_S 67 _t
(map)_S 67 _t
(their)_S 67 _t
(two)_S 67 _t
(axes)_S 67 _t
(into)_S 67 _t
(6)_S 67 _t
(degrees)_S 67 _t
(of)_S 67 _t
(freedom)_S 67 _t
(using)_S 1200 8059 _m
(combinations)_S 67 _t
(of)_S 67 _t
(buttons.)_S 134 _t
(There)_S 67 _t
(are)_S 67 _t
(two)_S 67 _t
(functions)_S 67 _t
(to)_S 67 _t
(get)_S 67 _t
(and)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
(mapping)_S 67 _t
(tables)_S 67 _t
(they)_S 67 _t
(use:)_S 1800 7647 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_DeviceSetButtonmap\(vrl_Device)_S 80 _t
(*device,)_S 80 _t
(vrl_DeviceButtonmap)_S 80 _t
(*b\);)_S 1800 7514 _m
(vrl_DeviceButtonmap)_S 80 _t
(*vrl_DeviceGetButtonmap\(vrl_Device)_S 80 _t
(*device\);)_S /Times-RomanR 600 _ff
1200 7094 _m
(Buttonmaps)_S 67 _t
(are)_S 67 _t
(a)_S 67 _t
(fairly)_S 67 _t
(complex)_S 67 _t
(topic,)_S 67 _t
(and)_S 67 _t
(are)_S 67 _t
(discussed)_S 67 _t
(in)_S 67 _t
(more)_S 67 _t
(detail)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(appendix)_S 67 _t
(on)_S 1200 6861 _m
(writing)_S 67 _t
(device)_S 67 _t
(drivers.)_S 1200 6365 _m
/Times-BoldR 720 _ff
(Serial)_S 80 _t
(Ports)_S 2427 6365 _m
/Times-RomanR 600 _ff
1200 5889 _m
(Since)_S 67 _t
(many)_S 67 _t
(input)_S 67 _t
(devices)_S 67 _t
(use)_S 67 _t
(serial)_S 67 _t
(communications,)_S 67 _t
(AVRIL)_S 67 _t
(contains)_S 67 _t
(a)_S 67 _t
(library)_S 67 _t
(of)_S 67 _t
(serial)_S 67 _t
(port)_S 1200 5656 _m
(routines.)_S 134 _t
(These)_S 67 _t
(will)_S 67 _t
(mostly)_S 67 _t
(be)_S 67 _t
(of)_S 67 _t
(interest)_S 67 _t
(to)_S 67 _t
(people)_S 67 _t
(writing)_S 67 _t
(device)_S 67 _t
(drivers,)_S 67 _t
(but)_S 67 _t
(they)_S 67 _t
(might)_S 1200 5423 _m
(also)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(modem)_S 67 _t
(communications.)_S 1800 4957 _m
(To)_S 67 _t
(some)_S 67 _t
(extent,)_S 67 _t
(serial)_S 67 _t
(port)_S 67 _t
(support)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(platform-dependent;)_S 67 _t
(the)_S 67 _t
(meaning)_S 67 _t
(of)_S 67 _t
(the)_S 1200 4724 _m
(various)_S 67 _t
(parameters)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(vrl_SerialOpen\(\))_S 67 _t
(call)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(different)_S 67 _t
(on)_S 67 _t
(different)_S 67 _t
(systems.)_S 67 _t
1200 4491 _m
(However,)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(other)_S 67 _t
(routines)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(regardless)_S 67 _t
(of)_S 67 _t
(platform.)_S 1800 4025 _m
(A)_S 67 _t
(serial)_S 67 _t
(port)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(opened)_S 67 _t
(and)_S 67 _t
(closed)_S 67 _t
(using)_S 67 _t
(vrl_SerialOpen\(\))_S 67 _t
(and)_S 67 _t
(vrl_SerialClose\(\))_S 1200 3792 _m
(respectively;)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(serial)_S 67 _t
(ports)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(closed)_S 67 _t
(at)_S 67 _t
(once)_S 67 _t
(using)_S 67 _t
(vrl_SerialCloseAll\(\),)_S 67 _t
(which)_S 67 _t
(gets)_S 1200 3559 _m
(set)_S 67 _t
(as)_S 67 _t
(an)_S 67 _t
(atexit\(\))_S 67 _t
(function)_S 67 _t
(by)_S 67 _t
(vrl_SystemStartup\(\).)_S 134 _t
(The)_S 67 _t
(communications)_S 67 _t
(parameters)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(set)_S 1200 3326 _m
(using)_S 67 _t
(vrl_SerialSetParameters\(\).)_S 1800 2914 _m
/CourierR 400 _ff
(vrl_SerialPort)_S 80 _t
(*vrl_SerialOpen\(unsigned)_S 80 _t
(int)_S 80 _t
(address,)_S 80 _t
(int)_S 80 _t
(irq,)_S 80 _t
(unsigned)_S 80 _t
(int)_S 80 _t
(buffsize\);)_S 1800 2781 _m
(void)_S 80 _t
(vrl_SerialClose\(vrl_SerialPort)_S 80 _t
(*port\);)_S 1800 2648 _m
(void)_S 80 _t
(vrl_SerialCloseAll\(void\);)_S 1800 2515 _m
(void)_S 80 _t
(vrl_SerialSetParameters\(vrl_SerialPort)_S 80 _t
(*port,)_S 80 _t
(unsigned)_S 80 _t
(int)_S 80 _t
(baud,)_S 2400 2382 _m
(vrl_ParityType)_S 80 _t
(parity,)_S 80 _t
(int)_S 80 _t
(databits,)_S 80 _t
(int)_S 80 _t
(stopbits\);)_S /Times-RomanR 600 _ff
1200 1960 _m
(The)_S 67 _t
1578 1960 _m
/Times-ItalicR 600 _ff
(address)_S 2200 1960 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(to)_S 67 _t
(vrl_SerialOpen\(\))_S 67 _t
(is)_S 67 _t
(interpreted)_S 67 _t
(differently)_S 67 _t
(on)_S 67 _t
(different)_S 67 _t
(platforms;)_S 67 _t
(on)_S 1200 1727 _m
(PC-compatible)_S 67 _t
(machines,)_S 67 _t
(it's)_S 67 _t
(the)_S 67 _t
(base)_S 67 _t
(address)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(UART)_S 67 _t
(chip)_S 67 _t
(\(usually)_S 67 _t
(0x3F8)_S 67 _t
(for)_S 67 _t
(COM1,)_S 8800 1255 _m
(48)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11853 _m
(0x2F8)_S 67 _t
(for)_S 67 _t
(COM2\).)_S 134 _t
(The)_S 67 _t
3263 11853 _m
/Times-ItalicR 600 _ff
(irq)_S 3496 11853 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(is)_S 67 _t
(also)_S 67 _t
(system-dependent;)_S 67 _t
(on)_S 67 _t
(PC-compatible)_S 67 _t
(machines,)_S 1200 11620 _m
(it's)_S 67 _t
(the)_S 67 _t
(hardware)_S 67 _t
(interrupt)_S 67 _t
(level)_S 67 _t
(the)_S 67 _t
(serial)_S 67 _t
(port)_S 67 _t
(uses)_S 67 _t
(\(usually)_S 67 _t
(4)_S 67 _t
(for)_S 67 _t
(COM1,)_S 67 _t
(3)_S 67 _t
(for)_S 67 _t
(COM2\).)_S 1800 11152 _m
(The)_S 67 _t
2178 11152 _m
/Times-ItalicR 600 _ff
(buffsize)_S 2789 11152 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(size)_S 67 _t
(of)_S 67 _t
(buffer)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(for)_S 67 _t
(incoming)_S 67 _t
(data.)_S 134 _t
(If)_S 67 _t
(it's)_S 67 _t
(set)_S 67 _t
(to)_S 1200 10919 _m
(zero,)_S 67 _t
(the)_S 67 _t
(port)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(non-buffered)_S 67 _t
(mode;)_S 67 _t
(this)_S 67 _t
(may)_S 67 _t
(mean)_S 67 _t
(that)_S 67 _t
(characters)_S 67 _t
(get)_S 67 _t
(lost.)_S 134 _t
(Such)_S 67 _t
(a)_S 1200 10686 _m
(mode)_S 67 _t
(would)_S 67 _t
(only)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(if)_S 67 _t
(you're)_S 67 _t
(doing)_S 67 _t
(your)_S 67 _t
(own)_S 67 _t
(handshake)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(device;)_S 67 _t
(in)_S 67 _t
(other)_S 1200 10453 _m
(words,)_S 67 _t
(you)_S 67 _t
(send)_S 67 _t
(it)_S 67 _t
(a)_S 67 _t
(byte)_S 67 _t
(to)_S 67 _t
(poll)_S 67 _t
(it,)_S 67 _t
(and)_S 67 _t
(then)_S 67 _t
(sit)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(tight)_S 67 _t
(loop)_S 67 _t
(receiving)_S 67 _t
(the)_S 67 _t
(resulting)_S 67 _t
(data.)_S 67 _t
1200 10218 _m
(In)_S 67 _t
(this)_S 67 _t
(case,)_S 67 _t
(the)_S 67 _t
2562 10218 _m
/Times-ItalicR 600 _ff
(irq)_S 2796 10218 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(ignored.)_S 1800 9750 _m
(The)_S 67 _t
2178 9750 _m
/Times-ItalicR 600 _ff
(baud)_S 2578 9750 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(vrl_SerialSetParameters\(\))_S 67 _t
(function)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(baud)_S 67 _t
(rate;)_S 67 _t
(this)_S 67 _t
(is)_S 1200 9515 _m
(usually)_S 67 _t
(9600)_S 67 _t
(for)_S 67 _t
(most)_S 67 _t
(input)_S 67 _t
(devices.)_S 134 _t
(The)_S 67 _t
4708 9515 _m
/Times-ItalicR 600 _ff
(parity)_S 5186 9515 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(is)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(VRL_PARITY_NONE,)_S 1200 9282 _m
(VRL_PARITY_EVEN)_S 67 _t
(or)_S 67 _t
(VRL_PARITY_ODD;)_S 67 _t
(most)_S 67 _t
(devices)_S 67 _t
(use)_S 67 _t
(VRL_PARITY_NONE.)_S 67 _t
1200 9047 _m
(The)_S 67 _t
1578 9047 _m
/Times-ItalicR 600 _ff
(databits)_S 2223 9047 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(data)_S 67 _t
(bits)_S 67 _t
(per)_S 67 _t
(transmitted)_S 67 _t
(byte;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(either)_S 67 _t
(7)_S 67 _t
(or)_S 67 _t
(8,)_S 67 _t
(and)_S 1200 8814 _m
(most)_S 67 _t
(devices)_S 67 _t
(use)_S 67 _t
(8.)_S 134 _t
(The)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(stop)_S 67 _t
(bits)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(1)_S 67 _t
(or)_S 67 _t
(2,)_S 67 _t
(and)_S 67 _t
(is)_S 67 _t
(usually)_S 67 _t
(1.)_S 134 _t
(Newly-opened)_S 1200 8581 _m
(serial)_S 67 _t
(ports)_S 67 _t
(are)_S 67 _t
(set)_S 67 _t
(up)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(9600)_S 67 _t
(baud,)_S 67 _t
(VRL_PARITY_NONE,)_S 67 _t
(8)_S 67 _t
(data)_S 67 _t
(bits)_S 67 _t
(and)_S 67 _t
(1)_S 67 _t
(stop)_S 67 _t
(bit.)_S 1800 8115 _m
(The)_S 67 _t
(vrl_SerialCheck\(\))_S 67 _t
(routine)_S 67 _t
(will)_S 67 _t
(return)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value)_S 67 _t
(if)_S 67 _t
(there)_S 67 _t
(are)_S 67 _t
(unread)_S 1200 7882 _m
(characters)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(input)_S 67 _t
(buffer)_S 67 _t
(\(or)_S 67 _t
(if)_S 67 _t
(there's)_S 67 _t
(a)_S 67 _t
(character)_S 67 _t
(waiting)_S 67 _t
(at)_S 67 _t
(the)_S 67 _t
(UART)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(port)_S 67 _t
(is)_S 67 _t
(in)_S 1200 7649 _m
(unbuffered)_S 67 _t
(mode\).)_S 134 _t
(The)_S 67 _t
(vrl_SerialGetc\(\))_S 67 _t
(routine)_S 67 _t
(reads)_S 67 _t
(and)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(byte.)_S 134 _t
(It)_S 67 _t
(should)_S 67 _t
(not)_S 67 _t
(be)_S 1200 7416 _m
(called)_S 67 _t
(unless)_S 67 _t
(you)_S 67 _t
(know)_S 67 _t
(there's)_S 67 _t
(a)_S 67 _t
(character)_S 67 _t
(waiting;)_S 67 _t
(in)_S 67 _t
(buffered)_S 67 _t
(mode,)_S 67 _t
(such)_S 67 _t
(a)_S 67 _t
(call)_S 67 _t
(will)_S 67 _t
(return)_S 1200 7183 _m
(zero,)_S 67 _t
(while)_S 67 _t
(in)_S 67 _t
(unbuffered)_S 67 _t
(mode)_S 67 _t
(the)_S 67 _t
(call)_S 67 _t
(will)_S 67 _t
(block)_S 67 _t
(until)_S 67 _t
(a)_S 67 _t
(character)_S 67 _t
(arrives!)_S 134 _t
(The)_S 1200 6950 _m
(vrl_SerialFlush\(\))_S 67 _t
(routine)_S 67 _t
(will)_S 67 _t
(get)_S 67 _t
(rid)_S 67 _t
(of)_S 67 _t
(any)_S 67 _t
(characters)_S 67 _t
(waiting)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(input)_S 67 _t
(buffer.)_S 1800 6538 _m
/CourierR 400 _ff
(vrl_Boolean)_S 80 _t
(vrl_SerialCheck\(vrl_SerialPort)_S 80 _t
(*port\);)_S 1800 6405 _m
(unsigned)_S 80 _t
(int)_S 80 _t
(vrl_SerialGetc\(vrl_SerialPort)_S 80 _t
(*port\);)_S 1800 6272 _m
(void)_S 80 _t
(vrl_SerialFlush\(vrl_SerialPort)_S 80 _t
(*p\);)_S /Times-RomanR 600 _ff
1200 5852 _m
(The)_S 67 _t
(vrl_SerialPutc\(\))_S 67 _t
(and)_S 67 _t
(vrl_SerialPutString\(\))_S 67 _t
(routines)_S 67 _t
(put)_S 67 _t
(out)_S 67 _t
(single)_S 67 _t
(characters)_S 67 _t
(and)_S 67 _t
(null-)_S 1200 5619 _m
(terminated)_S 67 _t
(strings)_S 67 _t
(of)_S 67 _t
(characters)_S 67 _t
(respectively.)_S 134 _t
(The)_S 67 _t
(terminating)_S 67 _t
(null)_S 67 _t
(byte)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(send)_S 67 _t
(by)_S 1200 5386 _m
(vrl_SerialPutString\(\).)_S 1800 4974 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_SerialPutc\(unsigned)_S 80 _t
(int)_S 80 _t
(c,)_S 80 _t
(vrl_SerialPort)_S 80 _t
(*port\);)_S 1800 4841 _m
(void)_S 80 _t
(vrl_SerialPutString\(unsigned)_S 80 _t
(char)_S 80 _t
(*s,)_S 80 _t
(vrl_SerialPort)_S 80 _t
(*p\);)_S /Times-RomanR 600 _ff
1200 4421 _m
(There)_S 67 _t
(are)_S 67 _t
(also)_S 67 _t
(two)_S 67 _t
(routines)_S 67 _t
(for)_S 67 _t
(controlling)_S 67 _t
(the)_S 67 _t
(state)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(DTR)_S 67 _t
(and)_S 67 _t
(RTS)_S 67 _t
(lines:)_S 1800 4009 _m
/CourierR 400 _ff
(void)_S 80 _t
(vrl_SerialSetDTR\(vrl_SerialPort)_S 80 _t
(*port,)_S 80 _t
(vrl_Boolean)_S 80 _t
(value\);)_S 1800 3876 _m
(void)_S 80 _t
(vrl_SerialSetRTS\(vrl_SerialPort)_S 80 _t
(*port,)_S 80 _t
(vrl_Boolean)_S 80 _t
(value\);)_S /Times-RomanR 600 _ff
1200 3193 _m
/Times-BoldR 720 _ff
(Packet)_S 80 _t
(Routines)_S 2880 3193 _m
/Times-RomanR 600 _ff
1200 2717 _m
(Many)_S 67 _t
(serial)_S 67 _t
(devices)_S 67 _t
(communicate)_S 67 _t
(by)_S 67 _t
(sending)_S 67 _t
("packets")_S 67 _t
(of)_S 67 _t
(data.)_S 134 _t
(There)_S 67 _t
(are)_S 67 _t
(four)_S 67 _t
(routines)_S 67 _t
(in)_S 1200 2484 _m
(AVRIL)_S 67 _t
(to)_S 67 _t
(support)_S 67 _t
(the)_S 67 _t
(reception)_S 67 _t
(of)_S 67 _t
(packets:)_S 1800 2072 _m
/CourierR 400 _ff
(vrl_DevicePacketBuffer)_S 80 _t
(*vrl_DeviceCreatePacketBuffer\(int)_S 80 _t
(buffsize\);)_S 1800 1939 _m
(void)_S 80 _t
(vrl_DeviceDestroyPacketBuffer\(vrl_DevicePacketBuffer)_S 80 _t
(*buff\);)_S 1800 1806 _m
(vrl_Boolean)_S 80 _t
(vrl_DeviceGetPacket\(vrl_SerialPort)_S 80 _t
(*port,)_S 80 _t
(vrl_DevicePacketBuffer)_S 80 _t
(*buff\);)_S 8800 1255 _m
/Times-RomanR 600 _ff
(49)_S /CourierR 400 _ff
_ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(unsigned)_S 80 _t
(char)_S 80 _t
(*vrl_DevicePacketGetBuffer\(vrl_DevicePacketBuffer)_S 80 _t
(*buff\);)_S /Times-RomanR 600 _ff
1200 11489 _m
(The)_S 67 _t
(vrl_DeviceCreatePacketBuffer\(\))_S 67 _t
(function)_S 67 _t
(creates)_S 67 _t
(a)_S 67 _t
(packet)_S 67 _t
(buffer)_S 67 _t
(with)_S 67 _t
(room)_S 67 _t
(for)_S 67 _t
(the)_S 1200 11256 _m
(specified)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(bytes;)_S 67 _t
(vrl_DeviceDestroyPacketBuffer\(\))_S 67 _t
(destroys)_S 67 _t
(such)_S 67 _t
(a)_S 67 _t
(buffer.)_S 134 _t
(The)_S 1200 11023 _m
(vrl_DevicePacketGetBuffer\(\))_S 67 _t
(routine)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(actual)_S 67 _t
(data)_S 67 _t
(packet.)_S 1800 10557 _m
(The)_S 67 _t
(vrl_DeviceGetPacket\(\))_S 67 _t
(routine)_S 67 _t
(is)_S 67 _t
(designed)_S 67 _t
(to)_S 67 _t
(handle)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(type)_S 67 _t
(of)_S 67 _t
(packet,)_S 67 _t
(a)_S 1200 10324 _m
(fixed-size)_S 67 _t
(one)_S 67 _t
(in)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(leading)_S 67 _t
(byte)_S 67 _t
(has)_S 67 _t
(the)_S 67 _t
(top)_S 67 _t
(bit)_S 67 _t
(set)_S 67 _t
(and)_S 67 _t
(none)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(other)_S 67 _t
(bytes)_S 67 _t
(do.)_S 67 _t
1200 10091 _m
(This)_S 67 _t
(format)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(Logitech)_S 67 _t
(Cyberman,)_S 67 _t
(among)_S 67 _t
(other)_S 67 _t
(devices.)_S 134 _t
(You)_S 67 _t
(can)_S 67 _t
(use)_S 67 _t
(this)_S 1200 9858 _m
(routine)_S 67 _t
(directly,)_S 67 _t
(or)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(write)_S 67 _t
(your)_S 67 _t
(own)_S 67 _t
(\(with)_S 67 _t
(a)_S 67 _t
(different)_S 67 _t
(name,)_S 67 _t
(of)_S 67 _t
(course\);)_S 67 _t
(the)_S 67 _t
(source)_S 1200 9625 _m
(code)_S 67 _t
(is)_S 67 _t
(found)_S 67 _t
(in)_S 67 _t
(packet.c,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(vrl_DevicePacketBuffer)_S 67 _t
(data)_S 67 _t
(structure)_S 67 _t
(is)_S 67 _t
(in)_S 67 _t
(avril.h)_S 67 _t
(\(and)_S 67 _t
(it's)_S 1200 9392 _m
(not)_S 67 _t
(expected)_S 67 _t
(to)_S 67 _t
(change,)_S 67 _t
(unlike)_S 67 _t
(many)_S 67 _t
(other)_S 67 _t
(internal)_S 67 _t
(data)_S 67 _t
(structures\).)_S 134 _t
(The)_S 1200 9159 _m
(vrl_DeviceGetPacket\(\))_S 67 _t
(routine)_S 67 _t
(returns)_S 67 _t
(a)_S 67 _t
(non-zero)_S 67 _t
(value)_S 67 _t
(if)_S 67 _t
(a)_S 67 _t
(complete)_S 67 _t
(packet)_S 67 _t
(has)_S 67 _t
(been)_S 1200 8924 _m
(received)_S 67 _t
(\(i.e.)_S 67 _t
(exactly)_S 67 _t
2967 8924 _m
/Times-ItalicR 600 _ff
(buffsize)_S 3578 8924 _m
/Times-RomanR 600 _ff
67 _t
(bytes)_S 67 _t
(have)_S 67 _t
(been)_S 67 _t
(received,)_S 67 _t
(starting)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(byte)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(top)_S 67 _t
(bit)_S 1200 8691 _m
(set\).)_S 8800 1255 _m
(50)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11549 _m
/Times-RomanR 900 _ff
(Some)_S 100 _t
(Final)_S 100 _t
(Notes)_S 3400 11549 _m
/Times-RomanR 600 _ff
1800 11056 _m
(This)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
(official)_S 67 _t
(release)_S 67 _t
(of)_S 67 _t
(AVRIL,)_S 67 _t
(so)_S 67 _t
(the)_S 67 _t
(paint)_S 67 _t
(may)_S 67 _t
(not)_S 67 _t
(be)_S 67 _t
(quite)_S 67 _t
(dry)_S 67 _t
(yet.)_S 134 _t
(If)_S 1200 10823 _m
(you)_S 67 _t
(run)_S 67 _t
(into)_S 67 _t
(any)_S 67 _t
(problems,)_S 67 _t
(my)_S 67 _t
(email)_S 67 _t
(address)_S 67 _t
(is)_S 67 _t
([email protected];)_S 67 _t
(be)_S 67 _t
(sure)_S 67 _t
(to)_S 67 _t
(put)_S 67 _t

(AVRIL)_S 1200 10590 _m
(in)_S 67 _t
(the)_S 67 _t
(subject)_S 67 _t
(line)_S 67 _t
(so)_S 67 _t
(I)_S 67 _t
(know)_S 67 _t
(what)_S 67 _t
(it's)_S 67 _t
(about,)_S 67 _t
(otherwise)_S 67 _t
(it)_S 67 _t
(might)_S 67 _t
(take)_S 67 _t
(me)_S 67 _t
(days)_S 67 _t
(to)_S 67 _t
(get)_S 67 _t
(back)_S 67 _t
(to)_S 1200 10357 _m
(you.)_S 134 _t
(\(It)_S 67 _t
(might)_S 67 _t
(anyway...\))_S 1200 9861 _m
/Times-BoldR 720 _ff
(Support)_S 80 _t
(for)_S 80 _t
(AVRIL)_S 3280 9861 _m
/Times-RomanR 600 _ff
1800 9385 _m
(There)_S 67 _t
(are)_S 67 _t
(two)_S 67 _t
(electronic)_S 67 _t
(mailing)_S 67 _t
(lists)_S 67 _t
(for)_S 67 _t
(discussing)_S 67 _t
(AVRIL.)_S 134 _t
(The)_S 67 _t
(first)_S 67 _t
(list)_S 67 _t
(is)_S 67 _t
(called)_S 1200 9150 _m
/Times-ItalicR 600 _ff
(avril-announce)_S 2422 9150 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
(and)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(announcements)_S 67 _t
(of)_S 67 _t
(new)_S 67 _t
(releases,)_S 67 _t
(utilities,)_S 67 _t
(applications)_S 67 _t
(and)_S 67 _t
(so)_S 1200 8915 _m
(on.)_S 134 _t
(The)_S 67 _t
(second)_S 67 _t
(list)_S 67 _t
(is)_S 67 _t
(called)_S 67 _t
3641 8915 _m
/Times-ItalicR 600 _ff
(avril-developers)_S 4952 8915 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
(and)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(way)_S 67 _t
(for)_S 67 _t
(people)_S 67 _t
(who)_S 67 _t
(are)_S 1200 8682 _m
(developing)_S 67 _t
(applications)_S 67 _t
(using)_S 67 _t
(AVRIL)_S 67 _t
(to)_S 67 _t
(communicate)_S 67 _t
(and)_S 67 _t
(exchange)_S 67 _t
(ideas.)_S 1800 8216 _m
(To)_S 67 _t
(subscribe)_S 67 _t
(to)_S 67 _t
(either)_S 67 _t
(or)_S 67 _t
(both)_S 67 _t
(lists,)_S 67 _t
(send)_S 67 _t
(mail)_S 67 _t
(to)_S 67 _t
([email protected])_S 67 _t
(with)_S 1200 7983 _m
(the)_S 67 _t
(following)_S 67 _t
(line\(s\))_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(body)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(message:)_S 1800 7571 _m
/CourierR 400 _ff
(subscribe)_S 80 _t
(avril-announce)_S 80 _t
(YourName)_S 1800 7438 _m
(subscribe)_S 80 _t
(avril-developers)_S 80 _t
(YourName)_S /Times-RomanR 600 _ff
1200 7018 _m
(To)_S 67 _t
(unsubscribe)_S 67 _t
(from)_S 67 _t
(either)_S 67 _t
(or)_S 67 _t
(both)_S 67 _t
(lists,)_S 67 _t
(do)_S 67 _t
(the)_S 67 _t
(exact)_S 67 _t
(same)_S 67 _t
(thing)_S 67 _t
(but)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(word)_S 1200 6785 _m
("unsubscribe")_S 67 _t
(instead)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(word)_S 67 _t
("subscribe".)_S 1200 6289 _m
/Times-BoldR 720 _ff
(Future)_S 80 _t
(Features)_S 2880 6289 _m
/Times-RomanR 600 _ff
1800 5813 _m
(Features)_S 67 _t
(that)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(added)_S 67 _t
(in)_S 67 _t
(future)_S 67 _t
(releases)_S 67 _t
(include)_S 67 _t
(routines)_S 67 _t
(for)_S 67 _t
(handling)_S 67 _t
(stereoscopic)_S 1200 5580 _m
(viewing,)_S 67 _t
(sound,)_S 67 _t
(networking,)_S 67 _t
(and)_S 67 _t
(an)_S 67 _t
(application)_S 67 _t
(language)_S 67 _t
(of)_S 67 _t
(some)_S 67 _t
(sort.)_S 1800 5114 _m
(The)_S 67 _t
(latest)_S 67 _t
(release)_S 67 _t
(of)_S 67 _t
(AVRIL)_S 67 _t
(can)_S 67 _t
(always)_S 67 _t
(be)_S 67 _t
(found)_S 67 _t
(on)_S 67 _t
(sunee.uwaterloo.ca,)_S 67 _t
(in)_S 67 _t
(the)_S 1200 4881 _m
(pub/avril)_S 67 _t
(directory.)_S 134 _t
(I)_S 67 _t
(will)_S 67 _t
(also)_S 67 _t
(try)_S 67 _t
(to)_S 67 _t
(put)_S 67 _t
(the)_S 67 _t
(latest)_S 67 _t
(version)_S 67 _t
(on)_S 67 _t
(major)_S 67 _t
(sites)_S 67 _t
(such)_S 67 _t
(as)_S 1200 4648 _m
(wuarchive.wustl.edu,)_S 67 _t
(oak.oakland.edu,)_S 67 _t
(x2ftp.oulu.fi)_S 67 _t
(and)_S 67 _t
(possibly)_S 67 _t
(others.)_S 134 _t
(Please)_S 67 _t
(feel)_S 67 _t
(free)_S 67 _t
(to)_S 1200 4415 _m
(make)_S 67 _t
(it)_S 67 _t
(available)_S 67 _t
(to)_S 67 _t
(everyone;)_S 67 _t
(the)_S 67 _t
(only)_S 67 _t
(restrictions)_S 67 _t
(are)_S 67 _t
(that)_S 67 _t
(you)_S 67 _t
(can't)_S 67 _t
(sell)_S 67 _t
(it)_S 67 _t
(\(since)_S 67 _t

(it's)_S 67 _t
(free!\))_S 1200 4182 _m
(and)_S 67 _t
(you)_S 67 _t
(can't)_S 67 _t
(develop)_S 67 _t
(commercial)_S 67 _t
(applications)_S 67 _t
(without)_S 67 _t
(properly)_S 67 _t
(licensing)_S 67 _t
(it.)_S 1800 3716 _m
(There)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(a)_S 67 _t
(new)_S 67 _t
(release)_S 67 _t
(of)_S 67 _t
(AVRIL)_S 67 _t
(every)_S 67 _t
(few)_S 67 _t
(months;)_S 67 _t
(starting)_S 67 _t
(with)_S 67 _t
(version)_S 1200 3483 _m
(2.00,)_S 67 _t
(AVRIL)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(ported)_S 67 _t
(to)_S 67 _t
(several)_S 67 _t
(other)_S 67 _t
(platforms.)_S 1800 3017 _m
(In)_S 67 _t
(the)_S 67 _t
(meantime,)_S 67 _t
(I)_S 67 _t
(hope)_S 67 _t
(you)_S 67 _t
(enjoy)_S 67 _t
(using)_S 67 _t
(AVRIL.)_S 8800 1255 _m
(51)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11592 _m
/Times-BoldR 720 _ff
(Appendix)_S 80 _t
(A)_S 80 _t
(-)_S 80 _t
(REVISION)_S 80 _t
(HISTORY)_S 5067 11592 _m
/Times-RomanR 600 _ff
1200 11116 _m
(This)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
(major)_S 67 _t
(release)_S 67 _t
(of)_S 67 _t
(AVRIL.)_S 134 _t
(There)_S 67 _t
(have)_S 67 _t
(been)_S 67 _t
(several)_S 67 _t
(changes)_S 67 _t
(since)_S 67 _t
(the)_S 67 _t
(pre-)_S 1200 10883 _m
(release)_S 67 _t
(version)_S 67 _t
(0.9c;)_S 67 _t
(they)_S 67 _t
(are)_S 67 _t
(listed)_S 67 _t
(below.)_S 134 _t
(It's)_S 67 _t
(not)_S 67 _t
(anticipated)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(kind)_S 67 _t
(of)_S 67 _t
(sweeping)_S 1200 10650 _m
(changes)_S 67 _t
(described)_S 67 _t
(here)_S 67 _t
(will)_S 67 _t
(happen)_S 67 _t
(in)_S 67 _t
(future)_S 67 _t
(releases)_S 67 _t
(of)_S 67 _t
(AVRIL.)_S 1200 10184 _m
/Times-BoldR 600 _ff
(Changes)_S 67 _t
(since)_S 67 _t
(version)_S 67 _t
(1.0:)_S /Times-RomanR 600 _ff
1200 9718 _m
(Added)_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(Polhemus)_S 67 _t
(Isotrak.)_S 1200 9252 _m
(Added)_S 67 _t
(the)_S 67 _t
(functions)_S 67 _t
(vrl_ObjectLookAt\(\),)_S 67 _t
(vrl_CameraLookAt\(\))_S 67 _t
(and)_S 67 _t
(vrl_LightLookAt\(\).)_S 1200 8786 _m
(Simplified)_S 67 _t
(the)_S 67 _t
(code)_S 67 _t
(in)_S 67 _t
(cfg.c;)_S 67 _t
(as)_S 67 _t
(several)_S 67 _t
(people)_S 67 _t
(pointed)_S 67 _t
(out,)_S 67 _t
(it)_S 67 _t
(was)_S 67 _t
(a)_S 67 _t
(complicated)_S 67 _t
(solution)_S 67 _t
(to)_S 67 _t
(a)_S 1200 8553 _m
(simple)_S 67 _t
(problem.)_S 134 _t
(Devices)_S 67 _t
(now)_S 67 _t
(have)_S 67 _t
("nicknames")_S 67 _t
(by)_S 67 _t
(which)_S 67 _t
(they)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(referenced)_S 67 _t
(by)_S 67 _t
(the)_S 1200 8320 _m
(application,)_S 67 _t
(eliminating)_S 67 _t
(the)_S 67 _t
(need)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(cfg.c)_S 67 _t
(code)_S 67 _t
(to)_S 67 _t
(keep)_S 67 _t
(track)_S 67 _t
(of)_S 67 _t
(that)_S 67 _t
(information.)_S 134 _t
(The)_S 1200 8085 _m
(configuration)_S 67 _t
(file)_S 67 _t
(is)_S 67 _t
(read)_S 67 _t
3290 8085 _m
/Times-ItalicR 600 _ff
(after)_S 3668 8085 _m
/Times-RomanR 600 _ff
67 _t
(\(not)_S 67 _t
(before\))_S 67 _t
(vrl_SystemStartup\(\))_S 67 _t
(is)_S 67 _t
(called,)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
("display")_S 1200 7852 _m
(statement)_S 67 _t
(will)_S 67 _t
(simply)_S 67 _t
(re-initialize)_S 67 _t
(the)_S 67 _t
(display)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(new)_S 67 _t
(driver)_S 67 _t
(and/or)_S 67 _t
(mode.)_S 1200 7386 _m
(Fixed)_S 67 _t
(a)_S 67 _t
(bug)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(horizon)_S 67 _t
(routine)_S 67 _t
(that)_S 67 _t
(had)_S 67 _t
(caused)_S 67 _t
(sky)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(displayed)_S 67 _t
(when)_S 67 _t
(looking)_S 67 _t
(straight)_S 1200 7153 _m
(down,)_S 67 _t
(and)_S 67 _t
(ground)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(displayed)_S 67 _t
(when)_S 67 _t
(looking)_S 67 _t
(straight)_S 67 _t
(up.)_S 1200 6687 _m
/Times-BoldR 600 _ff
(Changes)_S 67 _t
(since)_S 67 _t
(version)_S 67 _t
(0.9c:)_S /Times-RomanR 600 _ff
1200 6221 _m
(Added)_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(multi-channel)_S 67 _t
(input)_S 67 _t
(devices.)_S 1200 5755 _m
(Added)_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(serial)_S 67 _t
(communications.)_S 1200 5289 _m
(Renamed)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(types)_S 67 _t
(to)_S 67 _t
(begin)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
("vrl_")_S 67 _t
(prefix;)_S 67 _t
(the)_S 67 _t
(types)_S 67 _t
(affected)_S 67 _t
(are)_S 67 _t
(Scalar,)_S 67 _t
(Factor,)_S 1200 5056 _m
(Angle,)_S 67 _t
(Vector)_S 67 _t
(and)_S 67 _t
(Matrix.)_S 134 _t
(Also)_S 67 _t
(changed)_S 67 _t
(UNITY)_S 67 _t
(to)_S 67 _t
(VRL_UNITY.)_S 134 _t
(There)_S 67 _t
(are)_S 67 _t
(#defines)_S 67 _t
(at)_S 67 _t
(the)_S 1200 4823 _m
(end)_S 67 _t
(of)_S 67 _t
(avril.h)_S 67 _t
(to)_S 67 _t
(ease)_S 67 _t
(the)_S 67 _t
(transition;)_S 67 _t
(they'll)_S 67 _t
(be)_S 67 _t
(removed)_S 67 _t
(for)_S 67 _t
(version)_S 67 _t
(2.00.)_S 1200 4357 _m
(Added)_S 67 _t
(vrl_Boolean)_S 67 _t
(and)_S 67 _t
(vrl_Time)_S 67 _t
(types.)_S 1200 3891 _m
(Modified)_S 67 _t
(avril.h)_S 67 _t
(to)_S 67 _t
(#include)_S 67 _t
()_S 67 _t
(and)_S 67 _t
(#include)_S 67 _t
()_S 67 _t
(\(for)_S 67 _t
(memcpy\(\)\).)_S 1200 3425 _m
(Added)_S 67 _t
(#defines)_S 67 _t
(for)_S 67 _t
(XROT,)_S 67 _t
(YROT)_S 67 _t
(and)_S 67 _t
(ZROT)_S 67 _t
(for)_S 67 _t
(indexing)_S 67 _t
(device)_S 67 _t
(channels.)_S 1200 2959 _m
(Added)_S 67 _t
(various)_S 67 _t
(additional)_S 67 _t
(vector)_S 67 _t
(and)_S 67 _t
(matrix)_S 67 _t
(functions)_S 67 _t
(such)_S 67 _t
(as)_S 67 _t
(vrl_VectorNegate\(\))_S 67 _t
(and)_S 1200 2726 _m
(vrl_VectorEqual\(\).)_S 134 _t
(Also)_S 67 _t
(added)_S 67 _t
(a)_S 67 _t
(new)_S 67 _t
(global)_S 67 _t
(variable,)_S 67 _t
(the)_S 67 _t
(null)_S 67 _t
(vector)_S 67 _t
(vrl_VectorNULL.)_S 1200 2260 _m
(Added)_S 67 _t
(a)_S 67 _t
("leftside")_S 67 _t
(parameter)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(vrl_MatrixRotX\(\),)_S 67 _t
(vrl_MatrixRotY\(\),)_S 67 _t
(vrl_MatrixRotZ\(\),)_S 1200 2027 _m
(and)_S 67 _t
(vrl_MatrixRotVector\(\))_S 67 _t
(functions.)_S 8800 1255 _m
(52)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(Removed)_S 67 _t
(the)_S 67 _t
(vrl_List)_S 67 _t
(structure)_S 67 _t
(and)_S 67 _t
(put)_S 67 _t
(names)_S 67 _t
(into)_S 67 _t
(the)_S 67 _t
(structs)_S 67 _t
(for)_S 67 _t
(vrl_Lights,)_S 67 _t
(vrl_Cameras,)_S 1200 11622 _m
(and)_S 67 _t
(vrl_Objects.)_S 134 _t
(Added)_S 67 _t
(functions)_S 67 _t
(for)_S 67 _t
(accessing)_S 67 _t
(those)_S 67 _t
(names,)_S 67 _t
(and)_S 67 _t
(for)_S 67 _t
(finding)_S 67 _t
(entities)_S 67 _t
(based)_S 1200 11389 _m
(on)_S 67 _t
(their)_S 67 _t
(name.)_S 134 _t
(Also)_S 67 _t
(added)_S 67 _t
(routines)_S 67 _t
(for)_S 67 _t
(traversing)_S 67 _t
(and)_S 67 _t
(iterating)_S 67 _t
(over)_S 67 _t
(the)_S 67 _t
(linked)_S 67 _t
(lists)_S 67 _t
(of)_S 1200 11156 _m
(vrl_Lights)_S 67 _t
(and)_S 67 _t
(vrl_Cameras.)_S 1200 10690 _m
(Added)_S 67 _t
(vrl_ObjectRotate\(\))_S 67 _t
(and)_S 67 _t
(vrl_ObjectTranslate\(\))_S 67 _t
(routines,)_S 67 _t
(and)_S 67 _t
(modified)_S 67 _t
(several)_S 67 _t
(older)_S 1200 10457 _m
(movement)_S 67 _t
(and)_S 67 _t
(rotation)_S 67 _t
(functions)_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(calls)_S 67 _t
(to)_S 67 _t
(those)_S 67 _t
(two.)_S 1200 9991 _m
(Made)_S 67 _t
(surface)_S 67 _t
(maps)_S 67 _t
(into)_S 67 _t
(a)_S 67 _t
(struct,)_S 67 _t
(rather)_S 67 _t
(than)_S 67 _t
(just)_S 67 _t
(an)_S 67 _t
(array)_S 67 _t
(of)_S 67 _t
(vrl_Surface)_S 67 _t
(pointers.)_S 134 _t
(This)_S 1200 9758 _m
(allows)_S 67 _t
(for)_S 67 _t
(additional)_S 67 _t
(information)_S 67 _t
(about)_S 67 _t
(a)_S 67 _t
(surface)_S 67 _t
(map)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(kept,)_S 67 _t
(and)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(surface)_S 67 _t
(maps)_S 67 _t
(to)_S 1200 9525 _m
(be)_S 67 _t
(kept)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(linked)_S 67 _t
(list.)_S 1200 9059 _m
(Added)_S 67 _t
(the)_S 67 _t
(notions)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(world)_S 67 _t
(having)_S 67 _t
("bounds")_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
("radius",)_S 67 _t
(and)_S 67 _t
(routines)_S 67 _t
(for)_S 67 _t
(supporting)_S 1200 8826 _m
(those)_S 67 _t
(notions.)_S 1200 8360 _m
(The)_S 67 _t
(RVD)_S 67 _t
(drivers)_S 67 _t
(are)_S 67 _t
(now)_S 67 _t
(searched)_S 67 _t
(for)_S 67 _t
(along)_S 67 _t
(the)_S 67 _t
(PATH,)_S 67 _t
(as)_S 67 _t
(well)_S 67 _t
(as)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(directory.)_S 1200 7894 _m
(Renamed)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(vrl_New*)_S 67 _t
(functions)_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(their)_S 67 _t
(naming)_S 67 _t
(consistent)_S 67 _t
(with)_S 67 _t
(everything)_S 67 _t
(else.)_S 67 _t
1200 7661 _m
(For)_S 67 _t
(example,)_S 67 _t
(vrl_NewObject\(\))_S 67 _t
(is)_S 67 _t
(now)_S 67 _t
(vrl_ObjectCreate\(\).)_S 134 _t
(Again,)_S 67 _t
(#defines)_S 67 _t
(were)_S 67 _t
(added)_S 67 _t
(to)_S 67 _t
(the)_S 1200 7428 _m
(end)_S 67 _t
(of)_S 67 _t
(avril.h)_S 67 _t
(to)_S 67 _t
(ease)_S 67 _t
(the)_S 67 _t
(transition;)_S 67 _t
(these)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(removed)_S 67 _t
(as)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(2.00)_S 67 _t
(release.)_S 1200 6962 _m
(Added)_S 67 _t
(a)_S 67 _t
(vrl_WorldUpdate\(\))_S 67 _t
(macro.)_S 1200 6496 _m
(Added)_S 67 _t
(application-specific)_S 67 _t
(data)_S 67 _t
(to)_S 67 _t
(vrl_Objects,)_S 67 _t
(vrl_Lights)_S 67 _t
(and)_S 67 _t
(vrl_Cameras.)_S 1200 6030 _m
(Added)_S 67 _t
(functions)_S 67 _t
(to)_S 67 _t
(vrl_Objects,)_S 67 _t
(which)_S 67 _t
(get)_S 67 _t
(called)_S 67 _t
(during)_S 67 _t
(world)_S 67 _t
(updating.)_S 1200 5564 _m
(Added)_S 67 _t
(ID)_S 67 _t
(numbers)_S 67 _t
(to)_S 67 _t
(facets.)_S 1200 5098 _m
(Renamed)_S 67 _t
(vrl_SetFigurePartArray\(\))_S 67 _t
(to)_S 67 _t
(vrl_SetReadFIGpartArray\(\))_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(more)_S 67 _t
(consistent.)_S 1200 4632 _m
(Switched)_S 67 _t
(to)_S 67 _t
(using)_S 67 _t
(standard)_S 67 _t
(the)_S 67 _t
(DOS)_S 67 _t
(timer)_S 67 _t
(\(at)_S 67 _t
(an)_S 67 _t
(accelerated)_S 67 _t
(rate,)_S 67 _t
(and)_S 67 _t
(chaining)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(old)_S 67 _t
(one)_S 1200 4399 _m
(periodically\))_S 67 _t
(because)_S 67 _t
(the)_S 67 _t
(RTC)_S 67 _t
(timer)_S 67 _t
(interfered)_S 67 _t
(with)_S 67 _t
(Turbo)_S 67 _t
(Debugger.)_S 1200 3933 _m
(Standardized)_S 67 _t
(on)_S 67 _t
(a)_S 67 _t
(tick)_S 67 _t
(rate)_S 67 _t
(of)_S 67 _t
(1000)_S 67 _t
(per)_S 67 _t
(second.)_S 1200 3467 _m
(Eliminated)_S 67 _t
(the)_S 67 _t
(vrl_TimerAddHandler\(\))_S 67 _t
(routine,)_S 67 _t
(since)_S 67 _t
(there)_S 67 _t
(was)_S 67 _t
(too)_S 67 _t
(much)_S 67 _t
(risk)_S 67 _t
(that)_S 67 _t
(handler)_S 1200 3234 _m
(routines)_S 67 _t
(would)_S 67 _t
(do)_S 67 _t
(things)_S 67 _t
(that)_S 67 _t
(ought)_S 67 _t
(not)_S 67 _t
(be)_S 67 _t
(done)_S 67 _t
(inside)_S 67 _t
(an)_S 67 _t
(interrupt)_S 67 _t
(handler;)_S 67 _t
(a)_S 67 _t
(bug)_S 67 _t
(in)_S 67 _t
(Borland)_S 1200 3001 _m
(C)_S 67 _t
(3.1)_S 67 _t
(bug)_S 67 _t
(also)_S 67 _t
(forced)_S 67 _t
(all)_S 67 _t
(routines)_S 67 _t
(called)_S 67 _t
(from)_S 67 _t
(within)_S 67 _t
(an)_S 67 _t
(interrupt)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(assembled)_S 67 _t
(without)_S 67 _t
(386)_S 1200 2768 _m
(instructions.)_S 1200 2302 _m
(Added)_S 67 _t
(a)_S 67 _t
(call)_S 67 _t
(to)_S 67 _t
(directly)_S 67 _t
(query)_S 67 _t
(the)_S 67 _t
(frames)_S 67 _t
(per)_S 67 _t
(second)_S 67 _t
(rate.)_S 8800 1255 _m
(53)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(Renamed)_S 67 _t
(the)_S 67 _t
(vrl_DrawCompass\(\))_S 67 _t
(and)_S 67 _t
(vrl_DropText\(\))_S 67 _t
(routines)_S 67 _t
(to)_S 1200 11622 _m
(vrl_UserInterfaceDrawCompass\(\))_S 67 _t
(and)_S 67 _t
(vrl_UserInterfaceDropText\(\))_S 67 _t
(to)_S 67 _t
(make)_S 67 _t
(it)_S 67 _t
(clear)_S 67 _t
(that)_S 1200 11389 _m
(they're)_S 67 _t
(a)_S 67 _t
(part)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(interface)_S 67 _t
(family)_S 67 _t
(of)_S 67 _t
(functions.)_S 1200 10923 _m
(Modified)_S 67 _t
(the)_S 67 _t
(vrl_PrimitiveSphere\(\))_S 67 _t
(routine)_S 67 _t
(to)_S 67 _t
(accept)_S 67 _t
(separate)_S 67 _t
(counts)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 1200 10690 _m
(longitudinal)_S 67 _t
(and)_S 67 _t
(latitiudinal)_S 67 _t
(sides.)_S 1200 10224 _m
(Add)_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(configuration)_S 67 _t
(files.)_S 1200 9758 _m

(Added)_S 67 _t
(the)_S 67 _t
(additional)_S 67 _t
(mouse)_S 67 _t
(routines)_S 67 _t
(vrl_MouseGetUsage\(\),)_S 67 _t
(vrl_MouseSetUsage\(\),)_S 1200 9525 _m
(vrl_MouseSetPointer\(\),)_S 67 _t
(vrl_MouseGetPointer\(\))_S 67 _t
(and)_S 67 _t
(vrl_MouseGetLimits\(\).)_S 8800 1255 _m
(54)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11592 _m
/Times-BoldR 720 _ff
(Appendix)_S 80 _t
(B)_S 80 _t
(-)_S 80 _t
(CFG)_S 80 _t
(FILE)_S 80 _t
(FORMAT)_S 4974 11592 _m
/Times-RomanR 600 _ff
1200 11116 _m
(A)_S 67 _t
(CFG)_S 67 _t
(file)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(platform-specific)_S 67 _t
(ascii)_S 67 _t
(file)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(describe)_S 67 _t
(the)_S 67 _t
(user's)_S 67 _t
(preferred)_S 67 _t
(configuration.)_S 67 _t
1200 10883 _m
(It)_S 67 _t
(contains)_S 67 _t
(a)_S 67 _t
(series)_S 67 _t
(of)_S 67 _t
(statements,)_S 67 _t
(one)_S 67 _t
(per)_S 67 _t
(line;)_S 67 _t
(anything)_S 67 _t
(after)_S 67 _t
(a)_S 67 _t
('#')_S 67 _t
(character)_S 67 _t
(on)_S 67 _t
(any)_S 67 _t
(given)_S 1200 10650 _m
(line)_S 67 _t
(is)_S 67 _t
(taken)_S 67 _t
(as)_S 67 _t
(a)_S 67 _t
(comment,)_S 67 _t
(and)_S 67 _t
(blank)_S 67 _t
(lines)_S 67 _t
(are)_S 67 _t
(ignored.)_S 134 _t
(At)_S 67 _t
(the)_S 67 _t
(moment,)_S 67 _t
(there)_S 67 _t
(are)_S 67 _t
(only)_S 67 _t
(a)_S 67 _t
(few)_S 1200 10417 _m
(statement)_S 67 _t
(types)_S 67 _t
(defined;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(expected)_S 67 _t
(to)_S 67 _t
(change.)_S 1200 9949 _m
(COMPASS)_S 67 _t
2201 9949 _m
/Times-ItalicR 600 _ff
(state)_S /Times-RomanR 600 _ff
1800 9714 _m
(If)_S 67 _t
2000 9714 _m
/Times-ItalicR 600 _ff
(state)_S 2378 9714 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
("on",)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(wants)_S 67 _t
(the)_S 67 _t
(compass)_S 67 _t
(displayed)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen.)_S 1200 9246 _m
(FRAMERATE)_S 67 _t
2478 9246 _m
/Times-ItalicR 600 _ff
(state)_S /Times-RomanR 600 _ff
1800 9011 _m
(If)_S 67 _t
2000 9011 _m
/Times-ItalicR 600 _ff
(state)_S 2378 9011 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
("on",)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(wants)_S 67 _t
(the)_S 67 _t
(frame)_S 67 _t
(rate)_S 67 _t
(displayed)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen.)_S 1200 8543 _m
(POSITION)_S 67 _t
2178 8543 _m
/Times-ItalicR 600 _ff
(state)_S /Times-RomanR 600 _ff
1800 8308 _m
(If)_S 67 _t
2000 8308 _m
/Times-ItalicR 600 _ff
(state)_S 2378 8308 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
("on",)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(user)_S 67 _t
(wants)_S 67 _t
(their)_S 67 _t
(current)_S 67 _t
(X,Z)_S 67 _t
(position)_S 67 _t
(displayed)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen.)_S 1200 7840 _m
(DISPLAYDRIVER)_S 67 _t
2856 7840 _m
/Times-ItalicR 600 _ff
(name)_S 3289 7840 _m
/Times-RomanR 600 _ff
67 _t
([)_S 3423 7840 _m
/Times-ItalicR 600 _ff
(mode)_S 3856 7840 _m
/Times-RomanR 600 _ff
(])_S 1800 7605 _m
(Specifies)_S 67 _t
(a)_S 67 _t
(display)_S 67 _t
(driver)_S 67 _t
(and)_S 67 _t
(mode)_S 67 _t
(to)_S 67 _t
(use;)_S 67 _t
(the)_S 67 _t
5736 7605 _m
/Times-ItalicR 600 _ff
(mode)_S 6169 7605 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(optional,)_S 67 _t
(and)_S 67 _t
(both)_S 67 _t
(are)_S 67 _t
8299 7605 _m
/Times-ItalicR 600 _ff
(name)_S /Times-RomanR 600 _ff
1800 7370 _m
(and)_S 67 _t
2156 7370 _m
/Times-ItalicR 600 _ff
(mode)_S 2589 7370 _m
/Times-RomanR 600 _ff
67 _t
(are)_S 67 _t
(platform-specific.)_S 1200 6902 _m
(DEVICE)_S 67 _t
2000 6902 _m
/Times-ItalicR 600 _ff
(name)_S 67 _t
(type)_S 67 _t
(mode)_S 67 _t
(address)_S 67 _t
(irq)_S 67 _t
(buffsize)_S /Times-RomanR 600 _ff
1800 6669 _m
(Sets)_S 67 _t
(up)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(driver,)_S 67 _t
(and)_S 67 _t
(assigns)_S 67 _t
(it)_S 67 _t
(a)_S 67 _t
(symbolic)_S 67 _t
(name)_S 67 _t
(that)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(referenced)_S 67 _t
(by)_S 67 _t
(the)_S 1800 6434 _m
(application.)_S 134 _t
(The)_S 67 _t
3251 6434 _m
/Times-ItalicR 600 _ff
(type)_S 3584 6434 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(name)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(type,)_S 67 _t
(like)_S 67 _t
("Cyberman")_S 67 _t
(or)_S 1800 6199 _m
("Spaceball".)_S 134 _t
(The)_S 67 _t
3303 6199 _m
/Times-ItalicR 600 _ff
(mode)_S 3736 6199 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(passed)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(using)_S 67 _t
(vrl_DeviceSetMode\(\),)_S 67 _t
(and)_S 67 _t
(the)_S 1800 5964 _m
/Times-ItalicR 600 _ff
(address)_S 2422 5964 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
2539 5964 _m
/Times-ItalicR 600 _ff
(irq)_S 2773 5964 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
3195 5964 _m
/Times-ItalicR 600 _ff
(buffsize)_S 3807 5964 _m

/Times-RomanR 600 _ff
67 _t
(fields)_S 67 _t
(are)_S 67 _t
(just)_S 67 _t
(passed)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(call)_S 67 _t
(to)_S 67 _t
(vrl_SerialOpen\(\);)_S 67 _t
(see)_S 67 _t
(the)_S 1800 5729 _m
(section)_S 67 _t
(on)_S 67 _t
(Serial)_S 67 _t
(Ports)_S 67 _t
(for)_S 67 _t
(details.)_S 134 _t
(All)_S 67 _t
(parameters)_S 67 _t
(except)_S 67 _t
(the)_S 67 _t
6886 5729 _m
/Times-ItalicR 600 _ff
(name)_S 7319 5729 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
7742 5729 _m
/Times-ItalicR 600 _ff
(type)_S 8075 5729 _m
/Times-RomanR 600 _ff
67 _t
(are)_S 1800 5494 _m
(optional;)_S 67 _t
(devices)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(not)_S 67 _t
(interfaced)_S 67 _t
(over)_S 67 _t
(a)_S 67 _t
(serial)_S 67 _t
(port)_S 67 _t
(do)_S 67 _t
(not)_S 67 _t
(need)_S 67 _t
(the)_S 67 _t
7926 5494 _m
/Times-ItalicR 600 _ff
(address)_S 8548 5494 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
8665 5494 _m
/Times-ItalicR 600 _ff
(irq)_S /Times-RomanR 600 _ff
1800 5259 _m
(or)_S 67 _t
2034 5259 _m
/Times-ItalicR 600 _ff
(buffsize)_S 2645 5259 _m
/Times-RomanR 600 _ff
67 _t
(parameters,)_S 67 _t
(and)_S 67 _t
(devices)_S 67 _t
(all)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(default)_S 67 _t
6219 5259 _m
/Times-ItalicR 600 _ff
(mode)_S 6652 5259 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(The)_S 67 _t
7214 5259 _m
/Times-ItalicR 600 _ff
(name)_S 7647 5259 _m
/Times-RomanR 600 _ff
67 _t
(can)_S 67 _t
(be)_S 1800 5026 _m
(anything)_S 67 _t
(you)_S 67 _t
(like;)_S 67 _t
(however,)_S 67 _t
(it)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(something)_S 67 _t
(that's)_S 67 _t
(referenced)_S 67 _t
(by)_S 67 _t
(the)_S 1800 4793 _m
(application.)_S 134 _t
(For)_S 67 _t
(example,)_S 2400 4381 _m
/CourierR 400 _ff
(device)_S 80 _t
(headtracker)_S 80 _t
(Redbaron)_S 80 _t
(0)_S 80 _t
(0x2F8)_S 80 _t
(3)_S 80 _t
(2000)_S 80 _t
/Times-RomanR 600 _ff
1800 3961 _m
(would)_S 67 _t
(set)_S 67 _t
(up)_S 67 _t
(the)_S 67 _t
(Logitech)_S 67 _t
(Red)_S 67 _t
(Baron)_S 67 _t
(ultrasonic)_S 67 _t
(tracking)_S 67 _t
(device;)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(would)_S 67 _t
(be)_S 1800 3728 _m
(hooked)_S 67 _t
(up)_S 67 _t
(to)_S 67 _t
(COM2)_S 67 _t
(\(address)_S 67 _t
(=)_S 67 _t
(0x2F8,)_S 67 _t
(irq)_S 67 _t
(=)_S 67 _t
(3\))_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(2000)_S 67 _t
(byte)_S 67 _t
(buffer.)_S 134 _t
(The)_S 1800 3495 _m
(application)_S 67 _t
(would)_S 67 _t
(simply)_S 67 _t
(look)_S 67 _t
(up)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(called)_S 67 _t
("headtracker")_S 67 _t
(and)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(values)_S 67 _t
(it)_S 1800 3262 _m
(returns)_S 67 _t
(without)_S 67 _t
(having)_S 67 _t
(to)_S 67 _t
(worry)_S 67 _t
(about)_S 67 _t
(what)_S 67 _t
(kind)_S 67 _t
(of)_S 67 _t
(device)_S 67 _t
(it)_S 67 _t
(actually)_S 67 _t
(is.)_S 1200 2794 _m
(DEVCONFIG)_S 67 _t
2422 2794 _m
/Times-ItalicR 600 _ff
(name)_S 67 _t
(channel)_S 67 _t
(scale)_S 67 _t
(deadzone)_S /Times-RomanR 600 _ff
1800 2561 _m
(Sets)_S 67 _t
(the)_S 67 _t
(scale)_S 67 _t
(and)_S 67 _t
(deadzone)_S 67 _t
(parameters)_S 67 _t
(for)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(channel)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(device.)_S 67 _t
1800 2326 _m
(The)_S 67 _t
2178 2326 _m
/Times-ItalicR 600 _ff
(name)_S 2611 2326 _m
/Times-RomanR 600 _ff
67 _t
(must)_S 67 _t
(match)_S 67 _t
(the)_S 67 _t
(name)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(already)_S 67 _t
(specified)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(DEVICE)_S 1800 2091 _m
(statement.)_S 134 _t
(The)_S 67 _t
3129 2091 _m
/Times-ItalicR 600 _ff
(channel)_S 3762 2091 _m
/Times-RomanR 600 _ff
67 _t
(can)_S 67 _t
(be)_S 67 _t
(either)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(or)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(special)_S 67 _t
(values)_S 67 _t
(X,)_S 67 _t
(Y,)_S 67 _t
(Z,)_S 1800 1856 _m
(XROT,)_S 67 _t
(YROT)_S 67 _t
(or)_S 67 _t
(ZROT.)_S 134 _t
(The)_S 67 _t
4391 1856 _m
/Times-ItalicR 600 _ff
(scale)_S 4802 1856 _m
/Times-RomanR 600 _ff
67 _t
(can)_S 67 _t
(be)_S 67 _t
(either)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(\(in)_S 67 _t
(which)_S 67 _t
(case)_S 67 _t
(it's)_S 67 _t
(taken)_S 8800 1255 _m
(55)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11855 _m
(to)_S 67 _t
(be)_S 67 _t
(a)_S 67 _t
(scalar)_S 67 _t
(distance\))_S 67 _t
(or)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(with)_S 67 _t
(an)_S 67 _t
('a')_S 67 _t
(or)_S 67 _t
('A')_S 67 _t
(in)_S 67 _t
(front)_S 67 _t
(of)_S 67 _t
(it)_S 67 _t
(\(in)_S 67 _t
(which)_S 67 _t
(case)_S 67 _t
(it's)_S 1800 11620 _m
(taken)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(an)_S 67 _t
(angle\).)_S 134 _t
(The)_S 67 _t
4096 11620 _m
/Times-ItalicR 600 _ff
(deadzone)_S 4852 11620 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(number,)_S 67 _t
(specified)_S 67 _t
(in)_S 67 _t
(device)_S 1800 11385 _m
(coordinates.)_S 134 _t
(The)_S 67 _t
3284 11385 _m
/Times-ItalicR 600 _ff
(deadzone)_S 4039 11385 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(optional,)_S 67 _t
(and)_S 67 _t
(defaults)_S 67 _t
(to)_S 67 _t
(zero.)_S 1800 11152 _m
(For)_S 67 _t
(example,)_S 2400 10686 _m
(devconfig)_S 67 _t
(headtracker)_S 67 _t
(2)_S 67 _t
(15)_S 1800 10220 _m
(would)_S 67 _t
(cause)_S 67 _t
(channel)_S 67 _t
(2)_S 67 _t
(\(the)_S 67 _t
(Z)_S 67 _t
(channel\))_S 67 _t
(to)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(scale)_S 67 _t
(factor)_S 67 _t
(of)_S 67 _t
(15)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(deadzone)_S 67 _t
(of)_S 1800 9987 _m
(zero,)_S 67 _t
(while)_S 2400 9521 _m
(devconfig)_S 67 _t
(headtracker)_S 67 _t
(YROT)_S 67 _t
(a45)_S 67 _t
(10)_S 1800 9055 _m
(would)_S 67 _t
(case)_S 67 _t
(channel)_S 67 _t
(4)_S 67 _t
(\(the)_S 67 _t
(Y)_S 67 _t
(rotation)_S 67 _t
(channel\))_S 67 _t
(to)_S 67 _t
(have)_S 67 _t
(an)_S 67 _t
(angular)_S 67 _t
(scale)_S 67 _t
(factor)_S 67 _t
(of)_S 67 _t
(45)_S 1800 8822 _m
(degrees)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(deadzone)_S 67 _t
(of)_S 67 _t
(10)_S 67 _t
(device)_S 67 _t
(units.)_S 8800 1255 _m
(56)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11592 _m
/Times-BoldR 720 _ff
(Appendix)_S 80 _t
(C)_S 80 _t
(-)_S 80 _t
(PLG)_S 80 _t
(FILE)_S 80 _t
(FORMAT)_S 4974 11592 _m
/Times-RomanR 600 _ff
1200 11116 _m
(I)_S 67 _t
(originally)_S 67 _t
(designed)_S 67 _t
(PLG)_S 67 _t
(files)_S 67 _t
(for)_S 67 _t
(use)_S 67 _t
(with)_S 67 _t
(REND386;)_S 67 _t
(for)_S 67 _t
(better)_S 67 _t
(or)_S 67 _t
(worse,)_S 67 _t
(they)_S 67 _t
(seem)_S 67 _t
(to)_S 67 _t
(have)_S 1200 10883 _m
(become)_S 67 _t
(something)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(standard.)_S 134 _t
(REND386,)_S 67 _t
(AVRIL,)_S 67 _t
(VR386)_S 67 _t
(and)_S 67 _t
(Jon)_S 67 _t
(Blossom's)_S 67 _t
(Gossamer)_S 1200 10650 _m
(all)_S 67 _t
(use)_S 67 _t
(them)_S 67 _t
(for)_S 67 _t
(object)_S 67 _t
(geometry)_S 67 _t
(description;)_S 67 _t
(there)_S 67 _t
(are)_S 67 _t
(also)_S 67 _t
(translators)_S 67 _t
(that)_S 67 _t
(turn)_S 67 _t
(other)_S 67 _t
(formats)_S 1200 10417 _m
(into)_S 67 _t
(PLG,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(NorthCAD-3D)_S 67 _t
(program)_S 67 _t
(can)_S 67 _t
(generate)_S 67 _t
(PLG)_S 67 _t
(files)_S 67 _t
(as)_S 67 _t
(output.)_S 134 _t
(The)_S 67 _t
(PLG)_S 67 _t
(in)_S 67 _t
(the)_S 1200 10184 _m
(name)_S 67 _t
(stands)_S 67 _t
(for)_S 67 _t
("polygon".)_S 1800 9718 _m
(There)_S 67 _t
(will)_S 67 _t
(soon)_S 67 _t
(be)_S 67 _t
(a)_S 67 _t
(file)_S 67 _t
(format)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(interchange)_S 67 _t
(of)_S 67 _t
(virtual)_S 67 _t
(objects)_S 67 _t
(and)_S 67 _t
(virtual)_S 1200 9485 _m
(worlds)_S 67 _t
(between)_S 67 _t
(VR)_S 67 _t
(systems;)_S 67 _t
(at)_S 67 _t
(that)_S 67 _t
(point,)_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(PLG)_S 67 _t
(file)_S 67 _t
(format)_S 67 _t
(will)_S 67 _t
(diminish.)_S 67 _t
1200 9252 _m
(Conversion)_S 67 _t
(programs)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(made)_S 67 _t
(available)_S 67 _t
(to)_S 67 _t
(convert)_S 67 _t
(PLG)_S 67 _t
(files)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(new)_S 67 _t
(format.)_S 1800 8786 _m
(A)_S 67 _t
(PLG)_S 67 _t
(file)_S 67 _t
(basically)_S 67 _t
(has)_S 67 _t
(three)_S 67 _t
(parts:)_S 67 _t
(a)_S 67 _t
(header)_S 67 _t
(line,)_S 67 _t
(a)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(vertices)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(list)_S 67 _t
(of)_S 1200 8553 _m
(facets.)_S 1800 8087 _m
(The)_S 67 _t
(header)_S 67 _t
(line)_S 67 _t
(has)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(name,)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(vertices,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(facets;)_S 1200 7854 _m
(for)_S 67 _t
(example:)_S 1800 7442 _m
/CourierR 400 _ff
(kitchen_table)_S 80 _t
(100)_S 80 _t
(35)_S /Times-RomanR 600 _ff
1200 7022 _m
(which)_S 67 _t
(would)_S 67 _t
(mean)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
("kitchen_table")_S 67 _t
(has)_S 67 _t
(100)_S 67 _t
(vertices)_S 67 _t
(and)_S 67 _t
(35)_S 67 _t
(facets.)_S 1800 6556 _m
(Anything)_S 67 _t
(after)_S 67 _t
(the)_S 67 _t
(facet)_S 67 _t
(count)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(ignored,)_S 67 _t
(since)_S 67 _t
(it)_S 67 _t
(may)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(future)_S 1200 6323 _m
(expansion.)_S 1800 5857 _m
(Following)_S 67 _t
(this)_S 67 _t
(line)_S 67 _t
(are)_S 67 _t
(the)_S 67 _t
(vertices,)_S 67 _t
(one)_S 67 _t
(x,y,z)_S 67 _t
(triplet)_S 67 _t
(per)_S 67 _t
(line)_S 67 _t
(\(each)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(floating-)_S 1200 5624 _m
(point)_S 67 _t
(number,)_S 67 _t
(and)_S 67 _t
(they're)_S 67 _t
(separated)_S 67 _t
(by)_S 67 _t
(spaces\).)_S 134 _t
(For)_S 67 _t
(example:)_S 1800 5212 _m
/CourierR 400 _ff
(18027)_S 80 _t
(23025)_S 80 _t
(98703)_S /Times-RomanR 600 _ff
1200 4792 _m
(Only)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
(three)_S 67 _t
(values)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(line)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(used;)_S 67 _t
(anything)_S 67 _t
(following)_S 67 _t
(these)_S 67 _t
(values)_S 67 _t
(should)_S 1200 4559 _m
(be)_S 67 _t
(ignored.)_S 134 _t
(This)_S 67 _t
(allows)_S 67 _t
(future)_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(such)_S 67 _t
(things)_S 67 _t
(as)_S 67 _t
(vertex)_S 67 _t
(normals.)_S 1800 4093 _m
(This)_S 67 _t
(is)_S 67 _t
(followed)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(facet)_S 67 _t
(information,)_S 67 _t
(one)_S 67 _t
(line)_S 67 _t
(per)_S 67 _t
(facet;)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(these)_S 67 _t
(lines)_S 67 _t
(is)_S 67 _t
(of)_S 1200 3860 _m
(the)_S 67 _t
(form)_S 1800 3448 _m
/CourierR 400 _ff
(surfacedesc)_S 80 _t
(n)_S 80 _t
(v1)_S 80 _t
(v2)_S 80 _t
(v3)_S 80 _t
(...)_S /Times-RomanR 600 _ff
1200 3026 _m
(The)_S 67 _t
1578 3026 _m
/Times-ItalicR 600 _ff
(surfacedesc)_S 2522 3026 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(described)_S 67 _t
(below.)_S 134 _t
(The)_S 67 _t
4674 3026 _m
/Times-ItalicR 600 _ff
(n)_S 4774 3026 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(vertices)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(facet.)_S 134 _t
(The)_S 67 _t
8438 3026 _m
/Times-ItalicR 600 _ff
(v1)_S 8627 3026 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
8744 3026 _m
/Times-ItalicR 600 _ff
(v2)_S 8932 3026 _m
/Times-RomanR 600 _ff
(,)_S 1200 2791 _m
/Times-ItalicR 600 _ff
(v3)_S 1389 2791 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
(so)_S 67 _t
(on)_S 67 _t
(are)_S 67 _t
(indices)_S 67 _t
(into)_S 67 _t
(the)_S 67 _t
(array)_S 67 _t
(of)_S 67 _t
(vertices;)_S 67 _t
(the)_S 67 _t
(vertices)_S 67 _t
(are)_S 67 _t
(listed)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(counter-)_S 1200 2558 _m
(clockwise)_S 67 _t
(order)_S 67 _t
(as)_S 67 _t
(seen)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
("front")_S 67 _t
(\(i.e.)_S 67 _t
(visible)_S 67 _t
(side\))_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(facet.)_S 134 _t
(Note)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(vertices)_S 1200 2325 _m
(are)_S 67 _t
(counted)_S 67 _t
("origin)_S 67 _t
(zero",)_S 67 _t
(i.e.)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
(vertex)_S 67 _t
(is)_S 67 _t
(vertex)_S 67 _t
(number)_S 67 _t
(0,)_S 67 _t
(not)_S 67 _t
(vertex)_S 67 _t
(number)_S 67 _t
(1.)_S 1200 1859 _m
(For)_S 67 _t
(example:)_S 8800 1255 _m
(57)_S _ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(0x8002)_S 80 _t
(4)_S 80 _t
(8)_S 80 _t
(27)_S 80 _t
(5)_S 80 _t
(12)_S 1200 11589 _m
/Times-RomanR 600 _ff
(would)_S 67 _t
(mean)_S 67 _t
(a)_S 67 _t
(four-sided)_S 67 _t
(facet)_S 67 _t
(bounded)_S 67 _t
(by)_S 67 _t
(vertices)_S 67 _t
(8,)_S 67 _t
(27,)_S 67 _t
(5)_S 67 _t
(and)_S 67 _t
(12.)_S 134 _t
(This)_S 67 _t
(facet)_S 67 _t
(has)_S 67 _t
(a)_S 67 _t
(surface)_S 1200 11356 _m
(descriptor)_S 67 _t
(of)_S 67 _t
(0x8002.)_S 1800 10890 _m
(Anything)_S 67 _t
(after)_S 67 _t
(the)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(vertex)_S 67 _t
(indices)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(ignored.)_S 1800 10424 _m
(The)_S 67 _t
(PLG)_S 67 _t
(format)_S 67 _t
(supports)_S 67 _t
(comments.)_S 134 _t
(Anything)_S 67 _t
(after)_S 67 _t
(a)_S 67 _t
(#)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(ignored)_S 67 _t
(by)_S 67 _t
(any)_S 1200 10191 _m
(program)_S 67 _t
(that)_S 67 _t
(parses)_S 67 _t
(PLG)_S 67 _t
(files.)_S 134 _t
(In)_S 67 _t
(addition,)_S 67 _t
(lines)_S 67 _t
(beginning)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
('*')_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(ignored.)_S 1800 9725 _m
(PLG)_S 67 _t
(files)_S 67 _t
(can)_S 67 _t
(have)_S 67 _t
(multiple)_S 67 _t
(copies)_S 67 _t
(of)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(at)_S 67 _t
(different)_S 67 _t
(resolutions.)_S 134 _t
(PLG)_S 67 _t
(files)_S 1200 9492 _m
(containing)_S 67 _t
(such)_S 67 _t
(multiple-resolution)_S 67 _t
(versions)_S 67 _t
(of)_S 67 _t
(objects)_S 67 _t
(must)_S 67 _t
(have)_S 67 _t
("#MULTI")_S 67 _t
(as)_S 67 _t
(their)_S 67 _t
(first)_S 1200 9259 _m
(line.)_S 1800 8793 _m
(For)_S 67 _t
(each)_S 67 _t
(object)_S 67 _t
(defined)_S 67 _t
(in)_S 67 _t
(such)_S 67 _t
(a)_S 67 _t
(file,)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(name)_S 67 _t
(includes)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(specifying)_S 1200 8560 _m
(the)_S 67 _t
(pixel)_S 67 _t
(size)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(on)_S 67 _t
(the)_S 67 _t
(screen.)_S 134 _t
(The)_S 67 _t
(object)_S 67 _t
(names)_S 67 _t
(for)_S 67 _t
(each)_S 67 _t
(representation)_S 67 _t
(must)_S 67 _t
(be)_S 1800 8148 _m
/CourierR 400 _ff
(_####)_S /Times-RomanR 600 _ff
1200 7728 _m
(where)_S 67 _t
(####)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(smallest)_S 67 _t
(pixel)_S 67 _t
(width)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(this)_S 67 _t
(representation)_S 67 _t
(for.)_S 67 _t
(For)_S 67 _t
(example,)_S 1200 7495 _m
(TABLE_15)_S 67 _t
(would)_S 67 _t
(be)_S 67 _t
(a)_S 67 _t
(valid)_S 67 _t
(name.)_S 1800 7029 _m
(If)_S 67 _t
(the)_S 67 _t
(smallest)_S 67 _t
(rep)_S 67 _t
(size)_S 67 _t
(is)_S 67 _t
(zero,)_S 67 _t
(then)_S 67 _t
(that)_S 67 _t
(represenation)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(no)_S 67 _t
(matter)_S 67 _t
(how)_S 1200 6796 _m
(small)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(gets.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(smallest)_S 67 _t
(rep)_S 67 _t
(size)_S 67 _t
(is)_S 67 _t
(1)_S 67 _t
(or)_S 67 _t
(greater,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(will)_S 67 _t
(vanish)_S 67 _t
(if)_S 67 _t
(it)_S 1200 6563 _m
(gets)_S 67 _t
(too)_S 67 _t
(small.)_S 1800 6097 _m
(The)_S 67 _t
(surface)_S 67 _t
(descriptor)_S 67 _t
(can)_S 67 _t
(either)_S 67 _t
(be)_S 67 _t
(a)_S 67 _t
(decimal)_S 67 _t
(integer)_S 67 _t
(or)_S 67 _t
(a)_S 67 _t
(0x)_S 67 _t
(or)_S 67 _t
(0X)_S 67 _t
(followed)_S 67 _t
(by)_S 67 _t
(a)_S 1200 5864 _m
(hexadecimal)_S 67 _t
(integer)_S 67 _t
(value.)_S 134 _t
(The)_S 67 _t
(surface)_S 67 _t
(descriptor)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(16-bit)_S 67 _t
(value)_S 67 _t
(which)_S 67 _t
(is)_S 67 _t
(interpreted)_S 67 _t
(as)_S 1200 5631 _m
(follows:)_S 1800 5219 _m
/CourierR 400 _ff
(H)_S 80 _t
(R)_S 80 _t
(SS)_S 80 _t
(CCCC)_S 80 _t
(BBBBBBBB)_S /Times-RomanR 600 _ff
1200 4799 _m
(The)_S 67 _t
(R)_S 67 _t
(bit)_S 67 _t
(is)_S 67 _t
(reserved,)_S 67 _t
(and)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(zero.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(H)_S 67 _t
(bit)_S 67 _t
(is)_S 67 _t
(set,)_S 67 _t
(it)_S 67 _t
(indicates)_S 67 _t
(that)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(a)_S 1200 4566 _m
("mapped")_S 67 _t
(surface)_S 67 _t
(descriptor;)_S 67 _t
(the)_S 67 _t
(bottom)_S 67 _t
(14)_S 67 _t
(bits)_S 67 _t
(are)_S 67 _t
(taken)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(an)_S 67 _t
(index)_S 67 _t
(into)_S 67 _t
(a)_S 67 _t
(surface)_S 67 _t
(map.)_S 1200 4100 _m
(If)_S 67 _t
(the)_S 67 _t
(H)_S 67 _t
(bit)_S 67 _t
(is)_S 67 _t
(clear,)_S 67 _t
(the)_S 67 _t
(SS)_S 67 _t
(bits)_S 67 _t
(are)_S 67 _t
(interpreted)_S 67 _t
(as)_S 67 _t
(follows:)_S 1800 3634 _m
(00)_S 67 _t
(--)_S 2400 3634 _m
(This)_S 67 _t
(facet)_S 67 _t
(is)_S 67 _t
("solid)_S 67 _t
(shaded";)_S 67 _t
(i.e.)_S 67 _t
(it)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(drawn)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(fixed)_S 67 _t
(color,)_S 67 _t
(with)_S 67 _t
(no)_S 2400 3401 _m
(special)_S 67 _t
(effects.)_S 67 _t
(If)_S 67 _t
(the)_S 67 _t
(CCCC)_S 67 _t
(bits)_S 67 _t
(are)_S 67 _t
(zero,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(BBBBBBBB)_S 67 _t
(bits)_S 67 _t
(directly)_S 2400 3168 _m
(specify)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(256)_S 67 _t
(available)_S 67 _t
(colors;)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(CCCC)_S 67 _t
(bits)_S 67 _t
(are)_S 67 _t
(non-zero,)_S 67 _t
(then)_S 2400 2935 _m
(they)_S 67 _t
(specify)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(sixteen)_S 67 _t
(hues)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(top)_S 67 _t
(four)_S 67 _t
(bits)_S 67 _t
(of)_S 67 _t
(BBBBBBBB)_S 67 _t
(specify)_S 2400 2702 _m
(which)_S 67 _t
(shade)_S 67 _t
(of)_S 67 _t
(that)_S 67 _t
(hue)_S 67 _t
(to)_S 67 _t
(use.)_S 1800 2236 _m
(01)_S 67 _t
(--)_S 2400 2236 _m
(This)_S 67 _t
(facet)_S 67 _t
(is)_S 67 _t
("flat)_S 67 _t
(shaded";)_S 67 _t
(i.e.)_S 67 _t
(it)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(drawn)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(constant)_S 67 _t
(shading)_S 67 _t
(that)_S 2400 2003 _m

(is)_S 67 _t
(determined)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(angle)_S 67 _t
(at)_S 67 _t
(which)_S 67 _t
(light)_S 67 _t
(is)_S 67 _t
(striking)_S 67 _t
(it;)_S 67 _t
(thus,)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(facet)_S 67 _t
(moves)_S 2400 1770 _m
(around,)_S 67 _t
(its)_S 67 _t
(apparent)_S 67 _t
(brightness)_S 67 _t
(will)_S 67 _t
(change.)_S 134 _t
(The)_S 67 _t
(CCCC)_S 67 _t
(bits)_S 67 _t
(specify)_S 67 _t
(one)_S 67 _t
(of)_S 8800 1255 _m
(58)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
2400 11855 _m
(sixteen)_S 67 _t
(hues,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(bottom)_S 67 _t
(8)_S 67 _t
(bits)_S 67 _t
(BBBBBBBB)_S 67 _t
(represent)_S 67 _t
(the)_S 67 _t
("brightness")_S 67 _t
(of)_S 2400 11622 _m
(the)_S 67 _t
(color.)_S 134 _t
(This)_S 67 _t
(brightness)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(multiplied)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(cosine)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(angle)_S 2400 11389 _m
(between)_S 67 _t
(the)_S 67 _t
(facet's)_S 67 _t
(normal)_S 67 _t
(vector)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(vector)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(facet)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(light)_S 2400 11156 _m
(source;)_S 67 _t
(the)_S 67 _t
(result)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(specify)_S 67 _t
(an)_S 67 _t
(offset)_S 67 _t
(into)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
(color's)_S 67 _t
(array)_S 67 _t
(of)_S 2400 10923 _m
(shades.)_S 134 _t
(Note)_S 67 _t
(that)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(CCCC)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(0,)_S 67 _t
(the)_S 67 _t
(color)_S 67 _t
(will)_S 67 _t
(always)_S 67 _t
(be)_S 67 _t
(black.)_S 1800 10457 _m
(10)_S 67 _t
(--)_S 2400 10457 _m
(This)_S 67 _t
(facet)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(treated)_S 67 _t
(as)_S 67 _t
(being)_S 67 _t
("metallic";)_S 67 _t
(the)_S 67 _t
(CCCC)_S 67 _t
(bits)_S 67 _t
(\(which)_S 67 _t
(should)_S 2400 10224 _m
(be)_S 67 _t
(non-zero\))_S 67 _t
(specify)_S 67 _t
(one)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(16)_S 67 _t
(hues,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(top)_S 67 _t
(5)_S 67 _t
(bits)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(BBBBBBBB)_S 2400 9991 _m
(value)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(as)_S 67 _t
(an)_S 67 _t
(offset)_S 67 _t
(into)_S 67 _t
(a)_S 67 _t
(range)_S 67 _t
(of)_S 67 _t
(shades)_S 67 _t
(to)_S 67 _t
(cycle)_S 67 _t
(through)_S 67 _t
(to)_S 67 _t
(give)_S 67 _t
(the)_S 2400 9758 _m
(metallic)_S 67 _t
(effect,)_S 67 _t
(i.e.)_S 67 _t
(a)_S 67 _t
(starting)_S 67 _t
(offset)_S 67 _t
(into)_S 67 _t
(the)_S 67 _t
(color)_S 67 _t
(cycle.)_S 1800 9292 _m
(11)_S 67 _t
(--)_S 2400 9292 _m
(This)_S 67 _t
(facet)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(treated)_S 67 _t
(as)_S 67 _t
(being)_S 67 _t
("transparent";)_S 67 _t
(it)_S 67 _t
(is)_S 67 _t
(just)_S 67 _t
(like)_S 67 _t
(surface)_S 67 _t
(type)_S 2400 9059 _m
(10,)_S 67 _t
(except)_S 67 _t
(that)_S 67 _t
(alternating)_S 67 _t
(rows)_S 67 _t
(of)_S 67 _t
(dots)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(instead)_S 67 _t
(of)_S 67 _t
(solid)_S 67 _t
(colors,)_S 2400 8826 _m
(allowing)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
("see)_S 67 _t
(through")_S 67 _t
(the)_S 67 _t
(facet.)_S 8800 1255 _m
(59)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11592 _m
/Times-BoldR 720 _ff
(Appendix)_S 80 _t
(D)_S 80 _t
(-)_S 80 _t
(FIG)_S 80 _t
(FILE)_S 80 _t
(FORMAT)_S 4907 11592 _m
/Times-RomanR 600 _ff
1200 11116 _m
(FIG)_S 67 _t
(files)_S 67 _t
(are)_S 67 _t
(a)_S 67 _t
(way)_S 67 _t
(of)_S 67 _t
(representing)_S 67 _t
(multi-segmented,)_S 67 _t
(hierarchical)_S 67 _t
(entities.)_S 3135 10650 _m
/Times-BoldR 600 _ff
(This)_S 67 _t
(format)_S 67 _t
(will)_S 67 _t
(soon)_S 67 _t
(be)_S 67 _t
(considered)_S 67 _t
(obsolete.)_S /Times-RomanR 600 _ff
1800 10184 _m
(There)_S 67 _t
(will)_S 67 _t
(soon)_S 67 _t
(be)_S 67 _t
(a)_S 67 _t
(file)_S 67 _t
(format)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(interchange)_S 67 _t
(of)_S 67 _t
(virtual)_S 67 _t
(objects)_S 67 _t
(and)_S 67 _t
(virtual)_S 1200 9951 _m
(worlds)_S 67 _t
(between)_S 67 _t
(VR)_S 67 _t
(systems;)_S 67 _t
(at)_S 67 _t
(that)_S 67 _t
(point,)_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(FIG)_S 67 _t
(file)_S 67 _t
(format)_S 67 _t
(will)_S 67 _t
(diminish.)_S 67 _t
1200 9718 _m
(Conversion)_S 67 _t
(programs)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(made)_S 67 _t
(available)_S 67 _t
(to)_S 67 _t
(convert)_S 67 _t
(FIG)_S 67 _t
(files)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(new)_S 67 _t
(format.)_S 1800 9252 _m
(The)_S 67 _t
(syntax)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(figure)_S 67 _t
(file)_S 67 _t
(is)_S 67 _t
(simple,)_S 67 _t
(and)_S 67 _t
(very)_S 67 _t
(C-like.)_S 134 _t
(It)_S 67 _t
(consists)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(series)_S 67 _t
(of)_S 1200 9019 _m
(segments,)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(which)_S 67 _t
(can)_S 67 _t
(possess)_S 67 _t
(a)_S 67 _t
(set)_S 67 _t
(of)_S 67 _t
(attributes,)_S 67 _t
(as)_S 67 _t
(well)_S 67 _t
(as)_S 67 _t
(child)_S 67 _t
(segments.)_S 134 _t
(Each)_S 1200 8786 _m
(segment)_S 67 _t
(is)_S 67 _t
(bounded)_S 67 _t
(by)_S 67 _t
(braces.)_S 134 _t
(Attributes)_S 67 _t
(are)_S 67 _t
(arbitrary)_S 67 _t
(text)_S 67 _t
(strings)_S 67 _t
(ending)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(semicolon.)_S 1800 8320 _m
(The)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(possible)_S 67 _t
(attributes)_S 67 _t
(is)_S 67 _t
(open-ended)_S 67 _t
(and)_S 67 _t
(extensible;)_S 67 _t
(programs)_S 67 _t
(that)_S 67 _t
(read)_S 67 _t
(figure)_S 1200 8087 _m
(files)_S 67 _t
(should)_S 67 _t
(ignore)_S 67 _t
(any)_S 67 _t
(attributes)_S 67 _t
(they)_S 67 _t
(don't)_S 67 _t
(recognize.)_S 1200 7621 _m
(An)_S 67 _t
(example)_S 67 _t
(will)_S 67 _t
(make)_S 67 _t
(all)_S 67 _t
(this)_S 67 _t
(clearer.)_S 1800 7209 _m
/CourierR 400 _ff
({)_S 1800 7076 _m
(comment)_S 80 _t
(=)_S 80 _t
(a)_S 80 _t
(human)_S 80 _t
(body;)_S 1800 6943 _m
(name)_S 80 _t
(=)_S 80 _t
(pelvis;)_S 160 _t
(comment)_S 80 _t
(=)_S 80 _t
(this)_S 80 _t
(is)_S 80 _t
(the)_S 80 _t
(name)_S 80 _t
(of)_S 80 _t
(the)_S 80 _t
(root)_S 80 _t
(segment;)_S 2400 6810 _m
({)_S 2400 6677 _m
(name)_S 80 _t
(=)_S 80 _t
(chest;)_S 3000 6544 _m
({)_S 80 _t
(name)_S 80 _t
(=)_S 80 _t
(left)_S 80 _t
(upper)_S 80 _t
(arm;)_S 80 _t
({)_S 80 _t
(name)_S 80 _t
(=)_S 80 _t
(left)_S 80 _t
(lower)_S 80 _t
(arm;)_S 80 _t
(})_S 80 _t
(})_S 3000 6411 _m
({)_S 80 _t
(name)_S 80 _t
(=)_S 80 _t
(right)_S 80 _t
(upper)_S 80 _t
(arm;)_S 80 _t
({)_S 80 _t
(name)_S 80 _t
(=)_S 80 _t
(right)_S 80 _t
(lower)_S 80 _t
(arm;)_S 80 _t
(})_S 80 _t
(})_S 3000 6278 _m
({)_S 80 _t
(name)_S 80 _t
(=)_S 80 _t
(head;)_S 80 _t
(})_S 2400 6145 _m
(})_S 2400 6012 _m
({)_S 80 _t
(name)_S 80 _t
(=)_S 80 _t
(left)_S 80 _t
(upper)_S 80 _t
(leg;)_S 80 _t
({)_S 80 _t
(name)_S 80 _t
(=)_S 80 _t
(right)_S 80 _t
(lower)_S 80 _t
(leg;)_S 80 _t
(})_S 80 _t
(})_S 2400 5879 _m
({)_S 80 _t
(name)_S 80 _t
(=)_S 80 _t
(right)_S 80 _t
(upper)_S 80 _t
(leg;)_S 80 _t
({)_S 80 _t
(name)_S 80 _t
(=)_S 80 _t
(right)_S 80 _t
(lower)_S 80 _t
(leg;)_S 80 _t
(})_S 80 _t
(})_S 2400 5746 _m
(})_S 1800 5613 _m
(})_S 1200 5293 _m
/Times-RomanR 600 _ff
(In)_S 67 _t
(general,)_S 67 _t
(attributes)_S 67 _t
(are)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(form)_S 67 _t
("keyword)_S 67 _t
(=)_S 67 _t
(value;",)_S 67 _t
(though)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(a)_S 67 _t
(requirement.)_S 67 _t
1200 5058 _m
(The)_S 67 _t
(attributes)_S 67 _t
(used)_S 67 _t
(above)_S 67 _t
(are)_S 67 _t
3679 5058 _m
/Times-ItalicR 600 _ff
(name)_S 4112 5058 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
4535 5058 _m
/Times-ItalicR 600 _ff
(comment)_S 5257 5058 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(Note)_S 67 _t
(that)_S 67 _t
(no)_S 67 _t
(program)_S 67 _t
(ever)_S 67 _t
(has)_S 67 _t
(to)_S 1200 4825 _m
(recognize)_S 67 _t
(a)_S 67 _t
(comment)_S 67 _t
(attribute,)_S 67 _t
(since)_S 67 _t
(by)_S 67 _t
(defintion)_S 67 _t
(comments)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(ignored.)_S 1200 4359 _m
(The)_S 67 _t
(attributes)_S 67 _t
(currently)_S 67 _t
(defined)_S 67 _t
(are)_S 67 _t
(as)_S 67 _t
(follows:)_S 1800 3947 _m
/CourierR 400 _ff
(name)_S 80 _t
(=)_S 80 _t
(somestring;)_S 1800 3814 _m
(pos)_S 80 _t
(=)_S 80 _t
(x,y,z;)_S 1800 3681 _m
(rot)_S 80 _t
(=)_S 80 _t
(x,y,z;)_S 1800 3548 _m
(plgfile)_S 80 _t
(=)_S 80 _t
(filename)_S 80 _t
(scale)_S 80 _t
(x,y,z)_S 80 _t
(shift)_S 80 _t
(X,Y,Z)_S 80 _t
(sort)_S 80 _t
(type)_S 80 _t
(map)_S 80 _t
(filename;)_S 1800 3415 _m
(segnum)_S 80 _t
(=)_S 80 _t
(someinteger;)_S /Times-RomanR 600 _ff
1200 2993 _m
(The)_S 67 _t
1578 2993 _m
/Times-ItalicR 600 _ff
(pos)_S 1856 2993 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(x,y,z)_S 67 _t
(displacement)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(origin)_S 67 _t
(of)_S 67 _t
(this)_S 67 _t
(segment)_S 67 _t
(relative)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(parent's)_S 1200 2758 _m
(coordinate)_S 67 _t
(system.)_S 134 _t
(The)_S 67 _t
3229 2758 _m
/Times-ItalicR 600 _ff
(rot)_S 3462 2758 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(rotation)_S 67 _t
(of)_S 67 _t
(this)_S 67 _t
(segment)_S 67 _t
(relative)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(parent.)_S 134 _t
(For)_S 67 _t
(root)_S 1200 2525 _m
(objects)_S 67 _t
(\(which)_S 67 _t
(have)_S 67 _t
(no)_S 67 _t
(parent\))_S 67 _t
(these)_S 67 _t
(values)_S 67 _t
(are)_S 67 _t
(the)_S 67 _t
(absolute)_S 67 _t
(location)_S 67 _t
(and)_S 67 _t
(rotation)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(entire)_S 1200 2292 _m
(figure)_S 67 _t
(in)_S 67 _t
(world)_S 67 _t
(coordinates.)_S 8800 1255 _m
(60)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11853 _m
(The)_S 67 _t
2178 11853 _m
/Times-ItalicR 600 _ff
(plgfile)_S 2689 11853 _m
/Times-RomanR 600 _ff
67 _t
(gives)_S 67 _t
(the)_S 67 _t
(name)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(.plg)_S 67 _t
(file)_S 67 _t
(containing)_S 67 _t
(a)_S 67 _t
(geometric)_S 67 _t
(representation)_S 67 _t
(of)_S 67 _t
(the)_S 1200 11620 _m
(segment.)_S 134 _t
(Note)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(figure)_S 67 _t
(file)_S 67 _t
(format)_S 67 _t
(does)_S 67 _t
(not)_S 67 _t
(strictly)_S 67 _t
(depend)_S 67 _t
(on)_S 67 _t
(.plg)_S 67 _t
(files;)_S 67 _t
(the)_S 67 _t
(reason)_S 67 _t
(the)_S 1200 11387 _m
(syntax)_S 67 _t
(is)_S 67 _t
("plgfile)_S 67 _t
(=)_S 67 _t
(")_S 67 _t
(rather)_S 67 _t
(than)_S 67 _t
(just)_S 67 _t
("file)_S 67 _t
(=")_S 67 _t
(is)_S 67 _t
(because)_S 67 _t
(a)_S 67 _t
(segment)_S 67 _t
(may)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(large)_S 67 _t
(number)_S 1200 11154 _m
(of)_S 67 _t
(different)_S 67 _t
(representations)_S 67 _t
(and)_S 67 _t
(an)_S 67 _t
(application)_S 67 _t
(can)_S 67 _t
(choose)_S 67 _t
(whichever)_S 67 _t
(one)_S 67 _t
(they)_S 67 _t
(like.)_S 1800 10686 _m
(The)_S 67 _t
2178 10686 _m
/Times-ItalicR 600 _ff
(scale)_S 2589 10686 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
2706 10686 _m
/Times-ItalicR 600 _ff
(shift)_S 3051 10686 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
3168 10686 _m
/Times-ItalicR 600 _ff
(sort)_S 3479 10686 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
3902 10686 _m
/Times-ItalicR 600 _ff
(map)_S 4246 10686 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(are)_S 67 _t
(all)_S 67 _t
(optional,)_S 67 _t
(but)_S 67 _t
(in)_S 67 _t
(order)_S 67 _t
(to)_S 67 _t
(specify)_S 67 _t
(any)_S 67 _t
(of)_S 1200 10451 _m
(them)_S 67 _t
(you)_S 67 _t
(must)_S 67 _t
(specify)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(preceeding)_S 67 _t
(ones)_S 67 _t
(\(i.e.)_S 67 _t
(you)_S 67 _t
(cannot)_S 67 _t
(simply)_S 67 _t
(omit)_S 67 _t
(the)_S 67 _t
7793 10451 _m
/Times-ItalicR 600 _ff
(scale)_S /Times-RomanR 600 _ff
1200 10216 _m
(parameter\).)_S 134 _t
(The)_S 67 _t
2628 10216 _m
/Times-ItalicR 600 _ff
(scale)_S 3039 10216 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(represent)_S 67 _t
(the)_S 67 _t
(amount)_S 67 _t
(by)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(scaled)_S 1200 9981 _m
(along)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(its)_S 67 _t
(axes)_S 67 _t
(when)_S 67 _t
(it's)_S 67 _t
(loaded.)_S 134 _t
(The)_S 67 _t
4975 9981 _m
/Times-ItalicR 600 _ff
(shift)_S 5319 9981 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(amount)_S 67 _t
(by)_S 67 _t
(which)_S 67 _t
(to)_S 67 _t
(shift)_S 67 _t
(the)_S 1200 9746 _m
(object's)_S 67 _t
(origin)_S 67 _t
(at)_S 67 _t
(load)_S 67 _t
(time.)_S 134 _t
(The)_S 67 _t
3985 9746 _m
/Times-ItalicR 600 _ff
(sort)_S 4297 9746 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(type)_S 67 _t
(of)_S 67 _t
(depth-sorting)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(for)_S 67 _t
(this)_S 1200 9511 _m
(segment's)_S 67 _t
(representation)_S 67 _t
(\(the)_S 67 _t
(default)_S 67 _t
(is)_S 67 _t
(zero\).)_S 134 _t
(The)_S 67 _t
5452 9511 _m
/Times-ItalicR 600 _ff
(map)_S 5796 9511 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(name)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(file)_S 67 _t
(containing)_S 1200 9278 _m
(a)_S 67 _t
(list)_S 67 _t
(of)_S 67 _t
(unsigned)_S 67 _t
(values)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(in)_S 67 _t
(surface)_S 67 _t
(remapping)_S 67 _t
(for)_S 67 _t
(this)_S 67 _t
(segment.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(top)_S 1200 9045 _m
(bit)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(color)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(set)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(plg)_S 67 _t
(file,)_S 67 _t
(the)_S 67 _t
(bottom)_S 67 _t
(fourteen)_S 67 _t
(bits)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(as)_S 67 _t
(an)_S 67 _t
(index)_S 67 _t
(into)_S 67 _t
(this)_S 1200 8812 _m
(map.)_S 1800 8344 _m
(The)_S 67 _t
(difference)_S 67 _t
(between)_S 67 _t
3789 8344 _m
/Times-ItalicR 600 _ff
(shift)_S 4134 8344 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
4556 8344 _m
/Times-ItalicR 600 _ff
(pos)_S 4834 8344 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(important.)_S 134 _t
(The)_S 67 _t
6441 8344 _m
/Times-ItalicR 600 _ff
(shift)_S 6786 8344 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(shift)_S 67 _t
(an)_S 1200 8109 _m
(object)_S 67 _t
(relative)_S 67 _t
(to)_S 67 _t
(its)_S 67 _t
("native")_S 67 _t
(origin,)_S 67 _t
(while)_S 67 _t
(the)_S 67 _t
5038 8109 _m
/Times-ItalicR 600 _ff
(pos)_S 5316 8109 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(amount)_S 67 _t
(by)_S 67 _t
(which)_S 67 _t
(the)_S 67 _t
(new)_S 1200 7876 _m
(origin)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(displaced)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(parent)_S 67 _t
(node's)_S 67 _t
(origin.)_S 1800 7410 _m
(For)_S 67 _t
(example,)_S 67 _t
(suppose)_S 67 _t
(you)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(represent)_S 67 _t
(the)_S 67 _t
(head)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(human)_S 67 _t
(figure)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(cube.)_S 67 _t
1200 7177 _m
(The)_S 67 _t
(cube)_S 67 _t
(may,)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(.plg)_S 67 _t
(file,)_S 67 _t
(be)_S 67 _t
(defined)_S 67 _t
(with)_S 67 _t
(its)_S 67 _t
(\(0,0,0\))_S 67 _t
(point)_S 67 _t
(at)_S 67 _t
(one)_S 67 _t
(corner.)_S 134 _t
(Clearly,)_S 67 _t
(this)_S 1200 6944 _m
(origin)_S 67 _t
(is)_S 67 _t
(inconvenient)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(head,)_S 67 _t
(since)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(origin)_S 67 _t
(is)_S 67 _t
(centered)_S 67 _t
(over)_S 67 _t
(the)_S 67 _t
(neck)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(figure)_S 1200 6711 _m
(then)_S 67 _t
(the)_S 67 _t
(head)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(displaced)_S 67 _t
(to)_S 67 _t
(one)_S 67 _t
(side.)_S 1800 6245 _m
(Alternatively,)_S 67 _t
(the)_S 67 _t
(cube)_S 67 _t
(might)_S 67 _t
(be)_S 67 _t
(defined)_S 67 _t
(with)_S 67 _t
(its)_S 67 _t
(\(0,0,0\))_S 67 _t
(point)_S 67 _t
(at)_S 67 _t
(its)_S 67 _t
(geometric)_S 67 _t
(center.)_S 67 _t
1200 6012 _m
(However,)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(also)_S 67 _t
(impractical;)_S 67 _t
(your)_S 67 _t
(head)_S 134 _t
(should)_S 67 _t
(not)_S 67 _t
(rotate)_S 67 _t
(freely)_S 67 _t
(about)_S 67 _t
(its)_S 67 _t
(center.)_S 134 _t
(If)_S 67 _t
(it)_S 1200 5779 _m
(does,)_S 67 _t
(stop)_S 67 _t
(reading)_S 67 _t
(this)_S 67 _t
(document)_S 67 _t
(immediately)_S 67 _t
(and)_S 67 _t
(seek)_S 67 _t
(medical)_S 67 _t
(attention.)_S 1800 5313 _m
(What)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
(do)_S 67 _t
(is)_S 67 _t
(shift)_S 67 _t
(the)_S 67 _t
(cube)_S 67 _t
(so)_S 67 _t
(that)_S 67 _t
(its)_S 67 _t
(origin)_S 67 _t
(lies)_S 67 _t
(below)_S 67 _t
(the)_S 67 _t
(center)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(cube,)_S 1200 5078 _m
(where)_S 67 _t
(your)_S 67 _t
("neck)_S 67 _t
(joint")_S 67 _t
(is.)_S 134 _t
(That's)_S 67 _t
(what)_S 67 _t
(the)_S 67 _t
4893 5078 _m
/Times-ItalicR 600 _ff
(shift)_S 5238 5078 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
6339 5078 _m
/Times-ItalicR 600 _ff
(plgfile)_S 6850 5078 _m
/Times-RomanR 600 _ff
67 _t
(attribute)_S 67 _t
(specifies.)_S 1200 4612 _m
(Important)_S 67 _t
(note:)_S 67 _t
(objects)_S 67 _t
(rotate)_S 67 _t
(about)_S 67 _t
(their)_S 67 _t
([0,0,0])_S 67 _t
(point)_S 67 _t
(as)_S 67 _t
(loaded.)_S 1800 4144 _m
(The)_S 67 _t
2178 4144 _m
/Times-ItalicR 600 _ff
(pos)_S 2456 4144 _m
/Times-RomanR 600 _ff
67 _t
(attribute)_S 67 _t
(specifies)_S 67 _t
(where)_S 67 _t
(this)_S 67 _t
(neck)_S 67 _t
(joint)_S 67 _t
(is)_S 67 _t
(in)_S 67 _t
(relation)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(origin)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(chest)_S 1200 3909 _m
(segment.)_S 134 _t
(If)_S 67 _t
(your)_S 67 _t
(chest)_S 67 _t
(were)_S 67 _t
(longer)_S 67 _t
(vertically,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
5791 3909 _m
/Times-ItalicR 600 _ff
(pos)_S 6069 3909 _m
/Times-RomanR 600 _ff
67 _t
(attribute)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(head)_S 67 _t
(segment)_S 1200 3676 _m
(should)_S 67 _t
(be)_S 67 _t
(increased)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(Y)_S 67 _t
(direction)_S 67 _t
(\(for)_S 67 _t
(example\).)_S 1800 3208 _m
(The)_S 67 _t
2178 3208 _m
/Times-ItalicR 600 _ff
(segnum)_S 2789 3208 _m
/Times-RomanR 600 _ff
67 _t
(attribute)_S 67 _t
(associates)_S 67 _t
(a)_S 67 _t
(simple)_S 67 _t
(integer)_S 67 _t
(value)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
(segment,)_S 67 _t
(which)_S 67 _t
(can)_S 1200 2975 _m
(subsequently)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(refer)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(segment)_S 67 _t
(when)_S 67 _t
(manipulating)_S 67 _t
(it.)_S 1800 2509 _m
(Note)_S 67 _t
(that)_S 67 _t
(a)_S 67 _t
(figure)_S 67 _t
(file)_S 67 _t
(can)_S 67 _t
(in)_S 67 _t
(fact)_S 67 _t
(contain)_S 67 _t
(a)_S 67 _t
(series)_S 67 _t
(of)_S 67 _t
(segments;)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(these)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(root)_S 1200 2276 _m
(segment,)_S 67 _t
(so)_S 67 _t
(a)_S 67 _t
(figure)_S 67 _t
(file)_S 67 _t
(can)_S 67 _t
(in)_S 67 _t
(effect)_S 67 _t
(store)_S 67 _t
(a)_S 67 _t
(complete)_S 67 _t
(scene)_S 67 _t
(description)_S 67 _t
(\(excluding)_S 67 _t
(lights)_S 67 _t
(and)_S 1200 2043 _m
(cameras\).)_S 8800 1255 _m
(61)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11592 _m
/Times-BoldR 720 _ff
(Appendix)_S 80 _t
(E)_S 80 _t
(-)_S 80 _t
(WLD)_S 80 _t
(FILE)_S 80 _t
(FORMAT)_S 5040 11592 _m
/Times-RomanR 600 _ff
1200 11116 _m
(WLD)_S 67 _t
(files)_S 67 _t
(were)_S 67 _t
(designed)_S 67 _t
(to)_S 67 _t
(store)_S 67 _t
(information)_S 67 _t
(about)_S 67 _t
(the)_S 67 _t
(layout)_S 67 _t
(of)_S 67 _t
(objects)_S 67 _t
(in)_S 67 _t
(a)_S 67 _t
(virtual)_S 67 _t
(world.)_S 3135 10650 _m
/Times-BoldR 600 _ff
(This)_S 67 _t
(format)_S 67 _t
(will)_S 67 _t
(soon)_S 67 _t
(be)_S 67 _t
(considered)_S 67 _t
(obsolete.)_S /Times-RomanR 600 _ff
1200 10184 _m
(There)_S 67 _t
(will)_S 67 _t
(soon)_S 67 _t
(be)_S 67 _t
(a)_S 67 _t
(file)_S 67 _t
(format)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(interchange)_S 67 _t
(of)_S 67 _t
(virtual)_S 67 _t
(objects)_S 67 _t
(and)_S 67 _t
(virtual)_S 67 _t
(worlds)_S 1200 9951 _m
(between)_S 67 _t
(VR)_S 67 _t
(systems;)_S 67 _t
(at)_S 67 _t
(that)_S 67 _t
(point,)_S 67 _t
(support)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(WLD)_S 67 _t
(file)_S 67 _t
(format)_S 67 _t
(will)_S 67 _t
(diminish.)_S 67 _t
1200 9718 _m
(Conversion)_S 67 _t
(programs)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(made)_S 67 _t
(available)_S 67 _t
(to)_S 67 _t
(convert)_S 67 _t
(WLD)_S 67 _t
(files)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(new)_S 67 _t
(format.)_S 1200 9252 _m
(A)_S 67 _t
(WLD)_S 67 _t
(file)_S 67 _t
(is)_S 67 _t
(entirely)_S 67 _t
(ascii.)_S 134 _t
(Each)_S 67 _t
(statement)_S 67 _t
(is)_S 67 _t
(one)_S 67 _t
(line;)_S 67 _t
(anything)_S 67 _t
(after)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
('#')_S 67 _t
(is)_S 67 _t
(treated)_S 1200 9019 _m
(as)_S 67 _t
(a)_S 67 _t
(comment)_S 67 _t
(and)_S 67 _t
(ignored.)_S 134 _t
(Blank)_S 67 _t
(lines)_S 67 _t
(are)_S 67 _t
(also)_S 67 _t
(ignored.)_S 134 _t
(The)_S 67 _t
(format)_S 67 _t
(is)_S 67 _t
(intended)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(highly)_S 1200 8786 _m
(extensible;)_S 67 _t
(any)_S 67 _t
(line)_S 67 _t
(which)_S 67 _t
(cannot)_S 67 _t
(be)_S 67 _t
(recognized)_S 67 _t
(should)_S 67 _t
(simply)_S 67 _t
(be)_S 67 _t
(ignored.)_S 134 _t
(Each)_S 67 _t
(statement)_S 1200 8553 _m
(contains)_S 67 _t
(some)_S 67 _t
(information)_S 67 _t
(about)_S 67 _t
(the)_S 67 _t
(scene;)_S 67 _t
(the)_S 67 _t
(possible)_S 67 _t
(types)_S 67 _t
(of)_S 67 _t
(statements)_S 67 _t
(are)_S 67 _t
(listed)_S 67 _t
(below.)_S 67 _t
1200 8320 _m
(Everything)_S 67 _t
(is)_S 67 _t
(case-insensitive;)_S 67 _t
(keywords)_S 67 _t
(are)_S 67 _t
(shown)_S 67 _t
(below)_S 67 _t
(in)_S 67 _t
(uppercase,)_S 67 _t
(but)_S 67 _t
(are)_S 67 _t
(generally)_S 1200 8087 _m
(entered)_S 67 _t
(in)_S 67 _t
(lowercase.)_S 1200 7619 _m
(LOADPATH)_S 67 _t
2345 7619 _m
/Times-ItalicR 600 _ff
(path)_S /Times-RomanR 600 _ff
1800 7386 _m
(Specifies)_S 67 _t
(a)_S 67 _t
(path)_S 67 _t
(prefix)_S 67 _t
(for)_S 67 _t
(loading)_S 67 _t
(files.)_S 134 _t
(Any)_S 67 _t
(files)_S 67 _t
(\(whether)_S 67 _t
(specified)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(world)_S 67 _t
(file)_S 1800 7153 _m
(itself,)_S 67 _t
(subsequent)_S 67 _t
(world)_S 67 _t
(files,)_S 67 _t
(or)_S 67 _t
(in)_S 67 _t
(referenced)_S 67 _t
(FIG)_S 67 _t
(files\))_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(loaded)_S 67 _t
(from)_S 67 _t
(the)_S 1800 6920 _m
(specified)_S 67 _t
(directory.)_S 134 _t
(However,)_S 67 _t
(if)_S 67 _t
(a)_S 67 _t
(filename)_S 67 _t
(begins)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
('\\')_S 67 _t
(or)_S 67 _t
('/')_S 67 _t
(characters,)_S 67 _t
(it)_S 67 _t
(is)_S 1800 6687 _m
(used)_S 67 _t
(verbatim)_S 67 _t
(\(i.e.)_S 67 _t
(the)_S 67 _t
(LOADPATH)_S 67 _t
(setting)_S 67 _t
(is)_S 67 _t
(ignored\).)_S 1200 6219 _m
(PALETTE)_S 67 _t
2134 6219 _m
/Times-ItalicR 600 _ff
(filename)_S /Times-RomanR 600 _ff
1800 5986 _m
(Loads)_S 67 _t
(a)_S 67 _t
(256-entry)_S 67 _t
(binary)_S 67 _t
(palette)_S 67 _t
(file)_S 67 _t
(\(3)_S 67 _t
(bytes)_S 67 _t
(\(R,G,B\))_S 67 _t
(for)_S 67 _t
(each)_S 67 _t
(entry\).)_S 134 _t
(Note)_S 67 _t
(that)_S 1800 5753 _m
(alternate)_S 67 _t
(palettes)_S 67 _t
(may)_S 67 _t
(not)_S 67 _t
(handle)_S 67 _t
(shading)_S 67 _t
(as)_S 67 _t
(well)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(default)_S 67 _t
(one)_S 67 _t
(does.)_S 1200 5285 _m
(SKYCOLOR)_S 67 _t
2345 5285 _m
/Times-ItalicR 600 _ff
(index)_S /Times-RomanR 600 _ff
1800 5052 _m
(Specifies)_S 67 _t
(which)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(256)_S 67 _t
(available)_S 67 _t
(colors)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
("sky".)_S 1200 4584 _m
(GROUNDCOLOR)_S 67 _t
2800 4584 _m
/Times-ItalicR 600 _ff
(index)_S /Times-RomanR 600 _ff
1800 4351 _m
(Specifies)_S 67 _t
(which)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(256)_S 67 _t
(available)_S 67 _t
(colors)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
("ground".)_S 67 _t
(If)_S 67 _t
(the)_S 67 _t
(sky)_S 1800 4118 _m
(and)_S 67 _t
(ground)_S 67 _t
(color)_S 67 _t
(are)_S 67 _t
(identical,)_S 67 _t
(a)_S 67 _t
(solid)_S 67 _t
(screen)_S 67 _t
(clear)_S 67 _t
(is)_S 67 _t
(used;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(bit)_S 67 _t
(faster.)_S 1200 3650 _m
(SCREENCLEAR)_S 67 _t
2689 3650 _m
/Times-ItalicR 600 _ff
(value)_S /Times-RomanR 600 _ff
1800 3417 _m
(If)_S 67 _t
(the)_S 67 _t
(specified)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(non-zero,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(screen)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(cleared)_S 67 _t
(before)_S 67 _t
(each)_S 67 _t
(frame;)_S 67 _t
(if)_S 1800 3184 _m
(it's)_S 67 _t
(zero,)_S 67 _t
(the)_S 67 _t
(screen)_S 67 _t
(clearing)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(done)_S 67 _t
(\(this)_S 67 _t
(is)_S 67 _t
(useful)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(know)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(entire)_S 1800 2951 _m
(window)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(covered)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(image,)_S 67 _t
(and)_S 67 _t
(that)_S 67 _t
(no)_S 67 _t
(background)_S 67 _t
(will)_S 67 _t
(show)_S 67 _t
(through;)_S 67 _t
(in)_S 1800 2718 _m
(such)_S 67 _t
(a)_S 67 _t
(situation,)_S 67 _t
(specifying)_S 67 _t
(this)_S 67 _t
(option)_S 67 _t
(will)_S 67 _t
(improve)_S 67 _t
(performance\).)_S 1200 2250 _m
(AMBIENT)_S 67 _t
2178 2250 _m
/Times-ItalicR 600 _ff
(value)_S /Times-RomanR 600 _ff
1800 2017 _m
(Specifies)_S 67 _t
(the)_S 67 _t
(level)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(ambient)_S 67 _t
(light;)_S 67 _t
(76)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(default,)_S 67 _t
(and)_S 67 _t
(a)_S 67 _t
(good)_S 67 _t
(value)_S 67 _t
(to)_S 67 _t
(use.)_S 8800 1255 _m
(62)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11853 _m
(LIGHT)_S 67 _t
1867 11853 _m
/Times-ItalicR 600 _ff
(x,y,z)_S /Times-RomanR 600 _ff
1800 11620 _m
(Specifies)_S 67 _t
(the)_S 67 _t
(location)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(light)_S 67 _t
(source)_S 67 _t
(in)_S 67 _t
(world)_S 67 _t
(coordinates.)_S 1200 11152 _m
(CAMERA)_S 67 _t
2123 11152 _m
/Times-ItalicR 600 _ff
(x,y,z)_S 67 _t
(tilt,pan,roll)_S 67 _t
(zoom)_S /Times-RomanR 600 _ff
1800 10917 _m
(Specifies)_S 67 _t
(your)_S 67 _t
(starting)_S 67 _t
(location,)_S 67 _t
(viewing)_S 67 _t
(direction)_S 67 _t
(and)_S 67 _t
(zoom)_S 67 _t
(factor.)_S 134 _t
(The)_S 67 _t
7847 10917 _m
/Times-ItalicR 600 _ff
(x,y,z)_S 8203 10917 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 1800 10682 _m
(are)_S 67 _t
(floating-point)_S 67 _t
(numbers)_S 67 _t
(giving)_S 67 _t
(coordinates,)_S 67 _t
(the)_S 67 _t
5963 10682 _m
/Times-ItalicR 600 _ff
(tilt,pan,roll)_S 6874 10682 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(are)_S 67 _t
(floating-point)_S 1800 10447 _m
(angles,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
3095 10447 _m
/Times-ItalicR 600 _ff
(zoom)_S 3517 10447 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(a)_S 67 _t
(floating-point)_S 67 _t
(number)_S 67 _t
(giving)_S 67 _t
(the)_S 67 _t
(zoom)_S 67 _t
(factor.)_S 1200 9979 _m
(HITHER)_S 67 _t
2000 9979 _m
/Times-ItalicR 600 _ff
(value)_S /Times-RomanR 600 _ff
1800 9746 _m
(Specifies)_S 67 _t
(the)_S 67 _t
(near)_S 67 _t
(clipping)_S 67 _t
(distance)_S 67 _t
(in)_S 67 _t
(world)_S 67 _t
(coordinates.)_S 134 _t
(The)_S 67 _t
(value)_S 67 _t
(should)_S 67 _t
(typically)_S 1800 9513 _m
(be)_S 67 _t
(10)_S 67 _t
(or)_S 67 _t
(more.)_S 1200 9045 _m
(YON)_S 67 _t
1700 9045 _m
/Times-ItalicR 600 _ff
(value)_S /Times-RomanR 600 _ff
1800 8812 _m
(Specifies)_S 67 _t
(the)_S 67 _t
(far)_S 67 _t
(clipping)_S 67 _t
(distance)_S 67 _t
(in)_S 67 _t
(world)_S 67 _t
(coordinates.)_S 134 _t
(The)_S 67 _t
(value)_S 67 _t
(should)_S 67 _t
(typically)_S 67 _t
(be)_S 1800 8579 _m
(1000000)_S 67 _t
(or)_S 67 _t
(more.)_S 1200 8111 _m
(OBJECT)_S 67 _t
([)_S 2067 8111 _m
/Times-ItalicR 600 _ff
(objname)_S 2756 8111 _m
/Times-RomanR 600 _ff
(=])_S 2935 8111 _m
/Times-ItalicR 600 _ff
(filename)_S 67 _t
(sx,sy,sz)_S 67 _t
(rx,ry,rz)_S 67 _t
(tx,ty,tz)_S 67 _t
(depthtype)_S 67 _t
(mappings)_S 67 _t
(parent)_S /Times-RomanR 600 _ff
1800 7876 _m
(Loads)_S 67 _t
(an)_S 67 _t
(object)_S 67 _t
(from)_S 67 _t
(a)_S 67 _t
(.plg)_S 67 _t
(file)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
5731 7876 _m
/Times-ItalicR 600 _ff
(filename)_S 6419 7876 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
7115 7876 _m
/Times-ItalicR 600 _ff
(objname=)_S 7939 7876 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(present,)_S 1800 7641 _m
(it)_S 67 _t
(assigns)_S 67 _t
(the)_S 67 _t
(newly-loaded)_S 67 _t
(object)_S 67 _t
(that)_S 67 _t
(name)_S 67 _t
(for)_S 67 _t
(future)_S 67 _t
(reference.)_S 134 _t
(The)_S 67 _t
7664 7641 _m
/Times-ItalicR 600 _ff
(sx,sy,sz)_S 8252 7641 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 1800 7408 _m
(are)_S 67 _t
(floating-point)_S 67 _t
(scale)_S 67 _t
(factors)_S 67 _t
(to)_S 67 _t
(increase)_S 67 _t
(or)_S 67 _t
(decrease)_S 67 _t
(the)_S 67 _t
(size)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(as)_S 67 _t
(it's)_S 1800 7173 _m
(loaded.)_S 134 _t
(The)_S 67 _t
2895 7173 _m
/Times-ItalicR 600 _ff
(rx,ry,rz)_S 3484 7173 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(are)_S 67 _t
(the)_S 67 _t
(angles)_S 67 _t
(to)_S 67 _t
(rotate)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(around)_S 67 _t
(in)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(the)_S 1800 6938 _m
(three)_S 67 _t
(axes;)_S 67 _t
2745 6938 _m
/Times-ItalicR 600 _ff
(ry)_S 2911 6938 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(done)_S 67 _t
(first,)_S 67 _t
(then)_S 67 _t
4485 6938 _m
/Times-ItalicR 600 _ff
(rx)_S 4652 6938 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
(finally)_S 67 _t
5664 6938 _m
/Times-ItalicR 600 _ff
(rz)_S 5819 6938 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(The)_S 67 _t
6381 6938 _m
/Times-ItalicR 600 _ff
(tx,ty,tz)_S 6904 6938 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(translate)_S 67 _t
(\(move\))_S 1800 6703 _m
(the)_S 67 _t
(object)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(new)_S 67 _t
(location;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(done)_S 67 _t
(after)_S 67 _t
(the)_S 67 _t
(scaling)_S 67 _t
(and)_S 67 _t
(rotation.)_S 134 _t
(The)_S 67 _t
8143 6703 _m
/Times-ItalicR 600 _ff
(depthtype)_S /Times-RomanR 600 _ff
1800 6468 _m
(field)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(currently)_S 67 _t
(used.)_S 134 _t
(The)_S 67 _t
4474 6468 _m
/Times-ItalicR 600 _ff
(mappings)_S 5252 6468 _m
/Times-RomanR 600 _ff
67 _t
(feature)_S 67 _t
(is)_S 67 _t
(explained)_S 67 _t
(below.)_S 134 _t
(The)_S 67 _t
8037 6468 _m
/Times-ItalicR 600 _ff
(parent)_S /Times-RomanR 600 _ff
1800 6235 _m
(field)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(name)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(that)_S 67 _t
(this)_S 67 _t
(object)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(child)_S 67 _t
(of;)_S 67 _t
(if)_S 67 _t
(omitted,)_S 67 _t
(the)_S 67 _t
(child)_S 67 _t
(moves)_S 1800 6000 _m
(independently.)_S 134 _t
(If)_S 67 _t
3317 6000 _m
/Times-ItalicR 600 _ff
(parent)_S 3840 6000 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(word)_S 67 _t
("fixed",)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(object)_S 67 _t
(is)_S 67 _t
(fixed)_S 67 _t
(in)_S 67 _t
(space)_S 67 _t
(and)_S 1800 5767 _m
(cannot)_S 67 _t
(be)_S 67 _t
(moved.)_S 134 _t
(All)_S 67 _t
(fields)_S 67 _t
(are)_S 67 _t
(optional,)_S 67 _t
(but)_S 67 _t
(you)_S 67 _t
(must)_S 67 _t
(include)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(fields)_S 67 _t
(prior)_S 67 _t
(to)_S 1800 5534 _m
(the)_S 67 _t
(last)_S 67 _t
(one)_S 67 _t
(you)_S 67 _t
(wish)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(\(i.e.)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(only)_S 67 _t
(leave)_S 67 _t
(things)_S 67 _t
(off)_S 67 _t
(the)_S 67 _t
(end,)_S 67 _t
(not)_S 67 _t
(off)_S 67 _t
(the)_S 1800 5301 _m
(beginning)_S 67 _t
(or)_S 67 _t
(out)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(middle\).)_S 1200 4833 _m
(FIGURE)_S 67 _t
([)_S 2056 4833 _m
/Times-ItalicR 600 _ff
(figname=)_S 2835 4833 _m
/Times-RomanR 600 _ff
(])_S 2902 4833 _m
/Times-ItalicR 600 _ff
(filename)_S 67 _t
(sx,sy,sz)_S 67 _t
(rx,ry,rz)_S 67 _t
(tx,ty,tz)_S 67 _t
(parent)_S /Times-RomanR 600 _ff
1800 4600 _m
(Loads)_S 67 _t
(a)_S 67 _t
(segmented)_S 67 _t
(figure)_S 67 _t
(from)_S 67 _t
(a)_S 67 _t
(FIG)_S 67 _t
(file)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
(filename.)_S 134 _t
(All)_S 67 _t
(the)_S 67 _t
(parameters)_S 1800 4367 _m
(have)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(meaning)_S 67 _t
(as)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(OBJECT)_S 67 _t
(statement)_S 67 _t
(described)_S 67 _t
(above.)_S 1200 3899 _m
(POLYOBJ)_S 67 _t
2145 3899 _m
/Times-ItalicR 600 _ff
(npts)_S 67 _t
(surface)_S 67 _t
(x1,y1,z1)_S 67 _t
(x2,y2,z2)_S 4579 3899 _m
/Times-RomanR 600 _ff
67 _t
([...])_S 67 _t
4996 3899 _m
/Times-ItalicR 600 _ff
(x8,y8,z8)_S /Times-RomanR 600 _ff
1800 3664 _m
(Directly)_S 67 _t
(specifies)_S 67 _t
(a)_S 67 _t
(facet)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(placed)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(scene.)_S 134 _t
(The)_S 67 _t
(value)_S 67 _t
7008 3664 _m
/Times-ItalicR 600 _ff
(npts)_S 7342 3664 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 1800 3429 _m
(points)_S 67 _t
(\(maximum)_S 67 _t
(8\),)_S 67 _t
(the)_S 67 _t
3896 3429 _m
/Times-ItalicR 600 _ff
(surface)_S 4485 3429 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(a)_S 67 _t
(surface)_S 67 _t
(name)_S 67 _t
(\(see)_S 67 _t
(below)_S 67 _t
(on)_S 67 _t
(surfaces\))_S 67 _t
(and)_S 67 _t
(the)_S 1800 3196 _m
(vertices)_S 67 _t
(are)_S 67 _t
(given)_S 67 _t
(in)_S 67 _t
(world)_S 67 _t
(coordinates.)_S 1200 2728 _m
(POLYOBJ2)_S 67 _t
2245 2728 _m
/Times-ItalicR 600 _ff
(npts)_S 67 _t
(surface1,surface2)_S 67 _t
(x1,y1,z1)_S 67 _t
(x2,y2,z2)_S 5518 2728 _m
/Times-RomanR 600 _ff
67 _t
([...])_S 67 _t
5935 2728 _m
/Times-ItalicR 600 _ff
(x8,y8,z8)_S /Times-RomanR 600 _ff
1800 2493 _m
(Directly)_S 67 _t
(specifies)_S 67 _t
(a)_S 67 _t
(double-sided)_S 67 _t
(facet)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(placed)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(scene.)_S 134 _t
(The)_S 67 _t
(value)_S 67 _t
8109 2493 _m
/Times-ItalicR 600 _ff
(npts)_S 8442 2493 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 1800 2258 _m
(number)_S 67 _t
(of)_S 67 _t
(points)_S 67 _t
(\(maximum)_S 67 _t
(8\),)_S 67 _t
4496 2258 _m
/Times-ItalicR 600 _ff
(surface1)_S 5185 2258 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
5608 2258 _m
/Times-ItalicR 600 _ff
(surface2)_S 6296 2258 _m
/Times-RomanR 600 _ff
67 _t
(are)_S 67 _t
(surface)_S 67 _t
(names)_S 67 _t
(\(see)_S 67 _t
(below)_S 1800 2025 _m
(on)_S 67 _t
(surfaces\))_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(vertices)_S 67 _t
(are)_S 67 _t
(given)_S 67 _t
(in)_S 67 _t
(world)_S 67 _t
(coordinates.)_S 8800 1255 _m
(63)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11853 _m
(INCLUDE)_S 67 _t
2145 11853 _m
/Times-ItalicR 600 _ff
(filename)_S /Times-RomanR 600 _ff
1800 11620 _m
(Includes)_S 67 _t
(the)_S 67 _t
(specified)_S 67 _t
(file)_S 67 _t
(as)_S 67 _t
(if)_S 67 _t
(its)_S 67 _t
(contents)_S 67 _t
(appeared)_S 67 _t
(at)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(point)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(current)_S 1800 11387 _m
(file.)_S 1200 10919 _m
(POSITION)_S 67 _t
2178 10919 _m
/Times-ItalicR 600 _ff
(objname)_S 67 _t
(x,y,z)_S /Times-RomanR 600 _ff
1800 10684 _m
(Moves)_S 67 _t
(\(i.e.)_S 67 _t
(translates\))_S 67 _t
(the)_S 67 _t
(specified)_S 67 _t
(object)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
6380 10684 _m
/Times-ItalicR 600 _ff
(x,y,z)_S 6735 10684 _m
/Times-RomanR 600 _ff
67 _t
(location.)_S 1200 10216 _m
(ROTATE)_S 67 _t
2056 10216 _m
/Times-ItalicR 600 _ff
(objname)_S 67 _t
(rx,ry,rz)_S /Times-RomanR 600 _ff
1800 9983 _m
(Rotates)_S 67 _t
(the)_S 67 _t
(specified)_S 67 _t
(object)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(given)_S 67 _t
(angles)_S 67 _t
(about)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(axes.)_S 134 _t
(The)_S 67 _t
(angles)_S 67 _t
(are)_S 1800 9750 _m
(specified)_S 67 _t
(in)_S 67 _t
(floating)_S 67 _t
(point,)_S 67 _t
(and)_S 67 _t
(are)_S 67 _t
(measured)_S 67 _t
(in)_S 67 _t
(degrees.)_S 134 _t
(The)_S 67 _t
(rotation)_S 67 _t
(order)_S 67 _t
(is)_S 67 _t
(Y)_S 67 _t
(then)_S 1800 9517 _m
(X)_S 67 _t
(then)_S 67 _t
(Z.)_S 1200 9049 _m
(VERSION)_S 67 _t
2134 9049 _m
/Times-ItalicR 600 _ff
(number)_S /Times-RomanR 600 _ff
1800 8816 _m
(Allows)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
(define)_S 67 _t
(a)_S 67 _t
(version)_S 67 _t
(number.)_S 134 _t
(Not)_S 67 _t
(currently)_S 67 _t
(used)_S 67 _t
(for)_S 67 _t
(anything;)_S 67 _t
(can)_S 67 _t
(be)_S 1800 8583 _m
(omitted.)_S 1200 8115 _m
(TITLE)_S 67 _t
1822 8115 _m
/Times-ItalicR 600 _ff
(text)_S /Times-RomanR 600 _ff
1800 7882 _m
(Allows)_S 67 _t
(you)_S 67 _t
(to)_S 67 _t
(define)_S 67 _t
(a)_S 67 _t
(title)_S 67 _t
(for)_S 67 _t
(your)_S 67 _t
(world.)_S 1200 7386 _m
/Times-BoldR 720 _ff
(About)_S 80 _t
(Mapping)_S 2854 7386 _m
/Times-RomanR 600 _ff
1200 6910 _m
(A)_S 67 _t
(PLG)_S 67 _t
(file)_S 67 _t
(can)_S 67 _t
(contain)_S 67 _t
(indexed)_S 67 _t
(color)_S 67 _t
(values)_S 67 _t
(\(such)_S 67 _t
(as)_S 67 _t
(0x8002\))_S 67 _t
(which)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(index)_S 67 _t
(a)_S 1200 6677 _m
(surface)_S 67 _t
(map.)_S 134 _t
(Entries)_S 67 _t
(in)_S 67 _t
(surface)_S 67 _t
(maps)_S 67 _t
(refer)_S 67 _t
(to)_S 67 _t
(surfaces.)_S 134 _t
(Surfaces)_S 67 _t
(are)_S 67 _t
(created)_S 67 _t
(using)_S 67 _t
(the)_S 1200 6444 _m
(SURFACEDEF)_S 67 _t
(statement,)_S 67 _t
(surface)_S 67 _t
(maps)_S 67 _t
(are)_S 67 _t
(created)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(SURFACEMAP)_S 67 _t
(statement,)_S 67 _t
(and)_S 1200 6211 _m
(entries)_S 67 _t
(are)_S 67 _t
(placed)_S 67 _t
(in)_S 67 _t
(them)_S 67 _t
(with)_S 67 _t
(the)_S 67 _t
(SURFACE)_S 67 _t
(statement.)_S 134 _t
(The)_S 67 _t
(statement)_S 67 _t
(formats)_S 67 _t
(are)_S 67 _t
(as)_S 1200 5978 _m
(follows:)_S 1200 5510 _m
(SURFACEDEF)_S 67 _t
2545 5510 _m
/Times-ItalicR 600 _ff
(name)_S 67 _t
(value)_S /Times-RomanR 600 _ff
1800 5277 _m
(Defines)_S 67 _t
(a)_S 67 _t
(new)_S 67 _t
(surface;)_S 67 _t
(maps)_S 67 _t
(a)_S 67 _t
(surface)_S 67 _t
(name)_S 67 _t
(\(such)_S 67 _t
(as)_S 67 _t
("wood"\))_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(numeric)_S 67 _t
(surface)_S 1800 5042 _m
(descriptor)_S 67 _t
(\()_S 2733 5042 _m
/Times-ItalicR 600 _ff
(value)_S 3167 5042 _m
/Times-RomanR 600 _ff
(\))_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(type)_S 67 _t
(described)_S 67 _t
(in)_S 67 _t
(Appendix)_S 67 _t
(C.)_S 1200 4574 _m
(SURFACEMAP)_S 67 _t
2601 4574 _m
/Times-ItalicR 600 _ff
(name)_S 67 _t
(maxentries)_S /Times-RomanR 600 _ff
1800 4341 _m
(Marks)_S 67 _t
(the)_S 67 _t
(start)_S 67 _t
(of)_S 67 _t
(a)_S 67 _t
(new)_S 67 _t
(surface)_S 67 _t
(map.)_S 134 _t
(All)_S 67 _t
(subsequent)_S 67 _t
(SURFACE)_S 67 _t
(entries)_S 67 _t
(will)_S 67 _t
(be)_S 1800 4106 _m
(placed)_S 67 _t
(in)_S 67 _t
(this)_S 67 _t
(map.)_S 134 _t
(The)_S 67 _t
3874 4106 _m
/Times-ItalicR 600 _ff
(maxentries)_S 4752 4106 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(gives)_S 67 _t
(the)_S 67 _t
(maximum)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(entries)_S 67 _t
(this)_S 1800 3873 _m
(surface)_S 67 _t
(map)_S 67 _t
(will)_S 67 _t
(have;)_S 67 _t
(if)_S 67 _t
(omitted,)_S 67 _t
(it)_S 67 _t
(defaults)_S 67 _t
(to)_S 67 _t
(10.)_S 1200 3405 _m
(SURFACE)_S 67 _t
2167 3405 _m
/Times-ItalicR 600 _ff
(index)_S 67 _t
(name)_S /Times-RomanR 600 _ff
1800 3170 _m
(Defines)_S 67 _t
(an)_S 67 _t
(entry)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
(surface)_S 67 _t
(map,)_S 67 _t
(which)_S 67 _t
(takes)_S 67 _t
(an)_S 67 _t
6786 3170 _m
/Times-ItalicR 600 _ff
(index)_S 7219 3170 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(\(the)_S 67 _t
(bottom)_S 1800 2935 _m
(15)_S 67 _t
(bits)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(.plg)_S 67 _t
(file\))_S 67 _t
(and)_S 67 _t
(maps)_S 67 _t
(it)_S 67 _t
(into)_S 67 _t
(a)_S 67 _t
(surface)_S 67 _t
6977 2935 _m
/Times-ItalicR 600 _ff
(name)_S 7410 2935 _m
/Times-RomanR 600 _ff
67 _t
(\(which)_S 67 _t
(is)_S 67 _t
(in)_S 67 _t
(turn)_S 1800 2702 _m
(mapped)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(16-bit)_S 67 _t
(color)_S 67 _t
(value\).)_S 1200 2234 _m
(USEMAP)_S 67 _t
2078 2234 _m
/Times-ItalicR 600 _ff
(mapname)_S /Times-RomanR 600 _ff
1800 2001 _m
(Causes)_S 67 _t
(all)_S 67 _t
(subsequently)_S 67 _t
(loaded)_S 67 _t
(objects)_S 67 _t
(that)_S 67 _t
(don't)_S 67 _t
(have)_S 67 _t
(a)_S 67 _t
(mapname)_S 67 _t
(on)_S 67 _t
(their)_S 67 _t
(OBJECT)_S 1800 1766 _m
(statements)_S 67 _t
(to)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
(specified)_S 67 _t
4368 1766 _m
/Times-ItalicR 600 _ff
(mapname)_S 5146 1766 _m
/Times-RomanR 600 _ff
(.)_S 8800 1255 _m
(64)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11592 _m
/Times-BoldR 720 _ff
(Appendix)_S 80 _t
(F)_S 80 _t
(-)_S 80 _t
(WRITING)_S 80 _t
(DEVICE)_S 80 _t
(DRIVERS)_S 5960 11592 _m
/Times-RomanR 600 _ff
1200 11116 _m
(Writing)_S 67 _t
(device)_S 67 _t
(drivers)_S 67 _t
(for)_S 67 _t
(AVRIL)_S 67 _t
(is)_S 67 _t
(easy.)_S 134 _t
(You)_S 67 _t
(basically)_S 67 _t
(create)_S 67 _t
(a)_S 67 _t
(single)_S 67 _t
(function)_S 67 _t
(with)_S 67 _t
(a)_S 1200 10883 _m
(unique)_S 67 _t
(name;)_S 67 _t
(for)_S 67 _t
(example,)_S 67 _t
(if)_S 67 _t
(you)_S 67 _t
(want)_S 67 _t
(to)_S 67 _t
(support)_S 67 _t
(a)_S 67 _t
(\(mythical\))_S 67 _t
(RealTronics)_S 67 _t
(Atomic)_S 67 _t
(Tracking)_S 1200 10650 _m
(System,)_S 67 _t
(your)_S 67 _t
(function)_S 67 _t
(might)_S 67 _t
(be)_S 1800 10238 _m
/CourierR 400 _ff
(int)_S 80 _t
(vrl_ATSDevice\(vrl_DeviceCommand)_S 80 _t
(cmd,)_S 80 _t
(vrl_Device)_S 80 _t
(*device\))_S 2400 10105 _m
({)_S 2400 9972 _m
([...])_S 2400 9839 _m
(})_S /Times-RomanR 600 _ff
1200 9419 _m
(You)_S 67 _t
(should)_S 67 _t
(add)_S 67 _t
(an)_S 67 _t
(entry)_S 67 _t
(for)_S 67 _t
(your)_S 67 _t
(new)_S 67 _t
(function)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(list)_S 67 _t
(in)_S 67 _t
(avrildrv.h,)_S 67 _t
(and)_S 67 _t
(possibly)_S 67 _t
(to)_S 67 _t
(the)_S 1200 9186 _m
(cfg.c)_S 67 _t
(file.)_S 1800 8720 _m
(Your)_S 67 _t
(driver)_S 67 _t
(routine)_S 67 _t
(will)_S 67 _t
(get)_S 67 _t
(called)_S 67 _t
(periodically)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(application.)_S 134 _t
(The)_S 67 _t
(vrl_Device)_S 1200 8485 _m
(struct)_S 67 _t
(is)_S 67 _t
(pre-allocated)_S 67 _t
(by)_S 67 _t
(AVRIL,)_S 67 _t
(so)_S 67 _t
(you)_S 67 _t
(just)_S 67 _t
(have)_S 67 _t
(to)_S 67 _t
(fill)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(various)_S 67 _t
(fields.)_S 134 _t
(The)_S 67 _t
8149 8485 _m
/Times-ItalicR 600 _ff
(cmd)_S 8483 8485 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 1200 8252 _m
(one)_S 67 _t
(of)_S 67 _t
(VRL_DEVICE_INIT,)_S 67 _t
(VRL_DEVICE_RESET,)_S 67 _t
(VRL_DEVICE_POLL,)_S 67 _t
(or)_S 1200 8019 _m
(VRL_DEVICE_QUIT.)_S 1800 7553 _m
(When)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(is)_S 67 _t
(first)_S 67 _t
(opened,)_S 67 _t
(AVRIL)_S 67 _t
(will)_S 67 _t
(set)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(fields)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(vrl_Device)_S 67 _t
(struct)_S 67 _t
(to)_S 1200 7320 _m
(reasonable)_S 67 _t
(values.)_S 134 _t
(The)_S 67 _t
(VRL_DEVICE_INIT)_S 67 _t
(call)_S 67 _t
(should)_S 67 _t
(fill)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(following)_S 67 _t
(fields)_S 67 _t
(with)_S 1200 7087 _m
(driver-specific)_S 67 _t
(information:)_S 1800 6675 _m
/CourierR 400 _ff
(char)_S 80 _t
(*desc;)_S 1360 _t
(/*)_S 80 _t
(user-readable)_S 80 _t
(device)_S 80 _t
(description)_S 80 _t
(*/)_S 1800 6542 _m
(int)_S 80 _t
(nchannels;)_S 1120 _t
(/*)_S 80 _t
(number)_S 80 _t
(of)_S 80 _t
(input)_S 80 _t
(channels)_S 80 _t
(the)_S 80 _t
(device)_S 80 _t
(has)_S 80 _t
(*/)_S 1800 6409 _m
(vrl_DeviceChannel)_S 80 _t
(*channels;)_S 240 _t
(/*)_S 80 _t
(pointer)_S 80 _t
(to)_S 80 _t
(array)_S 80 _t
(of)_S 80 _t
(channels)_S 80 _t
(*/)_S /Times-RomanR 600 _ff
1200 5987 _m
(The)_S 67 _t
1578 5987 _m
/Times-ItalicR 600 _ff
(desc)_S 1933 5987 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(a)_S 67 _t
(string)_S 67 _t
(describing)_S 67 _t
(the)_S 67 _t

(device,)_S 67 _t
(the)_S 67 _t
5041 5987 _m
/Times-ItalicR 600 _ff
(nchannels)_S 5852 5987 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(input)_S 1200 5752 _m
(channels)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(has)_S 67 _t
(\(should)_S 67 _t
(be)_S 67 _t
(at)_S 67 _t
(least)_S 67 _t
(6\))_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
5669 5752 _m
/Times-ItalicR 600 _ff
(channels)_S 6380 5752 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(is)_S 67 _t
(set)_S 67 _t
(to)_S 67 _t
(point)_S 67 _t
(to)_S 67 _t
(an)_S 67 _t
(array)_S 1200 5519 _m
(of)_S 67 _t
(vrl_DeviceChannel)_S 67 _t
(structs,)_S 67 _t
(one)_S 67 _t
(per)_S 67 _t
(channel.)_S 134 _t
(These)_S 67 _t
(channels)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(dynamically)_S 1200 5286 _m
(allocated,)_S 67 _t
(rather)_S 67 _t
(than)_S 67 _t
(using)_S 67 _t
(a)_S 67 _t
(static)_S 67 _t
(struct;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(to)_S 67 _t
(allow)_S 67 _t
(multiple)_S 67 _t
(instances)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(type)_S 1200 5053 _m
(of)_S 67 _t
(device)_S 67 _t
(\(for)_S 67 _t
(example,)_S 67 _t
(a)_S 67 _t
(Cyberman)_S 67 _t
(on)_S 67 _t
(each)_S 67 _t
(of)_S 67 _t
(COM1)_S 67 _t
(and)_S 67 _t
(COM2,)_S 67 _t
(each)_S 67 _t
(with)_S 67 _t
(its)_S 67 _t
(own)_S 1200 4820 _m
(channel-specific)_S 67 _t
(data\).)_S 134 _t
(For)_S 67 _t
(this)_S 67 _t
(same)_S 67 _t
(reason,)_S 67 _t
(your)_S 67 _t
(driver)_S 67 _t
(shouldn't)_S 67 _t
(use)_S 67 _t
(any)_S 67 _t
(global)_S 67 _t
(variables;)_S 1200 4587 _m
(you)_S 67 _t
(should)_S 67 _t
(instead)_S 67 _t
(dynamically)_S 67 _t
(allocate)_S 67 _t
(memory)_S 67 _t
(for)_S 67 _t
(any)_S 67 _t
(additional)_S 67 _t
(per-device-instance)_S 67 _t
(data)_S 1200 4352 _m
(and)_S 67 _t
(store)_S 67 _t
(the)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(that)_S 67 _t
(data)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
4480 4352 _m
/Times-ItalicR 600 _ff
(localdata)_S 5236 4352 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(vrl_Device)_S 67 _t
(struct.)_S 134 _t
(The)_S 1200 4119 _m
(VRL_DEVICE_INIT)_S 67 _t
(call)_S 67 _t
(should)_S 67 _t
(also)_S 67 _t
(fill)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(appropriate)_S 67 _t
(values)_S 67 _t
(for)_S 67 _t
(all)_S 67 _t
(the)_S 67 _t
(channels.)_S 1200 3653 _m
(The)_S 67 _t
(VRL_DEVICE_INIT)_S 67 _t
(call)_S 67 _t
(may)_S 67 _t
(also)_S 67 _t
(choose)_S 67 _t
(to)_S 67 _t
(fill)_S 67 _t
(in)_S 67 _t
(some)_S 67 _t
(or)_S 67 _t
(all)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(following:)_S 1800 3241 _m
/CourierR 400 _ff
(int)_S 80 _t
(nbuttons;)_S 1200 _t
(/*)_S 80 _t
(number)_S 80 _t
(of)_S 80 _t
(buttons)_S 80 _t
(the)_S 80 _t
(device)_S 80 _t
(has)_S 80 _t
(*/)_S 1800 3108 _m
(int)_S 80 _t
(noutput_channels;)_S 560 _t
(/*)_S 80 _t
(number)_S 80 _t
(of)_S 80 _t
(output)_S 80 _t
(channels)_S 80 _t
(*/)_S 1800 2975 _m
(vrl_DeviceOutputFunction)_S 80 _t
(*outfunc;)_S 160 _t
(/*)_S 80 _t
(function)_S 80 _t
(to)_S 80 _t
(call)_S 80 _t
(to)_S 80 _t
(generate)_S 80 _t
(output)_S 80 _t
(*/)_S 1800 2842 _m
(vrl_DeviceMotionMode)_S 80 _t
(rotation_mode;)_S 400 _t
(/*)_S 80 _t
(rotation)_S 80 _t
(mode)_S 80 _t
(for)_S 80 _t
(this)_S 80 _t
(device)_S 80 _t
(*/)_S 1800 2709 _m
(vrl_DeviceMotionMode)_S 80 _t
(translation_mode;)_S 160 _t
(/*)_S 80 _t
(translation)_S 80 _t
(mode)_S 80 _t
(for)_S 80 _t
(this)_S 80 _t
(device)_S 80 _t
(*/)_S 1800 2576 _m
(vrl_Buttonmap)_S 80 _t
(*buttonmap;)_S 240 _t
(/*)_S 80 _t
(button)_S 80 _t
(mapping)_S 80 _t
(table)_S 80 _t
(for)_S 80 _t
(2D)_S 80 _t
(devices)_S 80 _t
(*/)_S 1800 2443 _m
(int)_S 80 _t
(version;)_S 1280 _t
(/*)_S 80 _t
(device)_S 80 _t
(struct)_S 80 _t
(version)_S 80 _t
(number)_S 80 _t
(*/)_S 1800 2310 _m
(int)_S 80 _t
(mode;)_S 1520 _t
(/*)_S 80 _t
(mode)_S 80 _t
(of)_S 80 _t
(operation)_S 80 _t
(*/)_S 1800 2177 _m
(vrl_Time)_S 80 _t
(period;)_S 960 _t

(/*)_S 80 _t
(milliseconds)_S 80 _t
(between)_S 80 _t
(reads)_S 80 _t
(*/)_S /Times-RomanR 600 _ff
8800 1255 _m
(65)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11855 _m
(The)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(buttons)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(has)_S 67 _t
(is)_S 67 _t
(assumed)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(zero)_S 67 _t
(unless)_S 67 _t
(you)_S 67 _t
(set)_S 67 _t
(it)_S 67 _t
(otherwise,)_S 67 _t
(as)_S 67 _t
(is)_S 1200 11620 _m
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(output)_S 67 _t
(channels.)_S 134 _t
(The)_S 67 _t
4263 11620 _m
/Times-ItalicR 600 _ff
(outfunc)_S 4863 11620 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(function)_S 67 _t
(\(probably)_S 1200 11387 _m
(declared)_S 67 _t
(static)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(source)_S 67 _t
(file)_S 67 _t
(as)_S 67 _t
(your)_S 67 _t
(driver)_S 67 _t
(function\))_S 67 _t
(that)_S 67 _t
(handles)_S 67 _t
(output)_S 67 _t
(to)_S 67 _t
(the)_S 1200 11154 _m
(device;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(described)_S 67 _t
(in)_S 67 _t
(more)_S 67 _t
(detail)_S 67 _t
(below.)_S 134 _t
(If)_S 67 _t
(your)_S 67 _t
(device)_S 67 _t
(doesn't)_S 67 _t
(do)_S 67 _t
(output,)_S 67 _t
(leave)_S 67 _t
(this)_S 1200 10921 _m
(field)_S 67 _t
(at)_S 67 _t
(its)_S 67 _t
(default)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(NULL.)_S 1800 10455 _m
(The)_S 67 _t
(meaning)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(two)_S 67 _t
(vrl_DeviceMotionMode)_S 67 _t
(type)_S 67 _t
(fields)_S 67 _t
(was)_S 67 _t
(described)_S 67 _t
(earlier)_S 67 _t
(in)_S 1200 10222 _m
(this)_S 67 _t
(document,)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(section)_S 67 _t
(on)_S 67 _t
(Devices.)_S 134 _t
(They)_S 67 _t
(both)_S 67 _t
(default)_S 67 _t
(to)_S 67 _t
(VRL_MOTION_RELATIVE.)_S 67 _t
1200 9987 _m
(The)_S 67 _t
1578 9987 _m
/Times-ItalicR 600 _ff
(mode)_S 2011 9987 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(driver-specific,)_S 67 _t
(and)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(initialized)_S 67 _t
(to)_S 67 _t
(whatever)_S 67 _t
(value)_S 67 _t
(you)_S 67 _t
(like)_S 67 _t
(\(since)_S 67 _t
(the)_S 67 _t
(value)_S 1200 9752 _m
(is)_S 67 _t
(only)_S 67 _t
(interpreted)_S 67 _t
(by)_S 67 _t
(your)_S 67 _t
(driver\).)_S 134 _t
(The)_S 67 _t
4563 9752 _m
/Times-ItalicR 600 _ff
(version)_S 5152 9752 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(left)_S 67 _t
(at)_S 67 _t
(its)_S 67 _t
(default)_S 67 _t
(value)_S 67 _t
(of)_S 1200 9519 _m
(zero)_S 67 _t
(by)_S 67 _t
(drivers)_S 67 _t
(following)_S 67 _t
(this)_S 67 _t
(version)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(driver)_S 67 _t
(specification;)_S 67 _t
(as)_S 67 _t
(the)_S 67 _t
(driver)_S 67 _t
(specification)_S 1200 9286 _m
(evolves,)_S 67 _t
(this)_S 67 _t
(value)_S 67 _t
(will)_S 67 _t
(increase.)_S 1800 8818 _m
(The)_S 67 _t
2178 8818 _m
/Times-ItalicR 600 _ff
(period)_S 2700 8818 _m
/Times-RomanR 600 _ff
67 _t
(defaults)_S 67 _t
(to)_S 67 _t
(zero,)_S 67 _t
(meaning)_S 67 _t
(that)_S 67 _t
(a)_S 67 _t
(call)_S 67 _t
(to)_S 67 _t
(vrl_DevicePoll\(\))_S 67 _t
(will)_S 67 _t
(always)_S 67 _t
(result)_S 1200 8583 _m
(in)_S 67 _t
(your)_S 67 _t
(driver)_S 67 _t
(function)_S 67 _t
(being)_S 67 _t
(called)_S 67 _t
(with)_S 67 _t
(a)_S 67 _t
4769 8583 _m
/Times-ItalicR 600 _ff
(cmd)_S 5102 8583 _m
/Times-RomanR 600 _ff
67 _t
(of)_S 67 _t
(VRL_DEVICE_POLL.)_S 134 _t
(If)_S 67 _t
(you)_S 67 _t
(don't)_S 67 _t
(want)_S 1200 8348 _m
(to)_S 67 _t
(be)_S 67 _t
(polled)_S 67 _t
(every)_S 67 _t
(cycle,)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
3896 8348 _m
/Times-ItalicR 600 _ff
(period)_S 4418 8348 _m
/Times-RomanR 600 _ff
67 _t
(to)_S 67 _t
(the)_S 67 _t
(minimum)_S 67 _t

(number)_S 67 _t
(of)_S 67 _t
(ticks)_S 67 _t
(\(milliseconds\))_S 67 _t
(that)_S 1200 8113 _m
(should)_S 67 _t
(elapse)_S 67 _t
(between)_S 67 _t
(polls.)_S 134 _t
(Note)_S 67 _t
(that)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
5209 8113 _m
/Times-ItalicR 600 _ff
(minimum)_S 5953 8113 _m
/Times-RomanR 600 _ff
67 _t
(value;)_S 67 _t
(the)_S 67 _t
(delay)_S 67 _t
(between)_S 67 _t
(polls)_S 67 _t
(may)_S 1200 7880 _m
(be)_S 67 _t
(even)_S 67 _t
(longer)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(system)_S 67 _t
(is)_S 67 _t
(busy)_S 67 _t
(doing)_S 67 _t
(other)_S 67 _t
(things.)_S 1800 7414 _m
(The)_S 67 _t
(VRL_DEVICE_RESET)_S 67 _t
(command)_S 67 _t
(is)_S 67 _t
(very)_S 67 _t
(similar)_S 67 _t
(to)_S 67 _t
(VRL_DEVICE_INIT,)_S 67 _t
(and)_S 1200 7181 _m
(may)_S 67 _t
(in)_S 67 _t
(fact)_S 67 _t
(be)_S 67 _t
(the)_S 67 _t
(same)_S 67 _t
(for)_S 67 _t
(some)_S 67 _t
(devices.)_S 134 _t
(The)_S 67 _t
(difference)_S 67 _t
(is)_S 67 _t
(that)_S 67 _t
(VRL_DEVICE_INIT)_S 67 _t
(does)_S 1200 6948 _m
(one-time)_S 67 _t
(initializations)_S 67 _t
(\(such)_S 67 _t
(as)_S 67 _t
(taking)_S 67 _t
(over)_S 67 _t
(interrupt)_S 67 _t
(vectors\).)_S 1800 6482 _m
(The)_S 67 _t
(VRL_DEVICE_QUIT)_S 67 _t
(command)_S 67 _t
(should)_S 67 _t
("shut)_S 67 _t
(down")_S 67 _t
(the)_S 67 _t
(device,)_S 67 _t
(putting)_S 67 _t
(it)_S 67 _t
(in)_S 67 _t
(a)_S 1200 6249 _m
(quiescent)_S 67 _t
(state)_S 67 _t
(and)_S 67 _t
(undoing)_S 67 _t
(anything)_S 67 _t
(that)_S 67 _t
(was)_S 67 _t
(done)_S 67 _t
(in)_S 67 _t
(VRL_DEVICE_INIT)_S 67 _t
(and)_S 1200 6016 _m
(VRL_DEVICE_RESET)_S 67 _t
(\(for)_S 67 _t
(example,)_S 67 _t
(restoring)_S 67 _t
(interrupt)_S 67 _t
(vectors\).)_S 134 _t
(It's)_S 67 _t
(also)_S 67 _t
(responsible)_S 67 _t
(for)_S 1200 5783 _m
(releasing)_S 67 _t
(any)_S 67 _t
(memory)_S 67 _t
(that)_S 67 _t
(was)_S 67 _t
(dynamically)_S 67 _t
(allocated)_S 67 _t
(by)_S 67 _t
(VRL_DEVICE_INIT,)_S 67 _t
(including)_S 67 _t

(that)_S 1200 5548 _m
(pointed)_S 67 _t
(to)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
2668 5548 _m
/Times-ItalicR 600 _ff
(channels)_S 3379 5548 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
4547 5548 _m
/Times-ItalicR 600 _ff
(localdata)_S 5302 5548 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(if)_S 67 _t
(it)_S 67 _t
(was)_S 67 _t
(used.)_S 1800 5082 _m
(Serial)_S 67 _t
(devices)_S 67 _t
(can)_S 67 _t
(assume)_S 67 _t
(that)_S 67 _t
(when)_S 67 _t
(VRL_DEVICE_INIT)_S 67 _t
(is)_S 67 _t
(called,)_S 67 _t
(the)_S 67 _t
(port)_S 67 _t
(they'll)_S 67 _t
(be)_S 1200 4847 _m
(using)_S 67 _t
(is)_S 67 _t
(already)_S 67 _t
(open,)_S 67 _t
(and)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
4096 4847 _m
/Times-ItalicR 600 _ff
(port)_S 4430 4847 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(is)_S 67 _t
(set;)_S 67 _t
(the)_S 67 _t
(driver)_S 67 _t
(also)_S 67 _t
(does)_S 67 _t
(not)_S 67 _t
(need)_S 67 _t
(to)_S 67 _t
(\(and)_S 1200 4612 _m
(should)_S 67 _t
(not\))_S 67 _t
(close)_S 67 _t
(the)_S 67 _t
(port.)_S 134 _t
(However,)_S 67 _t
(devices)_S 67 _t
(that)_S 67 _t
(actually)_S 67 _t
(use)_S 67 _t
(the)_S 67 _t
6714 4612 _m
/Times-ItalicR 600 _ff
(port)_S 7048 4612 _m
/Times-RomanR 600 _ff
67 _t
(should)_S 67 _t
(check)_S 67 _t
(that)_S 67 _t
(it's)_S 1200 4379 _m
(not)_S 67 _t
(NULL,)_S 67 _t
(and)_S 67 _t
(return)_S 67 _t
(-4)_S 67 _t
(if)_S 67 _t
(it)_S 67 _t
(is.)_S 1800 3913 _m
(The)_S 67 _t
(VRL_DEVICE_POLL)_S 67 _t
(command)_S 67 _t
(should)_S 67 _t
(read)_S 67 _t
(the)_S 67 _t
(raw)_S 67 _t
(data)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(hardware)_S 67 _t
(\(for)_S 1200 3678 _m
(example,)_S 67 _t
(by)_S 67 _t
(calling)_S 67 _t
(vrl_DeviceGetPacket\(\)\))_S 67 _t
(and)_S 67 _t
(decoding)_S 67 _t
(the)_S 67 _t
(values)_S 67 _t
(into)_S 67 _t
(the)_S 67 _t
7585 3678 _m
/Times-ItalicR 600 _ff
(rawdata)_S 8252 3678 _m
/Times-RomanR 600 _ff
67 _t
(fields)_S 1200 3443 _m
(of)_S 67 _t
(the)_S 67 _t
(appropriate)_S 67 _t
(channels.)_S 134 _t
(You)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(sure)_S 67 _t
(to)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
6098 3443 _m
/Times-ItalicR 600 _ff
(changed)_S 6775 3443 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(for)_S 67 _t
(any)_S 67 _t
(channels)_S 1200 3210 _m
(that)_S 67 _t
(you)_S 67 _t
(update.)_S 1200 2744 _m
(There)_S 67 _t
(are)_S 67 _t
(a)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(values)_S 67 _t
(associated)_S 67 _t
(with)_S 67 _t
(each)_S 67 _t
(channel;)_S 67 _t
(they)_S 67 _t
(are)_S 67 _t
(as)_S 67 _t
(follows:)_S 1200 2332 _m
/CourierR 400 _ff
(struct)_S 80 _t
(_vrl_device_channel)_S 1800 2199 _m
({)_S 1800 2066 _m
(vrl_32bit)_S 80 _t
(centerpoint;)_S 640 _t
(/*)_S 80 _t
(value)_S 80 _t
(of)_S 80 _t
(center)_S 80 _t
(point)_S 80 _t
(in)_S 80 _t
(raw)_S 80 _t
(device)_S 80 _t
(coords)_S 80 _t
(*/)_S 1800 1933 _m
(vrl_32bit)_S 80 _t
(deadzone;)_S 880 _t
(/*)_S 80 _t
(minimum)_S 80 _t
(acceptable)_S 80 _t
(value)_S 80 _t
(in)_S 80 _t
(device)_S 80 _t
(coords)_S 80 _t
(*/)_S 1800 1800 _m
(vrl_32bit)_S 80 _t
(range;)_S 1120 _t
(/*)_S 80 _t
(maximum)_S 80 _t
(absolute)_S 80 _t
(value)_S 80 _t
(relative)_S 80 _t
(to)_S 80 _t
(zero)_S 80 _t
(*/)_S 8800 1255 _m
/Times-RomanR 600 _ff
(66)_S /CourierR 400 _ff
_ep
_bp /CourierR 400 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1800 11909 _m
(vrl_Scalar)_S 80 _t
(scale;)_S 1040 _t
(/*)_S 80 _t
(maximum)_S 80 _t
(returned)_S 80 _t
(value)_S 80 _t
(*/)_S 1800 11776 _m
(vrl_Boolean)_S 80 _t
(accumulate)_S 80 _t
(:)_S 80 _t
(1;)_S 240 _t
(/*)_S 80 _t
(if)_S 80 _t
(set,)_S 80 _t
(accumulate)_S 80 _t
(values)_S 80 _t
(*/)_S 1800 11643 _m
(vrl_Boolean)_S 80 _t
(changed)_S 80 _t
(:)_S 80 _t
(1;)_S 480 _t
(/*)_S 80 _t
(set)_S 80 _t
(if)_S 80 _t
(rawvalue)_S 80 _t
(has)_S 80 _t
(changed)_S 80 _t
(*/)_S 1800 11510 _m
(vrl_32bit)_S 80 _t
(rawvalue;)_S 880 _t
(/*)_S 80 _t
(current)_S 80 _t
(value)_S 80 _t
(in)_S 80 _t
(raw)_S 80 _t
(device)_S 80 _t
(coordinates)_S 80 _t
(*/)_S 1800 11377 _m
(vrl_32bit)_S 80 _t
(oldvalue;)_S 880 _t
(/*)_S 80 _t
(previous)_S 80 _t
(value)_S 80 _t
(in)_S 80 _t
(raw)_S 80 _t
(device)_S 80 _t
(coordinates)_S 80 _t
(*/)_S 1800 11244 _m
(vrl_Scalar)_S 80 _t
(value;)_S 1040 _t
(/*)_S 80 _t
(current)_S 80 _t
(value)_S 80 _t
(\(processed\))_S 80 _t
(*/)_S 1800 11111 _m
(};)_S /Times-RomanR 600 _ff
1200 10689 _m
(The)_S 67 _t
(only)_S 67 _t
(fields)_S 67 _t
(you)_S 67 _t
(must)_S 67 _t
(set)_S 67 _t
(are)_S 67 _t
(the)_S 67 _t
4247 10689 _m
/Times-ItalicR 600 _ff
(centerpoint)_S 5158 10689 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
5275 10689 _m
/Times-ItalicR 600 _ff
(deadzone)_S 6030 10689 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
6147 10689 _m
/Times-ItalicR 600 _ff
(range)_S 6614 10689 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
6731 10689 _m
/Times-ItalicR 600 _ff
(scale)_S 7142 10689 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
7565 10689 _m
/Times-ItalicR 600 _ff
(accumulate)_S 8487 10689 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(The)_S 1200 10454 _m
/Times-ItalicR 600 _ff
(centerpoint)_S 2111 10454 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(current)_S 67 _t
("zero")_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(device;)_S 67 _t
(for)_S 67 _t
(example,)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(an)_S 67 _t
(analog)_S 67 _t
(joystick)_S 1200 10221 _m
(on)_S 67 _t
(a)_S 67 _t
(PC-compatible)_S 67 _t
(reports)_S 67 _t
(when)_S 67 _t
(the)_S 67 _t
(stick)_S 67 _t
(is)_S 67 _t
(at)_S 67 _t
(rest)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(considered)_S 67 _t
(its)_S 67 _t
(centerpoint.)_S 1800 9753 _m
(The)_S 67 _t
2178 9753 _m
/Times-ItalicR 600 _ff
(deadzone)_S 2933 9753 _m
/Times-RomanR 600 _ff
67 _t
(has)_S 67 _t
(two)_S 67 _t
(different)_S 67 _t
(interpretations.)_S 134 _t
(If)_S 67 _t

(the)_S 67 _t
6308 9753 _m
/Times-ItalicR 600 _ff
(accumulate)_S 7230 9753 _m
/Times-RomanR 600 _ff
67 _t
(flag)_S 67 _t
(is)_S 67 _t
(set,)_S 67 _t
(then)_S 67 _t
(the)_S 1200 9520 _m
(deadzone)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(minimum)_S 67 _t
(displacement)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(centerpoint)_S 67 _t
(that)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(recognized.)_S 134 _t
(If)_S 67 _t
(the)_S 1200 9285 _m
/Times-ItalicR 600 _ff
(accumulate)_S 2122 9285 _m
/Times-RomanR 600 _ff
67 _t
(flag)_S 67 _t
(is)_S 67 _t
(clear,)_S 67 _t
(then)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(minimum)_S 67 _t
(change)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(previous)_S 67 _t
(value)_S 67 _t
(\(as)_S 1200 9050 _m
(stored)_S 67 _t
(in)_S 67 _t
1978 9050 _m
/Times-ItalicR 600 _ff
(oldvalue)_S 2667 9050 _m
/Times-RomanR 600 _ff
67 _t
(by)_S 67 _t
(the)_S 67 _t
(higher-level)_S 67 _t
(routines\))_S 67 _t
(that)_S 67 _t
(will)_S 67 _t
(be)_S 67 _t
(recognized.)_S 1800 8582 _m
(The)_S 67 _t
2178 8582 _m
/Times-ItalicR 600 _ff
(scale)_S 2589 8582 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
(and)_S 67 _t
3062 8582 _m
/Times-ItalicR 600 _ff
(range)_S 3528 8582 _m
/Times-RomanR 600 _ff
67 _t
(values)_S 67 _t
(are)_S 67 _t
(used)_S 67 _t
(to)_S 67 _t
(convert)_S 67 _t
(the)_S 67 _t
6119 8582 _m
/Times-ItalicR 600 _ff
(rawvalue)_S 6863 8582 _m
/Times-RomanR 600 _ff
67 _t
(into)_S 67 _t
(units)_S 67 _t
(more)_S 67 _t
(suitable)_S 1200 8347 _m
(for)_S 67 _t
(the)_S 67 _t
(application.)_S 134 _t
(The)_S 67 _t
3262 8347 _m
/Times-ItalicR 600 _ff
(scale)_S 3673 8347 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(world-space)_S 67 _t
(units)_S 67 _t
(corresponding)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
8409 8347 _m
/Times-ItalicR 600 _ff
(range)_S /Times-RomanR 600 _ff
1200 8112 _m
(in)_S 67 _t
(device)_S 67 _t
(units.)_S 134 _t
(The)_S 67 _t
2963 8112 _m
/Times-ItalicR 600 _ff
(scale)_S 3374 8112 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
(and)_S 67 _t
3846 8112 _m
/Times-ItalicR 600 _ff
(deadzone)_S 4602 8112 _m
/Times-RomanR 600 _ff
67 _t
(should)_S 67 _t
(both)_S 67 _t
(be)_S 67 _t
(positive)_S 67 _t
(values,)_S 67 _t
(and)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(changed)_S 1200 7877 _m
(by)_S 67 _t
(the)_S 67 _t
(application.)_S 134 _t
(The)_S 67 _t
3229 7877 _m
/Times-ItalicR 600 _ff
(range)_S 3696 7877 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(negative;)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(useful)_S 67 _t
(for)_S 67 _t
(reversing)_S 67 _t
(the)_S 67 _t
(direction)_S 1200 7642 _m
(of)_S 67 _t
(a)_S 67 _t
(device)_S 67 _t
(axis.)_S 134 _t
(The)_S 67 _t
3063 7642 _m
/Times-ItalicR 600 _ff
(range)_S 3529 7642 _m
/Times-RomanR 600 _ff
67 _t
(value)_S 67 _t
(is)_S 67 _t
(only)_S 67 _t
(ever)_S 67 _t
(set)_S 67 _t
(by)_S 67 _t
(your)_S 67 _t
(driver.)_S 1800 7174 _m
(The)_S 67 _t
2178 7174 _m
/Times-ItalicR 600 _ff
(accumulate)_S 3100 7174 _m
/Times-RomanR 600 _ff
67 _t
(flag,)_S 67 _t
(in)_S 67 _t
(addition)_S 67 _t
(to)_S 67 _t
(controlling)_S 67 _t
(how)_S 67 _t
(the)_S 67 _t
6430 7174 _m
/Times-ItalicR 600 _ff
(deadzone)_S 7186 7174 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(interpreted,)_S 67 _t
(causes)_S 1200 6941 _m
(the)_S 67 _t
(value)_S 67 _t
(to)_S 67 _t
(be)_S 67 _t
(scaled)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(elapsed)_S 67 _t
(time)_S 67 _t
(in)_S 67 _t
(seconds)_S 67 _t
(since)_S 67 _t
(the)_S 67 _t
(last)_S 67 _t
(poll.)_S 1800 6475 _m
(The)_S 67 _t
(best)_S 67 _t
(way)_S 67 _t
(to)_S 67 _t
(understand)_S 67 _t
(all)_S 67 _t
(this)_S 67 _t
(is)_S 67 _t
(to)_S 67 _t
(consider)_S 67 _t
(what)_S 67 _t
(happens)_S 67 _t
(when)_S 67 _t
(you)_S 67 _t
(read)_S 67 _t
(new)_S 1200 6242 _m
(values)_S 67 _t
(from)_S 67 _t
(the)_S 67 _t
(device.)_S 134 _t
(First,)_S 67 _t
(you)_S 67 _t
(store)_S 67 _t
(the)_S 67 _t
(data)_S 67 _t
(for)_S 67 _t
(each)_S 67 _t
(channel)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(corresponding)_S 1200 6007 _m
(channel's)_S 67 _t
2033 6007 _m
/Times-ItalicR 600 _ff
(rawvalue)_S 2778 6007 _m
/Times-RomanR 600 _ff
67 _t
(field;)_S 67 _t
(you)_S 67 _t
(can)_S 67 _t
(re-map)_S 67 _t
(axes)_S 67 _t
(at)_S 67 _t
(this)_S 67 _t
(point)_S 67 _t
(\(device)_S 67 _t
(coordinate)_S 67 _t
(Y)_S 67 _t
(goes)_S 67 _t
(into)_S 67 _t
(the)_S 1200 5772 _m
(Z)_S 67 _t
(channel,)_S 67 _t
(for)_S 67 _t
(example\).)_S 134 _t
(You)_S 67 _t
(should)_S 67 _t
(set)_S 67 _t
(the)_S 67 _t
4969 5772 _m
/Times-ItalicR 600 _ff
(changed)_S 5647 5772 _m
/Times-RomanR 600 _ff
67 _t
(flag,)_S 67 _t
(to)_S 67 _t
(indicate)_S 67 _t
(there's)_S 67 _t
(a)_S 67 _t
(new)_S 67 _t
(value)_S 1200 5539 _m
(there.)_S 1800 5071 _m
(Next,)_S 67 _t
(the)_S 67 _t
(higher-level)_S 67 _t
(code)_S 67 _t
(takes)_S 67 _t
(your)_S 67 _t
5007 5071 _m
/Times-ItalicR 600 _ff
(rawvalue)_S 5751 5071 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 67 _t
(subtracts)_S 67 _t
(the)_S 67 _t
7263 5071 _m
/Times-ItalicR 600 _ff
(centerpoint)_S 8174 5071 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(If)_S 67 _t
(the)_S 1200 4836 _m
(channel)_S 67 _t
(is)_S 67 _t
(in)_S 67 _t
2312 4836 _m
/Times-ItalicR 600 _ff
(accumlate)_S 3134 4836 _m
/Times-RomanR 600 _ff
67 _t
(mode,)_S 67 _t
(it)_S 67 _t
(checks)_S 67 _t
(if)_S 67 _t
(the)_S 67 _t
(absolute)_S 67 _t
(value)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(data)_S 67 _t
(is)_S 67 _t
(less)_S 67 _t
(than)_S 1200 4601 _m
/Times-ItalicR 600 _ff
(deadzone)_S 1955 4601 _m
/Times-RomanR 600 _ff
(;)_S 67 _t
(if)_S 67 _t
(it)_S 67 _t
(is,)_S 67 _t
(it)_S 67 _t
(truncates)_S 67 _t
(it)_S 67 _t
(to)_S 67 _t
(zero.)_S 134 _t
(If)_S 67 _t
(the)_S 67 _t
(channel)_S 67 _t
(is)_S 67 _t
(not)_S 67 _t
(in)_S 67 _t
6538 4601 _m
/Times-ItalicR 600 _ff
(accumulate)_S 7460 4601 _m
/Times-RomanR 600 _ff
67 _t
(mode,)_S 67 _t
(the)_S 67 _t
(data)_S 67 _t
(is)_S 1200 4366 _m
(compared)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
2590 4366 _m
/Times-ItalicR 600 _ff
(oldvalue)_S 3278 4366 _m
/Times-RomanR 600 _ff
67 _t
(field;)_S 67 _t
(if)_S 67 _t
(it's)_S 67 _t
(within)_S 67 _t
(plus)_S 67 _t
(or)_S 67 _t
(minus)_S 67 _t
6115 4366 _m
/Times-ItalicR 600 _ff
(deadzone)_S 6870 4366 _m
/Times-RomanR 600 _ff
67 _t
(of)_S 67 _t
(it,)_S 67 _t
(the)_S 67 _t
(data)_S 67 _t
(is)_S 67 _t
(ignored.)_S 1800 3898 _m
(Once)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(has)_S 67 _t
(been)_S 67 _t
(centered)_S 67 _t
(and)_S 67 _t
(deadzoned,)_S 67 _t
(it)_S 67 _t
(is)_S 67 _t
(multiplied)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
7798 3898 _m
/Times-ItalicR 600 _ff
(scale)_S 8209 3898 _m
/Times-RomanR 600 _ff
67 _t
(and)_S 1200 3663 _m
(divided)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
2445 3663 _m
/Times-ItalicR 600 _ff
(range)_S 2912 3663 _m
/Times-RomanR 600 _ff
(.)_S 134 _t
(If)_S 67 _t
3296 3663 _m
/Times-ItalicR 600 _ff
(accumulate)_S 4218 3663 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(set,)_S 67 _t
(the)_S 67 _t
(resulting)_S 67 _t
(value)_S 67 _t
(is)_S 67 _t
(multiplied)_S 67 _t
(by)_S 67 _t
(the)_S 67 _t
(elapsed)_S 1200 3430 _m
(time)_S 67 _t
(in)_S 67 _t
(milliseconds)_S 67 _t
(and)_S 67 _t
(then)_S 67 _t
(divided)_S 67 _t
(by)_S 67 _t
(1000)_S 67 _t
(to)_S 67 _t
(convert)_S 67 _t
(to)_S 67 _t
(seconds.)_S 1200 2934 _m
/Times-BoldR 720 _ff
(Buttonmaps)_S 2454 2934 _m
/Times-RomanR 600 _ff
1800 2458 _m
(Some)_S 67 _t
(2D)_S 67 _t
(devices)_S 67 _t
(\(such)_S 67 _t
(as)_S 67 _t
(mice)_S 67 _t
(and)_S 67 _t
(joysticks\))_S 67 _t
(can)_S 67 _t
(be)_S 67 _t
(used)_S 67 _t
(as)_S 67 _t
(6D)_S 67 _t
(devices,)_S 67 _t
(by)_S 67 _t
(using)_S 1200 2225 _m
(their)_S 67 _t
(buttons)_S 67 _t
(to)_S 67 _t
(map)_S 67 _t
(their)_S 67 _t
(input)_S 67 _t
(axes)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(6)_S 67 _t
(possible)_S 67 _t
(degrees)_S 67 _t
(of)_S 67 _t
(freedom.)_S 134 _t
(Such)_S 67 _t
(devices)_S 1200 1990 _m
(should)_S 67 _t
(set)_S 67 _t
(their)_S 67 _t
2523 1990 _m
/Times-ItalicR 600 _ff
(nbuttons)_S 3212 1990 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(to)_S 67 _t
(zero)_S 67 _t
(\(or)_S 67 _t
(at)_S 67 _t
(least)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(buttons)_S 67 _t
(that)_S 67 _t
(will)_S 67 _t
(not)_S 67 _t
(be)_S 8800 1255 _m
(67)_S _ep
_bp /Times-RomanR 600 _ff
0 13200 10200 _ornt
/_r { sflg {/_t {0 rmoveto}bdef /ron false def}
{ /_S /show load def /_t {0 rmoveto}bdef /ron false def}ifelse
}bdef
1200 11853 _m
(used)_S 67 _t
(for)_S 67 _t
(mapping\).)_S 134 _t
(They)_S 67 _t
(should)_S 67 _t
(also)_S 67 _t
(set)_S 67 _t
(their)_S 67 _t
5075 11853 _m
/Times-ItalicR 600 _ff
(buttonmap)_S 5930 11853 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(to)_S 67 _t
(point)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(default)_S 67 _t
(set)_S 67 _t
(of)_S 67 _t
(axis)_S 1200 11620 _m
(mappings.)_S 1800 11152 _m
(The)_S 67 _t
2178 11152 _m
/Times-ItalicR 600 _ff
(buttonmap)_S 3034 11152 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(is)_S 67 _t
(a)_S 67 _t
(pointer)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(two-dimensional)_S 67 _t
(array.)_S 134 _t
(Each)_S 67 _t
(row)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(array)_S 1200 10919 _m
(corresponds)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(button)_S 67 _t
(combination;)_S 67 _t
(on)_S 67 _t
(a)_S 67 _t
(two-button)_S 67 _t
(device,)_S 67 _t
(row)_S 67 _t
(0)_S 67 _t
(is)_S 67 _t
(for)_S 67 _t
(no)_S 67 _t
(buttons)_S 67 _t
(down,)_S 1200 10686 _m
(row)_S 67 _t
(1)_S 67 _t
(is)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
(button)_S 67 _t
(down,)_S 67 _t
(row)_S 67 _t
(2)_S 67 _t
(is)_S 67 _t
(for)_S 67 _t
(the)_S 67 _t
(second)_S 67 _t
(button)_S 67 _t
(down)_S 67 _t
(and)_S 67 _t
(row)_S 67 _t
(three)_S 67 _t
(is)_S 67 _t
(for)_S 1200 10453 _m
(both)_S 67 _t
(buttons)_S 67 _t
(down.)_S 134 _t
(There)_S 67 _t
(are)_S 67 _t
(two)_S 67 _t
(columns)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(array,)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
(of)_S 67 _t
(which)_S 67 _t
(contains)_S 67 _t
(the)_S 67 _t
(index)_S 1200 10220 _m
(of)_S 67 _t
(the)_S 67 _t
(channel)_S 67 _t
(that)_S 67 _t
(the)_S 67 _t
(input)_S 67 _t
(device's)_S 67 _t
(X)_S 67 _t
(value)_S 67 _t
(should)_S 67 _t
(be)_S 67 _t
(stored)_S 67 _t
(in,)_S 67 _t
(and)_S 67 _t
(the)_S 67 _t
(second)_S 67 _t
(of)_S 67 _t
(which)_S 1200 9987 _m
(contains)_S 67 _t
(the)_S 67 _t
(index)_S 67 _t
(of)_S 67 _t
(the)_S 67 _t
(Y)_S 67 _t
(channel.)_S 1200 9521 _m
(For)_S 67 _t
(example,)_S 1800 9109 _m
/CourierR 400 _ff
(static)_S 80 _t
(vrl_Buttonmap)_S 80 _t
(default_map)_S 80 _t
(=)_S 2400 8976 _m
({)_S 80 _t
({)_S 80 _t
(YROT,)_S 80 _t
(Z)_S 80 _t
(},)_S 80 _t
({)_S 80 _t
(X,)_S 80 _t
(Y)_S 80 _t
(},)_S 80 _t
({)_S 80 _t
(ZROT,)_S 80 _t
(XROT)_S 80 _t
(},)_S 80 _t
({)_S 80 _t
(X,)_S 80 _t
(Y)_S 80 _t
(}};)_S /Times-RomanR 600 _ff
1200 8556 _m
(Would)_S 67 _t
(mean)_S 67 _t
(that)_S 67 _t
(when)_S 67 _t
(no)_S 67 _t
(buttons)_S 67 _t
(are)_S 67 _t
(down,)_S 67 _t
(the)_S 67 _t
(device's)_S 67 _t
(X)_S 67 _t
(axis)_S 67 _t
(corresponds)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(Y)_S 67 _t
(rotation,)_S 1200 8323 _m
(and)_S 67 _t
(its)_S 67 _t
(Y)_S 67 _t
(channel)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(Z)_S 67 _t
(translation.)_S 134 _t
(When)_S 67 _t
(the)_S 67 _t
(first)_S 67 _t
(button)_S 67 _t
(is)_S 67 _t
(down,)_S 67 _t
(the)_S 67 _t
(device's)_S 67 _t
(X)_S 67 _t
(axis)_S 1200 8090 _m
(corresponds)_S 67 _t
(to)_S 67 _t
(an)_S 67 _t
(X)_S 67 _t
(translation,)_S 67 _t
(and)_S 67 _t
(its)_S 67 _t
(Y)_S 67 _t
(axis)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(Y)_S 67 _t
(translation,)_S 67 _t
(and)_S 67 _t
(so)_S 67 _t
(on.)_S 1800 7622 _m
(The)_S 67 _t
(application)_S 67 _t
(can)_S 67 _t
(change)_S 67 _t
(the)_S 67 _t
4423 7622 _m
/Times-ItalicR 600 _ff
(buttonmap)_S 5279 7622 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(\(using)_S 67 _t
(vrl_DeviceSetButtonmap\(\)\))_S 67 _t
(to)_S 1200 7389 _m
(point)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(different)_S 67 _t
(set)_S 67 _t
(of)_S 67 _t
(mappings.)_S 1800 6923 _m
(One)_S 67 _t
(thing)_S 67 _t
(to)_S 67 _t
(watch)_S 67 _t
(out)_S 67 _t
(for:)_S 67 _t
(since)_S 67 _t
(only)_S 67 _t
(two)_S 67 _t
(channels)_S 67 _t
(at)_S 67 _t
(a)_S 67 _t
(time)_S 67 _t
(are)_S 67 _t
(active,)_S 67 _t
(the)_S 67 _t
(others)_S 1200 6688 _m
(should)_S 67 _t
(have)_S 67 _t
(their)_S 67 _t
2679 6688 _m
/Times-ItalicR 600 _ff
(rawvalue)_S 3423 6688 _m
/Times-RomanR 600 _ff
67 _t
(set)_S 67 _t
(equal)_S 67 _t
(to)_S 67 _t
(their)_S 67 _t
4936 6688 _m
/Times-ItalicR 600 _ff
(centerpoint)_S 5847 6688 _m
/Times-RomanR 600 _ff
(,)_S 67 _t
(and)_S 67 _t
(their)_S 67 _t
6753 6688 _m
/Times-ItalicR 600 _ff
(changed)_S 7431 6688 _m
/Times-RomanR 600 _ff
67 _t
(flags)_S 67 _t
(set;)_S 1200 6455 _m
(otherwise,)_S 67 _t
(they'll)_S 67 _t
(retain)_S 67 _t
(whatever)_S 67 _t
(values)_S 67 _t
(they)_S 67 _t
(had)_S 67 _t
(last)_S 67 _t
(time)_S 67 _t
(a)_S 67 _t
(particular)_S 67 _t
(button)_S 67 _t
(combination)_S 1200 6222 _m
(was)_S 67 _t
(active.)_S 1200 5726 _m
/Times-BoldR 720 _ff
(Output)_S 1947 5726 _m
/Times-RomanR 600 _ff
1800 5250 _m
(Some)_S 67 _t
(devices)_S 67 _t
(are)_S 67 _t
(capable)_S 67 _t
(of)_S 67 _t
(tactile)_S 67 _t
(or)_S 67 _t
(auditory)_S 67 _t
(feedback;)_S 67 _t
(those)_S 67 _t
(that)_S 67 _t
(are)_S 67 _t
(should)_S 67 _t
(set)_S 67 _t
(the)_S 1200 5015 _m
/Times-ItalicR 600 _ff
(outfunc)_S 1800 5015 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(in)_S 67 _t
(the)_S 67 _t
(vrl_Device)_S 67 _t
(struct)_S 67 _t
(to)_S 67 _t
(point)_S 67 _t
(to)_S 67 _t
(a)_S 67 _t
(function)_S 67 _t
(that)_S 67 _t
(does)_S 67 _t
(the)_S 67 _t
(actual)_S 67 _t
(work,)_S 67 _t
(and)_S 67 _t
(set)_S 1200 4780 _m
(the)_S 67 _t
1511 4780 _m
/Times-ItalicR 600 _ff
(noutput_channels)_S 2934 4780 _m
/Times-RomanR 600 _ff
67 _t
(field)_S 67 _t
(to)_S 67 _t
(the)_S 67 _t
(number)_S 67 _t
(of)_S 67 _t
(output)_S 67 _t
(channels)_S 67 _t
(the)_S 67 _t
(device)_S 67 _t
(has.)_S 134 _t
(Such)_S 67 _t
(a)_S 67 _t
(function)_S 1200 4547 _m
(for)_S 67 _t
(our)_S 67 _t
(mythical)_S 67 _t
(ATS)_S 67 _t
(device)_S 67 _t
(might)_S 67 _t
(look)_S 67 _t
(like)_S 67 _t
(this:)_S 1800 4135 _m
/CourierR 400 _ff
(int)_S 80 _t
(vrl_SpaceballOutput\(vrl_Device)_S 80 _t
(*dev,)_S 80 _t
(int)_S 80 _t
(parm1,)_S 80 _t
(vrl_Scalar)_S 80 _t
(parm2\))_S 2400 4002 _m
({)_S 2400 3869 _m
([...])_S 2400 3736 _m
(})_S 1200 3414 _m
/Times-RomanR 600 _ff
(The)_S 67 _t
1578 3414 _m
/Times-ItalicR 600 _ff
(parm1)_S 2100 3414 _m
/Times-RomanR 600 _ff
67 _t
(parameter)_S 67 _t
(is)_S 67 _t
(the)_S 67 _t
(output)_S 67 _t
(channel)_S 67 _t
(number,)_S 67 _t
(and)_S 67 _t
5897 3414 _m
/Times-ItalicR 600 _ff
(parm2)_S 6419 3414 _m
/Times-RomanR 600 _ff
67 _t
(is)_S 67 _t
(the)_S 67 _t
(value)_S 67 _t
(to)_S 67 _t
(output)_S 67 _t
(\(in)_S 67 _t
(the)_S 1200 3181 _m
(range)_S 67 _t
(0)_S 67 _t
(to)_S 67 _t
(255\).)_S 134 _t
(The)_S 67 _t
(routine)_S 67 _t
(should)_S 67 _t
(return)_S 67 _t
(0)_S 67 _t
(on)_S 67 _t
(success)_S 67 _t
(and)_S 67 _t
(non-zero)_S 67 _t
(on)_S 67 _t
(failure,)_S 67 _t
(although)_S 1200 2948 _m
(those)_S 67 _t
(values)_S 67 _t
(are)_S 67 _t
(not)_S 67 _t
(currently)_S 67 _t
(used)_S 67 _t
(or)_S 67 _t
(reported.)_S 8800 1255 _m
(68)_S _ep
_ed end end
%-12345X

  3 Responses to “Category : Printer + Display Graphics
Archive   : AVRIL11.ZIP
Filename : AVRILDOC.PS

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/