## Copy this file to 3DLDF-1.1.4/ ## Delete 3DLDF-1.1.4/DOC/TEXINFO/EPS. ## Apply the patch like this: ## patch -p1 -i 3DLDF-1.1.4-1.1.5.1.diff ## ## See 3DLDF-1.1.5.1/README for more information. ## diff -Naur 3DLDF-1.1.4/.rcsfreeze.log 3DLDF-1.1.5.1/.rcsfreeze.log --- 3DLDF-1.1.4/.rcsfreeze.log 2003-12-10 18:37:30.000000000 +0100 +++ 3DLDF-1.1.5.1/.rcsfreeze.log 2004-01-14 21:56:16.000000000 +0100 @@ -1,3 +1,8 @@ +Version: C_4(C_4), Date: Wed Jan 14 21:56:09 MET 2004 +----------- + Release 1.1.5. +----------- + Version: C_3(C_3), Date: Wed Dec 10 18:36:59 MET 2003 ----------- Release 1.1.4. diff -Naur 3DLDF-1.1.4/AUTHORS 3DLDF-1.1.5.1/AUTHORS --- 3DLDF-1.1.4/AUTHORS 2003-12-09 21:19:53.000000000 +0100 +++ 3DLDF-1.1.5.1/AUTHORS 2004-01-16 17:25:40.000000000 +0100 @@ -1,9 +1,9 @@ AUTHORS -$Id: AUTHORS,v 1.4 2003/12/09 20:19:53 lfinsto1 Exp $ +$Id: AUTHORS,v 1.5 2004/01/16 16:25:39 lfinsto1 Exp $ This file is part of 3DLDF, a package for three-dimensional drawing. -Copyright (C) 2003 Laurence D. Finston. +Copyright (C) 2003, 2004 Laurence D. Finston. 3DLDF is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Naur 3DLDF-1.1.4/CWEB/.rcsfreeze.log 3DLDF-1.1.5.1/CWEB/.rcsfreeze.log --- 3DLDF-1.1.4/CWEB/.rcsfreeze.log 2003-12-10 18:37:52.000000000 +0100 +++ 3DLDF-1.1.5.1/CWEB/.rcsfreeze.log 2004-01-14 21:53:23.000000000 +0100 @@ -1,3 +1,8 @@ +Version: C_5(C_5), Date: Wed Jan 14 21:53:16 MET 2004 +----------- + Release 1.1.5. +----------- + Version: C_4(C_4), Date: Wed Dec 10 18:37:40 MET 2003 ----------- Release 1.1.4. diff -Naur 3DLDF-1.1.4/CWEB/3DLDFmp.mp 3DLDF-1.1.5.1/CWEB/3DLDFmp.mp --- 3DLDF-1.1.4/CWEB/3DLDFmp.mp 2003-12-10 15:37:15.000000000 +0100 +++ 3DLDF-1.1.5.1/CWEB/3DLDFmp.mp 2004-01-16 19:20:02.000000000 +0100 @@ -3,7 +3,7 @@ %% * Copyright and License.@> %%% This file is part of 3DLDF, a package for three-dimensional drawing. -%%% Copyright (C) 2003 Laurence D. Finston. +%%% Copyright (C) 2003, 2004 Laurence D. Finston. %%% 3DLDF is free software; you can redistribute it and/or modify %%% it under the terms of the GNU General Public License as published by @@ -30,8 +30,7 @@ %%% s246794@stud.uni-goettingen.de -%%%%% $Id: 3DLDFmp.mp,v 1.1 2003/11/28 13:35:19 lfinsto1 Exp $ - +%%%%% $Id: 3DLDFmp.mp,v 1.5 2004/01/12 21:25:37 lfinsto1 Exp $ input boxes; @@ -47,5 +46,6 @@ bye; - + + diff -Naur 3DLDF-1.1.4/CWEB/3DLDFprg.dvi 3DLDF-1.1.5.1/CWEB/3DLDFprg.dvi --- 3DLDF-1.1.4/CWEB/3DLDFprg.dvi 2003-12-10 18:45:10.000000000 +0100 +++ 3DLDF-1.1.5.1/CWEB/3DLDFprg.dvi 2004-01-16 18:31:55.000000000 +0100 @@ -1,21 +1,58 @@ -÷ƒ’À;è TeX output 2003.12.10:1845‹ÿÿÿÿ Šn ý‘ìó !",š +÷ƒ’À;è TeX output 2004.01.16:1821‹ ÿÿÿÿ Šn ý•UJ’šc!óÙ“ R„›cmr7«3DLDF:––›The“ProgramŽŸ¾[’µÇ®V‘þ©ersion‘–›1.1.5.1ޤ’”òßb²y––›Laurence“D.“FinstonŽ¡’Í ŸóKñ`y -cmsy10·xóKñ`y +cmr10¬Jan¸ãuary‘UU2004ŽŸjì[’˜•Section‘ P¸ãageŽŽ¤ Cop•¸ãyrigh“t–UUand“License‘¸Ø.Ž–.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž“.Ž‘ ÁC1‘1ŽŽ©óò"V -cmr10«1›ó|{Ycmr8­3DLDFPRÃŽG’TrCOPYRIGHT–ÕXAND“LICENSE˜«1Ž €n ý•@Póò"V +cmbx10­In®9troQÇduction‘ ü(óßêÌ«preproGcessor“commandsŽ¡for–^àconditional“compilation.‘ŽgThere's“a“di erenš¸ãt“v˜ersion“of“this“ le“in“eac˜h“of“the“subGdirectories“used“forŽ¡compiling–UUwith“a“di erenš¸ãt“com˜bination“of“opGerating“system,“compiler,“and“compiler“v˜ersion.Ž¡‘ -[¬LDF‘T2003.07.25.«]Ž‘Y;MoGdi ed–UUthe“conditional“constructions“go•¸ãv“erning–UUcompilation“sligh¸ãtly‘ÿ*ª.Ž¡‘ -[¬LDF‘T2003.08.14.«]Ž‘Z3£Noš¸ãw–€½including“Ègetopt.h“«for“the“GCC‘€pv˜ersions“under“Lin˜ux.‘óÿIt's“for“proGcessing“theŽ¡command–UUline“options.Ž¡‘ -[¬LDF‘T2003.08.14.«]Ž‘Z›No¸ãw–_µincluding“Èstreambuf.h«,›¢Lif“ÝLDF_GCC_2_95Ž‘HE®«is“de ned,˜otherwise“Èios«.‘æThis“is“forŽ¡stream‘UUformatting.Ž¡‘ -[¬LDF‘T2003.08.29.«]Ž‘YFdRemo•¸ãv“ed–“~Ègetopt.h“«to“Èmain.web«,‘£bGecause“it's“only“used“there.‘,ATO‘“nDO:“Mo•¸ãv“e–“~the“restŽ¡of–UUthe“include“commands“to“the“ les“where“they're“needed,“Âand–ÕTget“rid“of“this“ le«.Ž¡‘ -[¬LDF‘T2003.09.03.«]Ž‘YÎAdded–9#Âde neŽ‘"cºÝLDF_PUBLICŽ‘[…=«in“order“to“bGe“able“to“conditionally“include“Èplfmvar.h«.Ž¡The–latter“is“not“included“in“the“v¸ãersion“for“distribution.‘ïInstead,‘‰…the“preproGcessor“v‘ÿqÇariables“are“de ned“orŽ¡unde ned‘UUhere.Ž¡‘ -[¬LDF‘T2003.11.12.«]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.ަŸüÈ„`ÕÁGŽŽŸÂ6.– üCon guration‘æÕ le.“«This–dsection“includes“Èconfig.h«,‘h[whicš¸ãh“is“generated“b˜y“ÝconfigureŽ‘3*Ú«.‘ŸoThis“is“newŽ¡in–Zâ3DLDF‘Zá1.1.‘‚nThe“ÝconfigureŽ‘6|«script“generated“bš¸ãy“AutoGconf“tests“whether“certain“library“ les“are“presen˜t,Ž¡and–œÿde nes“preprošGcessor“v‘ÿqÇariables“in“Èconfig.h“«accordingly‘ÿ*ª.‘HÅThese“can“b˜e“used“for“conditionally“compilingŽ¡coGde,›­uso–›Õthat“library“ les“are“only“included“if“they“are“really“presen•¸ãt.‘EGHo“w“ev“er,˜it–›Õwill“bGe“necessary“to“addŽ¡coGde–‚ofor“handling“the“case“that“they“aren't“presen•¸ãt.‘+{I›‚9ha“v“en't–‚odone“this“y¸ãet,‘¬although“I˜ha•¸ãv“e–‚oput“in“conditionalŽ¡coGde–UUusing“these“v‘ÿqÇariables“in“a“couple“of“places.›qÇTO“DO:“W‘ÿ*ªork“on“this.˜[¬LDF‘T2003.11.12.«]ŽŽ¡‘ -Auto•Gconf›do“es˜not˜p“er˜default˜c•¸ãhec“k˜the˜v“ersion˜of˜the˜compiler˜that's˜used,‘0íand˜I'm˜not˜sure˜whetherŽ¡this–ë¡wš¸ãould“really“bGe“sensible.‘4¬3DLDF‘ë{already“con˜tains“conditionally“compiled“coGde“based“on“whether“theŽ¡DEC›…–¬C‘€Ÿÿ®+‘ÿ+ŽŽ‘Í«compiler,‘Òor–…åthe“GNU˜¬C‘€Ÿÿ®+‘ÿ+ŽŽ‘Í«compiler“(GCC)˜vš¸ãersion“2.95“or“v˜ersion“3.3“is“used.‘vIf“the“DECŽ¡compiler–›Úis“used,‘í{the“preprošGcessor“v‘ÿqÇariables“ÝLDF_GCC_2_95Ž‘H½ø«or“ÝLDF_GCC_3_3Ž‘C}û«m¸ãust“b˜e“unde ned“b¸ãy“handŽ¡bGelo¸ãw.›ÄIt–Æde nes“Ý__DECCXXŽ‘2€«itself.˜If“GCC‘Åûis“used,›âIone“of“them“m¸ãust“bGe“de ned,˜and“the“other“unde ned.Ž¡P¸ãer–à default,‘÷÷ÝLDF_GCC_3_3Ž‘@Þ«is“de ned“and“ÝLDF_GCC_2_95Ž‘EG„«is“unde ned.‘JàThis“is“bGecause“GCC‘à‚3.3“is,‘÷÷in“general,Ž¡an›ßüimpro•¸ãv“emen“t˜o“v“er˜GCC›ߨ2.95.‘»Ho“w“ev“er,‘¥I˜usually–ßüuse“GCC˜2.95“mš¸ãyself,‘¥bGecause“linking“is“signi can˜tlyŽ¡faster–UUon“the“computer“I“use.‘qÇ[¬LDF‘T2003.11.12.«]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.11.12.«]Ž‘Y;Added–UUthis“section.ަŸüÈ„`ÕÁGŽŽŽŽŒ‹è Šn ý‘ì«4–­CONFIGURA‘ÿJªTION‘ÕXFILE’cr3DLDFPRÃŽG“·x«6Ž €n ý•@P·h‘ª¨Ýloader.hŽ‘5°ù­6‘ª¨·i‘Çޤ «#ÂincludeŽ‘'Ø~Ý"config.h"ŽŽŸ ­See–ÕXalso“sections“7,“8,“and“9.ŽŸÂ7.‘ üLibrary‘ÕT les.ŽŸ·h‘ª¨Ýloader.hŽ‘5°ù­6‘ª¨·i‘Ç«+·Ž¡«#Âde neŽ‘!ÖÝLDF_PUBLICŽŽ¡«#ÂifdefŽ‘áeÝLDF_PUBLICŽŽ¡«#Âde neŽ‘!ÖÝ_GNU_SOURCEŽŽ¡«#Âde neŽ‘!ÖÝLDF_GCC_3_3ŽŽ¡«#ÂundefŽ‘ ó*ÝLDF_GCC_2_95ŽŽ¡«#ÂundefŽ‘ ó*Ý__DECCXXŽ‘_y{ó  b> +cmtex10´.webŽ‘Ú¶¬ les,“so˜that˜cw•¸ãea“v“eŽ¡proGcesses–UUthem“as“if“they“w¸ãere“all“one“ le.ŽŽŽŒ‹p£ Šn ý‘ì¬2–¯INTRÃŽODUCTION‘€(®3DLDF.WEB¯)’ê•Y3DLDF-1.1.5.1“°x¬2Ž €n ý•@P‘ +T‘ÿ*ªo–#+write“mš¸ãy“´.webŽ‘̲¬ les,‘-4I‘#wrote“a“´cweb-modeŽ‘6 £¬for“Emacs“and“a“n˜um˜bGer“of“Emacs-Lisp“functions“to“go“withޤ it.‘0±It–”øis“not“curren¸ãtly“included“in“the“3DLDF›”èdistribution“(V‘ÿ*ªersion“1.1.5.1),‘¤ábut“I˜ma¸ãy“include“it“in“a“laterŽ¡v•¸ãersion.‘püHo“w“ev“er,‘SmGNU‘Ròis–Róat“wš¸ãork“at“an“ocial“cw˜eb-moGde“of“its“o˜wn,‘Smso“y˜ou“migh˜t“w˜an˜t“to“use“it“instead,Ž¡if–UUit's“a¸ãv‘ÿqÇailable.Ž¡‘ +Plurals–kof“tš¸ãypGes“are“t˜ypGeset“with“the“\s"“in“the“same“fon˜t“as“the“t˜ypGe,–ppe.g.,“\­P•®9oin“tsŽ‘ #„¬"–kand“not“\­P•®9oin“tŽ‘šH¬s".Ž¡It's–¢Ínot“considered“go•Go“d›¢Ít¸ãyp“ographical˜practice˜to˜t¸ãyp“eset˜w•¸ãords˜with˜letters˜from˜di eren“t˜fon“ts.‘6EThe˜secondŽ¡example–èdoGes“ha•¸ãv“e–èthe“adv‘ÿqÇanš¸ãtage“that“it's“somewhat“clearer“what“the“actual“name“of“the“t˜ypGe“is,‘ýîbut“I‘çùthinkŽ¡the–UU rst“argumenš¸ãt“is“w˜eigh˜tier.Ž¡‘ +See–™®http://www-cs-faculty.stanford.edu/knuth/cweb.html“¬for“more“information“abGout“CWEB.“TheŽ¡WEB–UU(for“Pš¸ãascal)“and“CWEB“pac˜k‘ÿqÇages“are“a˜v‘ÿqÇailable“from“the“CT‘ÿ*ªAN“arc˜hiv˜e,“®ftp.dante.de“¬andŽ¡®http:://www.dante.de¬.Ž¡‘ +Donald–}¹Kn¸ãuth's“b•Go“oks‘}¹±T‘þKßÓVEŽ‘Í-XŽ‘á¡:‘ãèThe›¹Pr–ÿ}'o“gr“am‘B¬and‘}¹±MET‘ÿ;¼AF¾“ONT:˜The˜Pr“o“gr“am‘B¬eacš¸ãh–}¹include“a“section“\Ho˜wŽ¡to–UUread“a“WEB",“whicš¸ãh“ma˜y“bGe“helpful.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.18.¬]Ž‘YXChanged–Nrname“of“this“ le“from“®cweavedriver.web“¬to“®cwdriver.web¬.‘o{It“noš¸ãw“has“few˜erŽ¡than–UU8“letters“and“can“bGe“used“under“DOS.Ž¡‘ +[²LDF‘T2003.08.16.¬]Ž‘X£ƒChanged–ðname“of“this“ le“from“®cwdriver.web“¬to“®3DLDF.web“¬sometime“since“2002.11.18.Ž¡F‘ÿ*ªorgot–UUto“note“it“here.Ž¡‘ +[²LDF‘T2003.11.12.¬]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.Ž©ŸüÈ„`ÕÁGŽŽŸ­3.– üF‘ÿ +«ormatting‘r©commands.“®cweave–ÿˆ¬formats“\´==Ž› b¬"“as“\°¬",‘±\´!=Ž˜¬"“as“\°6¬=",‘±and“\´!Ž‘Æe¬"“as“\°:¬".‘U.ProgrammersŽ¡who–UUuse“these“tokš¸ãens“m˜ust“t˜ypGe“them“as“\´==Ž› b¬",“\´!=Ž˜¬,“and“\®!¬".Ž¡‘ +The–ïÏfolloš¸ãwing“formatting“commands“are“for“t˜ypGes“de ned“in“²C‘€Ÿÿ³+‘ÿ+ŽŽ›6ï¬or“in“the“²C‘€Ÿÿ³+‘ÿ+ŽŽ˜¬Standard“Library‘ÿ*ª,‘but“notŽ¡handled–UUcorrectly“b¸ãy“®cweave¬.ަ‘ +­formatŽ‘3c(±bitsetŽ‘T.#intŽŽ¡‘ +­formatŽ‘3c(±b–ÿ}'o“olŽ‘MžÝintŽŽ¡‘ +­formatŽ‘3c(±b–ÿ}'o“olsŽ‘Q5b–ÿ}'o“olŽŽ¡‘ +­formatŽ‘3c(±ifstr–ÿ}'e“amŽ‘_ _intŽŽ¡‘ +­formatŽ‘3c(±key‘‰ffŽ‘®typ‘ÿ}'eŽ‘`¢intŽŽ¡‘ +­formatŽ‘3c(±mapp–ÿ}'e“d‘‰ffŽ‘®typ“eŽ‘r=–intŽŽ¡‘ +­formatŽ‘3c(±mapŽ‘OCOintŽŽ¡‘ +­formatŽ‘3c(±ofstr–ÿ}'e“amŽ‘a«¿intŽŽ¡‘ +­formatŽ‘3c(±statŽ‘MUintŽŽ¡‘ +­formatŽ‘3c(±stringstr–ÿ}'e“amŽ‘rhÞintŽŽ¡‘ +­formatŽ‘3c(±numeric‘‰ffŽ‘®limitsŽ‘|¨õintŽŽ¡‘ +­formatŽ‘3c(±p‘ÿ}'airŽ‘NMpintŽŽ¡‘ +­formatŽ‘3c(±stringŽ‘VscharŽŽ¡‘ +­formatŽ‘3c(±tmŽ‘HµintŽŽ¡‘ +­formatŽ‘3c(±valarr‘ÿ}'ayŽ‘`bintŽŽ¡‘ +­formatŽ‘3c(±ve‘ÿ}'ctorŽ‘W?0intŽŽŽŽŒ‹€ Šn ý‘ì°x¬4–¯3DLDF-1.1.5.1’û:vFÃŽORMA‘ÿJªTTING‘ÕXCOMMANDS“¬3Ž €n ý•@P­4.‘ ü¬This–±Àsection“conš¸ãtains“commands“for“inputting“the“®CWEB‘±¨¬source“ les,‘ÈÚwhic˜h“are“in˜visible“in“the“®cweaveޤ ¬output.Ž©Ÿ­5.› üPreproQÇcessor–ÕTv‘ÿ\rariables“and“library“ les˜(®loader.web­).‘/_+¬[²LDF‘T2002.10.15.¬]Ž‘~geIt–UUw¸ãould,“ofŽ¡course,‘¢b•Ge›’»p“ossible˜to˜put˜this˜co“de˜in•¸ãto˜a˜´.hŽ‘+ج le˜directly‘ÿ*ª,‘¢but˜it's˜con“v“enien“t˜to˜ha“v“e˜a˜®CWEB‘’¬¬ le˜so˜that˜itŽ¡can–UUbGe“´cweavedŽ‘+ðý¬along“with“the“rest“of“3DLDF.Ž¡‘ +[²LDF‘T2003.07.18.¬]Ž‘Y;Set–MUthe“preproGcessor“macro“´LDF_GCC_3_3Ž‘@àñ¬to“1“in“order“to“compile“using“gcc“v¸ãersion“3.3Ž¡20030226–=„(prerelease)“(SuSE›=HLin¸ãux).‘*TSet“it“to“0“in“order“to“compile“using“GCC˜v¸ãersion“2.95.3“20010315Ž¡(SuSE).–UUThis“can“bšGe“faster“than“using“GCC“3.3,“esp˜ecially“with“resp˜ect“to“linking.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.08.21.¬]Ž‘YSÝNoš¸ãw– ÷including“®plfmvar.h¬.‘T¬It“con˜tains“#­de neŽ‘!éx¬and“#­undefŽ‘!>̬preproGcessor“commandsŽ¡for–^àconditional“compilation.‘ŽgThere's“a“di erenš¸ãt“v˜ersion“of“this“ le“in“eac˜h“of“the“subGdirectories“used“forŽ¡compiling–UUwith“a“di erenš¸ãt“com˜bination“of“opGerating“system,“compiler,“and“compiler“v˜ersion.Ž¡‘ +[²LDF‘T2003.07.25.¬]Ž‘Y;MoGdi ed–UUthe“conditional“constructions“go•¸ãv“erning–UUcompilation“sligh¸ãtly‘ÿ*ª.Ž¡‘ +[²LDF‘T2003.08.14.¬]Ž‘Z3£Noš¸ãw–€½including“®getopt.h“¬for“the“GCC‘€pv˜ersions“under“Lin˜ux.‘óÿIt's“for“proGcessing“theŽ¡command–UUline“options.Ž¡‘ +[²LDF‘T2003.08.14.¬]Ž‘Z›No¸ãw–_µincluding“®streambuf.h¬,›¢Lif“´LDF_GCC_2_95Ž‘HE®¬is“de ned,˜otherwise“®ios¬.‘æThis“is“forŽ¡stream‘UUformatting.Ž¡‘ +[²LDF‘T2003.08.29.¬]Ž‘Y;Remo•¸ãv“ed–UU®getopt.h“¬to“®main.web¬,“bGecause“it's“only“used“there.Ž¡‘ +[²LDF‘T2003.09.03.¬]Ž‘YÎAdded–9#­de neŽ‘"cº´LDF_PUBLICŽ‘[…=¬in“order“to“bGe“able“to“conditionally“include“®plfmvar.h¬.Ž¡The–latter“is“not“included“in“the“v¸ãersion“for“distribution.‘ïInstead,‘‰…the“preproGcessor“v‘ÿqÇariables“are“de ned“orŽ¡unde ned‘UUhere.Ž¡‘ +[²LDF‘T2003.11.12.¬]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.ަŸüÈ„`ÕÁGŽŽ¦°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘ÇŽ¡‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´loader.web,v® ´1Ž‘kÆÜ.4® ´2004/01/12® ´21:30:Ž’ÔÆ 27® ´lfinsto1® ´Exp® ´$"Ž’3ÌÒ¬;ޤ ¯See–»Talso“sections“13,–Àˆ53,“63,“76,“93,“164,“241,“250,“307,“635,“659,“696,“982,“1017,“1099,“1141,“1273,“1317,“1331,“1443,“1451,“1470,Ž© +‘1536,–ÕXand“1543.Ž¡This–¹Ðco -cmmi10±=·‘ÿý«Just–UUto“bGe“extra“sure.‘qÇ[¬LDF‘T2003.09.03.«]Ž‘U$©·±=Ž¡«#ÂelseŽ‘&Øà±=·‘ÿý«Do‘UUnothing.‘o·±=Ž¡«#ÂendifŽŽ¡«#ÂifdefŽ‘áeÝ__DECCXXŽŽ¡«#Âde neŽ‘!ÖÝ__USE_STD_IOSTREAMŽ’”¤ ±=·‘ÿý«Needed–UUfor“"sstream"“bGelo¸ãw.‘o·±=Ž¡«#ÂendifŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂifdefŽ‘áeÝ__GNUC__ŽŽ¡«#ÂifŽ‘ ´øÝHAVE_FLOAT_HŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽ‘kžÌ±=·‘ÿý«[¬LDF‘T2002.12.13.«]Ž‘T7Needed–UUfor“ÝFLT_MAXŽ‘(›¨«.‘o·±=Ž¡«#ÂendifŽŽ¡«#ÂendifŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂifdefŽ‘áeÝLDF_GCC_2_95Ž‘ngª±=·‘ÿý«F‘ÿ*ªor–UUstream“formatting.‘qÇ[¬LDF‘T2003.08.14.«]Ž‘U$©·±=Ž¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂelseŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂendifŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂifdefŽ‘áeÝ__DECCXXŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂelseŽŽ¡«#ÂifdefŽ‘áeÝLDF_GCC_3_3ŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂelseŽŽ¡«#ÂifdefŽ‘áeÝLDF_GCC_2_95ŽŽ¡«#ÂifŽ‘ ´øÝHAVE_LIMITS_HŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂendifŽŽ¡«#ÂendifŽŽ¡«#ÂendifŽŽ¡«#ÂendifŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂifdefŽ‘áeÝLDF_GCC_3_3ŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽŽŽŒ‹0  Šn ý‘ì·x«7–­3DLDFPRÃŽG’4˜ŠLIBRAR‘ÿJªY‘ÕXFILES“«5Ž €n ý•@P#ÂelseŽŽ¤ «#ÂifdefŽ‘áeÝLDF_GCC_2_95ŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂendifŽŽ¡«#ÂendifŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂifdefŽ‘áeÝ__GNUC__ŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂendifŽŽ¡«#ÂifŽ‘ ´øÝHAVE_STDLIB_HŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂendifŽŽŸ8.‘ üÈstreambuf.h–K«is“included“abGo•¸ãv“e,–ˆ†if‘KÝLDF_GCC_2_95Ž‘Hp«is›Kde ned,“instead˜of˜Èios«,“whic¸ãh˜is˜included˜in˜allŽ¡other‘UUcases.‘qÇ[¬LDF‘T2003.08.14.«]ŽŽŸ·h‘ª¨Ýloader.hŽ‘5°ù­6‘ª¨·i‘Ç«+·Ž¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽŽŽŒ‹7Ë Šn ý‘ì«6–­LIBRAR‘ÿJªY‘ÕXFILES’4˜Š3DLDFPRÃŽG“·x«9Ž €n ý•@PÂ9.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2003.07.18.«]Ž‘X–yAdded–ã“\ÂusingŽ‘áÄnamespaceŽ‘W|ÏstdŽ‘e$Š«".‘KÜThis“is“needed“with“GCC›ãv3.3,‘úSbut“not“with“GCC˜2.95Ž¡or–UUthe“DEC“C++“compiler.ޤŸüÈ„`ÕÁGŽŽ¡·h‘ª¨Ýloader.hŽ‘5°ù­6‘ª¨·i‘Ç«+·ޤ ‘ -ÂusingŽ‘(S‡namespaceŽ‘a÷stdŽ‘qïà«;ŽŸÂ10.– üGlobal‘ÕTitems“(Èpspglb.webÂ).‘$I÷«Tš¸ãypGedefs,–UUglobal“v‘ÿqÇariables“and“constan˜ts,“and“some“non-classŽ¡functions.‘qÇ(Èpspglb.web«.)ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.11.12.«]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.Ž¡‘ -[¬LDF‘T2003.12.01.«]Ž‘Y$Put–R>the“vš¸ãersion“con˜trol“iden˜ti ers“bac˜k“in˜to“the“release“v˜ersions,‘RÜbGecause“I'v˜e“put“themŽ¡in–UUtheir“oš¸ãwn“R˜CS“repGository‘ÿ*ª.ޤŸüÈ„`ÕÁGŽŽ¡·h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·i‘ÇŽŸ ‘ -ÂstaticŽ‘)HÚstringŽ‘Jn'Ïr‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(«=‘ÇÝ"$Id:È Ýpspglb.web,vÈ Ý1Ž‘kÆÜ.10È Ý2003/12/10È Ý16:34Ž’ÔÆ :02È Ýlfinsto1È ÝExpÈ Ý$"Ž’9 Ï«;ޤ ­See– -also“sections“37,–C54,“120,“196,“205,“262,“591,“615,“652,“938,“973,“1057,“1101,“1234,“1280,“1294,“1403,“1411,“1429,“1495,Ž© -‘and‘ÕX1502.Ž¡This–ÀècoŽŽ¤ ­See– -also“sections“38,–C55,“121,“197,“206,“263,“592,“616,“653,“939,“974,“1058,“1102,“1235,“1281,“1295,“1404,“1412,“1430,“1496,ަ‘and‘ÕX1503.Ž¡This–Àèco«v‘ÿqÇalue.‘ -ÝMAX_REAL_SQRTŽ‘Pøa«is“con•¸ãv“enien“t–pto“ha•¸ãv“e–pfor“testing“whenŽ¡computing‘UUdistances.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.25.«]Ž‘YâñAdded–0 this“section.‘èPreviously‘ÿ*ª,‘f¸I‘/Òdeclared“and“initialized“mš¸ãy“global“constan˜ts“in“theŽ¡header–%> le.‘ áThis“meanš¸ãt“that“eac˜h“compilation“unit“that“loaded“Èpspglb.h“«had“its“o˜wn“v˜ersion“of“ÝPIŽ‘+ «,Ž¡ÝINVALID_REALŽ‘?†D«,‘¹ketc.‘aýI‘¥Rdidn't–¥gknoš¸ãw“that“Ïc‘ÿ}'onstsŽ‘"ò:«had“in˜ternal“link‘ÿqÇage“b˜y“default“and“that“I‘¥Rcould“mak˜e“theirŽ¡link‘ÿqÇage–ÿ external“b¸ãy“using“ÂexternŽ‘(Æ—«in“the“declaration“with“the“initialization,‘)yand“put“a“second“declaration,Ž¡also–UUwith“ÂexternŽ‘$Ö«,“in“the“header“ le.‘qÇThis“is“what“I'vš¸ãe“done“no˜w.Ž¡‘ -[¬LDF‘T2003.06.03.«]Ž‘Y;Added‘UUÝINVALID_REAL_SHORTŽ‘b[‡«.ަŸüÈ„`ÕÁGŽŽŸÂ25.‘ üF‘ÿ -«or‘ÕTcompilation.ަ·h–ª¨«Global‘UUconstan¸ãts‘@­19“·i‘Ç«+·Ž¡‘ -ÂexternŽ‘.×constŽ‘LHyrealŽ‘bû§ÝPIŽ‘pÉ!«=‘Ç4±:«0ŽŽ‘Ç·‘8àÏatanŽ‘ªÀ«(1±:«0ŽŽ‘ Ç);ŽŽŽŒ‹ xµ Šn ý‘ì«12›­F•ÃŽOR‘ÕXCOMPILA‘ÿJªTION’<¼3DLDFPR“G˜·x«25Ž €n ý•@P‘ -ÂexternŽ‘.×constŽ‘LHyrealu½‰™šs4Ž‘ÔwpairŽ‘{¸úÝINVALID_REAL_PAIRŽ’Õ/«(ÝINVALID_REALŽ‘?†D±;‘ª¨ÝINVALID_REALŽ‘A0ì«);ޤ ‘ -ÂexternŽ‘.×constŽ‘LHyrealu½‰™šs4Ž‘ÔwshortŽ’²7ÝINVALID_REAL_SHORTŽ’à¸i«(ÝINVALID_REALŽ‘?†D±;‘ª¨«0Ž‘ª©);Ž¡#ÂifdefŽ‘áeÝ__DECCXXŽŽ¡‘ -ÂexternŽ‘.×constŽ‘LHyrealŽ‘bû§ÝMAX_REAL_SQRTŽ’ª‰«=‘ÇÏsqrtŽ‘w«(ÝMAX_REALŽ‘*†P«);Ž¡#ÂendifŽŽ©26.‘ ü«[¬LDF‘T2002.12.10.«]Ž‘Zˆ6URš¸ãGENT:–UUFind“out“wh˜y“ÏsqrtŽ‘N«(‘ª®)“doGesn't“w˜ork.ŽŸ·h–ª¨«Global‘UUconstan¸ãts‘@­19“·i‘Ç«+·Ž¡«#ÂifdefŽ‘áeÝ__GNUC__ŽŽ¡‘ -ÂexternŽ‘.×constŽ‘LHyrealŽ‘bû§ÝMAX_REAL_SQRTŽ’ª‰«=‘Ç1±:«84467–8à·“«10Ÿü^ÿ®+19ŽŽŽ‘Cc«;Ž¡#ÂendifŽŽ¦27.‘ üF‘ÿ -«or–ÕTthe“header“ le.ŽŸ·h›ª¨«Declarations–UUfor“the“header“ le‘@­18˜·i‘Ç«+·Ž¡‘ -ÂexternŽ‘.×constŽ‘LHyrealŽ‘bû§ÝPIŽ‘n «;Ž¡‘ -ÂexternŽ‘.×constŽ‘LHyrealŽ‘bû§ÝINVALID_REALŽ’¢ë«;Ž¡‘ -ÂexternŽ‘.×constŽ‘LHyrealu½‰™šs4Ž‘ÔwpairŽ‘{¸úÝINVALID_REAL_PAIRŽ’Õ/«;Ž¡‘ -ÂexternŽ‘.×constŽ‘LHyrealu½‰™šs4Ž‘ÔwshortŽ’²7ÝINVALID_REAL_SHORTŽ’à¸i«;Ž¡‘ -ÂexternŽ‘.×constŽ‘LHyrealŽ‘bû§ÝMAX_REALŽ’÷«;Ž¡‘ -ÂexternŽ‘.×constŽ‘LHyrealŽ‘bû§ÝMAX_REAL_SQRTŽ’§Áè«;ަÂ28.‘ üUtilit®9y‘ÕTfunctions.ަ29.› üSolv®9e–´ùquadratic“equation.˜«[¬LDF‘T2002.09.03.«]Ž‘ZlTO‘9+DO:–93Ma¸ãybGe“add“functions“for“solving“cubic“andŽ¡quartic–UUequations,“if“this“is“practicable.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.1.«]Ž‘Th=Changed–UUreturn“tš¸ãypGe“from“ÂpairŽ‘Ñf·hÂrealŽ‘]Ù±;‘ª¨ÂrealŽ‘·i“«to“Ârealu½‰™šs4Ž‘ÔwpairŽ‘/p«,“whic˜h“is“equiv‘ÿqÇalen˜t.ޤŸüÈ„`ÕÁGŽŽ¡·h›ª¨«Declare–UUutilit¸ãy“functions‘@­21˜·i‘Ç«+·ŽŸ ‘ -Ârealu½‰™šs4Ž‘ÔwpairŽ‘9p‚Ïsolve‘‰ffŽ‘®quadr‘ÿ}'aticŽ‘{%<«(ÂrealŽ‘³.±aŽ‘ü^;‘ª¨ÂrealŽ‘]Ö±bŽ‘¨€;‘ª¨ÂrealŽ‘]Ö±cŽ‘±±«);ŽŽŽŒ‹ ‡¤ Šn ý‘ì·x«30‘­3DLDFPRÃŽG’ç’˜SOL‘ÿ8VE–ÕXQUADRA›ÿJªTIC“EQUA˜TION‘«13Ž €n ý•@PÂ30.Ž©·h›ª¨«De ne–UUutilit¸ãy“functions‘@­22˜·i‘Ç«+·ޤ ‘ -Ârealu½‰™šs4Ž‘ÔwpairŽ‘9p‚Ïsolve‘‰ffŽ‘®quadr‘ÿ}'aticŽ‘{%<«(ÂrealŽ‘³.±aŽ‘ü^;‘ª¨ÂrealŽ‘]Ö±bŽ‘¨€;‘ª¨ÂrealŽ‘]Ö±cŽ‘±±«)Ž¡‘ -·fŽ¡‘Ârealu½‰™šs4Ž‘ÔwpairŽ‘Cpƒ±pŽ‘Hxƒ«;ަ‘ÂtryŽ‘)3·fŽ¡‘±pŽ‘#:Ï rstŽ‘|«=‘Ç(·Ž‘DZbŽ‘J¨«+‘8àÏsqrtŽ‘èÙ«((±bŽ–ƒŠ·‘8à±bŽ“«)–8à·“«(4Ž›8á·“±aŽ‘ ºð·“±cŽ‘Œ»«)))±=«(2Ž˜·“±aŽ‘‚«);Ž¡‘·gަ‘Âcatc®9hŽ‘.í׫(–ª¨±:“:“:Ž‘ÿ÷«)Ž¡‘·fŽ¡‘±pŽ‘#:Ï rstŽ‘|«=‘ÇÝINVALID_REALŽ‘BM\«;Ž¡‘·gަ‘ÂtryŽ‘)3·fŽ¡‘±pŽ‘#:Ïse–ÿ}'c“ondŽ‘ nß«=‘Ç(·Ž‘DZbŽ‘J¨·‘8àÏsqrtŽ‘èÙ«((±bŽ–ƒŠ·‘8à±bŽ“«)–8à·“«(4Ž›8á·“±aŽ‘ ºð·“±cŽ‘Œ»«)))±=«(2Ž˜·“±aŽ‘‚«);Ž¡‘·gަ‘Âcatc®9hŽ‘.í׫(–ª¨±:“:“:Ž‘ÿ÷«)Ž¡‘·fŽ¡‘±pŽ‘#:Ïse–ÿ}'c“ondŽ‘ nß«=‘ÇÝINVALID_REALŽ‘BM\«;Ž¡‘·gަ‘ÂreturnŽ‘7æ¼±pŽ‘<;Ž¡‘ -·gŽŸÂ31.– üDynamic‘{TalloQÇcation.“«[¬LDF‘T2002.10.02.«]Ž‘[TO›å‰DO:–å®T‘ÿ*ªry“to“get“this“to“w•¸ãork.‘"ÒI˜ha“v“en't–å®bGeen“able“toŽ¡get–UUthis“template“function“to“instan¸ãtiate“correctly‘ÿ*ª.ަ·h›ª¨«Declare–UUutilit¸ãy“functions‘@­21˜·i‘Ç«+·Ž¡«#ÂifŽ‘ ´ø«0ŽŽ¡‘ -ÂtemplateŽ‘6Ñ_·hÂclassŽ‘àQ±CŽ‘"½·i‘UU±CŽ‘ 2!·Ž‘2"Ïcr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘?Áæ«(±CŽ‘ -¬·‘8à±cŽ‘ SÓ«=‘Ç0Ž‘Ç);Ž¡#ÂendifŽŽŽŽŒ‹  Šn ý‘ì«14›­D•ÃŽYNAMIC‘ÕXALLOCA‘ÿJªTION’è3DLDFPR“G˜·x«32Ž €n ý•@PÂ32.Ž©·h›ª¨«De ne–UUutilit¸ãy“functions‘@­22˜·i‘Ç«+·ޤ «#ÂifŽ‘ ´ø«0ŽŽ¡‘ -ÂtemplateŽ‘6Ñ_·hÂclassŽ‘àQ±CŽ‘"½·i‘UU±CŽ‘ 2!·Ž‘2"Ïcr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘?Áæ«(±CŽ‘ -¬·‘8à±cŽ‘Œ»«)Ž¡‘ -·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"InÈ Ýcreate_new.\n"Ž‘d”b·‘ÇÏ ushŽ‘€«;Ž¡‘±CŽ‘®·‘8àÏnew‘‰ffŽ–®shap‘ÿ}'e‘‰ffŽ“ptrŽ‘BùŠ«=‘ÇÂnewŽ‘zG«(±CŽ‘ÜÌ«);Ž¡‘ÂifŽ‘´ú«(±cŽ‘ó·6«=‘Ç0Ž–Ç)‘·Ž‘ -Ïnew‘‰ffŽ–®shap‘ÿ}'e‘‰ffŽ“ptrŽ‘JÀ««=‘Ç·Ž“±cŽ‘ ô«;Ž¡‘Ïnew‘‰ffŽ–®shap‘ÿ}'e‘‰ffŽ“ptrŽ‘Où”Ÿ±~ŽŽ‘Uù•Ïset‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ’Ol«(Ïtrueޑƫ);Ž¡‘ÂreturnŽ‘7æ¼Ïnew‘‰ffŽ–®shap‘ÿ}'e‘‰ffŽ“ptrŽ‘uàN«;Ž¡‘ -·gŽ¡«#ÂendifŽŽŸ33.– üF‘ÿ -«orw®9ard‘üfdeclarations.“«[¬LDF‘T2002.10.16.«]Ž‘Zª/In–wNthe“ les“that“are“compiled“ rst,‘Ìsome“classes“refer“toŽ¡other–[classes“that“ha•¸ãv“en't–[bšGeen“de ned“y•¸ãet.‘]tF‘ÿ*ªorw“ard–[declarations“mak¸ãe“it“p˜ossible“to“do“this.‘]tTO‘KDO:“GETŽ¡CIT–ÿ*ªA“TION–UUfrom“Stroustrup.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.04.10.«]Ž‘YÔöAdded–"the“forw¸ãard“declaration“of“Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Qq«.‘×øIt's“needed“bGecause“it's“used“asŽ¡the–sreturn“v‘ÿqÇalue“of“ÂP•®9oin“tŽ‘¿«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(‘ª®),›Ówhic¸ãh“is,˜of“course,˜declared“within“the“declaration“of“ÂclassŽŽ¡P•®9oin“tŽ‘šH«.›g~Ho•¸ãw“ev“er,‘&aÂb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘UT«can–ü’only“bGe“de ned“Ïafter‘ÂP•®9oin“tŽ‘$¦ù«is“de ned.˜This“forw¸ãard“declarationŽ¡solv¸ães–UUthe“problem.Ž¡‘ -[¬LDF‘T2003.07.16.«]Ž‘Xî¿Added–;Ùforwš¸ãard“declaration“of“ÂEllipseŽ‘%$²«.‘iHIt's“needed,‘@òbGecause“I'v˜e“declared“ÂEllipseŽ‘(`‹«to“bGeŽ¡a‘!ÂfriendŽ›$S«of‘!ÂP®9athŽ‘²x«.‘`\F–ÿ*ªormerly“,‘+‡ÂCircleŽ‘$¯Ç«w¸ãas–!a“ÂfriendŽ˜«of“ÂP®9athŽ‘²x«,‘+‡but“noš¸ãw“it“m˜ust“bšGe“ÂEllipseŽ‘% í«,‘+‡b˜ecause“I'v¸ãe“madeŽ¡the–UU\segmen¸ãt"“functions“Ïse‘ÿ}'gmentŽ‘'Jö«(›ª®),“ÏhalfŽ‘Îë«(˜),“and“ÏquarterŽ‘$Z›«(˜)“mem¸ãbGers“of“ÂEllipseŽ‘(“ƒ«instead“of“ÂCircleŽ‘!¸«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«F‘ÿ*ªorw¸ãard‘UUdeclarations‘@­33“·i‘ÇŽ¡‘ -ÂstructŽ‘+Ÿøb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘`ò>«;Ž¡‘ -ÂstructŽ‘+Ÿøb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘x‘Y«;Ž¡‘ -ÂclassŽ‘$àRCircleŽ‘CC~«;Ž¡‘ -ÂclassŽ‘$àREllipseŽ‘FÉ+«;Ž¡‘ -ÂstructŽ‘+ŸøF‘ÿ -«oQÇcusŽ‘H•D«;Ž¡‘ -ÂstructŽ‘+ŸøLineŽ‘Aø{«;Ž¡‘ -ÂclassŽ‘$àRP®9athŽ‘=q¶«;Ž¡‘ -ÂclassŽ‘$àRPictureŽ‘J|_«;Ž¡‘ -ÂstructŽ‘+ŸøPlaneŽ‘H[«;Ž¡‘ -ÂclassŽ‘$àRP•®9oin“tŽ‘@zš«;ŽŸ ­This–ÕXcoÝÑÝPIŽ‘L«K«=‘ÇÝ__CXXL_PIŽ‘2e«;Ž¡#ÂendifŽŽ¡«#ÂendifŽŽ¦‘ -·h›ª¨«Declare–UUutilit¸ãy“functions‘@­21˜·iŽ¡‘ -h–ª¨«F‘ÿ*ªorw¸ãard‘UUdeclarations‘@­33“·iŽŸÂ37.– üI/O“(Èio.webÂ).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.11.12.«]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.Ž¡‘ -[¬LDF‘T2003.12.10.«]Ž‘YQ‘Put–ž«the“vš¸ãersion“con˜trol“iden˜ti ers“bac˜k“in˜to“m˜y“release“v˜ersions“for“3DLDF‘ž™1.1.4.‘MÊI'v˜eŽ¡already–"¯put“some“of“them“bacš¸ãk“in,‘,Ñno˜w“I'm“doing“the“rest“of“them.‘`åHo˜w˜ev˜er,‘,Ñthe“release“v˜ersions“are“no˜w“inŽ¡their–UUoš¸ãwn“R˜CS“repGository‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦·h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚstringŽ‘Jn'Ïr‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(«=‘ÇÝ"$Id:È Ýio.web,vÈ Ý1.2È Ý2Ž‘kÆÜ003/12/10È Ý15:39:40È ÝlŽ’ÔÆ finsto1È ÝExpÈ Ý$"Ž’ÌÞ«;ŽŸÂ38.‘ üInclude‘ÕT les.ަ·h–ª¨«Include‘UU les‘@­11“·i‘Ç«+·Ž¡«#ÂincludeŽ‘'Ø~Ý"loader.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"pspglb.h"ŽŽ¡«#ÂincludeŽ‘'Ø~ÝŽŽŸÂ39.– üGlobal‘¹¿v‘ÿ\rariables.“«[¬LDF‘T2002.10.16.«]Ž‘Zp:Ïin‘‰ffŽ‘®str–ÿ}'e“amŽ’‡ÑÀ«is–=Yan“input“stream“attac¸ãhed“to“a“ le“with“user“coGdeŽ¡for–v input.‘Õ©Curren¸ãtly‘ÿ*ª,›~óit“is“used,˜but“it“ful lls“no“useful“function,˜bGecause“I‘v˜ha•¸ãv“en't–v de ned“an“input“routineŽ¡yš¸ãet.‘/SÏout‘‰ffŽ‘®str–ÿ}'e“amŽ‘5ýç«is–øan“output“stream“attac˜hed“to“the“ le“of“MET‘ÿ*ªAPOST›ÅcoGde“that“3DLDF˜curren¸ãtly“proGducesŽ¡as–swits“output.‘Ì-Ïtex‘‰ffŽ‘®str–ÿ}'e“amŽ‘6C«is“an“output“stream“attac¸ãhed“to“a“ le“of“T‘þU>ŸÓVEŽ‘ãxXŽ›ƒKcoGde.‘Ì-The“user“can“write“T‘þU>ŸÓVEŽ‘ãxXŽ˜coGdeŽ¡to–UUthis“ le“and“load“it“inš¸ãto“Èpersp.tex“«or“use“it“for“some“other“purpGose.‘qÇ3DLDF“mak˜es“no“use“of“it“itself.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.08.30.«]Ž‘Y¿]Added‘ wÏtex‘‰ffŽ‘®str–ÿ}'e“amŽ‘6b«so– wthat“I‘ Hcan“include“T‘þU>ŸÓVEŽ‘ãxXŽ‘µKcošGde“in“m¸ãy“user“co˜de.‘—.Co˜de“written“b¸ãyŽ¡3DLDF‘Y`to‘YŸÏtex‘‰ffŽ‘®str–ÿ}'e“amŽ‘2¶²«will–YŸbGe“loaded“bš¸ãy“Èpersp.tex«,‘‹÷or“whatev˜er“T‘þU>ŸÓVEŽ‘ãxXŽ‘O› le“includes“the“P˜ostScript“ le“generatedŽ¡bš¸ãy–ÏÚMET‘ÿ*ªAPOST‘ϸfrom“the“output“of“3DLDF.“User“coGde“is“curren˜tly“in“Èmain.web«.‘EIIn“proGduction“v˜ersions“userŽ¡cošGde–UUwill“b˜e“in“Èuser.web«.Ž¡‘ -[¬LDF‘T2003.07.16.«]Ž‘Y;Added‘UUÏ g‘‰ffŽ‘®numŽ‘%®(«.ަŸüÈ„`ÕÁGŽŽ¦‘ -ÂformatŽ‘3c(Ïifstr–ÿ}'e“amŽ‘_ _intŽŽ¡‘ -ÂformatŽ‘3c(Ïofstr–ÿ}'e“amŽ‘a«¿intŽŽ¦·h–ª¨«Global‘UUv‘ÿqÇariables‘@­15“·i‘Ç«+·Ž¡‘ -ÂifstreamŽ‘6Î,Ïin‘‰ffŽ‘®str–ÿ}'e“amŽ‘`òY«;Ž¡‘ -ÂofstreamŽ‘9\dÏout‘‰ffŽ‘®str–ÿ}'e“amŽ‘h«;ŽŽŽŒ‹¢² Šn ý‘ì«16–­GLOBAL‘ÕXV‘ÿ8ARIABLES’Z:3DLDFPRÃŽG“·x«39Ž €n ý•@P‘ -ÂofstreamŽ‘9\dÏtex‘‰ffŽ‘®str–ÿ}'e“amŽ‘g_Ø«;ޤ ‘ -ÂunsignedŽ‘:7shortŽ‘X²Ï g‘‰ffŽ‘®numŽ‘zZ…«;Ž©Â40.‘ üexternŽ‘/Ò«declarations–UUfor“the“global“v‘ÿqÇariables.ŽŸ·h‘ª¨ÂexternŽ‘%È~«v‘ÿqÇariable‘UUdeclarations‘@­40‘ª¨·i‘ÇŽ¡‘ -ÂexternŽ‘.×ifstreamŽ‘ZìÏin‘‰ffŽ‘®str–ÿ}'e“amŽ’…/«;Ž¡‘ -ÂexternŽ‘.×ofstreamŽ‘]z:Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ’ŒºÖ«;Ž¡‘ -ÂexternŽ‘.×ofstreamŽ‘]z:Ïtex‘‰ffŽ‘®str–ÿ}'e“amŽ’‹}®«;Ž¡‘ -ÂexternŽ‘.×unsignedŽ‘^TåshortŽ‘|ˆÏ g‘‰ffŽ‘®numŽ’žx[«;ŽŸ ­This–ÕXcoO«(ÏasctimeŽ‘":ž«(ÏltŽ‘Ve«));ަ‘ÏdatestampŽ‘K±:Ïer‘ÿ}'aseŽ‘^/«(ÏdatestampŽ‘-ÿ±:ÏsizeŽ‘\«(‘ª¨)–8à·“«1Ž‘8á);‘±=·‘ÿý«Remo•¸ãv“e–UUterminal“line-feed.‘o·±=ޤ ­See–ÕXalso“sections“44,“46,“48,“and“50.Ž¡This–ÕXco¸Þ·‘ÇÝ"%%È ÝEnd:"Ž‘5T}·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïtex‘‰ffŽ‘®str–ÿ}'e“amŽ‘Gc±·‘`;Ý"\n\n%%È ÝL"Ž‘?ÆÀ·‘`;Ý"ocalÈ ÝVariables:\n"Ž‘o¥·‘`;Ý"%%È Ýmode:tex\n"Ž‘Z±·Ž¡‘(Ý"%%È Ýeval:(local-set-Ž’ÿÈkeyÈ Ý[f9]È Ý'mp-file)\nŽ’ùÿŒ"Ž’¸†·‘ò•Ý"%%È Ýrun-mp-on-file:\Ž‘kòY"persp.mp\"\n"Ž’¸ë,·Ž¡‘(Ý"%%È Ýrun-cweb-on-fileŽ’ÿÈ:\"main.web\"\n"Ž’èßö·‘YöÝ"%%È Ýrun-tex-on-file:Ž‘lYº\"persp.tex\"\n"Ž’Ä9è·Ž¡‘(Ý"%%È Ýrun-dvips-on-filŽ’ÿÈe:\"persp.ps\"\n"Ž’í·‘ÇÝ"%%È ÝEnd:\n"Ž‘= _«;Ž¡#ÂendifŽŽ¡‘returnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ47.‘ üBegin‘ÕT gure.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.16.«]Ž‘YßUAdded‘,oÏsilentŽ‘!ò«argumenš¸ãt,‘b6and–,oa“message“prin˜ted“conditionally“to“ÏstdoutŽ‘ô“«,‘b6sa˜ying“whic˜hŽ¡ gure–UUis“bšGeing“started.‘qÇThis“should“help“in“ nding“where“errors“o˜ccur.Ž¡‘ -[¬LDF‘T2003.07.16.«]Ž‘Y;Made‘UUnon-inline.Ž¡‘ -[¬LDF‘T2003.08.17.«]Ž‘Y;Made‘UUÏsilentŽ‘a¾«non-ÂconstŽ‘ÕM«.‘qÇSetting–UUit“to“ÏtrueŽ›í«,“if“ÝSILENT_GLOBALŽ‘Kpë«is“ÏtrueŽ˜«.ަŸüÈ„`ÕÁGŽŽ¦·h›ª¨«Declare–UUI/O“functions‘@­42˜·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏb–ÿ}'e“gin gŽ‘Dz«(ÂunsignedŽ‘07shortŽ‘N±±iŽ‘Qs¥;‘ª¨Âb•QÇo“olŽ‘LÏsilentŽ‘6Ê:«=‘ÇÏfalseŽ‘v\«);ŽŽŽŒ‹Ä• Šn ý‘ì·x«48–­3DLDFPRÃŽG’,\ÎBEGIN‘ÕXFIGURE“«19Ž €n ý•@PÂ48.Ž©·h›ª¨«De ne–UUI/O“functions‘@­43˜·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙÏb–ÿ}'e“gin gŽ‘Dz«(ÂunsignedŽ‘07shortŽ‘N±±iŽ‘Qs¥;‘ª¨Âb•QÇo“olŽ‘LÏsilentŽ‘4"«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÝSILENT_GLOBALŽ‘DÆA«)‘ÏsilentŽ‘ ~,«=‘ÇÏtrueŽ‘‹°«;Ž¡‘Ï g‘‰ffŽ‘®numŽ‘9í«=‘DZiŽ‘9 «;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ"beginfig("Ž‘?Ôw·‘ÇÏ g‘‰ffŽ‘®numŽ‘'ç·‘ÇÝ");\n"Ž‘"Ín«;Ž¡‘ÂifŽ‘´ú«(·:ÏsilentŽ‘·«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"BeginningÈ ÝfigureÈ Ý"Ž‘iÔ_·‘ÇÏ g‘‰ffŽ‘®numŽ‘'ç·‘ÇÝ"."Ž‘Ô·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ49.– üEnd‘=Õ gure.“«The‘јÂunsignedŽ‘2„éshortŽ‘OËÏ«argumenš¸ãt–јis“\syn˜tactic“sugar".‘EÞIt's“ignored“b˜y“Ïend gޑū(‘ª®),‘ëñbut“ma˜yŽ¡bGe›UUcon•¸ãv“enien“t˜for˜a˜user˜for˜k“eeping˜trac“k˜of˜what˜ gure˜is˜bGeing˜ended.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.16.«]Ž‘YßUAdded‘,oÏsilentŽ‘!ò«argumenš¸ãt,‘b6and–,oa“message“prin˜ted“conditionally“to“ÏstdoutŽ‘ô“«,‘b6sa˜ying“whic˜hŽ¡ gure–UUis“bšGeing“ended.‘qÇThis“should“help“in“ nding“where“errors“o˜ccur.Ž¡‘ -[¬LDF‘T2003.07.16.«]Ž‘Y;Made‘UUnon-inline.Ž¡‘ -[¬LDF‘T2003.08.17.«]Ž‘Y;Made‘UUÏsilentŽ‘a¾«non-ÂconstŽ‘ÕM«.‘qÇSetting–UUit“to“ÏtrueŽ›í«,“if“ÝSILENT_GLOBALŽ‘Kpë«is“ÏtrueŽ˜«.ަŸüÈ„`ÕÁGŽŽ¦·h›ª¨«Declare–UUI/O“functions‘@­42˜·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏend gŽ‘=ñ^«(ÂunsignedŽ‘07shortŽ‘N±±iŽ‘T:½«=‘Ç0Ž‘Ç±;‘ª¨Âb•QÇo“olŽ‘LÏsilentŽ‘6Ê:«=‘ÇÏfalseŽ‘v\«);ŽŸÂ50.ަ·h›ª¨«De ne–UUI/O“functions‘@­43˜·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏend gŽ‘=ñ^«(ÂunsignedŽ‘07shortŽ‘N±±iŽ‘Qs¥;‘ª¨Âb•QÇo“olŽ‘LÏsilentŽ‘4"«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÝSILENT_GLOBALŽ‘DÆA«)‘ÏsilentŽ‘ ~,«=‘ÇÏtrueŽ‘‹°«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ"endfig"Ž‘0€·‘ÇÝ";\n"Ž‘q«;Ž¡‘ÂifŽ‘´ú«(·:ÏsilentŽ‘·«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EndingÈ ÝfigureÈ Ý"Ž‘Zh·‘ÇÏ g‘‰ffŽ‘®numŽ‘'ç·‘ÇÝ"."Ž‘Ô·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gޤÂ51.‘ üPutting–ÕTI/O“together.Ž¡52.‘ ü«This–UUis“what's“compiled.ަ‘ -·h–ª¨«Include‘UU les‘@­11“·iޤ ‘ -h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·iŽ¡‘ -h–ª¨«Global‘UUv‘ÿqÇariables‘@­15“·iŽ¡‘ -h›ª¨«De ne–UUI/O“functions‘@­43˜·iŽŽŽŒ‹Î Šn ý‘ì«20›­PUTTING–ÕXI/O“TOGETHER’þê&3DLDFPRÃŽG˜·x«53Ž €n ý•@PÂ53.‘ ü«This–UUis“what's“written“to“Èio.h«.Ž©·h‘ª¨Ýio.hŽ‘ ±­53‘ª¨·i‘Çޤ ‘ -h‘ª¨ÂexternŽ‘%È~«v‘ÿqÇariable‘UUdeclarations‘@­40‘ª¨·iŽ¡‘ -h›ª¨«Declare–UUI/O“functions‘@­42˜·iŽŸÂ54.– üColor“(Ècolors.webÂ).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.11.12.«]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.Ž¡‘ -[¬LDF‘T2003.12.10.«]Ž‘YQ‘Put–ž«the“vš¸ãersion“con˜trol“iden˜ti ers“bac˜k“in˜to“m˜y“release“v˜ersions“for“3DLDF‘ž™1.1.4.‘MÊI'v˜eŽ¡already–"¯put“some“of“them“bacš¸ãk“in,‘,Ñno˜w“I'm“doing“the“rest“of“them.‘`åHo˜w˜ev˜er,‘,Ñthe“release“v˜ersions“are“no˜w“inŽ¡their–UUoš¸ãwn“R˜CS“repGository‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦·h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚstringŽ‘Jn'Ïr‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(«=‘ÇÝ"$Id:È Ýcolors.web,vÈ Ý1Ž‘kÆÜ.2È Ý2003/12/10È Ý15:22:Ž’ÔÆ 33È Ýlfinsto1È ÝExpÈ Ý$"Ž’3ÌÒ«;ŽŸÂ55.‘ üInclude‘ÕT les.ަ·h–ª¨«Include‘UU les‘@­11“·i‘Ç«+·Ž¡«#ÂincludeŽ‘'Ø~Ý"loader.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"pspglb.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"io.h"ŽŽŸÂ56.› üColor–xØclass“de nition.˜«[¬LDF‘T2002.09.25.«]Ž‘[f!!‘WRememš¸ãbGer–ã…to“c˜hange“the“constructors,‘setting“func-Ž¡tions,–UUand“assignmenš¸ãt“opGerator“if“I“add“or“c˜hange“an˜ything“here!!ަ·h–ª¨«De ne‘UUÂclassŽ‘5¦ColorŽ‘>ÅH­56“·i‘ÇŽ¡‘ -ÂclassŽ‘$àRColorŽ‘D…E·fŽ¡‘ÂstringŽ‘5%OÏnameŽ‘MëS«;Ž¡‘Âb•QÇo“olŽ‘-¡hÏuse‘‰ffŽ‘®nameŽ‘X#²«;Ž¡‘Âb•QÇo“olŽ‘-¡hÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘eFZ«;‘±=·‘ÿý«LDF‘UU2002.10.06.‘qÇAdded.‘o·±=Ž¡‘ÂrealŽ‘*³0Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘Mþ¶«;Ž¡‘ÂrealŽ‘*³0Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘W´¼«;Ž¡‘ÂrealŽ‘*³0Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘R6.«;ަ‘ -ÂpublicŽ‘)=Ö«:‘·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·iŽ¡‘ -g«;ŽŸ ­This–ÕXcoJ«=‘DZcŽ‘ó:Ïget‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘7¶º«(‘ª¨);Ž¡‘ÂifŽ‘´ú«(±nŽ‘Dz·6«=‘ÇÝ""Ž‘Z·^‘8à±uŽ‘ -¹v·‘ÇÏtrueŽ‘‹°«)‘·fŽ¡‘Ïuse‘‰ffŽ‘®nameŽ‘KIe«=‘ÇÏtrueŽ‘‹°«;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏuse‘‰ffŽ‘®nameŽ‘Y"C«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿý«LDF‘UU2002.10.06.‘qÇAdded.‘o·±=Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gޤÂ62.‘ üName–ÕTand“unsigned“short“argumen®9ts.Ž¡63.‘ üConstructor.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·ޤ ‘ -ÂColorŽ‘&OŸ«(ÂconstŽ‘]stringŽ‘?´å±nŽ‘Eµ;‘ª¨ÂconstŽ‘ ÅunsignedŽ‘PqNshortŽ‘nnl±rŽ‘s8€;‘ª¨ÂconstŽ‘ ÅunsignedŽ‘PqNshortŽ‘nnl±gŽ‘sO;‘ª¨ÂconstŽ‘ ÅunsignedŽ‘PqNshortŽŽ¡‘±bŽ‘"J­;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°±uŽ‘A÷F«=‘ÇÏtrueŽ‘‹°«);ŽŽŽŒ‹âT Šn ý‘ì«22›­CONSTR•ÃŽUCTOR’)B|3DLDFPR“G˜·x«64Ž €n ý•@PÂ64.Ž©·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·ޤ ‘ -ÂColorŽ‘'O£«::‘ÂColorŽ‘O¢«(ÂconstŽ‘GNstringŽ‘?‰G±nŽ‘E‰á;‘ª¨ÂconstŽ‘ñöunsignedŽ‘PE°shortŽ‘n,ÿ±rŽ‘r÷;‘ª¨ÂconstŽ‘ñöunsignedŽ‘PE°shortŽ‘n,ÿ±gŽ‘sMâ;‘ª¨ÂconstŽ‘ñöunsignedŽŽ¡‘2shortŽ‘Oʨ±bŽ‘TR;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°±uŽ‘?0.«)Ž¡‘ -:‘qÇÏnameŽ‘7Ë«(±nŽ‘š«)‘UU·fŽ¡‘ÏnameŽ‘/«=‘DZnŽ‘Dz«;Ž¡‘ÂifŽ‘´ú«(±nŽ‘Dz·6«=‘ÇÝ""Ž‘Z·^‘8à±uŽ‘ -¹v·‘ÇÏtrueŽ‘‹°«)‘·fŽ¡‘Ïuse‘‰ffŽ‘®nameŽ‘KIe«=‘ÇÏtrueŽ‘‹°«;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏuse‘‰ffŽ‘®nameŽ‘Y"C«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿý«LDF‘UU2002.10.06.‘qÇAdded.‘o·±=Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘: «=‘DZrŽ‘‘,=«255±:«0ŽŽ‘Ç!;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘CȦ«=‘DZgŽ‘çû=«255±:«0ŽŽ‘Ç!;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘>J«=‘DZbŽ‘Â=«255±:«0ŽŽ‘Ç!;Ž¡‘ -·gŽŸÂ65.‘ üSetting‘ÕTfunction.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘# ÏsetŽ‘0ƒˆ«(ÂconstŽ‘7ÍstringŽ‘?jE±nŽ‘Ejß;‘ª¨ÂconstŽ‘âuunsignedŽ‘P&®shortŽ‘mþ|±rŽ‘rÈ;‘ª¨ÂconstŽ‘âuunsignedŽ‘P&®shortŽ‘mþ|±gŽ‘s_;‘ª¨ÂconstŽ‘âuunsignedŽ‘P&®shortŽŽ¡‘±bŽ‘"J­;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°±uŽ‘A÷F«=‘ÇÏfalseŽ‘v\«);ŽŸÂ66.ަ·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"Ý3ColorŽ‘@,Õ«::‘ÏsetŽ‘xˆ«(ÂconstŽ‘ üstringŽ‘?£±nŽ‘E=;‘ª¨ÂconstŽ‘´¤unsignedŽ‘OË shortŽ‘mu ±rŽ‘r?;‘ª¨ÂconstŽ‘´¤unsignedŽ‘OË shortŽ‘mu ±gŽ‘r•ì;‘ª¨ÂconstŽ‘´¤unsignedŽŽ¡‘2shortŽ‘Oʨ±bŽ‘TR;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°±uŽ‘?0.«)Ž¡‘ -·fŽ¡‘ÏnameŽ‘/«=‘DZnŽ‘Dz«;Ž¡‘ÂifŽ‘´ú«(±nŽ‘Dz·6«=‘ÇÝ""Ž‘Z·^‘8à±uŽ‘ -¹v·‘ÇÏtrueŽ‘‹°«)‘·fŽ¡‘Ïuse‘‰ffŽ‘®nameŽ‘KIe«=‘ÇÏtrueŽ‘‹°«;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏuse‘‰ffŽ‘®nameŽ‘Y"C«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘: «=‘DZrŽ‘‘,=«255±:«0ŽŽ‘Ç!;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘CȦ«=‘DZgŽ‘çû=«255±:«0ŽŽ‘Ç!;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘>J«=‘DZbŽ‘Â=«255±:«0ŽŽ‘Ç!;Ž¡‘ -·gŽ©Â67.› üThree–—Þreal“argumen®9ts.˜«[¬LDF‘T2002.10.09.«]Ž‘[1`Added–þthe“follo¸ãwing“constructor“and“setting“function.Ž¡They– äare“for“unnamed“ÂColorsŽ‘$⾫.‘tThe“DEC‘ µcompiler“can't“distinguish“bGet•¸ãw“een‘ äÂrealŽ‘q¡«and‘ äÂunsignedŽ‘4õshortŽŽ¡«argumenš¸ãts,‘óso–Û/the“o˜v˜erloaded“functions“m˜ust“di er“in“another“w˜a˜y‘ÿ*ª.‘IIn“this“case,‘óthese“v˜ersions“ha˜v˜e“no“ÏnameŽŽ¡«argumen•¸ãt.‘‘ÀI‘µ:bGeliev“e–µSthat“users“are“most“likš¸ãely“to“declare“ÂColorsŽ‘(C€«using“ÂrealŽ‘È«argumen˜ts“when“they“plan“toŽ¡moGdify–Àthem,›*xin“whic¸ãh“case“the“ÏoutputŽ‘ /«(‘ª®)“function“should“write“the“red,˜green“and“blue“v‘ÿqÇalues“to“Ïout‘‰ffŽ‘®str–ÿ}'e“amŽŽ¡«rather–e*than“ÏnameŽ‘+.«.‘¡EIf“it“turns“out“to“bšGe“necessary‘ÿ*ª,‘imore“constructors“can“b˜e“added“or“the“existing“ones“canŽ¡bGe‘UUc¸ãhanged.ަÂ68.‘ üConstructor.ŽŸ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -ÂColorŽ‘&OŸ«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±gŽ‘;©[;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±bŽ‘:Ó"«);ŽŽŽŒ‹ìö Šn ý‘ì·x«69›­3DLDFPR•ÃŽG’)B|CONSTR“UCTOR˜«23Ž €n ý•@PÂ69.Ž©·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·ޤ ‘ -ÂColorŽ‘'O£«::‘ÂColorŽ‘O¢«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±gŽ‘;©[;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±bŽ‘:Ó"«)Ž¡‘ -·fŽ¡‘ÏnameŽ‘/«=‘ÇÝ""Ž‘ Íz«;Ž¡‘Ïuse‘‰ffŽ‘®nameŽ‘AId«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;Ž¡‘ÂifŽ‘´ú«(±rŽ‘‘,<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"RedÈ ÝpartÈ ÝargumentÈ Ý<Ž’šÿÉÈ Ý0.È ÝSettingÈ Ýred_parŽ’ÿtÈ ÝtoÈ Ý0.\n\n"Ž’C…Ñ«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±rŽ‘‘,>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"RedÈ ÝpartÈ ÝargumentÈ Ý>Ž’šÿÉÈ Ý1.È ÝSettingÈ Ýred_parŽ’ÿtÈ ÝtoÈ Ý1.\n\n"Ž’C…Ñ«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘Që«=‘DZrŽ‘‘,«;Ž¡‘ÂifŽ‘´ú«(±gŽ‘çû<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"GreenÈ ÝpartÈ ÝargumentŽ’šÿÉÈ Ý<È Ý0.È ÝSettingÈ ÝgreenŽ’ÿ_partÈ ÝtoÈ Ý0.\n\n"Ž’X…Å«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±gŽ‘çû>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"GreenÈ ÝpartÈ ÝargumentŽ’šÿÉÈ Ý>È Ý1.È ÝSettingÈ ÝgreenŽ’ÿ_partÈ ÝtoÈ Ý1.\n\n"Ž’X…Å«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘[¡…«=‘DZgŽ‘çû«;Ž¡‘ÂifŽ‘´ú«(±bŽ‘Â<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"BlueÈ ÝpartÈ ÝargumentÈ Ž’šÿÉÝ<È Ý0.È ÝSettingÈ Ýblue_pŽ’ÿartÈ ÝtoÈ Ý0.\n\n"Ž’NË«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±bŽ‘Â>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"BlueÈ ÝpartÈ ÝargumentÈ Ž’šÿÉÝ>È Ý1.È ÝSettingÈ Ýblue_pŽ’ÿartÈ ÝtoÈ Ý1.\n\n"Ž’NË«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏblue‘‰ffŽ‘®p‘ÿ}'artŽ‘V"÷«=‘DZbŽ‘«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ70.‘ üSetting‘ÕTfunction.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏsetŽ‘0v]«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±gŽ‘;©[;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±bŽ‘:Ó"«);ŽŽŽŒ‹úf Šn ý‘ì«24–­SETTING‘ÕXFUNCTION’u@3DLDFPRÃŽG“·x«71Ž €n ý•@PÂ71.Ž©·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::‘ÏsetŽ‘xˆ«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±gŽ‘;©[;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±bŽ‘:Ó"«)Ž¡‘ -·fŽ¡‘ÏnameŽ‘/«=‘ÇÝ""Ž‘ Íz«;Ž¡‘Ïuse‘‰ffŽ‘®nameŽ‘AId«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;Ž¡‘ÂifŽ‘´ú«(±rŽ‘‘,<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"RedÈ ÝpartÈ ÝargumentÈ Ý<Ž’šÿÉÈ Ý0.È ÝSettingÈ Ýred_parŽ’ÿtÈ ÝtoÈ Ý0.\n\n"Ž’C…Ñ«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±rŽ‘‘,>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"RedÈ ÝpartÈ ÝargumentÈ Ý>Ž’šÿÉÈ Ý1.È ÝSettingÈ Ýred_parŽ’ÿtÈ ÝtoÈ Ý1.\n\n"Ž’C…Ñ«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘Që«=‘DZrŽ‘‘,«;Ž¡‘ÂifŽ‘´ú«(±gŽ‘çû<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"GreenÈ ÝpartÈ ÝargumentŽ’šÿÉÈ Ý<È Ý0.È ÝSettingÈ ÝgreenŽ’ÿ_partÈ ÝtoÈ Ý0.\n\n"Ž’X…Å«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±gŽ‘çû>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"GreenÈ ÝpartÈ ÝargumentŽ’šÿÉÈ Ý>È Ý1.È ÝSettingÈ ÝgreenŽ’ÿ_partÈ ÝtoÈ Ý1.\n\n"Ž’X…Å«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘[¡…«=‘DZgŽ‘çû«;Ž¡‘ÂifŽ‘´ú«(±bŽ‘Â<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"BlueÈ ÝpartÈ ÝargumentÈ Ž’šÿÉÝ<È Ý0.È ÝSettingÈ Ýblue_pŽ’ÿartÈ ÝtoÈ Ý0.\n\n"Ž’NË«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±bŽ‘Â>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6F0·‘‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘nKColor()È Ý(threeÈ ÝrealÈ Ž’×Ýarguments):\n"Ž’'&Ô·Ž¡‘2Ý"BlueÈ ÝpartÈ ÝargumentÈ Ž’šÿÉÝ>È Ý1.È ÝSettingÈ Ýblue_pŽ’ÿartÈ ÝtoÈ Ý1.\n\n"Ž’NË«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏblue‘‰ffŽ‘®p‘ÿ}'artŽ‘V"÷«=‘DZbŽ‘«;Ž¡‘ -·gŽŸÂ72.‘ üPseudo-constructor–ÕTfor“dynamic“alloQÇcation.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIstaticŽ‘HÓ"ColorŽ‘hx·Ž‘mxÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“c‘ÿ}'olorŽ’µË8«(‘ª¨)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝColor::creŽ‘kÆÜate_new_color().\n"Ž’Ð «;ަ‘ÂColorŽ‘3¤õ·Ž‘8¤ö±cŽ‘?¿é«=‘ÇÂnewŽ‘Ïœ«(ÂColorŽ‘Ož«);ަ‘±cŽ‘SÝŸ~ŽŽ‘SÞÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘V¿è«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝColor::creaŽ‘kÆÜte_new_color().\n"Ž’ÊÍ«;ŽŽŽŒ‹/ Šn ý‘ì·x«72‘­3DLDFPR•ÃŽG’„ PSEUDO-CONSTR“UCTOR›ÕXF“OR˜D“YNAMIC˜ALLOCA‘ÿJªTION‘«25Ž €n ý•@P‘ÂreturnŽ‘7æ¼±cŽ‘<:—«;ޤ ‘ -·gŽ©Â73.– üAssignmen®9t.“«[¬LDF‘T2002.09.24.«]Ž‘Zˆ6Added–UUthis“opGerator“function.ŽŸ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”Ž«=Ž‘V[¬(ÂconstŽ‘*¢ColorŽ‘=Ï•«&Ž‘E–³±cŽ‘Iꎫ);ަÂ74.ŽŸ·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::Ž‘FÛ¹ÂopQÇeratorŽ‘rrn«=Ž‘z9Œ(ÂconstŽ‘*¢ColorŽ‘=Ï•«&Ž‘E–³±cŽ‘Iꎫ)Ž¡‘ -·fŽ¡‘ÏnameŽ‘/«=‘ÇÝ""Ž‘ Íz«;Ž¡‘Ïuse‘‰ffŽ‘®nameŽ‘AId«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘: «=‘DZcŽ‘ó:Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘#K†«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘CȦ«=‘DZcŽ‘ó:Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘-Œ«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘>J«=‘DZcŽ‘ó:Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘'‚þ«;Ž¡‘ -·gަÂ75.– üEqualit®9y‘ÿ -«.“«[¬LDF‘T2002.09.25.«]Ž‘Z@ÀChanged– ßso“that“only“Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘&Ye«,‘*Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘3+•«and“Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘-ž¼«are“compared.Ž¡This›{Ðw•¸ãa“y‘ÿ*ª,‘…nÂColorsŽ‘'Ú«that˜di er˜only˜in˜ÏnameŽ‘½¤«and/or˜Ïuse‘‰ffŽ‘®nameŽ‘1yê«are˜considered˜to˜bGe˜equal.‘å7[¬LDF‘T2002.09.24.«]ŽŽ¡Added–UUthis“opGerator“function.ŽŸ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8·Ž‘Vÿ:«(ÂconstŽ‘*¢ColorŽ‘=Ï•«&Ž‘E–³±cŽ‘Iꎫ)‘UUÂconstŽ‘*¢«;ަÂ76.ŽŸ·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gColorŽ‘@ñ «::Ž‘GGÂopQÇeratorŽ‘sü·Ž‘zÝ«(ÂconstŽ‘*¢ColorŽ‘=Ï•«&Ž‘E–³±cŽ‘Iꎫ)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7漫((Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘&ž·‘DZcŽ›ó:Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘#K†«)–8à·^“«(Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘/Ȥ·‘DZcŽ˜:Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘-Œ«)“·^“«(Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘*J·‘DZcŽ˜:Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘'‚þ«));Ž¡‘ -·gަÂ77.– üInequalit®9y‘ÿ -«.“«[¬LDF‘T2002.09.24.«]Ž‘Zˆ6Added–UUthis“opGerator“function.ŽŸ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8·6«=Ž‘Vÿ:(ÂconstŽ‘*¢ColorŽ‘=Ï•«&Ž‘E–³±cŽ‘Iꎫ)‘UUÂconstŽ‘*¢«;ަÂ78.ŽŸ·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gColorŽ‘@ñ «::Ž‘GGÂopQÇeratorŽ‘sü·6«=Ž‘zÝ(ÂconstŽ‘*¢ColorŽ‘=Ï•«&Ž‘E–³±cŽ‘Iꎫ)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼·:«(·Ž‘ÏthisŽ‘²Ï·‘DZcŽ‘ó«);Ž¡‘ -·gަÂ79.‘ üMoQÇdifying.ަ80.‘ üSet‘ÕTname.ŽŸ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏset‘‰ffŽ‘®nameŽ‘Kt«(ÂconstŽ‘*¢stringŽ‘?Oï±sŽ‘Cÿï«);ŽŽŽŒ‹ï Šn ý‘ì«26–­SET‘ÕXNAME’>ý–3DLDFPRÃŽG“·x«81Ž €n ý•@PÂ81.Ž©·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::‘Ïset‘‰ffŽ‘®nameŽ‘)ví«(ÂconstŽ‘*¢stringŽ‘?Oï±sŽ‘Cÿï«)Ž¡‘ -·fŽ¡‘ÏnameŽ‘/«=‘DZsŽ‘w«;Ž¡‘ -·gŽŸÂ82.‘ üSet–ÕTuse“name.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏset‘‰ffŽ–®use‘‰ffŽ“nameŽ‘]1«(ÂconstŽ‘*¢b•QÇo“olŽ‘7̱bŽ‘<²«);ŽŸÂ83.ަ·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::‘Ïset‘‰ffŽ–®use‘‰ffŽ“nameŽ‘;33«(ÂconstŽ‘*¢b•QÇo“olŽ‘7̱bŽ‘<²«)Ž¡‘ -·fŽ¡‘Ïuse‘‰ffŽ‘®nameŽ‘AId«=‘DZbŽ‘«;Ž¡‘ -·gŽŸÂ84.‘ üMoQÇdify‘ÿ -«.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏmo‘ÿ}'difyŽ‘ACÚ«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±gŽ‘>ps«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±bŽ‘=š:«=‘Ç0Ž“);ŽŽŽŒ‹T Šn ý‘ì·x«85–­3DLDFPRÃŽG’HèJMODIFY“«27Ž €n ý•@PÂ85.Ž©·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::‘Ïmo‘ÿ}'difyŽ‘F«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±gŽ‘;©[;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±bŽ‘:Ó"«)Ž¡‘ -·fŽ¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘: «+=ŽŽ‘Lgô±rŽ‘Q2«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘CȦ«+=ŽŽ‘Vú±gŽ‘[>Ý«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘>J«+=ŽŽ‘PŸl±bŽ‘Tê«;Ž¡‘ÂifŽ‘´ú«(Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘&ž±>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"WARNING!È ÝInÈ ÝColor::Ž‘kÆÜmodify():\n"Ž’®8·‘ÇÝ"red_partÈ ÝisÈ ÝgreaterŽ‘kÆÜÈ ÝthanÈ Ý1:È Ý"Ž’£”>·‘ÇÏr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘(Ù¶·Ž¡‘2Ïend‘‚ØlŽ‘H¸ß·‘ÇÝ"SettingÈ Ýred_partÈ ÝtoŽ‘kÆÜÈ Ý1.\n\n"Ž’–M,«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘&ž±<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3Ù·‘#mÝ"WARNING!È ÝInÈ ÝColor::Ž‘l#1modify():\n"Ž’®Ìâ·‘#mÝ"red_partÈ ÝisÈ ÝlessÈ ÝthŽ‘l#1anÈ Ý0:È Ý"Ž’”Œñ·‘#mÏr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘)’`·Ž¡‘2Ïend‘‚ØlŽ‘H¸ß·‘ÇÝ"SettingÈ Ýred_partÈ ÝtoŽ‘kÆÜÈ Ý0.\n\n"Ž’–M,«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘/Ȥ±>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘4w0·‘Á‡Ý"WARNING!È ÝInÈ ÝColor::Ž‘lÁKmodify():\n"Ž—° ·‘Á‡Ý"green_partÈ ÝisÈ ÝgreatŽ‘lÁKerÈ ÝthanÈ Ý1:È Ý"Ž“·Ž¡‘2Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘aÈ©·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÝ"SettingÈ Ýgreen_partÈ Ž‘kÆÜÝtoÈ Ý1.\n\n"Ž’ Í&«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘/Ȥ±<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"WARNING!È ÝInÈ ÝColor::Ž‘kÆÜmodify():\n"Ž’®8·‘ÇÝ"green_partÈ ÝisÈ ÝlessÈ Ž‘kÆÜÝthanÈ Ý0:È Ý"Ž’žTA·‘ÇÏgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘2¼·Ž¡‘2Ïend‘‚ØlŽ‘H¸ß·‘ÇÝ"SettingÈ Ýgreen_partÈ Ž‘kÆÜÝtoÈ Ý0.\n\n"Ž’ Í&«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘*J±>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘4—ø·‘âOÝ"WARNING!È ÝInÈ ÝColor::Ž‘lâmodify():\n"Ž’°J¦·‘âOÝ"blue_partÈ ÝisÈ ÝgreateŽ‘lârÈ ÝthanÈ Ý1:È Ý"Ž’« -©·Ž¡‘2Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘\J·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÝ"SettingÈ Ýblue_partÈ ÝtŽ‘kÆÜoÈ Ý1.\n\n"Ž’›)«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘*J±<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3 º·‘ëÝ"WARNING!È ÝInÈ ÝColor::Ž‘kêÕmodify():\n"Ž’®\*·‘ëÝ"blue_partÈ ÝisÈ ÝlessÈ ÝtŽ‘kêÕhanÈ Ý0:È Ý"Ž’™\6·‘ëÏblue‘‰ffŽ‘®p‘ÿ}'artŽ‘-Y ·Ž¡‘2Ïend‘‚ØlŽ‘H¸ß·‘ÇÝ"SettingÈ Ýblue_partÈ ÝtŽ‘kÆÜoÈ Ý0.\n\n"Ž’›)«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ86.‘ üSet–ÕTred“part.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏset‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘UúD«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«);ŽŽŽŒ‹#† Šn ý‘ì«28›­SET–ÕXRED“P–ÿJªAR“T’,ÏL3DLDFPRÃŽG˜·x«87Ž €n ý•@PÂ87.Ž©·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::‘Ïset‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘3üo«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(±rŽ‘‘,>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|×·‘Ç.Ý"WARNING!È ÝInÈ ÝColor::Ž‘kÆòset_red_part():\n"Ž’Í”R·‘Ç.Ý"rÈ ÝisÈ ÝgreaterÈ ÝthanÈ Ý1Ž‘kÆò:È Ý"Ž‘~Ô·‘Ç.±rŽ‘ -Xp·‘Ç.Ïend‘‚ØlŽ‘€·Ž¡‘2Ý"SettingÈ Ýred_partÈ ÝtoŽ’šÿÉÈ Ý1.\n\n"ޒņ«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±rŽ‘‘,<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3Öp·‘ ÇÝ"WARNING!È ÝInÈ ÝColor::Ž‘l ‹set_red_part():\n"Ž’ÎG„·‘ ÇÝ"rÈ ÝisÈ ÝlessÈ ÝthanÈ Ý0:È Ý"Ž‘oǺ·‘ DZrŽ‘ ¢·‘ ÇÏend‘‚ØlŽ‘3P·Ž¡‘2Ý"SettingÈ Ýred_partÈ ÝtoŽ’šÿÉÈ Ý0.\n\n"ޒņ«;Ž¡‘Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘Që«=‘DZrŽ‘‘,«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ88.‘ üSet–ÕTgreen“part.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏset‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘_°J«(ÂconstŽ‘*¢realŽ‘4ÝбgŽ‘9þ³«);ŽŸÂ89.ަ·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::‘Ïset‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘=²u«(ÂconstŽ‘*¢realŽ‘4ÝбgŽ‘9þ³«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(±gŽ‘çû>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘4¨·‘YÿÝ"WARNING!È ÝInÈ ÝColor::Ž‘lYÃset_green_part():\n"Ž’Ù9î·‘YÿÝ"gÈ ÝisÈ ÝgreaterÈ ÝthanÈ Ý1Ž‘lYÃ:È Ý"Ž‘ú!·‘Yÿ±gŽ‘ Ôá·Ž¡‘2Ïend‘‚ØlŽ‘H¸ß·‘ÇÝ"SettingÈ Ýgreen_partÈ Ž‘kÆÜÝtoÈ Ý1.\n\n"Ž’ Í&«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±gŽ‘çû<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3˜Ç·‘ãÝ"WARNING!È ÝInÈ ÝColor::Ž‘kââset_green_part():\n"Ž’ØL,·‘ãÝ"gÈ ÝisÈ ÝlessÈ ÝthanÈ Ý0:È Ý"Ž‘oLh·‘ã±gŽ‘ -ç·‘ãÏend‘‚ØlŽ‘·þ·Ž¡‘2Ý"SettingÈ Ýgreen_partÈ Ž’šÿÉÝtoÈ Ý0.\n\n"Ž’Ð«;Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘[¡…«=‘DZgŽ‘çû«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ90.‘ üSet–ÕTblue“part.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏset‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘Z1¼«(ÂconstŽ‘*¢realŽ‘4ÝбbŽ‘9(z«);ŽŽŽŒ‹0W Šn ý‘ì·x«91›­3DLDFPRÃŽG’'ÜSET–ÕXBLUE“P–ÿJªAR“T˜«29Ž €n ý•@PÂ91.Ž©·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::‘Ïset‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘83ç«(ÂconstŽ‘*¢realŽ‘4ÝбbŽ‘9(z«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(±bŽ‘Â>‘Ç«1Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘43å·‘~<Ý"WARNING!È ÝInÈ ÝColor::Ž‘l~set_blue_part():\n"Ž’ÔBk·‘~<Ý"bÈ ÝisÈ ÝgreaterÈ ÝthanÈ Ý1Ž‘l~:È Ý"Ž’€B›·‘~<±bŽ‘ G"·Ž¡‘2Ïend‘‚ØlŽ‘H¸ß·‘ÇÝ"SettingÈ Ýblue_partÈ ÝtŽ‘kÆÜoÈ Ý1.\n\n"Ž’›)«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ«=‘Ç1Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±bŽ‘Â<‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3»g·‘¾Ý"WARNING!È ÝInÈ ÝColor::Ž‘l‚set_blue_part():\n"Ž’ÓQo·‘¾Ý"bÈ ÝisÈ ÝlessÈ ÝthanÈ Ý0:È Ý"Ž‘o‘¨·‘¾±bŽ‘ -V&·‘¾Ïend‘‚ØlŽ‘ý>·Ž¡‘2Ý"SettingÈ Ýblue_partÈ ÝtŽ’šÿÉoÈ Ý0.\n\n"Ž’ÊÆ«;Ž¡‘Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏblue‘‰ffŽ‘®p‘ÿ}'artŽ‘V"÷«=‘DZbŽ‘«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ92.‘ üSho®9w.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏshowŽ‘9ˆØ«(ÂstringŽ‘!%MÏtextŽ‘5D1«=‘ÇÝ""Ž‘ Íz«)‘UUÂconstŽ‘*¢«;ŽŸÂ93.ަ·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::‘ÏshowŽ‘‹«(ÂstringŽ‘!%MÏtextŽ‘2}«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïtextޑ䷑ÇÝ""Ž‘ Íz«)‘ÏtextŽ‘ä«=‘ÇÝ"Color:"Ž‘-Mh«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÏtextŽ‘åü·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"nameÈ Ý==È Ý"Ž‘:”z·‘ÇÏget‘‰ffŽ‘®nameŽ‘+ÀØ«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"use_nameÈ Ý==È Ý"Ž‘O”n·‘ÇÏget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘=}«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"red_partÈ Ý==È Ý"Ž‘O”n·‘ÇÏget‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘6FZ«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"green_partÈ Ý==È Ý"Ž‘Zh·‘ÇÏget‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘?ü`«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"blue_partÈ Ý==È Ý"Ž‘TÔk·‘ÇÏget‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘:}Ò«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gޤÂ94.‘ üReturning–ÕTelemen®9ts“and“information.Ž¡95.‘ üIs–ÕTon“free“store.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·ޤ ‘ -ÂinlineŽ‘)ŠIb•QÇo“olŽ‘C+¯Ïis‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ’…¦„«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘o‹®«;Ž¡‘ -·gŽŸÂ96.› üGet–WƒColor“parts.˜«[¬LDF‘T2002.09.24.«]Ž‘ZùjThese–Ɖfunctions“alw•¸ãa“ys–Ɖreturn“a“ÂrealŽ‘$b«;‘ÿ"the“argumen¸ãt“Ïde‘ÿ}'cimalŽŽ¡«can't–UUmak¸ãe“them“return“an“ÂunsignedŽ‘3ŒcshortŽ‘N±«.ŽŽŽŒ‹:\ Šn ý‘ì«30›­GET–ÕXRED“P–ÿJªAR“T’*Ý(3DLDFPRÃŽG˜·x«97Ž €n ý•@PÂ97.‘ üGet–ÕTred“part.Ž©·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·ޤ ‘ -ÂinlineŽ‘)ŠIrealŽ‘@=wÏget‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘s¼¹«(Âb•QÇo“olŽ‘¡fÏde‘ÿ}'cimalŽ‘>©Þ«=‘ÇÏfalseŽ‘v\«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïde‘ÿ}'cimalŽ‘"A`«)‘ÂreturnŽ‘(æºÏtruncŽ‘Aõ«((Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘%„f·‘8à«255ŽŽ‘8ã)–8à+“±:«5ŽŽ‘ ÿþ);Ž¡‘ÂelseŽ‘+ØáreturnŽ‘O¿›Ïr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘s !«;Ž¡‘ -·gŽŸÂ98.‘ üGet–ÕTgreen“part.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIrealŽ‘@=wÏget‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘}r¿«(Âb•QÇo“olŽ‘¡fÏde‘ÿ}'cimalŽ‘>©Þ«=‘ÇÏfalseŽ‘v\«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïde‘ÿ}'cimalŽ‘"A`«)‘ÂreturnŽ‘(æºÏtruncŽ‘Aõ«((Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘/:l·‘8à«255ŽŽ‘8ã)–8à+“±:«5ŽŽ‘ ÿþ);Ž¡‘ÂelseŽ‘+ØáreturnŽ‘O¿›Ïgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘|Á'«;Ž¡‘ -·gŽŸÂ99.‘ üGet–ÕTblue“part.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIrealŽ‘@=wÏget‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘wô1«(Âb•QÇo“olŽ‘¡fÏde‘ÿ}'cimalŽ‘>©Þ«=‘ÇÏfalseŽ‘v\«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïde‘ÿ}'cimalŽ‘"A`«)‘ÂreturnŽ‘(æºÏtruncŽ‘Aõ«((Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘)»Þ·‘8à«255ŽŽ‘8ã)–8à+“±:«5ŽŽ‘ ÿþ);Ž¡‘ÂelseŽ‘+ØáreturnŽ‘O¿›Ïblue‘‰ffŽ‘®p‘ÿ}'artŽ‘wB™«;Ž¡‘ -·gŽŸÂ100.‘ üGet–ÕTuse“name.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gÏget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘^Wm«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ101.ަ·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gColorŽ‘@ñ «::‘Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘;¶ -«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïuse‘‰ffŽ‘®nameŽ‘bi«;Ž¡‘ -·gŽŸÂ102.‘ üGet‘ÕTname.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIstringŽ‘J¯–Ïget‘‰ffŽ‘®nameŽ‘s©V«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼ÏnameŽ‘P¬À«;Ž¡‘ -·gŽŸÂ103.‘ üOutput‘ÕTopQÇerator.ަ·h›ª¨«Declare–UUnon-mem¸ãbGer“functions“for“ÂColorŽ‘#ä÷­103˜·i‘ÇŽ¡‘ -Ïostr–ÿ}'e“amŽ‘/«&‘8àÂopQÇeratorŽ‘-Ï•·Ž‘7Ï–«(Ïostr–ÿ}'e“amŽ‘%«&‘8à±oŽ‘Ä;‘ª¨ÂconstŽ‘ÕJColorŽ‘?z=«&Ž‘GA[±cŽ‘K•6«);ŽŸ ­This–ÕXco‘h«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÏnameŽ‘·‘ÇÝ""Ž‘ Íz«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘8(¢·‘rùÝ"ERROR!È ÝInÈ ÝColor::deŽ‘pr½fine_colors_mp():\n"Ž’ákâ·Ž¡‘2Ý"nameÈ ÝisÈ Ýempty.È ÝNotŽ’šÿÉÈ ÝdoingÈ ÝanythingÈ ÝandÈ Ž’ÿÝreturning.\n"Ž’KŒæ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘FlÀ·‘,"Ý"colorÈ Ý"Ž‘0Þ”·‘,"ÏnameŽ–H·‘,"Ý";"Ž‘ž£·‘,"Ý"È Ý"Ž›Þ ·‘,"ÏnameŽ“·‘,"Ý"È Ý=È Ý("Ž‘&^š·‘,"Ïget‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘6«d«(‘ª¨)–,"·“Ý",È Ý"Ž˜·Ž¡‘(Ïget‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘e5L«(›ª¨)–Ç·“Ý",È Ý"Ž‘Œ·“Ïget‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘:}Ò«(˜)“·“Ý");\n"Ž‘%”†·“Ï ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ107.– üInitialize‘ÃColors.“«[¬LDF‘T2002.09.25.«]Ž‘\x=This–E\function“presuppGoses“the“existence“of“ÂnamespaceŽŽ¡ColorsŽ‘ ØÚ«.ަ·h–ª¨«Declare‘UUÂColorŽ‘"úH«functions‘@­58“·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚv®9oidŽ‘BF²Ïinitialize‘‰ffŽ‘®c‘ÿ}'olorsŽ’†Í«(‘ª®);ŽŽŽŒ‹ Oï Šn ý‘ì«32–­INITIALIZE‘ÕXÂCOLORS’­3DLDFPRÃŽG“·x«108Ž €n ý•@PÂ108.Ž©·h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙColorŽ‘@M{«::‘Ïinitialize‘‰ffŽ‘®c‘ÿ}'olorsŽ‘DÀ«(‘ª®)Ž¡‘ -·fŽ¡‘ÂusingŽ‘2SˆnamespaceŽ‘k÷ColorsŽ’ŒÏÜ«;ަ‘ÂifŽ‘´ú«(·:Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘/@œ±:Ïis‘‰ffŽ‘®op‘ÿ}'enŽ‘ «(‘ª¨))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘8-·‘P„Ý"ERROR!È ÝInÈ ÝColor::inŽ‘pPHitialize_colors():\nŽ’ÙP "Ž’æfõ·Ž¡‘2Ý"out_streamÈ ÝisÈ ÝcloseŽ’šÿÉd!È ÝReturning.\n"Ž’÷·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ"%%%È ÝColorÈ ÝdefinitioŽ‘kÆÜns.\n\n"Ž’–M,«;Ž¡#ÂifŽ‘ Öo«0Ž‘$Öq±=·‘!t«[¬LDF‘T2002.09.25.«]Ž‘TK%These–vÌcolors“are“already“de ned“in“MET‘ÿ*ªAPOST‘vÄand“their“de nitions“areŽ¡‘(not–UUlikš¸ãely“to“c˜hange.‘qÇHo˜w˜ev˜er,“if“they“do,“I“can“commen˜t“these“function“calls“bac˜k“in.‘o·±=Ž¡‘Ïr–ÿ}'e“dŽ‘"s/±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïgr–ÿ}'e“enŽ‘+å±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘ÏblueŽ‘&by±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘ÏblackŽ‘+ Ö±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘ÏwhiteŽ‘,Á±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïb–ÿ}'ackgr“oundŽ‘Euø±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡#ÂendifŽŽ¡‘Ïyel‘‚ØlowŽ‘0k³±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘ÏcyanŽ‘)w‘±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘ÏmagentaŽ‘9Ò±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïor‘ÿ}'angeŽ‘2)±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘ÏvioletŽ‘,·±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘ÏpurpleŽ‘097±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïyel‘‚Ølow‘‰ffŽ‘®gr–ÿ}'e“enŽ‘Jhl±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïgr–ÿ}'e“en‘‰ffŽ‘®yel‘‚ØlowŽ‘J·–±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïblue‘‰ffŽ‘®violetŽ‘A„j±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïgr‘ÿ}'ayŽ‘'ªÿ±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïlight‘‰ffŽ‘®gr‘ÿ}'ayŽ‘>ܱ:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïviolet‘‰ffŽ‘®r–ÿ}'e“dŽ‘=b£±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘Ïdefault‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ‘fF!±:Ïde ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn«(‘ª¨);Ž¡‘±=·‘ÿý«[¬LDF‘T2002.09.25.«]Ž‘T7Curren¸ãtly‘ÿ*ª,–UUthis“function“doGes“nothing“if“I'm“using“all“of“the“colors.‘o·±=Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ"\n%%%È ÝEndÈ ÝofÈ ÝColorÈ Ž‘kÆÜÝdefinitions.\n\n"Ž’Å«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ109.– üNamespace‘ :Colors.“«Here–'(I‘'can“put“either“·h›ª¨«Ma‘Ž8jor“ÂColorsŽ‘(@­112˜·i“«or“·h˜«All“ÂColorsŽ‘(@­0˜·i“«in¸ãto“·h˜«DeclareŽ¡ÂnamespaceŽ‘9‡ÀColorsŽ‘^ ž­109‘ª¨·i«,›?&and–9›commen¸ãt“out“the“other,˜depGending“on“what“I‘9”w•¸ãan“t.‘h‰This›9›prev“en“ts˜toGo˜m“uc“hŽ¡unneeded–cošGde“from“b˜eing“pro˜cessed.‘[V·h›ª¨«All“ÂColorsŽ‘(*Þ­0˜·i“«is“vš¸ãery“long,‘xso“I‘ïneither“w˜an˜t“to“compile“it,‘xwrite“theŽ¡ÂexternŽ‘#ôí«declarations–,lfrom“it“to“Ècolors.h«,›4›nor“prin¸ãt“out“the“coGde“when“I‘,brun“Ècweave«,˜unless“I‘,breally“w•¸ãan“t‘,ltoŽ¡use‘UUit.‘qÇ[¬LDF‘T2002.09.25.«]ŽŽ¦·h–ª¨«Declare‘UUÂnamespaceŽ‘<øÏColorsŽ‘b­­109“·i‘ÇŽ¡‘ -h–ª¨«Ma‘Ž8jor‘UUÂColorsŽ›(n3­112“·i‘±=·“h“«All‘UUÂColorsŽ˜­0“·i‘ÿý±=ޤ ­This–ÕXco±;‘ª¨«173ŽŽ–ª«±;‘ª¨«255ŽŽ“±;‘ª¨«47ŽŽ‘ ªª);‘±=·‘ÿý«Orange.‘o·±=Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏor‘ÿ}'angeŽ’“ð”«(Ý"orange"Ž‘*†P±;‘ª¨«255ŽŽ–ª«±;‘ª¨«165ŽŽ“±;‘ª¨«0Ž‘ª©±;‘ª¨ÏtrueŽ‘o@«);‘±=·‘ÿý«Violet.‘o·±=Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏvioletޒޤ€«(Ý"violet"Ž‘*†P±;‘ª¨«238ŽŽ–ª«±;‘ª¨«130ŽŽ“±;‘ª¨«238ŽŽ“±;‘ª¨ÏtrueŽ‘o@«);Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏpurpleŽ’’&¢«(Ý"purple"Ž‘*†P±;‘ª¨«160ŽŽ–ª«±;‘ª¨«32ŽŽ‘ ªª±;‘ª¨«240ŽŽ“±;‘ª¨ÏtrueŽ‘o@«);Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏblue‘‰ffŽ‘®violetŽ’£qÕ«(Ý"blue_violet"Ž‘DÆA±;‘ª¨«138ŽŽ–ª«±;‘ª¨«43ŽŽ‘ ªª±;‘ª¨«226ŽŽ“);‘±=·‘ÿý«Green.‘o·±=Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏyel‘‚Ølow‘‰ffŽ‘®gr–ÿ}'e“enŽ’¬U׫(Ý"yellow_green"Ž‘J>±;‘ª¨«154ŽŽ–ª«±;‘ª¨«205ŽŽ“±;‘ª¨«50ŽŽ‘ ªª);Ž¡‘±=·‘ÿý«\Un•¸ãbun“t"–UUColors“(blacš¸ãks,“whites,“and“gra˜ys).‘o·±=Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏblackŽ’ŒûA«(Ý"black"Ž‘%FS±;‘ª¨«0Ž–ª©±;‘ª¨«0Ž“±;‘ª¨«0Ž“±;‘ª¨ÏtrueŽ‘o@«);Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏwhiteŽ’ï,«(Ý"white"Ž‘%FS±;‘ª¨«255ŽŽ–ª«±;‘ª¨«255ŽŽ“±;‘ª¨«255ŽŽ“±;‘ª¨ÏtrueŽ‘o@«);Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏgr‘ÿ}'ayŽ’‰˜j«(Ý"gray"Ž‘ V±;‘ª¨«192ŽŽ–ª«±;‘ª¨«192ŽŽ“±;‘ª¨«192ŽŽ“);Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏlight‘‰ffŽ‘®gr‘ÿ}'ayŽ’ŸîG«(Ý"light_gray"Ž‘?†D±;‘ª¨«211ŽŽ–ª«±;‘ª¨«211ŽŽ“±;‘ª¨«211ŽŽ“);Ž¡‘±=·‘ð6«Defaults.‘l…[¬LDF‘T2002.09.27.«]Ž‘SdøNote–EŽthat“Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘:Ái«,‘HµÏhelp‘‰ffŽ‘®c‘ÿ}'olorŽ‘2H·«and“Ïb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘PÏt«are“pGoin¸ãtersŽ¡‘(and–Óthat“Ïdefault‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ‘YEÅ«is“a“plain“ÂColorŽ‘Ïq«.‘ñ@It“can“bGe“used“to“access“the“original“bac¸ãkgroundŽ¡‘(color–UU(currenš¸ãtly“white),“if“the“user“pGoin˜ts“the“Ïb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘Pï«at“some“other“ÂColorŽ‘¤ó«.‘o·±=Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uímÏdefault‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ’È3Œ«(Ý"default_background"Ž‘i†,±;‘ª¨«255ŽŽ–ª«±;‘ª¨«255ŽŽ“±;‘ª¨«255ŽŽ“±;‘ª¨ÏtrueŽ‘o@«);Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uím·Ž‘zínÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ’µ0a«=‘Ç&Ž‘ -Ž6ÏblackŽ‘!œ -«;Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uím·Ž‘zínÏb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ’ÇøÞ«=‘Ç&Ž‘ -Ž6Ïdefault‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ‘\ÔU«;Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzColorŽ‘uím·Ž‘zínÏhelp‘‰ffŽ‘®c‘ÿ}'olorŽ’©nú«=‘Ç&Ž‘ -Ž6Ïgr–ÿ}'e“enŽ‘"sC«;‘±=·‘ÿý«LDF‘UU2002.10.26.‘qÇAdded.‘o·±=Ž¡‘=·‘7«[¬LDF‘T2002.09.25.«]Ž‘T«!!‘{uTO›XŽDO:‘XÏdefault‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ‘X÷=«is–Xa“con•¸ãv“enience,‘Y^in–Xcase“I˜cš¸ãhange“\bac˜kground"Ž¡‘(in–S8the“MET›ÿ*ªAPOST‘S7coGde.‘qChec¸ãk“MET˜APOST–S7došGcumen¸ãtation!!‘qI“b˜eliev¸ãe–S8it“has“something“similar.Ž¡‘(·±=ŽŽŽŒ‹"j‹ Šn ý‘ì«34›­INTERNAL–ÕX(WITH“INITIALIZA‘ÿJªTION)’Ð3DLDFPRÃŽG˜·x«112Ž €n ý•@P‘ -·gޤ ­This–ÕXco§«;Ž¡‘ÂexternŽ‘8ØColorŽ‘WÂË·Ž‘\ÂÌÏhelp‘‰ffŽ‘®c‘ÿ}'olorŽ’ˆ}@«;‘±=·‘ÿý«LDF‘UU2002.10.26.‘qÇAdded.‘o·±=Ž¡‘ÂexternŽ‘8ØColorŽ‘WÂË·Ž‘\ÂÌÏb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ’§$«;Ž¡‘ -·gޤ ­This–ÕXco‘«declaration‘@­110˜·iŽ¡«abGo•¸ãv“e.Ž¡‘ -Ý@Ž‘Æf«i–UUÈcolall.web“«(Commen¸ãted“out).ަÂ115.‘ üGlobal‘ÕTconstan®9ts.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.26.«]Ž‘Y;Added‘UUÏhelp‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘L®(«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Global‘UUconstan¸ãts‘@­19“·i‘Ç«+·ޤ ‘ -ÂnamespaceŽ‘C£{ColorsŽ‘gѪ·fŽ¡‘ÂexternŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò·hÂconstŽ‘*¢ColorŽ‘=Ï•·Ž‘BÏ–i‘UUÏdefault‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘Xo«(1Ž‘±;‘ª¨Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘9&ƒ«);ŽŽŽŒ‹#ƒ¸ Šn ý‘ì·x«115–­3DLDFPRÃŽG’ É%GLOBAL‘ÕXCONST‘ÿJªANTS“«35Ž €n ý•@P‘ÂexternŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò·hÂconstŽ‘*¢ColorŽ‘=Ï•·Ž‘BÏ–i‘UUÏhelp‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘L®(«(1Ž‘±;‘ª¨Ïhelp‘‰ffŽ‘®c‘ÿ}'olorŽ‘-e«);ޤ ‘±=·‘ÿý«LDF‘UU2002.10.26.‘qÇAdded.‘o·±=Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò·hÂconstŽ‘*¢ColorŽ‘=Ï•·Ž‘BÏ–i‘UUÏb–ÿ}'ackgr“ound‘‰ffŽ›®c“olor‘‰ffŽ˜ve“ctorŽ‘k8 «(1Ž‘±;‘ª¨Ïb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘Kï«);Ž¡‘ -·gŽ©Â116.ŽŸ·h‘ª¨ÂexternŽ‘%È~«global–UUconstan¸ãt“declarations‘@­116‘ª¨·i‘ÇŽ¡‘ -ÂnamespaceŽ‘C£{ColorsŽ‘gѪ·fŽ¡‘ÂexternŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò·hÂconstŽ‘*¢ColorŽ‘=Ï•·Ž‘BÏ–i‘UUÏdefault‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘Xo«;Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò·hÂconstŽ‘*¢ColorŽ‘=Ï•·Ž‘BÏ–i‘UUÏhelp‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘L®(«;‘±=·‘ÿý«LDF‘UU2002.10.26.‘qÇAdded.‘o·±=Ž¡‘ÂexternŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò·hÂconstŽ‘*¢ColorŽ‘=Ï•·Ž‘BÏ–i‘UUÏb–ÿ}'ackgr“ound‘‰ffŽ›®c“olor‘‰ffŽ˜ve“ctorŽ‘k8 «;Ž¡‘ -·gŽŸ ­This–ÕXcoÅH­56“·iŽ¡‘ -h–ª¨«Declare‘UUÂnamespaceŽ‘<øÏColorsŽ‘b­­109“·iŽ¡‘ -h–ª¨«De ne‘UUÂColorŽ‘"úH«functions‘@­59“·iŽ¡‘ -h›ª¨«De ne–UUnon-mem¸ãbGer“functions“for“ÂColorŽ‘#ä÷­104˜·iŽ¡‘ -h–ª¨«Global‘UUconstan¸ãts‘@­19“·iŽŽŽŒ‹$“ - Šn ý‘ì«36›­PUTTING–ÕXÂCOLOR“­TOGETHER’Þ¶X3DLDFPRÃŽG˜·x«119Ž €n ý•@PÂ119.‘ ü«This–`àis“written“to“Ècolors.h«.‘ KBUG‘`¢FIX:“The“preprošGcessor“\Âde neŽ‘H«"“command“m¸ãust“b˜e“here,‘‘Äotherwiseޤ it's–UUnot“written“to“the“header“ le.‘qÇUsing“\@±dŽ‘4r«"“abšGo•¸ãv“e–UUdo˜esn't“do“it.Ž©ëî·h‘ª¨Ýcolors.hŽ‘5°ù­119‘ª¨·i‘ÇŽ¡‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦ColorŽ‘>ÅH­56“·iŽ¡‘ -h‘ª¨ÂexternŽ‘%È~namespaceŽ‘_køColorsŽ’ƒš'«declaration‘@­110‘ª¨·iŽ¡‘ -h›ª¨«Declare–UUnon-mem¸ãbGer“functions“for“ÂColorŽ‘#ä÷­103˜·iŽ¡‘ -h‘ª¨ÂexternŽ‘%È~«global–UUconstan¸ãt“declarations‘@­116‘ª¨·iŽŸÂ120.– üT‘ÿ -«ransformations“(Ètransform.webÂ).ŽŸ&Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.11.12.«]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.Ž¡‘ -[¬LDF‘T2003.12.10.«]Ž‘YQ‘Put–ž«the“vš¸ãersion“con˜trol“iden˜ti ers“bac˜k“in˜to“m˜y“release“v˜ersions“for“3DLDF‘ž™1.1.4.‘MÊI'v˜eŽ¡already–"¯put“some“of“them“bacš¸ãk“in,‘,Ñno˜w“I'm“doing“the“rest“of“them.‘`åHo˜w˜ev˜er,‘,Ñthe“release“v˜ersions“are“no˜w“inŽ¡their–UUoš¸ãwn“R˜CS“repGository‘ÿ*ª.ŽŸŸüÈ„`ÕÁGŽŽ¦·h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚstringŽ‘Jn'Ïr‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(«=‘ÇÝ"$Id:È Ýtransfor.web,vŽ‘kÆÜÈ Ý1.3È Ý2003/12/10È Ý16:5Ž’ÔÆ 2:21È Ýlfinsto1È ÝExpÈ Ý$"Ž’>LÌ«;ŽŸÂ121.‘ üInclude‘ÕT les.ަ·h–ª¨«Include‘UU les‘@­11“·i‘Ç«+·Ž¡«#ÂincludeŽ‘'Ø~Ý"loader.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"pspglb.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"io.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"colors.h"ŽŽŸÂ122.› üT‘ÿ -«ransform–class“de nition.˜«The‘œÂT‘ÿ -«ransformŽ‘:¤µ«class–œhas“a“4–¿o·“«4–œtransformation“matrix“as“its“onlyŽ¡data–I—memš¸ãbGer“and“a“n˜um˜bGer“of“mem˜bGer“functions.‘mÝÂP•®9oin“tsŽ‘$‘a«,‘KðÂPicturesŽ‘-q9«,‘Kðand“ÏF‘ÿ;¼o‘ÿ}'cusesŽ‘)«con˜tain“ÂT‘ÿ -«ransformsŽ‘?ç«asŽ¡data‘UUmem¸ãbGers.Ž¡‘ -!!‘qÇRemem¸ãbGer–UUto“add“items“to“ÂopQÇeratorŽ‘.ì -«=Ž‘6³((‘ª¨)“if“if“I“add“them“to“the“class“de nition“here.ŽŸ&Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.04.«]Ž‘YŠÛRemo•¸ãv“ed‘×õÂfriendŽ‘%ÁO«declaration–×õfor“ÂF‘ÿ -«oQÇcusŽ‘ ÍA«.‘ù¦I'v¸ãe“added“Ïset‘‰ffŽ‘®elementŽ‘6xÌ«(›ª®)“and“Ïget‘‰ffŽ‘®elementŽ‘6û£«(˜),Ž¡whic¸ãh–UUare“used“in“the“ÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions,“so“the“latter“need“no“longer“bGe“a“ÂfriendŽ‘$¼«of“ÂT‘ÿ -«ransformŽ‘7ÈÒ«.ŽŸŸüÈ„`ÕÁGŽŽ¦‘ -ÂformatŽ‘3c(ÏT‘ÿ;¼r‘ÿ}'ansformŽ‘j|ÎintŽŽ¦·h–ª¨«De ne‘UUÂclassŽ‘5¦T‘ÿ -«ransformŽ‘Vé'­122“·i‘ÇŽ¡‘ -ÂclassŽ‘$àRT‘ÿ -«ransformŽ‘\©$·fŽ¡‘ÂfriendŽ‘5f¼classŽ‘PG P•®9oin“tŽ‘káU«;Ž¡‘ÂMatrixŽ‘;({ÏmatrixŽ‘Yh«;‘±=·‘EN«When–š¦I'vš¸ãe“got“things“w˜orking,‘«ûI‘š•can“try“to“optimize“use“of“storage“b˜y“notŽ¡‘(storing–dthe“parts“of“the“matrix“that“I‘d -don't“need.‘òThis“is“a“little“complicated,‘g¼bGecause“the“ro¸ãw“orŽ¡‘(column–UUwhicš¸ãh“isn't“needed“di ers“bGet˜w˜een“the“ane“and“p•Gersp“ectiv˜e‘UUtransformations.‘o·±=ަ‘ -ÂpublicŽ‘)=Ö«:‘·h–ª¨«Declare‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­124“·iŽ¡‘ -g«;ŽŸ ëî­This–ÕXcos~«(‘ª®);ޤ ­See–´?also“sections“126,–ºÝ128,“130,“132,“134,“136,“138,“140,“142,“145,“147,“150,“152,“155,“157,“158,“160,“166,“167,“168,“171,“173,“176,ŽŸ -‘178,–ÕX181,“and“187.Ž¡This–ÕXcos~«(ÂrealŽ‘³.±rŽ‘}B«);Ž¡Â127.ŽŸ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘?s‚«::‘ÂT‘ÿ -«ransformŽ‘5s«(ÂrealŽ‘³.±rŽ‘}B«)ަ‘ -·fަ‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)ަ‘ÂforŽ‘/艫(Âin®9tŽ‘¤÷±jޑӫ=‘Ç0Ž–Ç;‘ÿý±jŽ‘ wÙ<‘Ç«4Ž“;‘ÿý±jŽ‘ -0ÁŸÿ®+‘ÿ+ŽŽ‘÷á«)‘ÏmatrixŽ‘#?›«[±iŽ‘qô«][±jŽ‘°Ä«]–Ç=“±rŽ‘‘,«;ަ‘ -·gŽ¡Â128.› üConstructor–0&with“16“real“argumen®9ts.˜«[¬LDF‘T2002.09.06.«]Ž‘[µËAdded–‚êthis“constructor.‘ú‡This“con-ަstructor–UUmak¸ães“it“pšGossible“to“sp˜ecify“all“of“the“elemen¸ãts“of“ÏmatrixŽ‘!”ð«.ŽŸ·h–ª¨«Declare‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­124“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘>s~«(ÂrealŽ‘Í’Ïr0‘‰ffŽ‘®0Ž‘*ÉÚ±;‘ª¨ÂrealŽ‘x:Ïr0‘‰ffŽ‘®1Ž–,t‚±;‘ª¨ÂrealŽ‘x:Ïr0‘‰ffŽ‘®2Ž“±;‘ª¨ÂrealŽ‘x:Ïr0‘‰ffŽ‘®3Ž“±;‘ª¨ÂrealŽ‘x:Ïr1‘‰ffŽ‘®0Ž“±;‘ª¨ÂrealŽ‘x:Ïr1‘‰ffŽ‘®1Ž“±;‘ª¨ÂrealŽ‘x:Ïr1‘‰ffŽ‘®2Ž“±;‘ª¨ÂrealŽ‘x:Ïr1‘‰ffŽ‘®3Ž“±;‘ª¨ÂrealŽŽ¦‘Ïr2‘‰ffŽ‘®0Ž‘1üK±;‘ª¨ÂrealŽ‘]ÖÏr2‘‰ffŽ‘®1Ž–,Z±;‘ª¨ÂrealŽ‘]ÖÏr2‘‰ffŽ‘®2Ž“±;‘ª¨ÂrealŽ‘]ÖÏr2‘‰ffŽ‘®3Ž“±;‘ª¨ÂrealŽ‘]ÖÏr3‘‰ffŽ‘®0Ž“±;‘ª¨ÂrealŽ‘]ÖÏr3‘‰ffŽ‘®1Ž“±;‘ª¨ÂrealŽ‘]ÖÏr3‘‰ffŽ‘®2Ž“±;‘ª¨ÂrealŽ‘]ÖÏr3‘‰ffŽ‘®3Ž“«);ŽŽŽŒ‹&§± Šn ý‘ì«38‘­CONSTRšÃŽUCTOR–ÕXWITH“16“ÂREAL“­AR˜GUMENTS’ !3DLDFPR˜G‘·x«129Ž €n ý•@PÂ129.Ž©·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘?s‚«::‘ÂT‘ÿ -«ransformŽ‘5s«(ÂrealŽ‘UNÏr0‘‰ffŽ‘®0Ž‘*Q–±;‘ª¨ÂrealŽ‘ÿöÏr0‘‰ffŽ‘®1Ž–+ü>±;‘ª¨ÂrealŽ‘ÿöÏr0‘‰ffŽ‘®2Ž“±;‘ª¨ÂrealŽ‘ÿöÏr0‘‰ffŽ‘®3Ž“±;‘ª¨ÂrealŽ‘ÿöÏr1‘‰ffŽ‘®0Ž“±;‘ª¨ÂrealŽ‘ÿöÏr1‘‰ffŽ‘®1Ž“±;‘ª¨ÂrealŽ‘ÿöÏr1‘‰ffŽ‘®2Ž“±;‘ª¨ÂrealŽŽ¡‘2Ïr1‘‰ffŽ‘®3Ž‘EüM±;‘ª¨ÂrealŽ‘]ÖÏr2‘‰ffŽ‘®0Ž–,Z±;‘ª¨ÂrealŽ‘]ÖÏr2‘‰ffŽ‘®1Ž“±;‘ª¨ÂrealŽ‘]ÖÏr2‘‰ffŽ‘®2Ž“±;‘ª¨ÂrealŽ‘]ÖÏr2‘‰ffŽ‘®3Ž“±;‘ª¨ÂrealŽ‘]ÖÏr3‘‰ffŽ‘®0Ž“±;‘ª¨ÂrealŽ‘]ÖÏr3‘‰ffŽ‘®1Ž“±;‘ª¨ÂrealŽ‘]ÖÏr3‘‰ffŽ‘®2Ž“±;‘ª¨ÂrealŽ‘]ÖÏr3‘‰ffŽ‘®3Ž“«)Ž¡‘ -·fŽ¡‘ÏmatrixŽ‘2?«[0Ž–][0Ž“]–Ç=“Ïr0‘‰ffŽ‘®0Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[0Ž–][1Ž“]–Ç=“Ïr0‘‰ffŽ‘®1Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[0Ž–][2Ž“]–Ç=“Ïr0‘‰ffŽ‘®2Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[0Ž–][3Ž“]–Ç=“Ïr0‘‰ffŽ‘®3Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[1Ž–][0Ž“]–Ç=“Ïr1‘‰ffŽ‘®0Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[1Ž–][1Ž“]–Ç=“Ïr1‘‰ffŽ‘®1Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[1Ž–][2Ž“]–Ç=“Ïr1‘‰ffŽ‘®2Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[1Ž–][3Ž“]–Ç=“Ïr1‘‰ffŽ‘®3Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[2Ž–][0Ž“]–Ç=“Ïr2‘‰ffŽ‘®0Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[2Ž–][1Ž“]–Ç=“Ïr2‘‰ffŽ‘®1Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[2Ž–][2Ž“]–Ç=“Ïr2‘‰ffŽ‘®2Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[2Ž–][3Ž“]–Ç=“Ïr2‘‰ffŽ‘®3Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[3Ž–][0Ž“]–Ç=“Ïr3‘‰ffŽ‘®0Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[3Ž–][1Ž“]–Ç=“Ïr3‘‰ffŽ‘®1Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[3Ž–][2Ž“]–Ç=“Ïr3‘‰ffŽ‘®2Ž‘Ã`«;Ž¡‘ÏmatrixŽ‘2?«[3Ž–][3Ž“]–Ç=“Ïr3‘‰ffŽ‘®3Ž‘Ã`«;Ž¡‘ -·gŽŸÂ130.– üAssignmen®9t.“«Sets‘fÏmatrixŽ›%`g«to–fbGe“iden¸ãtical“to“the“ÏmatrixŽ˜«of“another“ÂT‘ÿ -«ransformŽ‘8ã«.–"û!!“Remem¸ãbGer‘ftoŽ¡add–UUitems“here“if“I“add“them“to“the“class“de nition.ަ·h–ª¨«Declare‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­124“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓopQÇeratorŽ‘m_ˆ«=Ž‘u&¦(ÂconstŽ‘*¢T‘ÿ -«ransformŽ‘Uót«&Ž‘]º’±tŽ‘aW«);ŽŸÂ131.ަ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ +cmmi10µ=°‘ÿý¬Needed–UUfor“"sstream"“bGelo¸ãw.‘o°µ=Ž¡¬#­endifŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­ifdefŽ‘áe´__GNUC__ŽŽ¡¬#­ifŽ‘ ´ø´HAVE_FLOAT_HŽŽ¡¬#­includeŽ‘'Ø~´Ž‘kžÌµ=°‘ÿý¬[²LDF‘T2002.12.13.¬]Ž‘T7Needed–UUfor“´FLT_MAXŽ‘(›¨¬.‘o°µ=Ž¡¬#­endifŽŽ¡¬#­endifŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­ifdefŽ‘áe´LDF_GCC_2_95Ž‘ngªµ=°‘ÿý¬F‘ÿ*ªor–UUstream“formatting.‘qÇ[²LDF‘T2003.08.14.¬]Ž‘U$©°µ=Ž¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­elseŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­endifŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­ifdefŽ‘áe´LDF_GCC_3_3ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­elseŽŽŽŽŒ‹ u Šn ý‘ì°x¬7–¯3DLDF-1.1.5.1’,$ôLIBRAR‘ÿJªY‘ÕXFILES“¬5Ž €n ý•@P#­ifdefŽ‘áe´LDF_GCC_2_95ŽŽ¤ ¬#­includeŽ‘'Ø~´ŽŽ¡¬#­endifŽŽ¡¬#­endifŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­ifdefŽ‘áe´__GNUC__ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­endifŽŽ¡¬#­ifdefŽ‘áe´__DECCXXŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­elifŽ‘,´HAVE_STDLIB_HŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­endifŽŽ©8.‘ ü®streambuf.h–K¬is“included“abGo•¸ãv“e,–ˆ†if‘K´LDF_GCC_2_95Ž‘Hp¬is›Kde ned,“instead˜of˜®ios¬,“whic¸ãh˜is˜included˜in˜allŽ¡other‘UUcases.‘qÇ[²LDF‘T2003.08.14.¬]ŽŽŸ°h–ª¨¬Include‘UU les‘@¯6“°i‘Ǭ+°Ž¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¦­9.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.18.¬]Ž‘X–yAdded–ã“\­usingŽ‘áÄnamespaceŽ‘W|±stdŽ‘e$Ь".‘KÜThis“is“needed“with“GCC›ãv3.3,‘úSbut“not“with“GCC˜2.95Ž¡or–UUthe“DEC“C++“compiler.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Include‘UU les‘@¯6“°i‘Ǭ+°ޤ ‘ +­usingŽ‘(S‡namespaceŽ‘a÷stdŽ‘qïà¬;ަ­10.‘ üPutting–ÕT®loader“­together.ަ11.‘ ü¬This–K is“what's“compiled.‘nZIt's“not“necessary“to“include“®stdlib.h“¬when“using“GCC›K 3.3,‘Mbut“I˜think“it'sŽ¡safer.‘qÇ[²LDF‘T2004.01.06.¬]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2004.01.06.¬]Ž‘X¡åAdded–îÿthis“section.‘O«It“simpli es“the“rules“for“building“the“executable“´3dldfŽ‘ ¤W¬if“®loader.cŽ¡¬is‘UUcompiled.ޤŸüÈ„`ÕÁGŽŽ¡#­ifdefŽ‘áe´__DECCXXŽŽ¤ ¬#­includeŽ‘'Ø~´ŽŽ¡¬#­elifŽ‘,´HAVE_STDLIB_HŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡¬#­endifŽŽ¡¬#­includeŽ‘'Ø~´ŽŽ¡‘ +­usingŽ‘(S‡namespaceŽ‘a÷stdŽ‘qïà¬;ŽŸ‘ +°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°iŽŽŽŒ‹©Ù Šn ý‘ì¬6›¯PUTTING–ÕX®LOADER“¯TOGETHER’éâÇ3DLDF-1.1.5.1˜°x¬12Ž €n ý•@P­12.‘ ü¬This–UUis“what's“written“to“the“®loader.h¬.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ +¬[²LDF‘T2004.01.06.¬]Ž‘Y;Added–UUthis“section.ޤŸüÈ„`ÕÁGŽŽ¡°h‘ª¨´loader.hŽ‘5°ù¯12‘ª¨°i‘Çަ‘ +h–ª¨¬Include‘UU les‘@¯6“°iŽŸ­13.– üGlobal‘ÕTitems“(®pspglb.web­).‘$I÷¬Tš¸ãypGedefs,–UUglobal“v‘ÿqÇariables“and“constan˜ts,“and“some“non-classަfunctions.‘qÇ(®pspglb.web¬.)ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2003.11.12.¬]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofަ3DLDF–UU1.1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.ަ‘ +[²LDF‘T2003.12.10.¬]Ž‘YQ‘Put–ž«the“vš¸ãersion“con˜trol“iden˜ti ers“bac˜k“in˜to“m˜y“release“v˜ersions“for“3DLDF‘ž™1.1.4.‘MÊI'v˜eަalready–"¯put“some“of“them“bacš¸ãk“in,‘,Ñno˜w“I'm“doing“the“rest“of“them.‘`åHo˜w˜ev˜er,‘,Ñthe“release“v˜ersions“are“no˜w“inަtheir–UUoš¸ãwn“R˜CS“repGository‘ÿ*ª.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘Ǭ+°ަ‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´pspglb.web,v® ´1Ž‘kÆÜ.14® ´2004/01/16® ´16:30Ž’ÔÆ :41® ´lfinsto1® ´Exp® ´$"Ž’9 Ϭ;ŽŸ­14.‘ üInclude‘ÕT les.Ž¡°h–ª¨¬Include‘UU les‘@¯6“°i‘Ǭ+°ަ¬#­includeŽ‘'Ø~´"loader.h"ŽŽ¦¬#­ifdefŽ‘áe´__DECCXXŽŽ¦¬#­includeŽ‘'Ø~´ŽŽ¦¬#­elseŽŽ¦¬#­ifdefŽ‘áe´LDF_GCC_3_3ŽŽ¦¬#­includeŽ‘'Ø~´ŽŽ¦¬#­elseŽŽ¦¬#­ifdefŽ‘áe´LDF_GCC_2_95ŽŽ¦¬#­ifŽ‘ ´ø´HAVE_LIMITS_HŽŽ¦¬#­includeŽ‘'Ø~´ŽŽ¦¬#­endifŽŽ¦¬#­endifŽŽ¦¬#­endifŽŽ¦¬#­endifŽŽ¦¬#­includeŽ‘'Ø~´ŽŽŸ­15.– üT®9ypQÇe‘¸Ãde nitions.“¬[²LDF‘T2002.10.15.¬]Ž‘[MúCurrenš¸ãtly‘ÿ*ª,‘LŠall– oating“pGoin˜t“v‘ÿqÇariables“are“declared“as“­realsŽ‘.¬.ަI'vš¸ãe–ßde ned“­realŽ‘Ù¬in“order“to“mak˜e“it“easy“to“switc˜h“bGet˜w˜een“using“± o‘ÿ}'atsŽ‘ ð¬and“±doublesŽ‘(ݬsimply“b˜y“c˜hangingަthe–UUv‘ÿqÇalue“of“the“#­ifŽ‘ ´ø¬expression.ަ‘ +I‘oÁtry–oÈto“a•¸ãv“oid–oÈusing“preprošGcessor“commands“(see“In¸ãtro˜duction),‘vdbut“this“is“one“of“the“cases“where“there'sަno–»bšGetter“alternativ¸ãe“to“using“the“prepro˜cessor“(I‘º©don't“consider“commenš¸ãting“out“the“un˜w˜an˜ted“v˜ersionަpreferable–UUto“using“the“preproGcessor).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.04.10.¬]Ž‘Y;Added–UUformatting“commands.ަ‘ +[²LDF‘T2002.04.10.¬]Ž‘Y;Added–UUdeclaration“of“­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘1@¬.ަ‘ +[²LDF‘T2002.12.11.¬]Ž‘ZIAdded–Îcthe“macros“´LDF_REAL_FLOATŽ‘S£¬and“´LDF_REAL_DOUBLEŽ‘Tž¬.‘ÜñThey're“needed“bGelo¸ãw,ަwhere‘UU´MAX_REALŽ‘10ú¬and‘UU´INVALID_REALŽ‘F0î¬are–UUdeclared“in“the“GNU/Linš¸ãux“v˜ersion“(using“GCC).ަ‘ +[²LDF‘T2003.06.03.¬]Ž‘Y;Added‘UU±r–ÿ}'e“al‘‰ffŽ‘®shortŽ‘-Ȭ¬.‘qÇIt's–UUthe“return“t¸ãypGe“of“­PlaneŽ‘!6¼¬::‘±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½¬(‘ª®).ŽŽŽŒ‹±E Šn ý‘ì°x¬15–¯3DLDF-1.1.5.1’5=TYPE‘ÕXDEFINITIONS“¬7Ž €n ý•@P‘ +[²LDF‘T2003.12.30.¬]Ž‘WëÉNo¸ãw–8ãusing“#“­de neŽ‘"ºG¬instead“of“@µdŽ‘mU¬for“the“de nitions“of“´LDF_REAL_FLOATŽ‘Nx¬and“´LDF_REAL_DOUBLEŽ‘Q¬.Ÿ€„ +ޤ If–F<@µdŽ‘ z®¬is“used,›‚vthe“de nitions“are“only“written“to“®pspglb.c¬.‘D|Using“#“­de neŽ‘"޽¬,˜and“writing“°h‘ª¨¬T¸ãypGe“de ni-Ž¡tions‘@¯15‘ª¨°i–UU¬to“®pspglb.h“¬makš¸ães“the“de nitions“a˜v‘ÿqÇailable“to“the“ les“that“include“®pspglb.h¬.ޤŸüÈ„`ÕÁGŽŽ¡‘ +­formatŽ‘3c(±r–ÿ}'e“alŽ‘L¹â o‘ÿ}'atŽŽ¤ ‘ +­formatŽ‘3c(±r–ÿ}'e“al‘‰ffŽ‘®p“airŽ‘aq…r–ÿ}'e“alŽŽ¡‘ +­formatŽ‘3c(±b–ÿ}'o“ol‘‰ffŽ‘®p“airŽ‘bV€r–ÿ}'e“al‘‰ffŽ‘®p“airŽŽ¡‘ +­formatŽ‘3c(±r–ÿ}'e“al‘‰ffŽ‘®p“airŽ‘aq…r–ÿ}'e“al‘‰ffŽ‘®shortŽŽ¡‘ +­formatŽ‘3c(±MatrixŽ‘Z intŽŽ©°h–ª¨¬T¸ãypGe‘UUde nitions‘@¯15“°i‘ÇŽ¡¬#­de neŽ‘!Ö´LDF_REAL_FLOATŽ‘sùi¬1ŽŽ¡#­de neŽ‘!Ö´LDF_REAL_DOUBLEŽ‘y9f¬0ŽŽ¡#­ifŽ‘ ´ø´LDF_REAL_FLOATŽŽ¡‘ +­t®9ypQÇedefŽ‘4_š oatŽ‘N{©realŽ‘aÙ‚¬;Ž¡#­elifŽ‘,´LDF_REAL_DOUBLEŽŽ¡‘ +­t®9ypQÇedefŽ‘4_šdoubleŽ‘Y©àrealŽ‘m¹¬;Ž¡#­elseŽ‘&Øàµ=°‘ÿý¬Default.‘qÇLDF‘UU2003.12.17.‘o°µ=Ž¡‘ +­t®9ypQÇedefŽ‘4_š oatŽ‘N{©realŽ‘aÙ‚¬;Ž¡#­endifŽŽ¡‘ +t®9ypQÇedefŽ‘4_šrealŽ‘KÈMatrixŽ‘n ›¬[4Ž–][4Ž“];Ž¡‘ +­t®9ypQÇedefŽ‘4_špairŽ‘HÛ«°h­realŽ‘]Ùµ;‘ª¨­realŽ‘°i‘UU­realu½‰™šs4Ž‘ÔwpairŽ‘/p¬;Ž¡‘ +­t®9ypQÇedefŽ‘4_špairŽ‘HÛ«°h­realŽ‘]Ùµ;‘ª¨­signedŽ‘%žshortŽ‘?ì°i‘UU­realu½‰™šs4Ž‘ÔwshortŽ‘5i¾¬;Ž¡‘ +­t®9ypQÇedefŽ‘4_špairŽ‘HÛ«°h­b•QÇo“olŽ‘Lµ;‘ª¨­b•QÇo“olŽ‘ö¹°i‘UU­b•QÇo“olu½‰™šs4Ž‘ÔwpairŽ‘2^¹¬;Ž¡‘ +­t®9ypQÇedefŽ‘4_špairŽ‘HÛ«°h­b•QÇo“olŽ‘Lµ;‘ª¨­realŽ‘°i‘UU­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘1@¬;ޤ ¯See–ÕXalso“sections“312,“313,“315,“and“317.Ž¡This–ÕXco‘Ǭ(‘ª¨).ަThe–UUv›ÿqÇalue“of“´MAX_REAL_SQRTŽ‘Kpë¬is“set“after“this.‘qÇTheir“v˜alues“should“nevš¸ãer“c˜hange“after“this!ަ‘ +´MAX_REAL_SQRTŽ‘R—¬m¸ãust–UUbšGe“initialized“here,“b˜ecause“it's“used“in“­P•®9oin“tŽ‘::‘±magnitudeŽ‘/=v¬(‘ª®).‘qÇ[²LDF‘T2003.12.29.¬]ŽŽ¤ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Global‘UUv‘ÿqÇariables‘@¯18“°i‘Ǭ+°ަ¬#­ifdefŽ‘áe´__DECCXXŽŽ¦‘ +­n®9umericu½‰™šs4Ž‘ÔwlimitsŽ‘Sï °h­realŽ‘]Ù°i‘UU±r–ÿ}'e“al‘‰ffŽ‘®limitsŽ‘0x¬;ަ‘ +­externŽ‘.×constŽ‘LHyrealŽ‘bû§´INVALID_REALŽ’¥I¬=‘DZr–ÿ}'e“al‘‰ffŽ‘®limitsŽ‘/‡;µ:±maxŽ‘¤›¬(‘ª¨);ަ#­elseŽŽ¦¬#­ifŽ‘ ´ø´LDF_REAL_DOUBLEŽŽ¦‘ +­externŽ‘.×constŽ‘LHyrealŽ‘bû§´INVALID_REALŽ’¥I¬=‘Ç´DBL_MAXŽ‘( k¬;ަ#­elseŽ‘&Øàµ=°‘ÿý´LDF_REAL_FLOATŽ‘O;¬,–UUor“not“spGeci ed.‘qÇLDF“2003.12.08.‘o°µ=ަ‘ +­externŽ‘.×constŽ‘LHyrealŽ‘bû§´INVALID_REALŽ’¥I¬=‘Ç´FLT_MAXŽ‘( k¬;ަ#­endifŽŽ¦¬#­endifŽŽ¦‘ +realŽ‘ ³/´MAX_REALŽ‘N—¬=‘Ç0Ž‘Ç;ަ‘ +­realŽ‘ ³/´MAX_REAL_SQRTŽ‘h@ˆ¬=‘Ç0Ž‘Ç;ŽŸ­20.‘ ü¬[²LDF‘T2003.08.14.¬]Ž‘Zùì´VERBOSE_GLOBALŽ’¨Ç5¬is‘Ç ±falseŽ‘=Z¬bš¸ãy–Ç default.‘ÆêIt“is“set“to“±trueŽ‘R®¬b˜y“the“command“line“optionަ\®--verbose¬".‘qÇIf‘UU´VERBOSE_GLOBALŽ‘P°è¬is‘UU±trueŽ›í¬,–UUthe“loGcal“±verb‘ÿ}'oseŽ‘'<¬v‘ÿqÇariables“in“functions“are“set“to“±trueŽ˜¬.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2003.08.14.¬]Ž‘Y;Added‘UU´VERBOSE_GLOBALŽ‘P°è¬and‘UU´SILENT_GLOBALŽ‘H–¬.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Global‘UUv‘ÿqÇariables‘@¯18“°i‘Ǭ+°ަ‘ +­b•QÇo“olŽ‘#¡g´VERBOSE_GLOBALŽ‘pn½¬=‘DZfalseŽ‘v\¬;ަ‘ +­b•QÇo“olŽ‘#¡g´SILENT_GLOBALŽ‘k.À¬=‘DZfalseŽ‘v\¬;ŽŽŽŒ‹ ÊŠ Šn ý‘ì°x¬21–¯3DLDF-1.1.5.1’É'FÃŽOR‘ÕXCOMPILA‘ÿJªTION“¬9Ž €n ý•@P­21.Ž©°h›ª¨¬Declarations–UUfor“the“header“ le‘@¯21˜°i‘Çޤ ‘ +­externŽ‘.×b•QÇo“olŽ‘G¿=´VERBOSE_GLOBALŽ’‘Å{¬;Ž¡‘ +­externŽ‘.×b•QÇo“olŽ‘G¿=´SILENT_GLOBALŽ’Œ…~¬;Ž¡‘ +­externŽ‘.×constŽ‘LHyb•QÇo“olŽ‘eéß±ldf‘‰ffŽ›®r–ÿ}'e“al‘‰ffŽ˜ o“atŽ’›Ö¦¬;Ž¡‘ +­externŽ‘.×constŽ‘LHyb•QÇo“olŽ‘eéß±ldf‘‰ffŽ›®r–ÿ}'e“al‘‰ffŽ˜doubleŽ’¤¬;Ž¡‘ +­externŽ‘.×realŽ‘DÑ´MAX_REALŽ‘oWU¬;Ž¡‘ +­externŽ‘.×realŽ‘DÑ´MAX_REAL_SQRTŽ’‰—F¬;ޤ ¯See–ÕXalso“sections“23,“26,“29,“235,“237,“303,“320,“631,“655,“and“692.Ž¡This–ÕXco le.‘ áThis“meanš¸ãt“that“eac˜h“compilation“unit“that“loaded“®pspglb.h“¬had“its“o˜wn“v˜ersion“of“´PIŽ‘+ ¬,Ž¡´INVALID_REALŽ‘?†D¬,‘¹ketc.‘aýI‘¥Rdidn't–¥gknoš¸ãw“that“±c‘ÿ}'onstsŽ‘"ò:¬had“in˜ternal“link‘ÿqÇage“b˜y“default“and“that“I‘¥Rcould“mak˜e“theirŽ¡link‘ÿqÇage–ÿ external“b¸ãy“using“­externŽ‘(Æ—¬in“the“declaration“with“the“initialization,‘)yand“put“a“second“declaration,Ž¡also–UUwith“­externŽ‘$Ö¬,“in“the“header“ le.‘qÇThis“is“what“I'vš¸ãe“done“no˜w.Ž¡‘ +[²LDF‘T2003.06.03.¬]Ž‘Y;Added‘UU´INVALID_REAL_SHORTŽ‘b[‡¬.ަŸüÈ„`ÕÁGŽŽŸ­28.‘ üF‘ÿ +«or‘ÕTcompilation.ަ°h–ª¨¬Global‘UUconstan¸ãts‘@¯22“°i‘Ǭ+°Ž¡‘ +­externŽ‘.×constŽ‘LHyrealŽ‘bû§´PIŽ‘pÉ!¬=‘Ç4µ:¬0ŽŽ‘ǰ‘8à±atanŽ‘ªÀ¬(1µ:¬0ŽŽ‘ Ç);Ž¡‘ +­externŽ‘.×constŽ‘LHyrealu½‰™šs4Ž‘ÔwpairŽ‘{¸ú´INVALID_REAL_PAIRŽ’Õ/¬(´INVALID_REALŽ‘?†Dµ;‘ª¨´INVALID_REALŽ‘A0ì¬);Ž¡‘ +­externŽ‘.×constŽ‘LHyrealu½‰™šs4Ž‘ÔwshortŽ’²7´INVALID_REAL_SHORTŽ’à¸i¬(´INVALID_REALŽ‘?†Dµ;‘ª¨¬0Ž‘ª©);ŽŽŽŒ‹ ëÑ Šn ý‘ì¬12›¯FÃŽOR–ÕXTHE“HEADER“FILE’þŸ 3DLDF-1.1.5.1˜°x¬29Ž €n ý•@P­29.‘ üF‘ÿ +«or–ÕTthe“header“ le.Ž©°h›ª¨¬Declarations–UUfor“the“header“ le‘@¯21˜°i‘Ǭ+°ޤ ‘ +­externŽ‘.×constŽ‘LHyrealŽ‘bû§´PIŽ‘n ¬;Ž¡‘ +­externŽ‘.×constŽ‘LHyrealŽ‘bû§´INVALID_REALŽ’¢ë¬;Ž¡‘ +­externŽ‘.×constŽ‘LHyrealu½‰™šs4Ž‘ÔwpairŽ‘{¸ú´INVALID_REAL_PAIRŽ’Õ/¬;Ž¡‘ +­externŽ‘.×constŽ‘LHyrealu½‰™šs4Ž‘ÔwshortŽ’²7´INVALID_REAL_SHORTŽ’à¸i¬;ޤ­30.‘ üUtilit®9y‘ÕTfunctions.Ž¡31.› üSolv®9e–´ùquadratic“equation.˜¬[²LDF‘T2002.09.03.¬]Ž‘ZlTO‘9+DO:–93Ma¸ãybGe“add“functions“for“solving“cubic“andޤ quartic–UUequations,“if“this“is“practicable.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.1.¬]Ž‘Th=Changed–UUreturn“tš¸ãypGe“from“­pairŽ‘Ñf°h­realŽ‘]Ùµ;‘ª¨­realŽ‘°i“¬to“­realu½‰™šs4Ž‘ÔwpairŽ‘/p¬,“whic˜h“is“equiv‘ÿqÇalen˜t.ަŸüÈ„`ÕÁGŽŽ¦°h›ª¨¬Declare–UUutilit¸ãy“functions‘@¯24˜°i‘Ǭ+°Ž¡‘ +­realu½‰™šs4Ž‘ÔwpairŽ‘9p‚±solve‘‰ffŽ‘®quadr‘ÿ}'aticŽ‘{%<¬(­realŽ‘³.µaŽ‘ü^;‘ª¨­realŽ‘]ÖµbŽ‘¨€;‘ª¨­realŽ‘]ÖµcŽ‘±±¬);ŽŽŽŒ‹ û Šn ý‘ì°x¬32‘¯3DLDF-1.1.5.1’ßSOL‘ÿ8VE–ÕXQUADRA›ÿJªTIC“EQUA˜TION‘¬13Ž €n ý•@P­32.Ž©°h›ª¨¬De ne–UUutilit¸ãy“functions‘@¯25˜°i‘Ǭ+°ޤ ‘ +­realu½‰™šs4Ž‘ÔwpairŽ‘9p‚±solve‘‰ffŽ‘®quadr‘ÿ}'aticŽ‘{%<¬(­realŽ‘³.µaŽ‘ü^;‘ª¨­realŽ‘]ÖµbŽ‘¨€;‘ª¨­realŽ‘]ÖµcŽ‘±±¬)Ž¡‘ +°fŽ¡‘­realu½‰™šs4Ž‘ÔwpairŽ‘CpƒµpŽ‘Hxƒ¬;ަ‘­tryŽ‘)3°fŽ¡‘µpŽ‘#:± rstŽ‘|¬=‘Ç(°Ž‘ǵbŽ‘J¨¬+‘8à±sqrtŽ‘èÙ¬((µbŽ–ƒŠ°‘8àµbŽ“¬)–8à°“¬(4Ž›8á°“µaŽ‘ ºð°“µcŽ‘Œ»¬)))µ=¬(2Ž˜°“µaŽ‘‚¬);Ž¡‘°gަ‘­catc®9hŽ‘.í׬(–ª¨µ:“:“:Ž‘ÿ÷¬)Ž¡‘°fŽ¡‘µpŽ‘#:± rstŽ‘|¬=‘Ç´INVALID_REALŽ‘BM\¬;Ž¡‘°gަ‘­tryŽ‘)3°fŽ¡‘µpŽ‘#:±se–ÿ}'c“ondŽ‘ n߬=‘Ç(°Ž‘ǵbŽ‘J¨°‘8à±sqrtŽ‘èÙ¬((µbŽ–ƒŠ°‘8àµbŽ“¬)–8à°“¬(4Ž›8á°“µaŽ‘ ºð°“µcŽ‘Œ»¬)))µ=¬(2Ž˜°“µaŽ‘‚¬);Ž¡‘°gަ‘­catc®9hŽ‘.í׬(–ª¨µ:“:“:Ž‘ÿ÷¬)Ž¡‘°fŽ¡‘µpŽ‘#:±se–ÿ}'c“ondŽ‘ n߬=‘Ç´INVALID_REALŽ‘BM\¬;Ž¡‘°gަ‘­returnŽ‘7æ¼µpŽ‘<;Ž¡‘ +°gŽŸ­33.‘ üSystem‘ÕTinformation.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.12.29.¬]Ž‘Y;Added–UUthis“section.ަŸüÈ„`ÕÁGŽŽŸ­34.‘ üDeclare–ÕTnamespace“System.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.12.29.¬]Ž‘Y;Added–UUthis“section.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­namespaceŽ‘<øÏSystemŽ‘f¯34“°i‘ÇŽ¡‘ +­namespaceŽ‘C£{SystemŽ‘kÞ°fŽ¡‘h–ª¨¬Declare‘UU­SystemŽ‘+ô¬functions‘@¯36“°iŽ¡‘ +gޤ ¯See–ÕXalso“section“65.Ž¡This–ÕXco¬;Ž¡‘ +­structŽ‘+Ÿøb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘x‘Y¬;Ž¡‘ +­classŽ‘$àRCircleŽ‘CC~¬;Ž¡‘ +­classŽ‘$àREllipseŽ‘FÉ+¬;Ž¡‘ +­structŽ‘+ŸøF‘ÿ +«oQÇcusŽ‘H•D¬;Ž¡‘ +­structŽ‘+ŸøLineŽ‘Aø{¬;Ž¡‘ +­classŽ‘$àRP®9athŽ‘=q¶¬;Ž¡‘ +­classŽ‘$àRPictureŽ‘J|_¬;Ž¡‘ +­structŽ‘+ŸøPlaneŽ‘H[¬;Ž¡‘ +­classŽ‘$àRP•®9oin“tŽ‘@zš¬;ŽŸ ¯This–ÕXcoÝÑ´PIŽ‘L«K¬=‘Ç´__CXXL_PIŽ‘2e¬;Ž¡#­endifŽŽ¡¬#­endifŽŽ¦‘ +°h›ª¨¬Declare–UUutilit¸ãy“functions‘@¯24˜°iŽ¡‘ +h–ª¨¬F‘ÿ*ªorw¸ãard‘UUdeclarations‘@¯49“°iŽ¡‘ +h–ª¨¬Declare‘UU­SystemŽ‘+ô¬functions‘@¯36“°iŽŸ­53.‘ üDynamic–ÕTallošQÇcation“for“Shap˜es.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.12.29.¬]Ž‘Y;Added–UUthis“template“function.Ž¡‘ +[²LDF‘T2004.1.2.¬]Ž‘OÈ?Mo•¸ãv“ed–UUthe“coGde“in“this“ le“from“®pspglb.web“¬to“®creatnew.web¬.ަŸüÈ„`ÕÁGŽŽ¦°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘Ǭ+°Ž¡‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´creatnew.web,vŽ‘kÆÜ® ´1.4® ´2004/01/12® ´21:2Ž’ÔÆ 7:44® ´lfinsto1® ´Exp® ´$"Ž’>L̬;ŽŸ­54.‘ üInclude‘ÕT les.ަ°h–ª¨¬Include‘UU les‘@¯6“°i‘Ǭ+°Ž¡¬#­includeŽ‘'Ø~´"loader.h"ŽŽ¡¬#­includeŽ‘'Ø~´"pspglb.h"ŽŽ¤­55.‘ üDynamic–ÕTallošQÇcation“for“Shap˜es.Ž¡56.‘ üP•®9oin“ter‘ÕTargumen“t.ަ°h–ª¨¬Declare‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘2å¬(‘ª®)‘@¯56“°i‘ÇŽŸ ‘ +­templateŽ‘6Ñ_°h­classŽ‘àQµCŽ‘"½°i‘UUµCŽ‘ 2!°Ž‘2"±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘?Áæ¬(­constŽ‘*¢µCŽ‘&n°Ž‘+o±ar‘ÿ}'gŽ‘9×i¬);ŽŸ ¯See–ÕXalso“section“58.ŽŽŽŒ‹(5 Šn ý‘ì¬18–¯POINTER‘ÕXARÃŽGUMENT’ÿ‚3DLDF-1.1.5.1“°x¬57Ž €n ý•@P­57.Ž©°h–ª¨¬De ne‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘2å¬(‘ª®)‘@¯57“°i‘Çޤ ‘ +­templateŽ‘6Ñ_°h­classŽ‘àQµCŽ‘"½°i‘UUµCŽ‘ 2!°Ž‘2"±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘?Áæ¬(­constŽ‘*¢µCŽ‘&n°Ž‘+o±ar‘ÿ}'gŽ‘9×i¬)Ž¡‘ +°fŽ¡‘µCŽ‘®°‘8à±objŽ‘¼F¬=‘Ç­newŽ‘zG¬(µCŽ‘Ü̬);Ž¡‘±objŽ‘ ¼PŸµ~ŽŽ‘&¼Q±set‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘n(¬(‘ª¨);Ž¡‘­ifŽ‘´ú¬(±ar‘ÿ}'gŽ‘—°6¬=‘Ç0Ž–Ç)‘°Ž‘ +±objŽ‘ƒg¬=‘Ç°Ž“±ar‘ÿ}'gŽ‘—¬;Ž¡‘­returnŽ‘7æ¼±objŽ‘F£ +¬;Ž¡‘ +°gޤ ¯See–ÕXalso“section“59.Ž¡This–ÕXcoL̬;ŽŸ­64.‘ üInclude‘ÕT les.ަ°h–ª¨¬Include‘UU les‘@¯6“°i‘Ǭ+°Ž¡¬#­includeŽ‘'Ø~´"loader.h"ŽŽ¡¬#­includeŽ‘'Ø~´"pspglb.h"ŽŽŸ­65.‘ üDeclare–ÕTnamespace“System.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2004.1.2.¬]Ž‘OÈ?Added–UUthis“section.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­namespaceŽ‘<øÏSystemŽ‘f¯34“°i‘Ǭ+°Ž¡‘ +­namespaceŽ‘C£{SystemŽ‘kÞ°fŽ¡‘h–ª¨¬Declare‘UU­SystemŽ‘+ô¬functions‘@¯36“°iŽ¡‘ +gŽŸ­66.› üGet–Ôåsecond“largest.˜¬This–3function“calculates“the“second-largest“­realŽ‘Äù¬v‘ÿqÇalue.‘ xIt“should“bGe“calledŽ¡using‘ê5­ oatŽ››$¬or‘ê5­doubleŽ‘)É[¬as–ê5a“parameter,–me.g.,“±get‘‰ffŽ›®se–ÿ}'c“ond‘‰ffŽ˜lar“gestŽ‘Ui4µ<‘ê5­ oatŽ˜µ>–ê5¬(´FLT_MAXŽ‘%FS¬)“or“±get‘‰ffŽ›®se–ÿ}'c“ond‘‰ffŽ˜lar“gestŽŽ¡µ<‘Éž­doubleŽ‘+ˆ-µ>–Éž¬(´DBL_MAXŽ‘%FS¬).‘΢´FLT_MAXŽ‘2Þ“¬or“´DBL_MAXŽ‘.Ù¬mš¸ãust“bGe“passed“as“an“argumen˜t.‘΢On“systems“with“theŽ¡­n®9umericu½‰™šs4Ž‘ÔwlimitsŽ‘MDa¬template,‘UU±r–ÿ}'e“al‘‰ffŽ‘®limitsŽ‘0xµ:±maxŽ‘¤›¬(‘ª¨)–UUcould“bGe“used“instead.‘qÇ[²LDF‘T2003.12.29.¬]ŽŽ¡‘ +±get‘‰ffŽ›®se–ÿ}'c“ond‘‰ffŽ˜lar“gestŽ‘Wo“¬(‘ª®)–ñ|determines“whicš¸ãh“unsigned“in˜tegral“t˜ypGe“has“the“same“size“as“the“template“parameterŽ¡±R–ÿ}'e“alŽ‘N¬.‘=)The–CËlošGcally“declared“t¸ãyp˜e“±i‘‰ffŽ‘®typ‘ÿ}'eŽ‘!ꚬis“de ned“to“b˜e“a“synonš¸ãym“for“this“t˜ypGe“using“­t®9ypQÇedefŽ‘+N¬.‘=)±ipŽ‘Òæ¬is“aŽ¡pGoinš¸ãter–ûhto“±i‘‰ffŽ‘®typ‘ÿ}'eŽ‘^l¬.‘cÿIt“is“assigned“a“v‘ÿqÇalue“b˜y“casting“a“pGoin˜ter“to“´MAX_VALŽ‘-=#¬to“the“t˜ypšGe“of“±ipŽ‘ MZ¬,–$ìi.e.,“a‘ûhp˜oin¸ãterŽ¡to‘š±i‘‰ffŽ‘®typ‘ÿ}'eŽ‘ý¬.‘@Then,›«D1–šis“subtracted“from“°Ž‘š±ipŽ‘ì¬,˜and“the“±ipŽ‘†¬is“cast“bacš¸ãk“to“a“pGoin˜ter“to“±R–ÿ}'e“alŽ‘¯b¬.‘@This“is“the“secondŽ¡largest‘UU±R–ÿ}'e“alŽ‘¿ø¬v‘ÿqÇalue.‘qÇ[²LDF‘T2003.12.29.¬]ŽŽ¡‘ +This–p algorithm“wš¸ãorks“on“all“of“the“mac˜hines“I'v˜e“tested.‘ÁðIt“doGesn't“matter“whether“they“are“big“or“little-Ž¡endian,‘å•whether–É¥they“ha•¸ãv“e–É¥32“or“64-bit“prošGcessors.‘C7If“the“exp˜onen¸ãt“of“a“ oating“p˜oinš¸ãt“t˜ypGe“is“stored“in“its“lo˜wŽ¡order–ÀÆbš¸ãyte“or“b˜ytes,‘Þ|then“this“will“fail.‘@BI‘À ha˜v˜en't“run“in˜to“this“problem“y˜et,‘Þ|though.‘@BThe“commen˜ted-out“coGdeŽ¡in–¬°h›ª¨¬LoGop“for“testing“bits‘@¯70˜°i“¬ma¸ãy“help“in“ nding“the“second-largest“±R–ÿ}'e“alŽ‘mj¬v‘ÿqÇalue“in“this“case.‘9[[²LDF‘T2003.12.29.¬]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.12.29.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2004.1.2.¬]Ž‘OÈ?Mo•¸ãv“ed–UUthis“section“from“®pspglb.web“¬to“®creatnew.web¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­SystemŽ‘+ô¬functions‘@¯36“°i‘Ǭ+°Ž¡‘ +­templateŽ‘6Ñ_°h­classŽ‘àQ±R–ÿ}'e“alŽ‘.õŸ°i‘UU±R–ÿ}'e“alŽ‘j£get‘‰ffŽ›®se–ÿ}'c“ond‘‰ffŽ˜lar“gestŽ‘dÚ5¬(±R–ÿ}'e“alŽ‘N´MAX_VALŽ‘9[¡µ;‘ª¨­b•QÇo“olŽ‘L±verb‘ÿ}'oseŽ‘>¤ƒ¬=‘DZfalseŽ‘v\¬);Ž¡‘ +­ oatŽ‘$±get‘‰ffŽ›®se–ÿ}'c“ond‘‰ffŽ˜lar“gestŽ‘q‹¢¬(­ oatŽ‘ƺµ;‘ª¨­b•QÇo“olŽ‘ö¹¬);Ž¡‘ +­doubleŽ‘/JG±get‘‰ffŽ›®se–ÿ}'c“ond‘‰ffŽ˜lar“gestŽ‘|¹Ù¬(­doubleŽ‘!ôñµ;‘ª¨­b•QÇo“olŽ‘ö¹¬);ŽŸ­67.ަ°h–ª¨¬De ne‘UU­SystemŽ‘+ô¬functions‘@¯37“°i‘Ǭ+°ŽŽŽŒ‹; Šn ý‘ì¬20›¯GET–ÕXSECOND“LARÃŽGEST’þòT3DLDF-1.1.5.1˜°x¬68Ž €n ý•@P­68.Ž©°h–ª¨¬De ne‘UU­SystemŽ‘+ô¬functions‘@¯37“°i‘Ǭ+°ޤ ‘ +­templateŽ‘6Ñ_°h­classŽ‘àQ±R–ÿ}'e“alŽ‘.õŸ°i±R–ÿ}'e“alŽ‘j£­SystemŽ‘=Oñ¬::Ž‘CÞ/±get‘‰ffŽ›®se–ÿ}'c“ond‘‰ffŽ˜lar“gestŽ’‘MÁ¬(±R–ÿ}'e“alŽ‘N´MAX_VALŽ‘9[¡µ;‘ª¨­b•QÇo“olŽ‘L±verb‘ÿ}'oseŽ‘;Ýk¬)Ž¡‘ +°fŽ¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´USHORT_SIZEŽ’½9´¬=‘Ç­sizeofŽ‘ѹ¬(­unsignedŽ‘07shortŽ‘J¬\¬);Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´UINT_SIZEŽ’²¹º¬=‘Ç­sizeofŽ‘ѹ¬(­unsignedŽ‘07in®9tŽ‘>†°¬);Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´ULONG_SIZEŽ’·ù·¬=‘Ç­sizeofŽ‘ѹ¬(­unsignedŽ‘07longŽ‘Fu¬);Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´ULONG_LONG_SIZEŽ’Ò9¨¬=‘Ç­sizeofŽ‘ѹ¬(­unsignedŽ‘07longŽ‘I]ÊlongŽ‘_/1¬);Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U±R–ÿ}'e“al‘‰ffŽ‘®SIZEŽ’±G¬=‘Ç­sizeofŽ‘#'¬(±R–ÿ}'e“alŽ‘N¬);Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´FLT_SIZEŽ’­y½¬=‘Ç­sizeofŽ‘ѹ¬(­ oatŽ‘ƺ¬);Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´DBL_SIZEŽ’­y½¬=‘Ç­sizeofŽ‘ѹ¬(­doubleŽ‘!ôñ¬);Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´LONG_DBL_SIZEŽ’Ç¹®¬=‘Ç­sizeofŽ‘ѹ¬(­longŽ‘&¼doubleŽ‘;­¬);Ž¡‘­constŽ‘2*¤b•QÇo“olŽ‘KÌ +±R–ÿ}'e“al‘‰ffŽ–®EQ‘‰ffŽ“USHOR‘ÿ;¼TŽ’¢šŠ¬=–Ç(±R–ÿ}'e“al‘‰ffŽ‘®SIZEŽ‘1ʰ“´USHORT_SIZEŽ‘= _¬);Ž¡‘­constŽ‘2*¤b•QÇo“olŽ‘KÌ +±R–ÿ}'e“al‘‰ffŽ–®EQ‘‰ffŽ“UINTŽ’’¤„¬=–Ç(±R–ÿ}'e“al‘‰ffŽ‘®SIZEŽ‘1ʰ“´UINT_SIZEŽ‘2e¬);Ž¡‘­constŽ‘2*¤b•QÇo“olŽ‘KÌ +±R–ÿ}'e“al‘‰ffŽ–®EQ‘‰ffŽ“ULONGŽ’œÙ ¬=–Ç(±R–ÿ}'e“al‘‰ffŽ‘®SIZEŽ‘1ʰ“´ULONG_SIZEŽ‘7Íb¬);Ž¡‘­constŽ‘2*¤b•QÇo“olŽ‘KÌ +±R–ÿ}'e“al‘‰ffŽ–®EQ‘‰ffŽ“ULONG‘‰ffŽ“LONGŽ’½¢ã¬=–Ç(±R–ÿ}'e“al‘‰ffŽ‘®SIZEŽ‘1ʰ“´ULONG_LONG_SIZEŽ‘R S¬);ަ‘­ifŽ‘´ú¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"USHORT_SIZE® ´==® ´"Ž‘d”b°‘Ç´USHORT_SIZEŽ‘?Ôw°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"UINT_SIZE® ´==® ´"Ž‘Zh°‘Ç´UINT_SIZEŽ‘5T}°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"ULONG_SIZE® ´==® ´"Ž‘Zh°‘Ç´ULONG_SIZEŽ‘:”z°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"ULONG_LONG_SIZE® ´==® Ž‘kÆÜ´"Ž‘tTY°‘Ç´ULONG_LONG_SIZEŽ‘TÔk°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"FLT_SIZE® ´==® ´"Ž‘TÔk°‘Ç´FLT_SIZEŽ‘0€°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"DBL_SIZE® ´==® ´"Ž‘TÔk°‘Ç´DBL_SIZEŽ‘0€°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"LONG_DBL_SIZE® ´==® ´"Ž‘o\°‘Ç´LONG_DBL_SIZEŽ‘JTq°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Real_SIZE® ´==® ´"Ž‘Zh°‘DZR–ÿ}'e“al‘‰ffŽ‘®SIZEŽ‘3áⰑDZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘±R–ÿ}'e“alŽ‘*N0°‘8à±rpŽ‘ ±7¬;Ž¡‘­ifŽ‘´ú¬(±R–ÿ}'e“al‘‰ffŽ–®EQ‘‰ffŽ“USHOR‘ÿ;¼TŽ‘Th¬)‘°fŽ¡‘­ifŽ‘)´û¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Real_EQ_USHORT\n"Ž‘aÍJ¬;ަ‘­t®9ypQÇedefŽ‘H_œunsignedŽ‘x–ªshortŽ’–aMiu½‰™šs4Ž‘Ôwt®9ypQÇeŽ’µ.F¬;ަ‘°h›ª¨¬Calculate–UUsecond-largest“±R–ÿ}'e“alŽ‘ª§¯69˜°iŽ¡‘gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±R–ÿ}'e“al‘‰ffŽ–®EQ‘‰ffŽ“UINTŽ‘Db¬)‘°fŽ¡‘­ifŽ‘)´û¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Real_EQ_UINT® ´\n"Ž‘\M¬;ަ‘­t®9ypQÇedefŽ‘H_œunsignedŽ‘x–ªin®9tŽ’Š;¡iu½‰™šs4Ž‘Ôwt®9ypQÇeŽ’©š¬;ަ‘°h›ª¨¬Calculate–UUsecond-largest“±R–ÿ}'e“alŽ‘ª§¯69˜°iŽ¡‘gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±R–ÿ}'e“al‘‰ffŽ–®EQ‘‰ffŽ“ULONGŽ‘NEþ¬)‘°fŽ¡‘­ifŽ‘)´û¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Real_EQ_ULONG® ´\n"Ž‘aÍJ¬;ަ‘­t®9ypQÇedefŽ‘H_œunsignedŽ‘x–ªlongŽ’‘½fiu½‰™šs4Ž‘Ôwt®9ypQÇeŽ’°Š_¬;ަ‘°h›ª¨¬Calculate–UUsecond-largest“±R–ÿ}'e“alŽ‘ª§¯69˜°iŽ¡‘gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±R–ÿ}'e“al‘‰ffŽ–®EQ‘‰ffŽ“ULONG‘‰ffŽ“LONGŽ‘oÁ¬)‘°fŽ¡‘­ifŽ‘)´û¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Real_EQ_ULONG_LONG\Ž‘kÆÜn"Ž‘vÍ>¬;ަ‘­t®9ypQÇedefŽ‘H_œunsignedŽ‘x–ªlongŽ’‘½flongŽ’ªä"iu½‰™šs4Ž‘Ôwt®9ypQÇeޒɱ¬;ަ‘°h›ª¨¬Calculate–UUsecond-largest“±R–ÿ}'e“alŽ‘ª§¯69˜°iŽ¡‘gŽ¡‘­elseŽ‘+Øá°fŽŽŽŒ‹KE Šn ý‘ì°x¬68›¯3DLDF-1.1.5.1’þòTGET–ÕXSECOND“LARÃŽGEST˜¬21Ž €n ý•@P‘±c‘ÿ}'errŽ‘4Ú°‘_1´"ERROR!® ´In® ´main():\nŽ‘l^õ"Ž‘u„‹°‘_1´"Apparently,® ´Real® ´doŽ‘l^õesn't® ´have® ´the® ´same® Ž’Õ^¹´size® ´"Ž’øÄ@°ޤ ‘2´"as® ´any® ´unsigned® ´intŽ’šÿÉegral® ´type.\n"Ž’é“°‘ Œ´"There® ´must® ´be® ´some® Ž‘m P´mistake.\n"Ž’«Y#°Ž¡‘2´"Exiting® ´with® ´returnŽ’šÿÉ® ´value® ´-1.\n\n"Ž’í °‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½°Ž‘I­Û¬1Ž‘N­Ü;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘1Y:µ:±pr–ÿ}'e“cisionŽ‘'½6¬(25ŽŽ‘ +);Ž¡‘±c‘ÿ}'outŽ‘6Ez°‘ì@´"MAX_VAL® ´==® ´"Ž‘NžÁ°‘ì@´MAX_VALŽ‘/Ó°‘ì@±end‘‚ØlŽ–ÊB°‘ì@´"*rp® ´==® ´"Ž‘9žÍ°‘ì@Ž‘ ìA±rpŽ‘Pذ‘ì@±end‘‚ØlŽ“°Ž¡‘2´"(MAX_VAL® ´==® ´*rp)® ´==Ž’šÿÉ® ´"Ž’©¯.°–©¬(´MAX_VALŽ‘(ïV°“Ž‘©±rpŽ‘![¬)“°“±end‘‚ØlŽ‘CȰ“´"(MAX_VAL® ´-® ´*rp)® ´==® Ž‘l¨Ç´"Ž‘v/°Ž¡‘2¬(´MAX_VALŽ‘'ûn°‘µŽ‘µ±rpŽ‘-s¬)–ý¬°“±end‘‚ØlŽ›í°“´"MAX_VAL® ´>® ´*rp® ´==® ´"Ž‘lA‡°“¬(´MAX_VALŽ‘)Cÿµ>“°Ž‘ý­±rpŽ‘v¬)“°“±end‘‚ØlŽ˜°Ž¡‘2´"MAX_VAL® ´<® ´*rp® ´==® ´"Ž’™ L°–Ǭ(´MAX_VALŽ‘( kµ<“°Ž‘DZrpŽ‘?p¬)“°“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(´MAX_VALŽ‘( k°‘ÇŽ‘DZrpŽ‘?p¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘6ò~°‘<Õ´"ERROR!® ´In® ´System::gŽ‘o<™et_second_largest():\n"Ž’?°Ž¡‘2´"MAX_VAL® ´==® ´*rp.® ´ExiŽ’šÿÉting® ´with® ´return® ´valŽ’ÿue® ´1"Ž’!Œþ°‘DZend‘‚ØlŽ–ò°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘±exitŽ‘/d¬(1Ž‘);Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(´MAX_VALŽ‘( kµ<‘Ç°Ž‘Ç±rpŽ‘?p¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘6ò~°‘<Õ´"ERROR!® ´In® ´System::gŽ‘o<™et_second_largest():\n"Ž’?°Ž¡‘2´"MAX_VAL® ´<® ´*rp.® ´ExitŽ’šÿÉing® ´with® ´return® ´valuŽ’ÿe® ´1"Ž’M°‘DZend‘‚ØlŽ–ò°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘±exitŽ‘/d¬(1Ž‘);Ž¡‘°gŽ¡‘­returnŽ‘7æ¼°Ž‘<æ½±rpŽ‘G_¬;Ž¡‘ +°gŽŸ­69.‘ üCalculate–ÕTsecond-largest“Real.Ž©°h›ª¨¬Calculate–UUsecond-largest“±R–ÿ}'e“alŽ‘ª§¯69˜°i‘ÇŽ¡‘ +f‘UU­iu½‰™šs4Ž‘Ôwt®9ypQÇeŽ‘%w£°Ž‘*w¤±ipŽ‘6®¬=‘Ç­rein®9terpretu½‰™šs4Ž‘ÔwcastŽ‘R‚•°h­iu½‰™šs4Ž‘Ôwt®9ypQÇeŽ‘""N°Ž‘'"Oi¬(&Ž‘Ç´MAX_VALŽ‘- q¬);ަ‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"*ip® ´==® ´"Ž‘5T}°‘ÇŽ‘DZipŽ‘à#°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘ +­iu½‰™šs4Ž‘Ôwt®9ypQÇeŽ‘,"O±bit‘‰ffŽ–®p›ÿ}'attern‘‰ffŽ“i‘‰ffŽ“typ˜eŽ‘v©ì¬;Ž¡‘ +­iu½‰™šs4Ž‘Ôwt®9ypQÇeŽ‘,"O±r‘ÿ}'esultŽ‘E;ƒ¬;ަ‘ +±bit‘‰ffŽ–®p›ÿ}'attern‘‰ffŽ“i‘‰ffŽ“typ˜eŽ‘WN¶¬=‘Ç1Ž‘Ç;ަ‘ +­bitsetŽ‘&èܰh­sizeofŽ‘ +¡¬(­iu½‰™šs4Ž‘Ôwt®9ypQÇeŽ‘Ìù¬)–8à°“´CHAR_BITŽ‘,¿0°i‘UUµbŽ‘Ÿÿ¬;ަ‘ +µbŽ‘ì=‘Ç°Ž‘Ç±ipŽ‘ ¬;Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"b® ´(MAX_VAL)® ´==® ´"Ž‘_Te°‘ǵbŽ‘ ØÚ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +µbŽ‘ì=‘DZbit‘‰ffŽ–®p›ÿ}'attern‘‰ffŽ“i‘‰ffŽ“typ˜eŽ‘MNµ¬;Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"b® ´(bit_pattern_i_tyŽ‘kÆÜpe)® ´==® ´"Ž’™D°‘ǵbŽ‘ ØÚ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +±r‘ÿ}'esultŽ‘%àM¬=‘DZbit‘‰ffŽ–®p›ÿ}'attern‘‰ffŽ“i‘‰ffŽ“typ˜eŽ‘O‡•°‘8àŽ‘8á±ipŽ‘ŠÓ¬;Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"result® ´==® ´"Ž‘Et°‘DZr‘ÿ}'esultŽ‘§d°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +µbŽ‘ì=‘DZr‘ÿ}'esultŽ‘àL¬;Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"b® ´(result)® ´==® ´"Ž‘Zh°‘ǵbŽ‘ ØÚ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +±rpŽ‘Í­¬=‘UU­rein®9terpretu½‰™šs4Ž‘ÔwcastŽ‘Vf'°h‘UU±R–ÿ}'e“alŽ‘1»°µ>ŽŽ‘)¿ò¬(&Ž‘Ç±r‘ÿ}'esultŽ‘ àR¬);Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"*rp® ´==® ´"Ž‘5T}°‘ÇŽ‘DZrpŽ‘ˆ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽŸ ¯This–ÕXcoæ·¬;Ž¡‘ +°gŽ¡‘ +±bit‘‰ffŽ–®p›ÿ}'attern‘‰ffŽ“i‘‰ffŽ“typ˜eŽ‘WN¶¬=‘Ç1Ž‘Ç;Ž¡‘ +±bit‘‰ffŽ–®p›ÿ}'attern‘‰ffŽ“i‘‰ffŽ“typ˜eŽ‘WN¶°Ž‘aN·¬=ŽŽ‘kÜíµiŽ‘oNá¬;Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"bit_pattern_i_type® Ž‘kÆÜ´(1® ´<<® ´"Ž’“ÔG°‘ǵiŽ‘ $°‘Ç´")® ´==® ´"Ž‘*Ôƒ°‘DZbit‘‰ffŽ–®p›ÿ}'attern‘‰ffŽ“i‘‰ffŽ“typ˜eŽ‘PͰ‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +µbŽ‘ì=‘DZbit‘‰ffŽ–®p›ÿ}'attern‘‰ffŽ“i‘‰ffŽ“typ˜eŽ‘MNµ¬;Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"b® ´(bit_pattern_i_tyŽ‘kÆÜpe)® ´==® ´"Ž’™D°‘ǵbŽ‘ ØÚ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +±r‘ÿ}'esultŽ‘%àM¬=‘DZbit‘‰ffŽ–®p›ÿ}'attern‘‰ffŽ“i‘‰ffŽ“typ˜eŽ‘O‡•°‘8àŽ‘8á±ipŽ‘ŠÓ¬;Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"result® ´==® ´"Ž‘Et°‘DZr‘ÿ}'esultŽ‘§d°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +µbŽ‘ì=‘DZr‘ÿ}'esultŽ‘àL¬;Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"b® ´(result)® ´==® ´"Ž‘Zh°‘ǵbŽ‘ ØÚ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +±rpŽ‘Í­¬=‘UU­rein®9terpretu½‰™šs4Ž‘ÔwcastŽ‘Vf'°h‘UU±R–ÿ}'e“alŽ‘1»°µ>ŽŽ‘)¿ò¬(&Ž‘Ç±r‘ÿ}'esultŽ‘ àR¬);Ž¡‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"*rp® ´==® ´"Ž‘5T}°‘ÇŽ‘DZrpŽ‘ˆ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +­ifŽ‘´ù¬(°Ž‘±rpŽ‘?p°‘Ǭ0Ž‘Ç)‘°fŽ¡‘­ifŽ‘´ú¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"*rp® ´<=® ´0.\nContinuiŽ‘kÆÜng.\n\n"Ž’™D°‘DZ ushŽ‘€¬;Ž¡‘­con•®9tin“ueŽ‘>æ·¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(°Ž‘±rpŽ‘?p°‘Ç´MAX_VALŽ‘( k¬)‘°fŽ¡‘­ifŽ‘´ú¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"*rp® ´>=® ´MAX_VAL\nCoŽ‘kÆÜntinuing."Ž’£”>°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­con•®9tin“ueŽ‘>æ·¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(±se–ÿ}'c“ond‘‰ffŽ›®lar“gest‘‰ffŽ˜r“e“alŽ‘S<´°‘ÇŽ‘DZrpŽ‘?p¬)‘°fŽ¡‘­ifŽ‘´ú¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"second_largest_realŽ‘kÆÜ® ´>=® ´*rp\nContinuing.Ž’ÔÆ "Ž’ÝT°‘Ç´"\n"Ž‘Œ°‘DZ ushŽ‘€¬;Ž¡‘­con•®9tin“ueŽ‘>æ·¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(°Ž‘±rpŽ‘?pµ>‘DZse–ÿ}'c“ond‘‰ffŽ›®lar“gest‘‰ffŽ˜r“e“alŽ‘Uu”°^‘8àŽ‘8á±rpŽ‘xPµ<‘Ç´MAX_VALŽ‘( k¬)‘°fŽ¡‘­ifŽ‘ j¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘N4°‘ôý´"*rp® ´>® ´second_largesŽ‘lôÁt_real® ´&&® ´"Ž’«0°‘ôý´"*rp® ´<® ´MAX_VAL"Ž‘W05°‘ôý±end‘‚ØlŽ‘Û¼°Ž¡‘2´"Setting® ´second_largŽ’šÿÉest_real® ´to® ´*rp"Ž’òM°‘Ç´"® ´and® ´counter® ´to® ´i® ´(Ž‘kÆÜ"Ž‘tTY°‘ǵiŽ‘ $°‘Ç´").\n"Ž‘%”†°‘DZ ushŽ‘€¬;Ž¡‘±se–ÿ}'c“ond‘‰ffŽ›®lar“gest‘‰ffŽ˜r“e“alŽ‘g<¶¬=‘Ç°Ž‘Ç±rpŽ‘?p¬;Ž¡‘±c‘ÿ}'ounterŽ‘8±Z¬=‘ǵiŽ‘9 ¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘!Øà°fŽ¡‘­ifŽ‘´ú¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Some® ´other® ´conditioŽ‘kÆÜn.® ´Continuing.\n"ޒŬ;Ž¡‘­con•®9tin“ueŽ‘>æ·¬;Ž¡‘ +°gŽŽŽŒ‹m Šn ý‘ì°x¬70›¯3DLDF-1.1.5.1’öƒLOOP–ÕXFÃŽOR“TESTING“BITS˜¬23Ž €n ý•@P‘ +°g‘µ=°‘ÿý­forŽ‘“+°µ=ޤ ¬#­endifŽŽŸ ¯This–ÕXcoŽŽŸ­78.– üGlobal‘¹¿v‘ÿ\rariables.“¬[²LDF‘T2002.10.16.¬]Ž‘Zp:±in‘‰ffŽ‘®str–ÿ}'e“amŽ’‡ÑÀ¬is–=Yan“input“stream“attac¸ãhed“to“a“ le“with“user“coGdeŽ¡for–v input.‘Õ©Curren¸ãtly‘ÿ*ª,›~óit“is“used,˜but“it“ful lls“no“useful“function,˜bGecause“I‘v˜ha•¸ãv“en't–v de ned“an“input“routineŽ¡yš¸ãet.‘/S±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘5ýç¬is–øan“output“stream“attac˜hed“to“the“ le“of“MET‘ÿ*ªAPOST›ÅcoGde“that“3DLDF˜curren¸ãtly“proGducesŽ¡as–swits“output.‘Ì-±tex‘‰ffŽ‘®str–ÿ}'e“amŽ‘6C¬is“an“output“stream“attac¸ãhed“to“a“ le“of“T‘þU>ŸÓVEŽ‘ãxXŽ›ƒKcoGde.‘Ì-The“user“can“write“T‘þU>ŸÓVEŽ‘ãxXŽ˜coGdeŽ¡to–UUthis“ le“and“load“it“inš¸ãto“®persp.tex“¬or“use“it“for“some“other“purpGose.‘qÇ3DLDF“mak˜es“no“use“of“it“itself.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.08.30.¬]Ž‘Y¿]Added‘ w±tex‘‰ffŽ‘®str–ÿ}'e“amŽ‘6b¬so– wthat“I‘ Hcan“include“T‘þU>ŸÓVEŽ‘ãxXŽ‘µKcošGde“in“m¸ãy“user“co˜de.‘—.Co˜de“written“b¸ãyŽ¡3DLDF‘Y`to‘YŸ±tex‘‰ffŽ‘®str–ÿ}'e“amŽ‘2¶²¬will–YŸbGe“loaded“bš¸ãy“®persp.tex¬,‘‹÷or“whatev˜er“T‘þU>ŸÓVEŽ‘ãxXŽ‘O› le“includes“the“P˜ostScript“ le“generatedŽ¡bš¸ãy–ÏÚMET‘ÿ*ªAPOST‘ϸfrom“the“output“of“3DLDF.“User“coGde“is“curren˜tly“in“®main.web¬.‘EIIn“proGduction“v˜ersions“userŽ¡cošGde–UUwill“b˜e“in“®user.web¬.Ž¡‘ +[²LDF‘T2003.07.16.¬]Ž‘Y;Added‘UU± g‘‰ffŽ‘®numŽ‘%®(¬.ަŸüÈ„`ÕÁGŽŽ¦‘ +­formatŽ‘3c(±ifstr–ÿ}'e“amŽ‘_ _intŽŽ¡‘ +­formatŽ‘3c(±ofstr–ÿ}'e“amŽ‘a«¿intŽŽ¦°h–ª¨¬Global‘UUv‘ÿqÇariables‘@¯18“°i‘Ǭ+°Ž¡‘ +­ifstreamŽ‘6Î,±in‘‰ffŽ‘®str–ÿ}'e“amŽ‘`òY¬;Ž¡‘ +­ofstreamŽ‘9\d±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘h¬;Ž¡‘ +­ofstreamŽ‘9\d±tex‘‰ffŽ‘®str–ÿ}'e“amŽ‘g_ج;Ž¡‘ +­unsignedŽ‘:7shortŽ‘X²± g‘‰ffŽ‘®numŽ‘zZ…¬;ŽŽŽŒ‹ˆ Šn ý‘ì°x¬79–¯3DLDF-1.1.5.1’ æ¤GLOBAL‘ÕXV‘ÿ8ARIABLES“¬25Ž €n ý•@P­79.‘ üexternŽ‘/Ò¬declarations–UUfor“the“global“v‘ÿqÇariables.Ž©°h‘ª¨­externŽ‘%È~¬v‘ÿqÇariable‘UUdeclarations‘@¯79‘ª¨°i‘Çޤ ‘ +­externŽ‘.×ifstreamŽ‘Zì±in‘‰ffŽ‘®str–ÿ}'e“amŽ’…/¬;Ž¡‘ +­externŽ‘.×ofstreamŽ‘]z:±out‘‰ffŽ‘®str–ÿ}'e“amŽ’ŒºÖ¬;Ž¡‘ +­externŽ‘.×ofstreamŽ‘]z:±tex‘‰ffŽ‘®str–ÿ}'e“amŽ’‹}®¬;Ž¡‘ +­externŽ‘.×unsignedŽ‘^TåshortŽ‘|ˆ± g‘‰ffŽ‘®numŽ’žx[¬;ŽŸ ¯This–ÕXcoO¬(±asctimeŽ‘":ž¬(±ltŽ‘Ve¬));ަ‘±datestampŽ‘Kµ:±er‘ÿ}'aseŽ‘^/¬(±datestampŽ‘-ÿµ:±sizeŽ‘\¬(‘ª¨)–8à°“¬1Ž‘8á);‘µ=°‘ÿý¬Remo•¸ãv“e–UUterminal“line-feed.‘o°µ=ޤ ¯See–ÕXalso“sections“83,“85,“87,“and“89.Ž¡This–ÕXco¸Þ°‘Ç´"%%® ´End:"Ž‘5T}°‘DZend‘‚ØlŽ‘ò°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±tex‘‰ffŽ‘®str–ÿ}'e“amŽ‘Gc±°‘`;´"\n\n%%® ´L"Ž‘?ÆÀ°‘`;´"ocal® ´Variables:\n"Ž‘o¥°‘`;´"%%® ´mode:tex\n"Ž‘Z±°Ž¡‘(´"%%® ´eval:(local-set-Ž’ÿÈkey® ´[f9]® ´'mp-file)\nŽ’ùÿŒ"Ž’¸†°‘ò•´"%%® ´run-mp-on-file:\Ž‘kòY"persp.mp\"\n"Ž’¸ë,°Ž¡‘(´"%%® ´run-cweb-on-fileŽ’ÿÈ:\"main.web\"\n"Ž’èßö°‘Yö´"%%® ´run-tex-on-file:Ž‘lYº\"persp.tex\"\n"Ž’Ä9è°Ž¡‘(´"%%® ´run-dvips-on-filŽ’ÿÈe:\"persp.ps\"\n"Ž’í°‘Ç´"%%® ´End:\n"Ž‘= _¬;Ž¡#­endifŽŽ¡‘returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­86.‘ üBegin‘ÕT gure.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.16.¬]Ž‘YßUAdded‘,o±silentŽ‘!ò¬argumenš¸ãt,‘b6and–,oa“message“prin˜ted“conditionally“to“±stdoutŽ‘ô“¬,‘b6sa˜ying“whic˜hŽ¡ gure–UUis“bšGeing“started.‘qÇThis“should“help“in“ nding“where“errors“o˜ccur.Ž¡‘ +[²LDF‘T2003.07.16.¬]Ž‘Y;Made‘UUnon-inline.Ž¡‘ +[²LDF‘T2003.08.17.¬]Ž‘Y;Made‘UU±silentŽ‘a¾¬non-­constŽ‘ÕM¬.‘qÇSetting–UUit“to“±trueŽ›í¬,“if“´SILENT_GLOBALŽ‘Kpë¬is“±trueŽ˜¬.ަŸüÈ„`ÕÁGŽŽ¦°h›ª¨¬Declare–UUI/O“functions‘@¯81˜°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±b–ÿ}'e“gin gŽ‘Dz¬(­unsignedŽ‘07shortŽ‘N±µiŽ‘Qs¥;‘ª¨­b•QÇo“olŽ‘L±silentŽ‘6Ê:¬=‘DZfalseŽ‘v\¬);ŽŽŽŒ‹©0 Šn ý‘ì¬28–¯BEGIN‘ÕXFIGURE’#é83DLDF-1.1.5.1“°x¬87Ž €n ý•@P­87.Ž©°h›ª¨¬De ne–UUI/O“functions‘@¯82˜°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙ±b–ÿ}'e“gin gŽ‘Dz¬(­unsignedŽ‘07shortŽ‘N±µiŽ‘Qs¥;‘ª¨­b•QÇo“olŽ‘L±silentŽ‘4"¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(´SILENT_GLOBALŽ‘DÆA¬)‘±silentŽ‘ ~,¬=‘DZtrueŽ‘‹°¬;Ž¡‘± g‘‰ffŽ‘®numŽ‘9í¬=‘ǵiŽ‘9 ¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´"beginfig("Ž‘?Ôw°‘DZ g‘‰ffŽ‘®numŽ‘'ç°‘Ç´");\n"Ž‘"Ín¬;Ž¡‘­ifŽ‘´ú¬(°:±silentŽ‘·¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Beginning® ´figure® ´"Ž‘iÔ_°‘DZ g‘‰ffŽ‘®numŽ‘'ç°‘Ç´"."Ž‘Ô°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­88.– üEnd‘=Õ gure.“¬The‘ј­unsignedŽ‘2„éshortŽ‘OËϬargumenš¸ãt–јis“\syn˜tactic“sugar".‘EÞIt's“ignored“b˜y“±end gޑŬ(‘ª®),‘ëñbut“ma˜yŽ¡bGe›UUcon•¸ãv“enien“t˜for˜a˜user˜for˜k“eeping˜trac“k˜of˜what˜ gure˜is˜bGeing˜ended.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.16.¬]Ž‘YßUAdded‘,o±silentŽ‘!ò¬argumenš¸ãt,‘b6and–,oa“message“prin˜ted“conditionally“to“±stdoutŽ‘ô“¬,‘b6sa˜ying“whic˜hŽ¡ gure–UUis“bšGeing“ended.‘qÇThis“should“help“in“ nding“where“errors“o˜ccur.Ž¡‘ +[²LDF‘T2003.07.16.¬]Ž‘Y;Made‘UUnon-inline.Ž¡‘ +[²LDF‘T2003.08.17.¬]Ž‘Y;Made‘UU±silentŽ‘a¾¬non-­constŽ‘ÕM¬.‘qÇSetting–UUit“to“±trueŽ›í¬,“if“´SILENT_GLOBALŽ‘Kpë¬is“±trueŽ˜¬.ަŸüÈ„`ÕÁGŽŽ¦°h›ª¨¬Declare–UUI/O“functions‘@¯81˜°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±end gŽ‘=ñ^¬(­unsignedŽ‘07shortŽ‘N±µiŽ‘T:½¬=‘Ç0Ž‘Çµ;‘ª¨­b•QÇo“olŽ‘L±silentŽ‘6Ê:¬=‘DZfalseŽ‘v\¬);ŽŸ­89.ަ°h›ª¨¬De ne–UUI/O“functions‘@¯82˜°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±end gŽ‘=ñ^¬(­unsignedŽ‘07shortŽ‘N±µiŽ‘Qs¥;‘ª¨­b•QÇo“olŽ‘L±silentŽ‘4"¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(´SILENT_GLOBALŽ‘DÆA¬)‘±silentŽ‘ ~,¬=‘DZtrueŽ‘‹°¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´"endfig"Ž‘0€°‘Ç´";\n"Ž‘q¬;Ž¡‘­ifŽ‘´ú¬(°:±silentŽ‘·¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Ending® ´figure® ´"Ž‘Zh°‘DZ g‘‰ffŽ‘®numŽ‘'ç°‘Ç´"."Ž‘Ô°‘DZend‘‚ØlŽ–ò°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gޤ­90.‘ üPutting–ÕTI/O“together.Ž¡91.‘ ü¬This–UUis“what's“compiled.ަ‘ +°h–ª¨¬Include‘UU les‘@¯6“°iޤ ‘ +h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°iŽ¡‘ +h–ª¨¬Global‘UUv‘ÿqÇariables‘@¯18“°iŽ¡‘ +h›ª¨¬De ne–UUI/O“functions‘@¯82˜°iŽŽŽŒ‹²³ Šn ý‘ì°x¬92›¯3DLDF-1.1.5.1’övPUTTING–ÕXI/O“TOGETHER˜¬29Ž €n ý•@P­92.‘ ü¬This–UUis“what's“written“to“®io.h¬.Ž©°h‘ª¨´io.hŽ‘ ±¯92‘ª¨°i‘Çޤ ‘ +h‘ª¨­externŽ‘%È~¬v‘ÿqÇariable‘UUdeclarations‘@¯79‘ª¨°iŽ¡‘ +h›ª¨¬Declare–UUI/O“functions‘@¯81˜°iŽŸ­93.– üColor“(®colors.web­).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.11.12.¬]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.Ž¡‘ +[²LDF‘T2003.12.10.¬]Ž‘YQ‘Put–ž«the“vš¸ãersion“con˜trol“iden˜ti ers“bac˜k“in˜to“m˜y“release“v˜ersions“for“3DLDF‘ž™1.1.4.‘MÊI'v˜eŽ¡already–"¯put“some“of“them“bacš¸ãk“in,‘,Ñno˜w“I'm“doing“the“rest“of“them.‘`åHo˜w˜ev˜er,‘,Ñthe“release“v˜ersions“are“no˜w“inŽ¡their–UUoš¸ãwn“R˜CS“repGository‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘Ǭ+°Ž¡‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´colors.web,v® ´1Ž‘kÆÜ.7® ´2004/01/12® ´21:27:Ž’ÔÆ 38® ´lfinsto1® ´Exp® ´$"Ž’3ÌÒ¬;ŽŸ­94.‘ üInclude‘ÕT les.ަ°h–ª¨¬Include‘UU les‘@¯6“°i‘Ǭ+°Ž¡¬#­includeŽ‘'Ø~´"loader.h"ŽŽ¡¬#­includeŽ‘'Ø~´"pspglb.h"ŽŽ¡¬#­includeŽ‘'Ø~´"creatnew.h"ŽŽ¡¬#­includeŽ‘'Ø~´"io.h"ŽŽŸ­95.› üColor–xØclass“de nition.˜¬[²LDF‘T2002.09.25.¬]Ž‘[f!!‘WRememš¸ãbGer–ã…to“c˜hange“the“constructors,‘setting“func-Ž¡tions,–UUand“assignmenš¸ãt“opGerator“if“I“add“or“c˜hange“an˜ything“here!!ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.06.¬]Ž‘Y;Added.‘qDZon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘<¹¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­classŽ‘5¦ColorŽ‘>ÅH¯95“°i‘ÇŽ¡‘ +­classŽ‘$àRColorŽ‘D…E°fŽ¡‘­stringŽ‘5%O±nameŽ‘MëS¬;Ž¡‘­b•QÇo“olŽ‘-¡h±use‘‰ffŽ‘®nameŽ‘X#²¬;Ž¡‘­b•QÇo“olŽ‘-¡h±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘eFZ¬;Ž¡‘­realŽ‘*³0±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘Mþ¶¬;Ž¡‘­realŽ‘*³0±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘W´¼¬;Ž¡‘­realŽ‘*³0±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘R6.¬;ަ‘ +­publicŽ‘)=Ö¬:‘°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°iŽ¡‘ +g¬;ŽŸ ¯This–ÕXcoJ¬=‘ǵcŽ‘ó:±get‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘7¶º¬(‘ª¨);Ž¡‘­ifŽ‘´ú¬(µnŽ‘Dz°6¬=‘Ç´""Ž‘Z°^‘8àµuŽ‘ +¹v°‘DZtrueŽ‘‹°¬)‘°fŽ¡‘±use‘‰ffŽ‘®nameŽ‘KIe¬=‘DZtrueŽ‘‹°¬;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±use‘‰ffŽ‘®nameŽ‘Y"C¬=‘DZfalseŽ‘v\¬;Ž¡‘±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl ¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý¬LDF‘UU2002.10.06.‘qÇAdded.‘o°µ=Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gޤ­101.‘ üName–ÕTand“unsigned“short“argumen®9ts.Ž¡102.‘ üConstructor.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°ޤ ‘ +­ColorŽ‘&OŸ¬(­constŽ‘]stringŽ‘?´åµnŽ‘Eµ;‘ª¨­constŽ‘ ÅunsignedŽ‘PqNshortŽ‘nnlµrŽ‘s8€;‘ª¨­constŽ‘ ÅunsignedŽ‘PqNshortŽ‘nnlµgŽ‘sO;‘ª¨­constŽ‘ ÅunsignedŽ‘PqNshortŽŽ¡‘µbŽ‘"J­;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°µuŽ‘A÷F¬=‘DZtrueŽ‘‹°¬);ŽŽŽŒ‹ǹ Šn ý‘ì°x¬103–¯3DLDF-1.1.5.1’ÎåCONSTRÃŽUCTOR“¬31Ž €n ý•@P­103.Ž©°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­ColorŽ‘'O£¬::‘­ColorŽ‘O¢¬(­constŽ‘GNstringŽ‘?‰GµnŽ‘E‰á;‘ª¨­constŽ‘ñöunsignedŽ‘PE°shortŽ‘n,ÿµrŽ‘r÷;‘ª¨­constŽ‘ñöunsignedŽ‘PE°shortŽ‘n,ÿµgŽ‘sMâ;‘ª¨­constŽ‘ñöunsignedŽŽ¡‘2shortŽ‘OʨµbŽ‘TR;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°µuŽ‘?0.¬)Ž¡‘ +:‘qDZnameŽ‘7ˬ(µnŽ‘š¬)‘UU°fŽ¡‘±nameŽ‘/¬=‘ǵnŽ‘Dz¬;Ž¡‘­ifŽ‘´ú¬(µnŽ‘Dz°6¬=‘Ç´""Ž‘Z°^‘8àµuŽ‘ +¹v°‘DZtrueŽ‘‹°¬)‘°fŽ¡‘±use‘‰ffŽ‘®nameŽ‘KIe¬=‘DZtrueŽ‘‹°¬;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±use‘‰ffŽ‘®nameŽ‘Y"C¬=‘DZfalseŽ‘v\¬;Ž¡‘±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl ¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý¬LDF‘UU2002.10.06.‘qÇAdded.‘o°µ=Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘: ¬=‘ǵrŽ‘‘,=¬255µ:¬0ŽŽ‘Ç!;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘CȦ¬=‘ǵgŽ‘çû=¬255µ:¬0ŽŽ‘Ç!;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘>J¬=‘ǵbŽ‘Â=¬255µ:¬0ŽŽ‘Ç!;Ž¡‘ +°gŽŸ­104.‘ üSetting‘ÕTfunction.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘# ±setŽ‘0ƒˆ¬(­constŽ‘7ÍstringŽ‘?jEµnŽ‘Ejß;‘ª¨­constŽ‘âuunsignedŽ‘P&®shortŽ‘mþ|µrŽ‘rÈ;‘ª¨­constŽ‘âuunsignedŽ‘P&®shortŽ‘mþ|µgŽ‘s_;‘ª¨­constŽ‘âuunsignedŽ‘P&®shortŽŽ¡‘µbŽ‘"J­;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°µuŽ‘A÷F¬=‘DZfalseŽ‘v\¬);ŽŸ­105.ަ°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"Ý3ColorŽ‘@,Õ¬::‘±setŽ‘xˆ¬(­constŽ‘ üstringŽ‘?£µnŽ‘E=;‘ª¨­constŽ‘´¤unsignedŽ‘OË shortŽ‘mu µrŽ‘r?;‘ª¨­constŽ‘´¤unsignedŽ‘OË shortŽ‘mu µgŽ‘r•ì;‘ª¨­constŽ‘´¤unsignedŽŽ¡‘2shortŽ‘OʨµbŽ‘TR;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°µuŽ‘?0.¬)Ž¡‘ +°fŽ¡‘±nameŽ‘/¬=‘ǵnŽ‘Dz¬;Ž¡‘­ifŽ‘´ú¬(µnŽ‘Dz°6¬=‘Ç´""Ž‘Z°^‘8àµuŽ‘ +¹v°‘DZtrueŽ‘‹°¬)‘°fŽ¡‘±use‘‰ffŽ‘®nameŽ‘KIe¬=‘DZtrueŽ‘‹°¬;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±use‘‰ffŽ‘®nameŽ‘Y"C¬=‘DZfalseŽ‘v\¬;Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘: ¬=‘ǵrŽ‘‘,=¬255µ:¬0ŽŽ‘Ç!;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘CȦ¬=‘ǵgŽ‘çû=¬255µ:¬0ŽŽ‘Ç!;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘>J¬=‘ǵbŽ‘Â=¬255µ:¬0ŽŽ‘Ç!;Ž¡‘ +°gŽ©­106.› üThree–áØreal“argumen®9ts.˜¬[²LDF‘T2002.10.09.¬]Ž‘Z“Added–`7the“follo¸ãwing“constructor“and“setting“function.Ž¡They– äare“for“unnamed“­ColorsŽ‘$⾬.‘tThe“DEC‘ µcompiler“can't“distinguish“bGet•¸ãw“een‘ ä­realŽ‘q¡¬and‘ ä­unsignedŽ‘4õshortŽŽ¡¬argumenš¸ãts,‘óso–Û/the“o˜v˜erloaded“functions“m˜ust“di er“in“another“w˜a˜y‘ÿ*ª.‘IIn“this“case,‘óthese“v˜ersions“ha˜v˜e“no“±nameŽŽ¡¬argumen•¸ãt.‘‘ÀI‘µ:bGeliev“e–µSthat“users“are“most“likš¸ãely“to“declare“­ColorsŽ‘(C€¬using“­realŽ‘È¬argumen˜ts“when“they“plan“toŽ¡moGdify–Àthem,›*xin“whic¸ãh“case“the“±outputŽ‘ /¬(‘ª®)“function“should“write“the“red,˜green“and“blue“v‘ÿqÇalues“to“±out‘‰ffŽ‘®str–ÿ}'e“amŽŽ¡¬rather–e*than“±nameŽ‘+.¬.‘¡EIf“it“turns“out“to“bšGe“necessary‘ÿ*ª,‘imore“constructors“can“b˜e“added“or“the“existing“ones“canŽ¡bGe‘UUc¸ãhanged.ަ­107.‘ üConstructor.ŽŸ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­ColorŽ‘&OŸ¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµgŽ‘;©[;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµbŽ‘:Ó"¬);ŽŽŽŒ‹ Ò{ Šn ý‘ì¬32–¯CONSTRÃŽUCTOR’Îå3DLDF-1.1.5.1“°x¬108Ž €n ý•@P­108.Ž©°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­ColorŽ‘'O£¬::‘­ColorŽ‘O¢¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµgŽ‘;©[;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµbŽ‘:Ó"¬)Ž¡‘ +°fŽ¡‘±nameŽ‘/¬=‘Ç´""Ž‘ Íz¬;Ž¡‘±use‘‰ffŽ‘®nameŽ‘AId¬=‘DZfalseŽ‘v\¬;Ž¡‘±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl ¬=‘DZfalseŽ‘v\¬;Ž¡‘­ifŽ‘´ú¬(µrŽ‘‘,<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Red® ´part® ´argument® ´<Ž’šÿÉ® ´0.® ´Setting® ´red_parŽ’ÿt® ´to® ´0.\n\n"Ž’C…Ѭ;Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µrŽ‘‘,>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Red® ´part® ´argument® ´>Ž’šÿÉ® ´1.® ´Setting® ´red_parŽ’ÿt® ´to® ´1.\n\n"Ž’C…Ѭ;Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘Që¬=‘ǵrŽ‘‘,¬;Ž¡‘­ifŽ‘´ú¬(µgŽ‘çû<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Green® ´part® ´argumentŽ’šÿÉ® ´<® ´0.® ´Setting® ´greenŽ’ÿ_part® ´to® ´0.\n\n"Ž’X…Ŭ;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µgŽ‘çû>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Green® ´part® ´argumentŽ’šÿÉ® ´>® ´1.® ´Setting® ´greenŽ’ÿ_part® ´to® ´1.\n\n"Ž’X…Ŭ;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘[¡…¬=‘ǵgŽ‘çû¬;Ž¡‘­ifŽ‘´ú¬(µbŽ‘Â<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Blue® ´part® ´argument® Ž’šÿÉ´<® ´0.® ´Setting® ´blue_pŽ’ÿart® ´to® ´0.\n\n"Ž’Nˬ;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µbŽ‘Â>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Blue® ´part® ´argument® Ž’šÿÉ´>® ´1.® ´Setting® ´blue_pŽ’ÿart® ´to® ´1.\n\n"Ž’Nˬ;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘V"÷¬=‘ǵbŽ‘¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­109.‘ üSetting‘ÕTfunction.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±setŽ‘0v]¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµgŽ‘;©[;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµbŽ‘:Ó"¬);ŽŽŽŒ‹!ßõ Šn ý‘ì°x¬110–¯3DLDF-1.1.5.1’©SETTING‘ÕXFUNCTION“¬33Ž €n ý•@P­110.Ž©°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙColorŽ‘@M{¬::‘±setŽ‘xˆ¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµgŽ‘;©[;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµbŽ‘:Ó"¬)Ž¡‘ +°fŽ¡‘±nameŽ‘/¬=‘Ç´""Ž‘ Íz¬;Ž¡‘±use‘‰ffŽ‘®nameŽ‘AId¬=‘DZfalseŽ‘v\¬;Ž¡‘±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl ¬=‘DZfalseŽ‘v\¬;Ž¡‘­ifŽ‘´ú¬(µrŽ‘‘,<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Red® ´part® ´argument® ´<Ž’šÿÉ® ´0.® ´Setting® ´red_parŽ’ÿt® ´to® ´0.\n\n"Ž’C…Ѭ;Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µrŽ‘‘,>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Red® ´part® ´argument® ´>Ž’šÿÉ® ´1.® ´Setting® ´red_parŽ’ÿt® ´to® ´1.\n\n"Ž’C…Ѭ;Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘Që¬=‘ǵrŽ‘‘,¬;Ž¡‘­ifŽ‘´ú¬(µgŽ‘çû<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Green® ´part® ´argumentŽ’šÿÉ® ´<® ´0.® ´Setting® ´greenŽ’ÿ_part® ´to® ´0.\n\n"Ž’X…Ŭ;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µgŽ‘çû>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Green® ´part® ´argumentŽ’šÿÉ® ´>® ´1.® ´Setting® ´greenŽ’ÿ_part® ´to® ´1.\n\n"Ž’X…Ŭ;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘[¡…¬=‘ǵgŽ‘çû¬;Ž¡‘­ifŽ‘´ú¬(µbŽ‘Â<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Blue® ´part® ´argument® Ž’šÿÉ´<® ´0.® ´Setting® ´blue_pŽ’ÿart® ´to® ´0.\n\n"Ž’Nˬ;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µbŽ‘Â>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘6F0°‘‡´"WARNING!® ´In® ´Color::Ž‘nKColor()® ´(three® ´real® Ž’×´arguments):\n"Ž’'&Ô°Ž¡‘2´"Blue® ´part® ´argument® Ž’šÿÉ´>® ´1.® ´Setting® ´blue_pŽ’ÿart® ´to® ´1.\n\n"Ž’Nˬ;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘V"÷¬=‘ǵbŽ‘¬;Ž¡‘ +°gŽŸ­111.‘ üPseudo-constructor–ÕTfor“dynamic“alloQÇcation.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.12.30.¬]Ž‘WëÉReplaced‘8ã­ColorŽ‘ˆ…¬::‘±cr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“c‘ÿ}'olorŽ‘IS&¬(‘ª®)–8ãwith“spGecializations“of“­templateŽ‘/ +A°h­classŽ‘ÃßµCŽ‘! «°i“µCŽ‘ +¯°Ž‘°±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘>¥t¬(‘ª¨).Ÿ€„ +Ž¡¦ŸüÈ„`ÕÁGŽŽŸ­112.‘ üP•®9oin“ter‘ÕTargumen“t.ަ°h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­ColorŽ‘#ä÷¯112˜°i‘ÇŽ¡‘ +­ColorŽ‘)¤ô°Ž‘.¤õ±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘^4¹¬(­constŽ‘*¢ColorŽ‘=Ï•°Ž‘BÏ–µcŽ‘G#q¬);ŽŽŽŒ‹"ëÅ Šn ý‘ì¬34–¯POINTER‘ÕXARÃŽGUMENT’ÿ3DLDF-1.1.5.1“°x¬112Ž €n ý•@P¯See–ÕXalso“section“113.ŽŸ This–ÕXcoJ¬=‘ǵcŽ‘ó:±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘'‚þ¬;ަ‘ +°gŽŸ­116.– üEqualit®9y‘ÿ +«.“¬[²LDF‘T2002.09.25.¬]Ž‘YªŒChanged–w«so“that“only“±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘%Ã1¬,‘¤±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘27¬and“±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘,rT¬are“compared.ަThis›{Ðw•¸ãa“y‘ÿ*ª,‘…n­ColorsŽ‘'Ú¬that˜di er˜only˜in˜±nameŽ‘½¤¬and/or˜±use‘‰ffŽ‘®nameŽ‘1yê¬are˜considered˜to˜bGe˜equal.‘å7[²LDF‘T2002.09.24.¬]ŽŽ¦Added–UUthis“opGerator“function.Ž¡°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°ަ‘ +­b•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8°Ž‘Vÿ:¬(­constŽ‘*¢ColorŽ‘=Ï•¬&Ž‘E–³µcŽ‘Iꎬ)‘UU­constŽ‘*¢¬;ŽŸ­117.Ž¡°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ަ‘ +­b•QÇo“olŽ‘#¡gColorŽ‘@ñ ¬::Ž‘GG­opQÇeratorŽ‘sü°Ž‘zݬ(­constŽ‘*¢ColorŽ‘=Ï•¬&Ž‘E–³µcŽ‘Iꎬ)‘UU­constŽŽ¦‘ +°fަ‘­returnŽ‘7漬((±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘&ž°‘ǵcŽ›ó:±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘#K†¬)–8à°^“¬(±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘/Ȥ°‘ǵcŽ˜:±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘-Œ¬)“°^“¬(±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘*J°‘ǵcŽ˜:±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘'‚þ¬));ަ‘ +°gŽŸ­118.– üInequalit®9y‘ÿ +«.“¬[²LDF‘T2002.09.24.¬]Ž‘Zˆ6Added–UUthis“opGerator“function.Ž¡°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°ަ‘ +­b•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8°6¬=Ž‘Vÿ:(­constŽ‘*¢ColorŽ‘=Ï•¬&Ž‘E–³µcŽ‘Iꎬ)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹#ù9 Šn ý‘ì°x¬119–¯3DLDF-1.1.5.1’'â#INEQUALITY“¬35Ž €n ý•@P­119.Ž©°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olŽ‘#¡gColorŽ‘@ñ ¬::Ž‘GG­opQÇeratorŽ‘sü°6¬=Ž‘zÝ(­constŽ‘*¢ColorŽ‘=Ï•¬&Ž‘E–³µcŽ‘Iꎬ)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼°:¬(°Ž‘±thisŽ‘²Ï°‘ǵcŽ‘ó¬);Ž¡‘ +°gޤ­120.‘ üMoQÇdifying.Ž¡121.‘ üSet–ÕTon“free“store.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2003.12.30.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡g±set‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘j÷>¬(­b•QÇo“olŽ‘¡fµbŽ‘ ³(¬=‘DZtrueŽ‘‹°¬);ŽŸ­122.ަ°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡gColorŽ‘@ñ ¬::‘±set‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘HUÛ¬(­b•QÇo“olŽ‘¡fµbŽ‘ì¬)Ž¡‘ +°fŽ¡‘±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl ¬=‘ǵbŽ‘¬;Ž¡‘­returnŽ‘7æ¼µbŽ‘<1f¬;Ž¡‘ +°gŽŸ­123.‘ üSet‘ÕTname.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±set‘‰ffŽ‘®nameŽ‘Kt¬(­constŽ‘*¢stringŽ‘?OïµsŽ‘Cÿï¬);ŽŸ­124.ަ°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙColorŽ‘@M{¬::‘±set‘‰ffŽ‘®nameŽ‘)ví¬(­constŽ‘*¢stringŽ‘?OïµsŽ‘Cÿï¬)Ž¡‘ +°fŽ¡‘±nameŽ‘/¬=‘ǵsŽ‘w¬;Ž¡‘ +°gŽŸ­125.‘ üSet–ÕTuse“name.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±set‘‰ffŽ–®use‘‰ffŽ“nameŽ‘]1¬(­constŽ‘*¢b•QÇo“olŽ‘7̵bŽ‘<²¬);ŽŸ­126.ަ°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙColorŽ‘@M{¬::‘±set‘‰ffŽ–®use‘‰ffŽ“nameŽ‘;33¬(­constŽ‘*¢b•QÇo“olŽ‘7̵bŽ‘<²¬)Ž¡‘ +°fŽ¡‘±use‘‰ffŽ‘®nameŽ‘AId¬=‘ǵbŽ‘¬;Ž¡‘ +°gŽŸ­127.‘ üMoQÇdify‘ÿ +«.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±mo‘ÿ}'difyŽ‘ACÚ¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµgŽ‘>ps¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµbŽ‘=š:¬=‘Ç0Ž“);ŽŽŽŒ‹$K Šn ý‘ì¬36–¯MODIFY’;t³3DLDF-1.1.5.1“°x¬128Ž €n ý•@P­128.Ž©°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙColorŽ‘@M{¬::‘±mo‘ÿ}'difyŽ‘F¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµgŽ‘;©[;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµbŽ‘:Ó"¬)Ž¡‘ +°fŽ¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘: ¬+=ŽŽ‘LgôµrŽ‘Q2¬;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘CȦ¬+=ŽŽ‘VúµgŽ‘[>ݬ;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘>J¬+=ŽŽ‘PŸlµbŽ‘Tê¬;Ž¡‘­ifŽ‘´ú¬(±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘&žµ>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"WARNING!® ´In® ´Color::Ž‘kÆÜmodify():\n"Ž’®8°‘Ç´"red_part® ´is® ´greaterŽ‘kÆÜ® ´than® ´1:® ´"Ž’£”>°‘DZr–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘(Ù¶°Ž¡‘2±end‘‚ØlŽ‘H¸ß°‘Ç´"Setting® ´red_part® ´toŽ‘kÆÜ® ´1.\n\n"Ž’–M,¬;Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘&žµ<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘3Ù°‘#m´"WARNING!® ´In® ´Color::Ž‘l#1modify():\n"Ž’®Ìâ°‘#m´"red_part® ´is® ´less® ´thŽ‘l#1an® ´0:® ´"Ž’”Œñ°‘#m±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘)’`°Ž¡‘2±end‘‚ØlŽ‘H¸ß°‘Ç´"Setting® ´red_part® ´toŽ‘kÆÜ® ´0.\n\n"Ž’–M,¬;Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘/Ȥµ>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘4w0°‘Á‡´"WARNING!® ´In® ´Color::Ž‘lÁKmodify():\n"Ž—° °‘Á‡´"green_part® ´is® ´greatŽ‘lÁKer® ´than® ´1:® ´"Ž“°Ž¡‘2±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘aÈ©°‘DZend‘‚ØlŽ‘ò°‘Ç´"Setting® ´green_part® Ž‘kÆÜ´to® ´1.\n\n"Ž’ Í&¬;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘/Ȥµ<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"WARNING!® ´In® ´Color::Ž‘kÆÜmodify():\n"Ž’®8°‘Ç´"green_part® ´is® ´less® Ž‘kÆÜ´than® ´0:® ´"Ž’žTA°‘DZgr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘2¼°Ž¡‘2±end‘‚ØlŽ‘H¸ß°‘Ç´"Setting® ´green_part® Ž‘kÆÜ´to® ´0.\n\n"Ž’ Í&¬;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘*Jµ>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘4—ø°‘âO´"WARNING!® ´In® ´Color::Ž‘lâmodify():\n"Ž’°J¦°‘âO´"blue_part® ´is® ´greateŽ‘lâr® ´than® ´1:® ´"Ž’« +©°Ž¡‘2±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘\J°‘DZend‘‚ØlŽ‘ò°‘Ç´"Setting® ´blue_part® ´tŽ‘kÆÜo® ´1.\n\n"Ž’›)¬;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘*Jµ<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘3 º°‘ë´"WARNING!® ´In® ´Color::Ž‘kêÕmodify():\n"Ž’®\*°‘ë´"blue_part® ´is® ´less® ´tŽ‘kêÕhan® ´0:® ´"Ž’™\6°‘ë±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘-Y °Ž¡‘2±end‘‚ØlŽ‘H¸ß°‘Ç´"Setting® ´blue_part® ´tŽ‘kÆÜo® ´0.\n\n"Ž’›)¬;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­129.‘ üSet–ÕTred“part.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±set‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘UúD¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬);ŽŽŽŒ‹% 4 Šn ý‘ì°x¬130›¯3DLDF-1.1.5.1’[µSET–ÕXRED“P–ÿJªAR“T˜¬37Ž €n ý•@P­130.Ž©°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙColorŽ‘@M{¬::‘±set‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘3üo¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(µrŽ‘‘,>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘3|×°‘Ç.´"WARNING!® ´In® ´Color::Ž‘kÆòset_red_part():\n"Ž’Í”R°‘Ç.´"r® ´is® ´greater® ´than® ´1Ž‘kÆò:® ´"Ž‘~Ô°‘Ç.µrŽ‘ +Xp°‘Ç.±end‘‚ØlŽ‘€°Ž¡‘2´"Setting® ´red_part® ´toŽ’šÿÉ® ´1.\n\n"ޒņ¬;Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µrŽ‘‘,<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘3Öp°‘ Ç´"WARNING!® ´In® ´Color::Ž‘l ‹set_red_part():\n"Ž’ÎG„°‘ Ç´"r® ´is® ´less® ´than® ´0:® ´"Ž‘oǺ°‘ ǵrŽ‘ ¢°‘ DZend‘‚ØlŽ‘3P°Ž¡‘2´"Setting® ´red_part® ´toŽ’šÿÉ® ´0.\n\n"ޒņ¬;Ž¡‘±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘D¡¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘Që¬=‘ǵrŽ‘‘,¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­131.‘ üSet–ÕTgreen“part.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±set‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘_°J¬(­constŽ‘*¢realŽ‘4ÝеgŽ‘9þ³¬);ŽŸ­132.ަ°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙColorŽ‘@M{¬::‘±set‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘=²u¬(­constŽ‘*¢realŽ‘4ÝеgŽ‘9þ³¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(µgŽ‘çû>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘4¨°‘Yÿ´"WARNING!® ´In® ´Color::Ž‘lYÃset_green_part():\n"Ž’Ù9î°‘Yÿ´"g® ´is® ´greater® ´than® ´1Ž‘lYÃ:® ´"Ž‘ú!°‘YÿµgŽ‘ Ôá°Ž¡‘2±end‘‚ØlŽ‘H¸ß°‘Ç´"Setting® ´green_part® Ž‘kÆÜ´to® ´1.\n\n"Ž’ Í&¬;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µgŽ‘çû<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘3˜Ç°‘ã´"WARNING!® ´In® ´Color::Ž‘kââset_green_part():\n"Ž’ØL,°‘ã´"g® ´is® ´less® ´than® ´0:® ´"Ž‘oLh°‘ãµgŽ‘ +ç°‘ã±end‘‚ØlŽ‘·þ°Ž¡‘2´"Setting® ´green_part® Ž’šÿÉ´to® ´0.\n\n"Ž’Ð¬;Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘Mȧ¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘[¡…¬=‘ǵgŽ‘çû¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­133.‘ üSet–ÕTblue“part.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±set‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘Z1¼¬(­constŽ‘*¢realŽ‘4ÝеbŽ‘9(z¬);ŽŽŽŒ‹& + Šn ý‘ì¬38›¯SET–ÕXBLUE“P–ÿJªAR“T’h}3DLDF-1.1.5.1˜°x¬134Ž €n ý•@P­134.Ž©°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙColorŽ‘@M{¬::‘±set‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘83ç¬(­constŽ‘*¢realŽ‘4ÝеbŽ‘9(z¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(µbŽ‘Â>‘Ǭ1Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘43å°‘~<´"WARNING!® ´In® ´Color::Ž‘l~set_blue_part():\n"Ž’ÔBk°‘~<´"b® ´is® ´greater® ´than® ´1Ž‘l~:® ´"Ž’€B›°‘~<µbŽ‘ G"°Ž¡‘2±end‘‚ØlŽ‘H¸ß°‘Ç´"Setting® ´blue_part® ´tŽ‘kÆÜo® ´1.\n\n"Ž’›)¬;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ¬=‘Ç1Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µbŽ‘Â<‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘3»g°‘¾´"WARNING!® ´In® ´Color::Ž‘l‚set_blue_part():\n"Ž’ÓQo°‘¾´"b® ´is® ´less® ´than® ´0:® ´"Ž‘o‘¨°‘¾µbŽ‘ +V&°‘¾±end‘‚ØlŽ‘ý>°Ž¡‘2´"Setting® ´blue_part® ´tŽ’šÿÉo® ´0.\n\n"Ž’ÊÆ¬;Ž¡‘±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘HJ¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+Øá±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘V"÷¬=‘ǵbŽ‘¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­135.‘ üSho®9w.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±showŽ‘9ˆØ¬(­stringŽ‘!%M±textŽ‘5D1¬=‘Ç´""Ž‘ Íz¬)‘UU­constŽ‘*¢¬;ŽŸ­136.ަ°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙColorŽ‘@M{¬::‘±showŽ‘‹¬(­stringŽ‘!%M±textŽ‘2}¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±textŽ‘ä°‘Ç´""Ž‘ Íz¬)‘±textŽ‘ä¬=‘Ç´"Color:"Ž‘-Mh¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘DZtextŽ‘åü°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"name® ´==® ´"Ž‘:”z°‘DZget‘‰ffŽ‘®nameŽ‘+Àج(‘ª¨)–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"use_name® ´==® ´"Ž‘O”n°‘DZget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘=}¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"red_part® ´==® ´"Ž‘O”n°‘DZget‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘6FZ¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"green_part® ´==® ´"Ž‘Zh°‘DZget‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘?ü`¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"blue_part® ´==® ´"Ž‘TÔk°‘DZget‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘:}Ò¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gޤ­137.‘ üReturning–ÕTelemen®9ts“and“information.Ž¡138.‘ üIs–ÕTon“free“store.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2004.01.06.¬]Ž‘Y;Made‘UUnon-inline.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡g±is‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘f<¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹'$ Šn ý‘ì°x¬139›¯3DLDF-1.1.5.1’ /IS–ÕXON“FREE“STORE˜¬39Ž €n ý•@P­139.ŽŸ°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olŽ‘#¡gColorŽ‘@ñ ¬::‘±is‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘CzÙ¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘o‹®¬;Ž¡‘ +°gŽ©­140.› üGet–Ç Color“parts.˜¬[²LDF‘T2002.09.24.¬]Ž‘Z{ÊThese–Héfunctions“alw•¸ãa“ys–Héreturn“a“­realŽ‘¦Â¬;‘M the“argumen¸ãt“±de‘ÿ}'cimalŽŽ¡¬can't–UUmak¸ãe“them“return“an“­unsignedŽ‘3ŒcshortŽ‘N±¬.ަ­141.‘ üGet–ÕTred“part.ŽŸ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIrealŽ‘@=w±get‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘s¼¹¬(­b•QÇo“olŽ‘¡f±de‘ÿ}'cimalŽ‘>©Þ¬=‘DZfalseŽ‘v\¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±de‘ÿ}'cimalŽ‘"A`¬)‘­returnŽ‘(溱truncŽ‘Aõ¬((±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘%„f°‘8à¬255ŽŽ‘8ã)–8à+“µ:¬5ŽŽ‘ ÿþ);Ž¡‘­elseŽ‘+ØáreturnŽ‘O¿›±r–ÿ}'e“d‘‰ffŽ‘®p“artŽ‘s !¬;Ž¡‘ +°gަ­142.‘ üGet–ÕTgreen“part.ŽŸ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIrealŽ‘@=w±get‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘}r¿¬(­b•QÇo“olŽ‘¡f±de‘ÿ}'cimalŽ‘>©Þ¬=‘DZfalseŽ‘v\¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±de‘ÿ}'cimalŽ‘"A`¬)‘­returnŽ‘(溱truncŽ‘Aõ¬((±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘/:l°‘8à¬255ŽŽ‘8ã)–8à+“µ:¬5ŽŽ‘ ÿþ);Ž¡‘­elseŽ‘+ØáreturnŽ‘O¿›±gr–ÿ}'e“en‘‰ffŽ‘®p“artŽ‘|Á'¬;Ž¡‘ +°gަ­143.‘ üGet–ÕTblue“part.ŽŸ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIrealŽ‘@=w±get‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘wô1¬(­b•QÇo“olŽ‘¡f±de‘ÿ}'cimalŽ‘>©Þ¬=‘DZfalseŽ‘v\¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±de‘ÿ}'cimalŽ‘"A`¬)‘­returnŽ‘(溱truncŽ‘Aõ¬((±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘)»Þ°‘8à¬255ŽŽ‘8ã)–8à+“µ:¬5ŽŽ‘ ÿþ);Ž¡‘­elseŽ‘+ØáreturnŽ‘O¿›±blue‘‰ffŽ‘®p‘ÿ}'artŽ‘wB™¬;Ž¡‘ +°gަ­144.‘ üGet–ÕTuse“name.ŽŸ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡g±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘^Wm¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹(.û Šn ý‘ì¬40›¯GET–ÕXUSE“NAME’ãß3DLDF-1.1.5.1˜°x¬145Ž €n ý•@P­145.Ž©°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olŽ‘#¡gColorŽ‘@ñ ¬::‘±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘;¶ +¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±use‘‰ffŽ‘®nameŽ‘bi¬;Ž¡‘ +°gŽŸ­146.‘ üGet‘ÕTname.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIstringŽ‘J¯–±get‘‰ffŽ‘®nameŽ‘s©V¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±nameŽ‘P¬À¬;Ž¡‘ +°gŽŸ­147.‘ üOutput‘ÕTopQÇerator.ަ°h›ª¨¬Declare–UUnon-mem¸ãbGer“non-template“functions“for“­ColorŽ‘#ä÷¯147˜°i‘ÇŽ¡‘ +±ostr–ÿ}'e“amŽ‘/¬&‘8à­opQÇeratorŽ‘-Ï•°Ž‘7Ï–¬(±ostr–ÿ}'e“amŽ‘%¬&‘8àµoŽ‘Ä;‘ª¨­constŽ‘ÕJColorŽ‘?z=¬&Ž‘GA[µcŽ‘K•6¬);ŽŸ ¯This–ÕXco‘h¬;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(±nameŽ‘°‘Ç´""Ž‘ Íz¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘8(¢°‘rù´"ERROR!® ´In® ´Color::deŽ‘pr½fine_colors_mp():\n"Ž’ákâ°Ž¡‘2´"name® ´is® ´empty.® ´NotŽ’šÿÉ® ´doing® ´anything® ´and® Ž’ÿ´returning.\n"Ž’KŒæ°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘FlÀ°‘,"´"color® ´"Ž‘0Þ”°‘,"±nameŽ–H°‘,"´";"Ž‘ž£°‘,"´"® ´"Ž›Þ °‘,"±nameŽ“°‘,"´"® ´=® ´("Ž‘&^š°‘,"±get‘‰ffŽ›®r–ÿ}'e“d‘‰ffŽ˜p“artŽ‘6«d¬(‘ª¨)–,"°“´",® ´"Ž˜°Ž¡‘(±get‘‰ffŽ›®gr–ÿ}'e“en‘‰ffŽ˜p“artŽ‘e5L¬(›ª¨)–ǰ“´",® ´"Ž‘Œ°“±get‘‰ffŽ–®blue‘‰ffŽ“p‘ÿ}'artŽ‘:}Ò¬(˜)“°“´");\n"Ž‘%”†°“± ushŽ‘€¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­151.– üInitialize‘ÃColors.“¬[²LDF‘T2002.09.25.¬]Ž‘\x=This–E\function“presuppGoses“the“existence“of“­namespaceŽŽ¡ColorsŽ‘ ØÚ¬.ަ°h–ª¨¬Declare‘UU­ColorŽ‘"úH¬functions‘@¯97“°i‘Ǭ+°Ž¡‘ +­staticŽ‘)HÚv®9oidŽ‘BF²±initialize‘‰ffŽ‘®c‘ÿ}'olorsŽ’†ͬ(‘ª®);ŽŽŽŒ‹*?» Šn ý‘ì¬42–¯INITIALIZE‘ÕX­COLORS’ýr¯3DLDF-1.1.5.1“°x¬152Ž €n ý•@P­152.Ž©°h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙColorŽ‘@M{¬::‘±initialize‘‰ffŽ‘®c‘ÿ}'olorsŽ‘DÀ¬(‘ª®)Ž¡‘ +°fŽ¡‘­usingŽ‘2SˆnamespaceŽ‘k÷ColorsŽ’ŒÏܬ;ަ‘­ifŽ‘´ú¬(°:±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘/@œµ:±is‘‰ffŽ‘®op‘ÿ}'enŽ‘ ¬(‘ª¨))‘°fŽ¡‘±c‘ÿ}'errŽ‘8-°‘P„´"ERROR!® ´In® ´Color::inŽ‘pPHitialize_colors():\nŽ’ÙP "Ž’æfõ°Ž¡‘2´"out_stream® ´is® ´closeŽ’šÿÉd!® ´Returning.\n"Ž’÷°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´"%%%® ´Color® ´definitioŽ‘kÆÜns.\n\n"Ž’–M,¬;Ž¡#­ifŽ‘ Öo¬0Ž‘$Öqµ=°‘!t¬[²LDF‘T2002.09.25.¬]Ž‘TK%These–vÌcolors“are“already“de ned“in“MET‘ÿ*ªAPOST‘vÄand“their“de nitions“areŽ¡‘(not–UUlikš¸ãely“to“c˜hange.‘qÇHo˜w˜ev˜er,“if“they“do,“I“can“commen˜t“these“function“calls“bac˜k“in.‘o°µ=Ž¡‘±r–ÿ}'e“dŽ‘"s/µ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±gr–ÿ}'e“enŽ‘+åµ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±blueŽ‘&byµ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±blackŽ‘+ Öµ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±whiteŽ‘,Áµ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±b–ÿ}'ackgr“oundŽ‘Euøµ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡#­endifŽŽ¡‘±yel‘‚ØlowŽ‘0k³µ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±cyanŽ‘)w‘µ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±magentaŽ‘9Òµ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±or‘ÿ}'angeŽ‘2)µ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±violetŽ‘,·µ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±purpleŽ‘097µ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±yel‘‚Ølow‘‰ffŽ‘®gr–ÿ}'e“enŽ‘Jhlµ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±gr–ÿ}'e“en‘‰ffŽ‘®yel‘‚ØlowŽ‘J·–µ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±blue‘‰ffŽ‘®violetŽ‘A„jµ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±gr‘ÿ}'ayŽ‘'ªÿµ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±light‘‰ffŽ‘®gr‘ÿ}'ayŽ‘>ܵ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±violet‘‰ffŽ‘®r–ÿ}'e“dŽ‘=b£µ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘±default‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ‘fF!µ:±de ne‘‰ffŽ–®c‘ÿ}'olor‘‰ffŽ“mpŽ‘Dn¬(‘ª¨);Ž¡‘µ=°‘ÿý¬[²LDF‘T2002.09.25.¬]Ž‘T7Curren¸ãtly‘ÿ*ª,–UUthis“function“doGes“nothing“if“I'm“using“all“of“the“colors.‘o°µ=Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´"\n%%%® ´End® ´of® ´Color® Ž‘kÆÜ´definitions.\n\n"ޒŬ;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­153.– üNamespace‘ :Colors.“¬Here–'(I‘'can“put“either“°h›ª¨¬Ma‘Ž8jor“­ColorsŽ‘(@¯156˜°i“¬or“°h˜¬All“­ColorsŽ‘(@¯0˜°i“¬in¸ãto“°h˜¬DeclareŽ¡­namespaceŽ‘9‡ÀColorsŽ‘^ ž¯153‘ª¨°i¬,›?&and–9›commen¸ãt“out“the“other,˜depGending“on“what“I‘9”w•¸ãan“t.‘h‰This›9›prev“en“ts˜toGo˜m“uc“hŽ¡unneeded–cošGde“from“b˜eing“pro˜cessed.‘[V°h›ª¨¬All“­ColorsŽ‘(*Þ¯0˜°i“¬is“vš¸ãery“long,‘xso“I‘ïneither“w˜an˜t“to“compile“it,‘xwrite“theŽ¡­externŽ‘#ôí¬declarations–,lfrom“it“to“®colors.h¬,›4›nor“prin¸ãt“out“the“coGde“when“I‘,brun“®cweave¬,˜unless“I‘,breally“w•¸ãan“t‘,ltoŽ¡use‘UUit.‘qÇ[²LDF‘T2002.09.25.¬]ŽŽ¦°h–ª¨¬Declare‘UU­namespaceŽ‘<øÏColorsŽ‘b­¯153“°i‘ÇŽ¡‘ +h–ª¨¬Ma‘Ž8jor‘UU­ColorsŽ›(n3¯156“°i‘µ=°“h“¬All‘UU­ColorsŽ˜¯0“°i‘ÿýµ=ޤ ¯This–ÕXcoµ;‘ª¨¬173ŽŽ–ª«µ;‘ª¨¬255ŽŽ“µ;‘ª¨¬47ŽŽ‘ ªª);‘µ=°‘ÿý¬Orange.‘o°µ=Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±or‘ÿ}'angeŽ’“ð”¬(´"orange"Ž‘*†Pµ;‘ª¨¬255ŽŽ–ª«µ;‘ª¨¬165ŽŽ“µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±trueŽ‘o@¬);‘µ=°‘ÿý¬Violet.‘o°µ=Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±violetޒޤ€¬(´"violet"Ž‘*†Pµ;‘ª¨¬238ŽŽ–ª«µ;‘ª¨¬130ŽŽ“µ;‘ª¨¬238ŽŽ“µ;‘ª¨±trueŽ‘o@¬);Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±purpleŽ’’&¢¬(´"purple"Ž‘*†Pµ;‘ª¨¬160ŽŽ–ª«µ;‘ª¨¬32ŽŽ‘ ªªµ;‘ª¨¬240ŽŽ“µ;‘ª¨±trueŽ‘o@¬);Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±blue‘‰ffŽ‘®violetŽ’£qÕ¬(´"blue_violet"Ž‘DÆAµ;‘ª¨¬138ŽŽ–ª«µ;‘ª¨¬43ŽŽ‘ ªªµ;‘ª¨¬226ŽŽ“);‘µ=°‘ÿý¬Green.‘o°µ=Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±yel‘‚Ølow‘‰ffŽ‘®gr–ÿ}'e“enŽ’¬U׬(´"yellow_green"Ž‘J>µ;‘ª¨¬154ŽŽ–ª«µ;‘ª¨¬205ŽŽ“µ;‘ª¨¬50ŽŽ‘ ªª);Ž¡‘µ=°‘ÿý¬\Un•¸ãbun“t"–UUColors“(blacš¸ãks,“whites,“and“gra˜ys).‘o°µ=Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±blackŽ’ŒûA¬(´"black"Ž‘%FSµ;‘ª¨¬0Ž–ª©µ;‘ª¨¬0Ž“µ;‘ª¨¬0Ž“µ;‘ª¨±trueŽ‘o@¬);Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±whiteŽ’ï,¬(´"white"Ž‘%FSµ;‘ª¨¬255ŽŽ–ª«µ;‘ª¨¬255ŽŽ“µ;‘ª¨¬255ŽŽ“µ;‘ª¨±trueŽ‘o@¬);Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±gr‘ÿ}'ayŽ’‰˜j¬(´"gray"Ž‘ Vµ;‘ª¨¬192ŽŽ–ª«µ;‘ª¨¬192ŽŽ“µ;‘ª¨¬192ŽŽ“);Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±light‘‰ffŽ‘®gr‘ÿ}'ayŽ’ŸîG¬(´"light_gray"Ž‘?†Dµ;‘ª¨¬211ŽŽ–ª«µ;‘ª¨¬211ŽŽ“µ;‘ª¨¬211ŽŽ“);Ž¡‘µ=°‘ð6¬Defaults.‘l…[²LDF‘T2002.09.27.¬]Ž‘SdøNote–EŽthat“±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘:Ái¬,‘Hµ±help‘‰ffŽ‘®c‘ÿ}'olorŽ‘2H·¬and“±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘PÏt¬are“pGoin¸ãtersŽ¡‘(and–Óthat“±default‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ‘YEŬis“a“plain“­ColorŽ‘Ïq¬.‘ñ@It“can“bGe“used“to“access“the“original“bac¸ãkgroundŽ¡‘(color–UU(currenš¸ãtly“white),“if“the“user“pGoin˜ts“the“±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘Pï¬at“some“other“­ColorŽ‘¤ó¬.‘o°µ=Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím±default‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ’È3Œ¬(´"default_background"Ž‘i†,µ;‘ª¨¬255ŽŽ–ª«µ;‘ª¨¬255ŽŽ“µ;‘ª¨¬255ŽŽ“µ;‘ª¨±trueŽ‘o@¬);Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím°Ž‘zín±default‘‰ffŽ‘®c‘ÿ}'olorŽ’µ0a¬=‘Ç&Ž‘ +Ž6±blackŽ‘!œ +¬;Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím°Ž‘zín±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ’ÇøÞ¬=‘Ç&Ž‘ +Ž6±default‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ‘\ÔU¬;Ž¡‘­externŽ‘8ØconstŽ‘VHzColorŽ‘uím°Ž‘zín±help‘‰ffŽ‘®c‘ÿ}'olorŽ’©nú¬=‘Ç&Ž‘ +Ž6±gr–ÿ}'e“enŽ‘"sC¬;‘µ=°‘ÿý¬LDF‘UU2002.10.26.‘qÇAdded.‘o°µ=Ž¡‘=°‘7¬[²LDF‘T2002.09.25.¬]Ž‘T«!!‘{uTO›XŽDO:‘X±default‘‰ffŽ‘®b–ÿ}'ackgr“oundŽ‘X÷=¬is–Xa“con•¸ãv“enience,‘Y^in–Xcase“I˜cš¸ãhange“\bac˜kground"Ž¡‘(in–S8the“MET›ÿ*ªAPOST‘S7coGde.‘qChec¸ãk“MET˜APOST–S7došGcumen¸ãtation!!‘qI“b˜eliev¸ãe–S8it“has“something“similar.Ž¡‘(°µ=ŽŽŽŒ‹,V? Šn ý‘ì¬44›¯INTERNAL–ÕX(WITH“INITIALIZA‘ÿJªTION)’Ç£é3DLDF-1.1.5.1˜°x¬156Ž €n ý•@P‘ +°gޤ ¯This–ÕXco§¬;Ž¡‘­externŽ‘8ØColorŽ‘WÂ˰Ž‘\Â̱help‘‰ffŽ‘®c‘ÿ}'olorŽ’ˆ}@¬;‘µ=°‘ÿý¬LDF‘UU2002.10.26.‘qÇAdded.‘o°µ=Ž¡‘­externŽ‘8ØColorŽ‘WÂ˰Ž‘\Â̱b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ’§$¬;Ž¡‘ +°gޤ ¯This–ÕXco‘¬declaration‘@¯154˜°iŽ¡¬abGo•¸ãv“e.Ž¡‘ +´@Ž‘Æf¬i–UU®colall.web“¬(Commen¸ãted“out).ަ­159.‘ üGlobal‘ÕTconstan®9ts.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.26.¬]Ž‘Y;Added‘UU±help‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘L®(¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Global‘UUconstan¸ãts‘@¯22“°i‘Ǭ+°ޤ ‘ +­namespaceŽ‘C£{ColorsŽ‘gѪ°fŽ¡‘­externŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò°h­constŽ‘*¢ColorŽ‘=Ï•°Ž‘BÏ–i‘UU±default‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘Xo¬(1Ž‘µ;‘ª¨±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘9&ƒ¬);ŽŽŽŒ‹-op Šn ý‘ì°x¬159–¯3DLDF-1.1.5.1’UGLOBAL‘ÕXCONST‘ÿJªANTS“¬45Ž €n ý•@P‘­externŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò°h­constŽ‘*¢ColorŽ‘=Ï•°Ž‘BÏ–i‘UU±help‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘L®(¬(1Ž‘µ;‘ª¨±help‘‰ffŽ‘®c‘ÿ}'olorŽ‘-e¬);ޤ ‘µ=°‘ÿý¬LDF‘UU2002.10.26.‘qÇAdded.‘o°µ=Ž¡‘­externŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò°h­constŽ‘*¢ColorŽ‘=Ï•°Ž‘BÏ–i‘UU±b–ÿ}'ackgr“ound‘‰ffŽ›®c“olor‘‰ffŽ˜ve“ctorŽ‘k8 ¬(1Ž‘µ;‘ª¨±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘Kï¬);Ž¡‘ +°gŽ©­160.ŽŸ°h‘ª¨­externŽ‘%È~¬global–UUconstan¸ãt“declarations‘@¯160‘ª¨°i‘ÇŽ¡‘ +­namespaceŽ‘C£{ColorsŽ‘gѪ°fŽ¡‘­externŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò°h­constŽ‘*¢ColorŽ‘=Ï•°Ž‘BÏ–i‘UU±default‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘Xo¬;Ž¡‘­externŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò°h­constŽ‘*¢ColorŽ‘=Ï•°Ž‘BÏ–i‘UU±help‘‰ffŽ–®c›ÿ}'olor‘‰ffŽ“ve˜ctorŽ‘L®(¬;‘µ=°‘ÿý¬LDF‘UU2002.10.26.‘qÇAdded.‘o°µ=Ž¡‘­externŽ‘8ØconstŽ‘VHzv®9ectorŽ‘uò°h­constŽ‘*¢ColorŽ‘=Ï•°Ž‘BÏ–i‘UU±b–ÿ}'ackgr“ound‘‰ffŽ›®c“olor‘‰ffŽ˜ve“ctorŽ‘k8 ¬;Ž¡‘ +°gŽŸ ¯This–ÕXcoÅH¯95“°iŽ¡‘ +h–ª¨¬Declare‘UU­namespaceŽ‘<øÏColorsŽ‘b­¯153“°iŽ¡‘ +h–ª¨¬De ne‘UU­ColorŽ‘"úH¬functions‘@¯98“°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­ColorŽ‘#ä÷¯112˜°iŽ¡‘ +h›ª¨¬De ne–UUnon-mem¸ãbGer“non-template“functions“for“­ColorŽ‘#ä÷¯148˜°iŽ¡‘ +h–ª¨¬Global‘UUconstan¸ãts‘@¯22“°iŽŽŽŒ‹.~Ä Šn ý‘ì¬46›¯PUTTING–ÕX­COLOR“¯TOGETHER’ÖBÂ3DLDF-1.1.5.1˜°x¬163Ž €n ý•@P­163.‘ ü¬This–UUis“written“to“®colors.h¬.Ž©ëî°h‘ª¨´colors.hŽ‘5°ù¯163‘ª¨°i‘Çޤ ‘ +h–ª¨¬De ne‘UU­classŽ‘5¦ColorŽ‘>ÅH¯95“°iŽ¡‘ +h‘ª¨­externŽ‘%È~namespaceŽ‘_køColorsŽ’ƒš'¬declaration‘@¯154‘ª¨°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­ColorŽ‘#ä÷¯112˜°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“non-template“functions“for“­ColorŽ‘#ä÷¯147˜°iŽ¡‘ +h‘ª¨­externŽ‘%È~¬global–UUconstan¸ãt“declarations‘@¯160‘ª¨°iŽŸ­164.– üT‘ÿ +«ransformations“(®transform.web­).ŽŸ&Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.11.12.¬]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.Ž¡‘ +[²LDF‘T2003.12.10.¬]Ž‘YQ‘Put–ž«the“vš¸ãersion“con˜trol“iden˜ti ers“bac˜k“in˜to“m˜y“release“v˜ersions“for“3DLDF‘ž™1.1.4.‘MÊI'v˜eŽ¡already–"¯put“some“of“them“bacš¸ãk“in,‘,Ñno˜w“I'm“doing“the“rest“of“them.‘`åHo˜w˜ev˜er,‘,Ñthe“release“v˜ersions“are“no˜w“inŽ¡their–UUoš¸ãwn“R˜CS“repGository‘ÿ*ª.ŽŸŸüÈ„`ÕÁGŽŽ¦°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘Ǭ+°Ž¡‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´transfor.web,vŽ‘kÆÜ® ´1.5® ´2004/01/12® ´21:3Ž’ÔÆ 3:44® ´lfinsto1® ´Exp® ´$"Ž’>L̬;ŽŸ­165.‘ üInclude‘ÕT les.ަ°h–ª¨¬Include‘UU les‘@¯6“°i‘Ǭ+°Ž¡¬#­includeŽ‘'Ø~´"loader.h"ŽŽ¡¬#­includeŽ‘'Ø~´"pspglb.h"ŽŽ¡¬#­includeŽ‘'Ø~´"io.h"ŽŽ¡¬#­includeŽ‘'Ø~´"colors.h"ŽŽŸ­166.› üT‘ÿ +«ransform–class“de nition.˜¬The‘œ­T‘ÿ +«ransformŽ‘:¤µ¬class–œhas“a“4–¿o°“¬4–œtransformation“matrix“as“its“onlyŽ¡data–I—memš¸ãbGer“and“a“n˜um˜bGer“of“mem˜bGer“functions.‘mÝ­P•®9oin“tsŽ‘$‘a¬,‘Kð­PicturesŽ‘-q9¬,‘Kðand“±F‘ÿ;¼o‘ÿ}'cusesŽ‘)¬con˜tain“­T‘ÿ +«ransformsŽ‘?ç¬asŽ¡data‘UUmem¸ãbGers.Ž¡‘ +!!‘qÇRemem¸ãbGer–UUto“add“items“to“­opQÇeratorŽ‘.ì +¬=Ž‘6³((‘ª¨)“if“if“I“add“them“to“the“class“de nition“here.ŽŸ&Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.04.¬]Ž‘YŠÛRemo•¸ãv“ed‘×õ­friendŽ‘%ÁO¬declaration–×õfor“­F‘ÿ +«oQÇcusŽ‘ ÍA¬.‘ù¦I'v¸ãe“added“±set‘‰ffŽ‘®elementŽ‘6x̬(›ª®)“and“±get‘‰ffŽ‘®elementŽ‘6û£¬(˜),Ž¡whic¸ãh–UUare“used“in“the“­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions,“so“the“latter“need“no“longer“bGe“a“­friendŽ‘$¼¬of“­T‘ÿ +«ransformŽ‘7ÈÒ¬.ŽŸŸüÈ„`ÕÁGŽŽ¦‘ +­formatŽ‘3c(±T‘ÿ;¼r‘ÿ}'ansformŽ‘j|ÎintŽŽ¦°h–ª¨¬De ne‘UU­classŽ‘5¦T‘ÿ +«ransformŽ‘Vé'¯166“°i‘ÇŽ¡‘ +­classŽ‘$àRT‘ÿ +«ransformŽ‘\©$°fŽ¡‘­friendŽ‘5f¼classŽ‘PG P•®9oin“tŽ‘káU¬;Ž¡‘­MatrixŽ‘;({±matrixŽ‘Yh¬;‘µ=°‘EN¬When–š¦I'vš¸ãe“got“things“w˜orking,‘«ûI‘š•can“try“to“optimize“use“of“storage“b˜y“notŽ¡‘(storing–dthe“parts“of“the“matrix“that“I‘d +don't“need.‘òThis“is“a“little“complicated,‘g¼bGecause“the“ro¸ãw“orŽ¡‘(column–UUwhicš¸ãh“isn't“needed“di ers“bGet˜w˜een“the“ane“and“p•Gersp“ectiv˜e‘UUtransformations.‘o°µ=ަ‘ +­publicŽ‘)=Ö¬:‘°h–ª¨¬Declare‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯168“°iŽ¡‘ +g¬;ŽŸ ëî¯This–ÕXcos~¬(‘ª®);ޤ ¯See–´?also“sections“170,–ºÝ172,“174,“176,“178,“180,“182,“185,“187,“190,“192,“195,“197,“200,“202,“203,“205,“211,“212,“213,“216,“218,“221,ŽŸ +‘223,–ÕX226,“and“232.Ž¡This–ÕXcos~¬(­realŽ‘³.µrŽ‘}B¬);Ž¡­171.ŽŸ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘?s‚¬::‘­T‘ÿ +«ransformŽ‘5s¬(­realŽ‘³.µrŽ‘}B¬)ަ‘ +°fަ‘­forŽ‘%般(­in®9tŽ‘¤÷µiŽ‘Þ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)ަ‘­forŽ‘/艬(­in®9tŽ‘¤÷µjޑӬ=‘Ç0Ž–Ç;‘ÿýµjŽ‘ wÙ<‘Ǭ4Ž“;‘ÿýµjŽ‘ +0ÁŸÿ³+‘ÿ+ŽŽ‘÷á¬)‘±matrixŽ‘#?›¬[µiŽ‘qô¬][µjŽ‘°Ä¬]–Ç=“µrŽ‘‘,¬;ަ‘ +°gŽ¡­172.› üConstructor–0&with“16“real“argumen®9ts.˜¬[²LDF‘T2002.09.06.¬]Ž‘[µËAdded–‚êthis“constructor.‘ú‡This“con-ަstructor–UUmak¸ães“it“pšGossible“to“sp˜ecify“all“of“the“elemen¸ãts“of“±matrixŽ‘!”ð¬.ŽŸ°h–ª¨¬Declare‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯168“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘>s~¬(­realŽ‘Í’±r0‘‰ffŽ‘®0Ž‘*ÉÚµ;‘ª¨­realŽ‘x:±r0‘‰ffŽ‘®1Ž–,t‚µ;‘ª¨­realŽ‘x:±r0‘‰ffŽ‘®2Ž“µ;‘ª¨­realŽ‘x:±r0‘‰ffŽ‘®3Ž“µ;‘ª¨­realŽ‘x:±r1‘‰ffŽ‘®0Ž“µ;‘ª¨­realŽ‘x:±r1‘‰ffŽ‘®1Ž“µ;‘ª¨­realŽ‘x:±r1‘‰ffŽ‘®2Ž“µ;‘ª¨­realŽ‘x:±r1‘‰ffŽ‘®3Ž“µ;‘ª¨­realŽŽ¦‘±r2‘‰ffŽ‘®0Ž‘1üKµ;‘ª¨­realŽ‘]Ö±r2‘‰ffŽ‘®1Ž–,Zµ;‘ª¨­realŽ‘]Ö±r2‘‰ffŽ‘®2Ž“µ;‘ª¨­realŽ‘]Ö±r2‘‰ffŽ‘®3Ž“µ;‘ª¨­realŽ‘]Ö±r3‘‰ffŽ‘®0Ž“µ;‘ª¨­realŽ‘]Ö±r3‘‰ffŽ‘®1Ž“µ;‘ª¨­realŽ‘]Ö±r3‘‰ffŽ‘®2Ž“µ;‘ª¨­realŽ‘]Ö±r3‘‰ffŽ‘®3Ž“¬);ŽŽŽŒ‹0“r Šn ý‘ì¬48‘¯CONSTRšÃŽUCTOR–ÕXWITH“16“­REAL“¯AR˜GUMENTS’—­€3DLDF-1.1.5.1‘°x¬173Ž €n ý•@P­173.Ž©°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ޤ ‘ +­T‘ÿ +«ransformŽ‘?s‚¬::‘­T‘ÿ +«ransformŽ‘5s¬(­realŽ‘UN±r0‘‰ffŽ‘®0Ž‘*Q–µ;‘ª¨­realŽ‘ÿö±r0‘‰ffŽ‘®1Ž–+ü>µ;‘ª¨­realŽ‘ÿö±r0‘‰ffŽ‘®2Ž“µ;‘ª¨­realŽ‘ÿö±r0‘‰ffŽ‘®3Ž“µ;‘ª¨­realŽ‘ÿö±r1‘‰ffŽ‘®0Ž“µ;‘ª¨­realŽ‘ÿö±r1‘‰ffŽ‘®1Ž“µ;‘ª¨­realŽ‘ÿö±r1‘‰ffŽ‘®2Ž“µ;‘ª¨­realŽŽ¡‘2±r1‘‰ffŽ‘®3Ž‘EüMµ;‘ª¨­realŽ‘]Ö±r2‘‰ffŽ‘®0Ž–,Zµ;‘ª¨­realŽ‘]Ö±r2‘‰ffŽ‘®1Ž“µ;‘ª¨­realŽ‘]Ö±r2‘‰ffŽ‘®2Ž“µ;‘ª¨­realŽ‘]Ö±r2‘‰ffŽ‘®3Ž“µ;‘ª¨­realŽ‘]Ö±r3‘‰ffŽ‘®0Ž“µ;‘ª¨­realŽ‘]Ö±r3‘‰ffŽ‘®1Ž“µ;‘ª¨­realŽ‘]Ö±r3‘‰ffŽ‘®2Ž“µ;‘ª¨­realŽ‘]Ö±r3‘‰ffŽ‘®3Ž“¬)Ž¡‘ +°fŽ¡‘±matrixŽ‘2?¬[0Ž–][0Ž“]–Ç=“±r0‘‰ffŽ‘®0Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[0Ž–][1Ž“]–Ç=“±r0‘‰ffŽ‘®1Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[0Ž–][2Ž“]–Ç=“±r0‘‰ffŽ‘®2Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[0Ž–][3Ž“]–Ç=“±r0‘‰ffŽ‘®3Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[1Ž–][0Ž“]–Ç=“±r1‘‰ffŽ‘®0Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[1Ž–][1Ž“]–Ç=“±r1‘‰ffŽ‘®1Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[1Ž–][2Ž“]–Ç=“±r1‘‰ffŽ‘®2Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[1Ž–][3Ž“]–Ç=“±r1‘‰ffŽ‘®3Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[2Ž–][0Ž“]–Ç=“±r2‘‰ffŽ‘®0Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[2Ž–][1Ž“]–Ç=“±r2‘‰ffŽ‘®1Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[2Ž–][2Ž“]–Ç=“±r2‘‰ffŽ‘®2Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[2Ž–][3Ž“]–Ç=“±r2‘‰ffŽ‘®3Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[3Ž–][0Ž“]–Ç=“±r3‘‰ffŽ‘®0Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[3Ž–][1Ž“]–Ç=“±r3‘‰ffŽ‘®1Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[3Ž–][2Ž“]–Ç=“±r3‘‰ffŽ‘®2Ž‘Ã`¬;Ž¡‘±matrixŽ‘2?¬[3Ž–][3Ž“]–Ç=“±r3‘‰ffŽ‘®3Ž‘Ã`¬;Ž¡‘ +°gŽŸ­174.– üAssignmen®9t.“¬Sets‘f±matrixŽ›%`g¬to–fbGe“iden¸ãtical“to“the“±matrixŽ˜¬of“another“­T‘ÿ +«ransformŽ‘8ã¬.–"û!!“Remem¸ãbGer‘ftoŽ¡add–UUitems“here“if“I“add“them“to“the“class“de nition.ަ°h–ª¨¬Declare‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯168“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓopQÇeratorŽ‘m_ˆ¬=Ž‘u&¦(­constŽ‘*¢T‘ÿ +«ransformŽ‘Uót¬&Ž‘]º’µtŽ‘aW¬);ŽŸ­175.ަ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘w S·‘ÇÏsetwŽ‘I«(7Ž›)–Ç·“Ïsetpr–ÿ}'e“cisionŽ‘6‡ «(3Ž˜)“·“ÏmatrixŽ‘!³«[±iŽ‘qô«][±jŽ‘°Ä«]“·“Ý"È Ý"Ž‘ w«;Ž¡‘·gŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘·gŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ©Â149.– üAne‘2ctransformations.“«[¬LDF‘T2002.10.16.«]Ž‘Yú†The–Ç¥functions“for“the“ane“transformations“all“returnŽ¡a‘TªÂT‘ÿ -«ransformŽ‘;Ñ«represenš¸ãting–Tªthe“transformation,‘TÌnot“·Ž‘T«ÏthisŽ‘@a«.‘qŽThis“mak˜es“it“pGossible“to“c˜hain“expressions“usingŽ¡ÂopQÇeratorŽ‘+–µ·«=ŽŽŽ‘8]Ô(‘ª¨),‘UUe.g.,ަ‘(ÂP•®9oin“tŽ‘Fï¡Ïpt0Ž‘VXÜ«;Ž¡‘(ÂP•®9oin“tŽ‘Fï¡Ïpt1Ž‘VXÜ«(1Ž‘±;‘ª¨«2Ž–ª©±;‘ª¨«3Ž“);Ž¡‘(ÂP•®9oin“tŽ‘Fï¡Ïpt2Ž‘VXÜ«(3Ž‘±;‘ª¨«4Ž–ª©±;‘ª¨«5Ž“);Ž¡‘(ÂT‘ÿ -«ransformŽ‘_ÈÖ±tŽ‘ceH«;Ž¡‘(±tŽ‘+œv:Ïr‘ÿ}'otateŽ‘o>«(90ŽŽ‘ -±;‘ª¨«90ŽŽ– ªª±;‘ª¨«90ŽŽ“);Ž¡‘(Ïpt0Ž‘:0W·«=ŽŽ‘I¾ŽÏpt1Ž‘[îá·«=ŽŽ‘k}Ïpt2Ž‘}­k·«=ŽŽ’;¢±tŽ’Ø«;ަÏpt0Ž‘i;«,‘UUÏpt1Ž‘¾«,–UUand“Ïpt2Ž‘å«are“all“rotated“90Ÿü^ÿóO!â…cmsy7ºŽ‘î9«around“the“x,“y‘ÿ*ª,“and“z-axes.ަÂ150.‘ üScale.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.15.«]Ž‘XÁBUG‘FIX:–-If“the“absolute“v‘ÿqÇalue“of“an“argumenš¸ãt“is“±<“ÏepsilonŽ‘"}1«(‘ª®),‘ithe“argumen˜t“is“no˜w“setŽ¡to–§Ç0“instead“of“1.‘iSetting“it“to“1“causes“no“scaling“to“takš¸ãe“place,‘¼cwhic˜h“is“not“the“e ect“of“m˜ultiplying“theŽ¡corresp•Gonding›UUco“ordinate˜b•¸ãy˜a˜n“um“bGer˜of˜v“ery˜small˜magnitude.Ž¡‘ -[¬LDF‘T2003.03.25.«]Ž‘Y;BUG–UUFIX:“Fixed“conditional“that“tests“whether“all“the“argumen¸ãts“are“1.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­124“·i‘Ç«+·ŽŸ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏsc‘ÿ}'aleŽ‘W}Å«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç1Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç1Ž“);ŽŽŽŒ‹+Úè Šn ý‘ì·x«151–­3DLDFPRÃŽG’KrESCALE“«43Ž €n ý•@PÂ151.Ž©·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ +«ransformŽ‘w S°‘DZsetwŽ‘I¬(7Ž›)–ǰ“±setpr–ÿ}'e“cisionŽ‘6‡ ¬(3Ž˜)“°“±matrixŽ‘!³¬[µiŽ‘qô¬][µjŽ‘°Ä¬]“°“´"® ´"Ž‘ w¬;Ž¡‘°gŽ¡‘±c‘ÿ}'outŽ‘4 R°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘°gŽ¡‘±c‘ÿ}'outŽ‘* Q°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ©­194.– üAne‘2ctransformations.“¬[²LDF‘T2002.10.16.¬]Ž‘Yú†The–Ç¥functions“for“the“ane“transformations“all“returnŽ¡a‘Tª­T‘ÿ +«ransformŽ‘;Ѭrepresenš¸ãting–Tªthe“transformation,‘TÌnot“°Ž‘T«±thisŽ‘@a¬.‘qŽThis“mak˜es“it“pGossible“to“c˜hain“expressions“usingŽ¡­opQÇeratorŽ‘+–µ°¬=ŽŽŽ‘8]Ô(‘ª¨),‘UUe.g.,ަ‘(­P•®9oin“tŽ‘Fpt0Ž‘VXܬ;Ž¡‘(­P•®9oin“tŽ‘Fpt1Ž‘VXܬ(1Ž‘µ;‘ª¨¬2Ž–ª©µ;‘ª¨¬3Ž“);Ž¡‘(­P•®9oin“tŽ‘Fpt2Ž‘VXܬ(3Ž‘µ;‘ª¨¬4Ž–ª©µ;‘ª¨¬5Ž“);Ž¡‘(­T‘ÿ +«ransformŽ‘_ÈÖµtŽ‘ceH¬;Ž¡‘(µtŽ‘+œv:±r‘ÿ}'otateŽ‘o>¬(90ŽŽ‘ +µ;‘ª¨¬90ŽŽ– ªªµ;‘ª¨¬90ŽŽ“);Ž¡‘(±pt0Ž‘:0W°¬=ŽŽ‘I¾Ž±pt1Ž‘[îá°¬=ŽŽ‘k}±pt2Ž‘}­k°¬=ŽŽ’;¢µtŽ’Ø¬;ަ±pt0Ž‘i;¬,‘UU±pt1Ž‘¾¬,–UUand“±pt2Ž‘å¬are“all“rotated“90Ÿü^ÿó O!â…cmsy7¶Ž‘î9¬around“the“x,“y‘ÿ*ª,“and“z-axes.ަ­195.‘ üScale.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.15.¬]Ž‘XÁBUG‘FIX:–-If“the“absolute“v‘ÿqÇalue“of“an“argumenš¸ãt“is“µ<“±epsilonŽ‘"}1¬(‘ª®),‘ithe“argumen˜t“is“no˜w“setŽ¡to–§Ç0“instead“of“1.‘iSetting“it“to“1“causes“no“scaling“to“takš¸ãe“place,‘¼cwhic˜h“is“not“the“e ect“of“m˜ultiplying“theŽ¡corresp•Gonding›UUco“ordinate˜b•¸ãy˜a˜n“um“bGer˜of˜v“ery˜small˜magnitude.Ž¡‘ +[²LDF‘T2003.03.25.¬]Ž‘Y;BUG–UUFIX:“Fixed“conditional“that“tests“whether“all“the“argumen¸ãts“are“1.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯168“°i‘Ǭ+°ŽŸ ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±sc‘ÿ}'aleŽ‘W}Ŭ(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç1Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç1Ž“);ŽŽŽŒ‹5É’ Šn ý‘ì°x¬196–¯3DLDF-1.1.5.1’Bþ¯SCALE“¬53Ž €n ý•@P­196.Ž©°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ޤ ‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘w«(ÂrealŽ‘³.ÏxyŽ‘!—±;‘ª¨ÂrealŽ‘]ÖÏxzŽ‘"Õ¨±;‘ª¨ÂrealŽ‘]ÖÏyxŽ‘#“„±;‘ª¨ÂrealŽ‘]ÖÏyzŽ‘# ±;‘ª¨ÂrealŽ‘]ÖÏzxŽ‘"ÏA±;‘ª¨ÂrealŽ‘]ÖÏzyŽ‘"´ð«)Ž¡‘ -·fŽ¡‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;Ž¡‘ÂrealŽ‘*³0ÏepsŽ‘<œ -«=‘ÇÏepsilonŽ‘"6«(‘ª¨);ަ‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(ÏxyŽ‘ -ãç«)–DZ<“ÏepsŽ‘èÚ«)‘ÏxyŽ‘ªÿ«=“0Ž‘Ç;Ž¡‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(ÏxzŽ‘ -wÒ«)–DZ<“ÏepsŽ‘èÚ«)‘ÏxzŽ‘>ê«=“0Ž‘Ç;Ž¡‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(ÏyxŽ‘ 5®«)–DZ<“ÏepsŽ‘èÚ«)‘ÏyxŽ‘üÆ«=“0Ž‘Ç;Ž¡‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(ÏyzŽ‘ -¯H«)–DZ<“ÏepsŽ‘èÚ«)‘ÏyzŽ‘v`«=“0Ž‘Ç;Ž¡‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(ÏzxŽ‘ -qk«)–DZ<“ÏepsŽ‘èÚ«)‘ÏzxŽ‘8ƒ«=“0Ž‘Ç;Ž¡‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(ÏzyŽ‘ -W«)–DZ<“ÏepsŽ‘èÚ«)‘ÏzyŽ‘2«=“0Ž‘Ç;Ž¡‘ÂifŽ‘´ú«(ÏxyŽ‘ ªÿ·‘Ç«0Ž– ÿù·^‘8àÏxzŽ‘wÊ·‘Ç«0Ž“·^‘8àÏyxŽ‘5¦·‘Ç«0Ž“·^‘8àÏyzŽ‘¯@·‘Ç«0Ž“·^‘8àÏzxŽ‘qc·‘Ç«0Ž“·^‘8àÏzyŽ‘W·‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘8Ôð·‘GÝ"WARNING!È ÝInÈ ÝTransfoŽ‘q rm::shear():\n"Ž’È„·Ž¡‘2Ý"AllÈ ÝargumentsÈ ÝareÈ Ý0Ž’šÿÉ.È ÝReturningÈ ÝidentitŽ’ÿyÈ Ýtransformation."Ž’eÌ×·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½±tŽ‘Eƒ/«;Ž¡‘·gŽ¡‘±tŽ‘œt:ÏmatrixŽ‘?›«[1Ž–][0Ž“]–Ç=“ÏxyŽ‘ ªÿ«;Ž¡‘±tŽ‘œt:ÏmatrixŽ‘?›«[2Ž–][0Ž“]–Ç=“ÏxzŽ‘ >ê«;Ž¡‘±tŽ‘œt:ÏmatrixŽ‘?›«[0Ž–][1Ž“]–Ç=“ÏyxŽ‘ üÆ«;Ž¡‘±tŽ‘œt:ÏmatrixŽ‘?›«[2Ž–][1Ž“]–Ç=“ÏyzŽ‘ v`«;Ž¡‘±tŽ‘œt:ÏmatrixŽ‘?›«[0Ž–][2Ž“]–Ç=“ÏzxŽ‘ 8ƒ«;Ž¡‘±tŽ‘œt:ÏmatrixŽ‘?›«[1Ž–][2Ž“]–Ç=“ÏzyŽ‘ 2«;Ž¡‘(·Ž‘ÏthisŽ‘ë·«)‘Ç·«=ŽŽ‘UO±tŽ‘ñÁ«;Ž¡‘Ïcle‘ÿ}'anŽ‘+A„«(‘ª®);Ž¡‘ÂreturnŽ‘7æ¼±tŽ‘;ƒ.«;Ž¡‘ -·gޤÂ154.– üShift.“«(T‘ÿ*ªranslation.)Ž¡Â155.‘ üreal‘ÕTargumen®9ts.ަ·h–ª¨«Declare‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­124“·i‘Ç«+·ŽŸ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshiftŽ‘UæP«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç0Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç0Ž“);Ž¡Â156.ަ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ +«ransformŽ‘w¬(­realŽ‘³.±xyŽ‘!—µ;‘ª¨­realŽ‘]Ö±xzŽ‘"Õ¨µ;‘ª¨­realŽ‘]Ö±yxŽ‘#“„µ;‘ª¨­realŽ‘]Ö±yzŽ‘# µ;‘ª¨­realŽ‘]Ö±zxŽ‘"ÏAµ;‘ª¨­realŽ‘]Ö±zyŽ‘"´ð¬)Ž¡‘ +°fŽ¡‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;Ž¡‘­realŽ‘*³0±epsŽ‘<œ +¬=‘DZepsilonŽ‘"6¬(‘ª¨);ަ‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±xyŽ‘ +ãç¬)–ǵ<“±epsŽ‘èÚ¬)‘±xyŽ‘ªÿ¬=“0Ž‘Ç;Ž¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±xzŽ‘ +wÒ¬)–ǵ<“±epsŽ‘èÚ¬)‘±xzŽ‘>ê¬=“0Ž‘Ç;Ž¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±yxŽ‘ 5®¬)–ǵ<“±epsŽ‘èÚ¬)‘±yxŽ‘üƬ=“0Ž‘Ç;Ž¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±yzŽ‘ +¯H¬)–ǵ<“±epsŽ‘èÚ¬)‘±yzŽ‘v`¬=“0Ž‘Ç;Ž¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±zxŽ‘ +qk¬)–ǵ<“±epsŽ‘èÚ¬)‘±zxŽ‘8ƒ¬=“0Ž‘Ç;Ž¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±zyŽ‘ +W¬)–ǵ<“±epsŽ‘èÚ¬)‘±zyŽ‘2¬=“0Ž‘Ç;Ž¡‘­ifŽ‘´ú¬(±xyŽ‘ ªÿ°‘Ǭ0Ž– ÿù°^‘8à±xzŽ‘wʰ‘Ǭ0Ž“°^‘8à±yxŽ‘5¦°‘Ǭ0Ž“°^‘8à±yzŽ‘¯@°‘Ǭ0Ž“°^‘8à±zxŽ‘qc°‘Ǭ0Ž“°^‘8à±zyŽ‘W°‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘8Ôð°‘G´"WARNING!® ´In® ´TransfoŽ‘q rm::shear():\n"Ž’È„°Ž¡‘2´"All® ´arguments® ´are® ´0Ž’šÿÉ.® ´Returning® ´identitŽ’ÿy® ´transformation."Ž’eÌ×°‘DZend‘‚ØlŽ–ò°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½µtŽ‘Eƒ/¬;Ž¡‘°gŽ¡‘µtŽ‘œt:±matrixŽ‘?›¬[1Ž–][0Ž“]–Ç=“±xyŽ‘ ªÿ¬;Ž¡‘µtŽ‘œt:±matrixŽ‘?›¬[2Ž–][0Ž“]–Ç=“±xzŽ‘ >ê¬;Ž¡‘µtŽ‘œt:±matrixŽ‘?›¬[0Ž–][1Ž“]–Ç=“±yxŽ‘ üƬ;Ž¡‘µtŽ‘œt:±matrixŽ‘?›¬[2Ž–][1Ž“]–Ç=“±yzŽ‘ v`¬;Ž¡‘µtŽ‘œt:±matrixŽ‘?›¬[0Ž–][2Ž“]–Ç=“±zxŽ‘ 8ƒ¬;Ž¡‘µtŽ‘œt:±matrixŽ‘?›¬[1Ž–][2Ž“]–Ç=“±zyŽ‘ 2¬;Ž¡‘(°Ž‘±thisŽ‘ë·¬)‘ǰ¬=ŽŽ‘UOµtŽ‘ñÁ¬;Ž¡‘±cle‘ÿ}'anŽ‘+A„¬(‘ª®);Ž¡‘­returnŽ‘7æ¼µtŽ‘;ƒ.¬;Ž¡‘ +°gޤ­199.– üShift.“¬(T‘ÿ*ªranslation.)Ž¡­200.‘ üreal‘ÕTargumen®9ts.ަ°h–ª¨¬Declare‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯168“°i‘Ǭ+°ŽŸ ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shiftŽ‘UæP¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç0Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç0Ž“);Ž¡­201.ަ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ޤ ‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘w“ÏepsŽ‘èÚ«)“?“±xŽ‘ EL«:“0Ž‘Ç;Ž¡‘±tŽ‘œt:ÏmatrixŽ‘?›«[3Ž–][1Ž“]–Ç=“(ÏfabsŽ‘2Ò«(±yŽ‘Bø«)“±>“ÏepsŽ‘èÚ«)“?“±yŽ‘ -Ñ(«:“0Ž‘Ç;Ž¡‘±tŽ‘œt:ÏmatrixŽ‘?›«[3Ž–][2Ž“]–Ç=“(ÏfabsŽ‘2Ò«(±zŽ‘«)“±>“ÏepsŽ‘èÚ«)“?“±zŽ‘ -¥N«:“0Ž‘Ç;Ž¡‘±tŽ‘œt:Ïcle‘ÿ}'anŽ‘A‚«(‘ª¨);Ž¡‘(·Ž‘ÏthisŽ‘ë·«)‘Ç·«=ŽŽ‘UO±tŽ‘ñÁ«;Ž¡‘Ïcle‘ÿ}'anŽ‘+A„«(‘ª®);Ž¡‘ÂreturnŽ‘7æ¼±tŽ‘;ƒ.«;Ž¡‘ -·gŽŽŽŒ‹-ì² Šn ý‘ì·x«157›­3DLDFPR•ÃŽG’ ”·ÂPOINT‘ÕX­AR“GUMENT˜«45Ž €n ý•@PÂ157.› üP•®9oin“t‘Àargumen“t.˜«[¬LDF‘T2002.04.24.«]Ž‘\2èAdded–this“function.‘ qÞIt“m¸ãust“bGe“de ned“in“Èpoints.web«,ޤ bšGecause‘UUÂP•®9oin“tŽ‘"Dò«is–UUan“incomplete“t¸ãyp˜e“here.Ž©·h–ª¨«Declare‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­124“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshiftŽ‘UæP«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«);ŽŸÂ158.› üShift–›with“m®9ultiplication.˜«[¬LDF‘T2002.08.22.«]Ž‘Z®¶Added–{Õthis“function.‘åHIt“takš¸ães“ÂrealŽ‘Uƒ«argumen˜ts“andŽ¡mš¸ãultiplies–UUthe“appropriate“elemen˜ts“of“ÏmatrixŽ‘$êE«b˜y“them.ަ·h–ª¨«Declare‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­124“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshift‘‰ffŽ‘®timesŽ‘pµ«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç1Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç1Ž“);ŽŸÂ159.ަ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ +«ransformŽ‘w“±epsŽ‘èÚ¬)“?“µxŽ‘ EL¬:“0Ž‘Ç;Ž¡‘µtŽ‘œt:±matrixŽ‘?›¬[3Ž–][1Ž“]–Ç=“(±fabsŽ‘2Ò¬(µyŽ‘Bø¬)“µ>“±epsŽ‘èÚ¬)“?“µyŽ‘ +Ñ(¬:“0Ž‘Ç;Ž¡‘µtŽ‘œt:±matrixŽ‘?›¬[3Ž–][2Ž“]–Ç=“(±fabsŽ‘2Ò¬(µzŽ‘¬)“µ>“±epsŽ‘èÚ¬)“?“µzŽ‘ +¥N¬:“0Ž‘Ç;Ž¡‘µtŽ‘œt:±cle‘ÿ}'anŽ‘A‚¬(‘ª¨);Ž¡‘(°Ž‘±thisŽ‘ë·¬)‘ǰ¬=ŽŽ‘UOµtŽ‘ñÁ¬;Ž¡‘±cle‘ÿ}'anŽ‘+A„¬(‘ª®);Ž¡‘­returnŽ‘7æ¼µtŽ‘;ƒ.¬;Ž¡‘ +°gŽŽŽŒ‹7Ûb Šn ý‘ì°x¬202–¯3DLDF-1.1.5.1’!!­POINT‘ÕX¯ARÃŽGUMENT“¬55Ž €n ý•@P­202.› üP•®9oin“t‘Àargumen“t.˜¬[²LDF‘T2002.04.24.¬]Ž‘\2èAdded–this“function.‘ qÞIt“m¸ãust“bGe“de ned“in“®points.web¬,ޤ bšGecause‘UU­P•®9oin“tŽ‘"Dò¬is–UUan“incomplete“t¸ãyp˜e“here.Ž©°h–ª¨¬Declare‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯168“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shiftŽ‘UæP¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬);ŽŸ­203.› üShift–›with“m®9ultiplication.˜¬[²LDF‘T2002.08.22.¬]Ž‘Z®¶Added–{Õthis“function.‘åHIt“takš¸ães“­realŽ‘Uƒ¬argumen˜ts“andŽ¡mš¸ãultiplies–UUthe“appropriate“elemen˜ts“of“±matrixŽ‘$êE¬b˜y“them.ަ°h–ª¨¬Declare‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯168“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shift‘‰ffŽ‘®timesŽ‘pµ¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç1Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç1Ž“);ŽŸ­204.ަ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘wÙí±=«180±:«0ŽŽ‘Ç!;‘±=·‘ÿý«Con•¸ãv“ert–UUto“radians.‘o·±=ަ‘ÏssinŽ‘(ì/«=‘ÇÏsinŽ‘Õm«(±xŽ‘·«);ަ‘Ïc–ÿ}'c“osŽ‘)|Á«=‘ÇÏc‘ÿ}'osŽ‘f«(±xŽ‘·«);ަ‘ÂforŽ‘%舫(±iŽ‘9 «=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fަ‘Ïtemp1Ž‘<÷m«=‘Ç(Ït‘‰ffŽ‘®xŽ› [9±:ÏmatrixŽ‘?›«[±iŽ‘qô«][1Ž‘]–8à·“Ïc–ÿ}'c“osŽ‘)“·“«(Ït‘‰ffŽ‘®xŽ˜±:ÏmatrixŽ‘?›«[±iŽ‘qô«][2Ž‘]“·“ÏssinŽ‘]õ«);ަ‘Ïtemp2Ž‘<÷m«=‘Ç(Ït‘‰ffŽ‘®xŽ› [9±:ÏmatrixŽ‘?›«[±iŽ‘qô«][1Ž‘]–8à·“ÏssinŽ‘]õ«)“+“(Ït‘‰ffŽ‘®xŽ˜±:ÏmatrixŽ‘?›«[±iŽ‘qô«][2Ž‘]“·“Ïc–ÿ}'c“osŽ‘);ަ‘Ït‘‰ffŽ‘®xŽ‘+[<±:ÏmatrixŽ‘?›«[±iŽ‘qô«][2Ž‘]–Ç=“(ÏfabsŽ‘2Ò«(Ïtemp2Ž‘0R«)“·“ÏepsŽ‘èÚ«)“?“Ïtemp2Ž‘!¾‚«:“0Ž‘Ç;ަ‘Ït‘‰ffŽ‘®xŽ‘+[<±:ÏmatrixŽ‘?›«[±iŽ‘qô«][1Ž‘]–Ç=“(ÏfabsŽ‘2Ò«(Ïtemp1Ž‘0R«)“·“ÏepsŽ‘èÚ«)“?“Ïtemp1Ž‘!¾‚«:“0Ž‘Ç;ަ‘·gަ‘ -g‘±=·‘ÿýÂifŽ‘_·±=ŽŸÂ163.‘ ü«Rotation–UUaround“the“y-axis.Ž¡·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ަ‘ -ÂifŽ‘´ù«(±yŽ‘ -·6«=‘Ç0Ž‘Ç)‘·f‘±=·‘ÿý«!!‘qÇRevš¸ãersed–UUdirection“of“rotation“bGecause“I“didn't“lik˜e“the“w˜a˜y“it“w˜as.‘o·±=ަ‘yŽ‘ -·«=ŽŽ‘+˜I·Ž‘3_gÝPIŽ‘>eɱ=«180±:«0ŽŽ‘Ç!;ަ‘ÏssinŽ‘(ì/«=‘ÇÏsinŽ‘Õm«(±yŽ‘Bø«);ަ‘Ïc–ÿ}'c“osŽ‘)|Á«=‘ÇÏc‘ÿ}'osŽ‘f«(±yŽ‘Bø«);ަ‘ÂforŽ‘%舫(±iŽ‘9 «=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fަ‘Ïtemp1Ž‘<÷m«=‘Ç(Ït‘‰ffŽ‘®yŽ› @è±:ÏmatrixŽ‘?›«[±iŽ‘qô«][0Ž‘]–8à·“Ïc–ÿ}'c“osŽ‘)“+“(Ït‘‰ffŽ‘®yŽ˜±:ÏmatrixŽ‘?›«[±iŽ‘qô«][2Ž‘]“·“ÏssinŽ‘]õ«);ަ‘Ïtemp2Ž‘<÷m«=‘Ç(·Ž‘ÇÏt‘‰ffŽ‘®yŽ‘±:ÏmatrixŽ›?›«[±iŽ‘qô«][0Ž‘]–8à·“ÏssinŽ‘]õ«)“+“(Ït‘‰ffŽ‘®yŽ‘ @è±:ÏmatrixŽ˜«[±iŽ‘qô«][2Ž‘]“·“Ïc–ÿ}'c“osŽ‘);ަ‘Ït‘‰ffŽ‘®yŽ‘+@ë±:ÏmatrixŽ‘?›«[±iŽ‘qô«][2Ž‘]–Ç=“(ÏfabsŽ‘2Ò«(Ïtemp2Ž‘0R«)“·“ÏepsŽ‘èÚ«)“?“Ïtemp2Ž‘!¾‚«:“0Ž‘Ç;ަ‘Ït‘‰ffŽ‘®yŽ‘+@ë±:ÏmatrixŽ‘?›«[±iŽ‘qô«][0Ž‘]–Ç=“(ÏfabsŽ‘2Ò«(Ïtemp1Ž‘0R«)“·“ÏepsŽ‘èÚ«)“?“Ïtemp1Ž‘!¾‚«:“0Ž‘Ç;ަ‘·gަ‘ -g‘±=·‘ÿýÂifŽ‘_·±=ŽŽŽŒ‹// Šn ý‘ì·x«164›­3DLDFPR•ÃŽG’Ç7wR“OT–ÿJªA“TION–ÕXARÃŽOUND“THE“MAIN“AXES˜«47Ž €n ý•@PÂ164.‘ ü«Rotation–UUaround“the“z-axis.Ž©·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ޤ ‘ -ÂifŽ‘´ù«(±zŽ‘Þ6·6«=‘Ç0Ž‘Ç)‘·fŽ¡‘±zŽ‘Þ8·«=ŽŽ‘+loÝPIŽ‘6rѱ=«180±:«0ŽŽ‘Ç!;Ž¡‘ÏssinŽ‘(ì/«=‘ÇÏsinŽ‘Õm«(±zŽ‘«);Ž¡‘Ïc–ÿ}'c“osŽ‘)|Á«=‘ÇÏc‘ÿ}'osŽ‘f«(±zŽ‘«);Ž¡‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘Ïtemp1Ž‘<÷m«=‘Ç(Ït‘‰ffŽ‘®zŽ› ÔÓ±:ÏmatrixŽ‘?›«[±iŽ‘qô«][0Ž‘]–8à·“Ïc–ÿ}'c“osŽ‘)“·“«(Ït‘‰ffŽ‘®zŽ˜±:ÏmatrixŽ‘?›«[±iŽ‘qô«][1Ž‘]“·“ÏssinŽ‘]õ«);Ž¡‘Ïtemp2Ž‘<÷m«=‘Ç(Ït‘‰ffŽ‘®zŽ› ÔÓ±:ÏmatrixŽ‘?›«[±iŽ‘qô«][0Ž‘]–8à·“ÏssinŽ‘]õ«)“+“(Ït‘‰ffŽ‘®zŽ˜±:ÏmatrixŽ‘?›«[±iŽ‘qô«][1Ž‘]“·“Ïc–ÿ}'c“osŽ‘);Ž¡‘Ït‘‰ffŽ‘®zŽ‘*ÔÖ±:ÏmatrixŽ‘?›«[±iŽ‘qô«][1Ž‘]–Ç=“(ÏfabsŽ‘2Ò«(Ïtemp2Ž‘0R«)“·“ÏepsŽ‘èÚ«)“?“Ïtemp2Ž‘!¾‚«:“0Ž‘Ç;Ž¡‘Ït‘‰ffŽ‘®zŽ‘*ÔÖ±:ÏmatrixŽ‘?›«[±iŽ‘qô«][0Ž‘]–Ç=“(ÏfabsŽ‘2Ò«(Ïtemp1Ž‘0R«)“·“ÏepsŽ‘èÚ«)“?“Ïtemp1Ž‘!¾‚«:“0Ž‘Ç;Ž¡‘·gŽ¡‘ -g‘±=·‘ÿýÂifŽ‘_·±=Ž¡‘ -Ït‘‰ffŽ‘®al‘‚ØlŽ‘ ·«=ŽŽ‘/œùÏt‘‰ffŽ‘®xŽ‘<ø2«;Ž¡‘ -Ït‘‰ffŽ‘®al‘‚ØlŽ‘ ·«=ŽŽ‘/œùÏt‘‰ffŽ‘®yŽ‘<Ýá«;Ž¡‘ -Ït‘‰ffŽ‘®al‘‚ØlŽ‘ ·«=ŽŽ‘/œùÏt‘‰ffŽ‘®zŽ‘Ùíµ=¬180µ:¬0ŽŽ‘Ç!;‘µ=°‘ÿý¬Con•¸ãv“ert–UUto“radians.‘o°µ=ަ‘±ssinŽ‘(ì/¬=‘DZsinŽ‘Õm¬(µxŽ‘·¬);ަ‘±c–ÿ}'c“osŽ‘)|Á¬=‘DZc‘ÿ}'osŽ‘f¬(µxŽ‘·¬);ަ‘­forŽ‘%般(µiŽ‘9 ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fަ‘±temp1Ž‘<÷m¬=‘Ç(±t‘‰ffŽ‘®xŽ› [9µ:±matrixŽ‘?›¬[µiŽ‘qô¬][1Ž‘]–8à°“±c–ÿ}'c“osŽ‘)“°“¬(±t‘‰ffŽ‘®xŽ˜µ:±matrixŽ‘?›¬[µiŽ‘qô¬][2Ž‘]“°“±ssinŽ‘]õ¬);ަ‘±temp2Ž‘<÷m¬=‘Ç(±t‘‰ffŽ‘®xŽ› [9µ:±matrixŽ‘?›¬[µiŽ‘qô¬][1Ž‘]–8à°“±ssinŽ‘]õ¬)“+“(±t‘‰ffŽ‘®xŽ˜µ:±matrixŽ‘?›¬[µiŽ‘qô¬][2Ž‘]“°“±c–ÿ}'c“osŽ‘);ަ‘±t‘‰ffŽ‘®xŽ‘+[<µ:±matrixŽ‘?›¬[µiŽ‘qô¬][2Ž‘]–Ç=“(±fabsŽ‘2Ò¬(±temp2Ž‘0R¬)“°“±epsŽ‘èÚ¬)“?“±temp2Ž‘!¾‚¬:“0Ž‘Ç;ަ‘±t‘‰ffŽ‘®xŽ‘+[<µ:±matrixŽ‘?›¬[µiŽ‘qô¬][1Ž‘]–Ç=“(±fabsŽ‘2Ò¬(±temp1Ž‘0R¬)“°“±epsŽ‘èÚ¬)“?“±temp1Ž‘!¾‚¬:“0Ž‘Ç;ަ‘°gަ‘ +g‘µ=°‘ÿý­ifŽ‘_°µ=ŽŸ­208.‘ ü¬Rotation–UUaround“the“y-axis.Ž¡°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ަ‘ +­ifŽ‘´ù¬(µyŽ‘ +°6¬=‘Ç0Ž‘Ç)‘°f‘µ=°‘ÿý¬!!‘qÇRevš¸ãersed–UUdirection“of“rotation“bGecause“I“didn't“lik˜e“the“w˜a˜y“it“w˜as.‘o°µ=ަ‘yŽ‘ +°¬=ŽŽ‘+˜I°Ž‘3_g´PIŽ‘>eɵ=¬180µ:¬0ŽŽ‘Ç!;ަ‘±ssinŽ‘(ì/¬=‘DZsinŽ‘Õm¬(µyŽ‘Bø¬);ަ‘±c–ÿ}'c“osŽ‘)|Á¬=‘DZc‘ÿ}'osŽ‘f¬(µyŽ‘Bø¬);ަ‘­forŽ‘%般(µiŽ‘9 ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fަ‘±temp1Ž‘<÷m¬=‘Ç(±t‘‰ffŽ‘®yŽ› @èµ:±matrixŽ‘?›¬[µiŽ‘qô¬][0Ž‘]–8à°“±c–ÿ}'c“osŽ‘)“+“(±t‘‰ffŽ‘®yŽ˜µ:±matrixŽ‘?›¬[µiŽ‘qô¬][2Ž‘]“°“±ssinŽ‘]õ¬);ަ‘±temp2Ž‘<÷m¬=‘Ç(°Ž‘DZt‘‰ffŽ‘®yŽ‘µ:±matrixŽ›?›¬[µiŽ‘qô¬][0Ž‘]–8à°“±ssinŽ‘]õ¬)“+“(±t‘‰ffŽ‘®yŽ‘ @èµ:±matrixŽ˜¬[µiŽ‘qô¬][2Ž‘]“°“±c–ÿ}'c“osŽ‘);ަ‘±t‘‰ffŽ‘®yŽ‘+@ëµ:±matrixŽ‘?›¬[µiŽ‘qô¬][2Ž‘]–Ç=“(±fabsŽ‘2Ò¬(±temp2Ž‘0R¬)“°“±epsŽ‘èÚ¬)“?“±temp2Ž‘!¾‚¬:“0Ž‘Ç;ަ‘±t‘‰ffŽ‘®yŽ‘+@ëµ:±matrixŽ‘?›¬[µiŽ‘qô¬][0Ž‘]–Ç=“(±fabsŽ‘2Ò¬(±temp1Ž‘0R¬)“°“±epsŽ‘èÚ¬)“?“±temp1Ž‘!¾‚¬:“0Ž‘Ç;ަ‘°gަ‘ +g‘µ=°‘ÿý­ifŽ‘_°µ=ŽŽŽŒ‹9ðå Šn ý‘ì°x¬209‘¯3DLDF-1.1.5.1’¾ÃáRšÃŽOT–ÿJªA“TION–ÕXAR˜OUND“THE“MAIN“AXES‘¬57Ž €n ý•@P­209.‘ ü¬Rotation–UUaround“the“z-axis.Ž©°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ޤ ‘ +­ifŽ‘´ù¬(µzŽ‘Þ6°6¬=‘Ç0Ž‘Ç)‘°fŽ¡‘µzŽ‘Þ8°¬=ŽŽ‘+lo´PIŽ‘6rѵ=¬180µ:¬0ŽŽ‘Ç!;Ž¡‘±ssinŽ‘(ì/¬=‘DZsinŽ‘Õm¬(µzŽ‘¬);Ž¡‘±c–ÿ}'c“osŽ‘)|Á¬=‘DZc‘ÿ}'osŽ‘f¬(µzŽ‘¬);Ž¡‘­forŽ‘%般(­in®9tŽ‘¤÷µiŽ‘Þ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fŽ¡‘±temp1Ž‘<÷m¬=‘Ç(±t‘‰ffŽ‘®zŽ› ÔÓµ:±matrixŽ‘?›¬[µiŽ‘qô¬][0Ž‘]–8à°“±c–ÿ}'c“osŽ‘)“°“¬(±t‘‰ffŽ‘®zŽ˜µ:±matrixŽ‘?›¬[µiŽ‘qô¬][1Ž‘]“°“±ssinŽ‘]õ¬);Ž¡‘±temp2Ž‘<÷m¬=‘Ç(±t‘‰ffŽ‘®zŽ› ÔÓµ:±matrixŽ‘?›¬[µiŽ‘qô¬][0Ž‘]–8à°“±ssinŽ‘]õ¬)“+“(±t‘‰ffŽ‘®zŽ˜µ:±matrixŽ‘?›¬[µiŽ‘qô¬][1Ž‘]“°“±c–ÿ}'c“osŽ‘);Ž¡‘±t‘‰ffŽ‘®zŽ‘*ÔÖµ:±matrixŽ‘?›¬[µiŽ‘qô¬][1Ž‘]–Ç=“(±fabsŽ‘2Ò¬(±temp2Ž‘0R¬)“°“±epsŽ‘èÚ¬)“?“±temp2Ž‘!¾‚¬:“0Ž‘Ç;Ž¡‘±t‘‰ffŽ‘®zŽ‘*ÔÖµ:±matrixŽ‘?›¬[µiŽ‘qô¬][0Ž‘]–Ç=“(±fabsŽ‘2Ò¬(±temp1Ž‘0R¬)“°“±epsŽ‘èÚ¬)“?“±temp1Ž‘!¾‚¬:“0Ž‘Ç;Ž¡‘°gŽ¡‘ +g‘µ=°‘ÿý­ifŽ‘_°µ=Ž¡‘ +±t‘‰ffŽ‘®al‘‚ØlŽ‘ °¬=ŽŽ‘/œù±t‘‰ffŽ‘®xŽ‘<ø2¬;Ž¡‘ +±t‘‰ffŽ‘®al‘‚ØlŽ‘ °¬=ŽŽ‘/œù±t‘‰ffŽ‘®yŽ‘<Ýá¬;Ž¡‘ +±t‘‰ffŽ‘®al‘‚ØlŽ‘ °¬=ŽŽ‘/œù±t‘‰ffŽ‘®zŽ‘‰ffŠ=Ÿ š‘ƒŽŸü^ÿ®1ŽŽ‘ -«StoGer,‘N¸Josef.›oÏNumerische–ŒLMathematik“1«.˜Ac•¸ãh“te,‘N¸neu›Mb•Gearb“eitete˜und˜erw¸ãeiterte˜Au age.‘oSpringer-V‘ÿ*ªerlag.Ž¡Berlin–UU1999.‘qÇISBN“3-540-66154-9,“page“205.ŽŽŽŒ‹36ã Šn ý‘ì·x«182›­3DLDFPRÃŽG’Â3¾ÂCONST–ÕX­VERSION“(NO“ASSIGNMENT)˜«51Ž €n ý•@PÂ182.ޤ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž© ‘ -ÂT‘ÿ +«ransformŽ‘w‰ffŠ=Ÿ š‘ƒŽŸü^ÿ³1ŽŽ‘ +¬StoGer,‘N¸Josef.›o±Numerische–ŒLMathematik“1¬.˜Ac•¸ãh“te,‘N¸neu›Mb•Gearb“eitete˜und˜erw¸ãeiterte˜Au age.‘oSpringer-V‘ÿ*ªerlag.Ž¡Berlin–UU1999.‘qÇISBN“3-540-66154-9,“page“205.ŽŽŽŒ‹=%ª Šn ý‘ì°x¬227›¯3DLDF-1.1.5.1’¹À(­CONST–ÕX¯VERSION“(NO“ASSIGNMENT)˜¬61Ž €n ý•@P­227.ޤ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž© ‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘w S·‘ÇÝ"matrixÈ Ý=\n"Ž‘BM\«;ަ‘·gަ‘ÂforŽ‘/艫(±iŽ‘9 «=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fަ‘(ÂforŽ‘9芫(±jŽ‘wÜ«=‘Ç0Ž–Ç;‘ÿý±jŽ‘ wÙ<‘Ç«4Ž“;‘ÿý±jŽ‘ -0ÁŸÿ®+‘ÿ+ŽŽ‘÷á«)‘·fަ‘2±tŽ‘5œw:ÏmatrixŽ‘?›«[±iŽ›qô«][±jŽ‘°Ä«]–Ç=“ÏmatrixŽ‘!³«[±iŽ˜«][±jŽ‘°Ä«];ަ‘2ÂifŽ‘=´ý«(ÝDEBUGŽ‘ÆY«)‘·fަ‘<Ïc‘ÿ}'outŽ‘R U·‘ÇÏmatrixŽ‘!³«[±iŽ‘qô«][±jŽ‘°Ä«]–Ç·“Ý"È Ý"Ž‘ w«;ަ‘2·gަ‘(gަ‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘·fަ‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"\n"Ž‘Mt«;ަ‘(·gަ‘gަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fަ‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"\n"Ž‘Mt«;ަ‘(±tŽ‘+œv:ÏshowŽ‘Šÿ«(Ý"t"Ž‘F_«);ަ‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"EnterÈ ÝÈ ÝtoÈ ÝcŽ‘kÆÜontinue.\n\n"Ž’³T5·‘ÇÏ ushŽ‘€«;ަ‘(ÏgetcharŽ‘I&«(‘ª®);ަ‘·gŽ¡‘Âin®9tŽ‘/¤ú±pŽ‘4¬ú«[±nŽ‘š«];Ž¡‘ÂforŽ‘/艫(Âin®9tŽ‘¤÷±jޑӫ=‘Ç0Ž‘Ç;‘ÿý±jŽ‘ wÙ<‘ÇnŽ‘Dz«;‘ÿý±jŽ‘ -0ÁŸÿ®+‘ÿ+ŽŽ‘÷á«)‘±pŽ‘ -«[±jŽ‘°Ä«]–Ç=“±jŽ‘wÜ«;ަ‘ÂforŽ‘/艫(±jŽ‘wÜ«=‘Ç0Ž‘Ç;‘ÿý±jŽ‘ wÙ<‘ÇnŽ‘Dz«;‘ÿý±jŽ‘ -0ÁŸÿ®+‘ÿ+ŽŽ‘÷á«)‘UU·fŽŽŽŒ‹4? Šn ý‘ì«52›ÂCONST–ÕX­VERSION“(NO“ASSIGNMENT)’Â3¾3DLDFPRÃŽG˜·x«183Ž €n ý•@PÂ183.‘ ü«Piv•¸ãot‘UUsearc“h.Ž©·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ޤ ‘ -ÏmaxŽ‘ k´«=‘ÇÏfabsŽ‘ùê«(±tŽ‘œr:ÏmatrixŽ‘?›«[±jŽ–°Ä«][±jŽ“«]);Ž¡‘ -Ïr‘ÿ}'owޑӄ«=‘DZjŽ‘wÜ«;Ž¡‘ -ÂforŽ‘臫(±iŽ‘9 «=‘DZjŽ‘ °¼«+‘8à1Ž‘8á;‘ÿý±iŽ‘ 9 <‘ÇnŽ‘Dz«;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(±tŽ‘œr:ÏmatrixŽ‘?›«[±iŽ‘qô«][±jŽ‘°Ä«])–DZ>“ÏmaxŽ‘k³«)‘·fŽ¡‘ÏmaxŽ‘4k¶«=‘ÇÏfabsŽ‘ùê«(±tŽ‘œr:ÏmatrixŽ‘?›«[±iŽ‘qô«][±jŽ‘°Ä«]);Ž¡‘Ïr‘ÿ}'owŽ‘1Ó†«=‘DZiŽ‘9 «;Ž¡‘·g‘±=·‘ÿýÂifŽ‘_·±=Ž¡‘ -·g‘±=·‘ÿý«inner‘UUÂforŽ‘胷±=Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"maxÈ Ý==È Ý"Ž‘5T}·‘ÇÏmaxŽ‘2Ë·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"rowÈ Ý==È Ý"Ž‘5T}·‘ÇÏr‘ÿ}'owޑ𛷑ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÏmaxŽ‘k³·‘Ç«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘/“·‘`ëÝ"ERROR!È ÝInÈ ÝTransformŽ‘q`¯::inverse():\n"Ž’ÉÕ·Ž¡‘(Ý"MatrixÈ ÝisÈ Ýsingular.Ž’ÿÈÈ ÝReturningÈ ÝINVALID_Ž’ùÿŒTRANSFORM.\n"Ž’AŒå·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼ÝINVALID_TRANSFORMŽ’‘¬ñ«;Ž¡‘ -·gŽŸÂ184.‘ ü«Ro•¸ãw‘UUexc“hange.ަ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïr‘ÿ}'owŽ‘Óƒ±>‘ÇjŽ‘wÜ«)‘·fŽ¡‘ÂforŽ‘%舫(±kŽ‘Ln«=‘Ç0Ž‘Ç;‘ÿý±kŽ‘ Lk<‘ÇnŽ‘Dz«;‘ÿý±kŽ‘ SŸÿ®+‘ÿ+ŽŽ‘Ìs«)‘·fŽ¡‘ÏhrŽ‘+±g«=‘DZtŽ‘cŠ:ÏmatrixŽ‘?›«[±jŽ‘°Ä«][±kŽ‘…V«];Ž¡‘±tŽ‘!œu:ÏmatrixŽ›?›«[±jŽ‘°Ä«][±kŽ‘…V«]–Ç=“±tŽ‘cŠ:ÏmatrixŽ˜«[Ïr‘ÿ}'owŽ‘ k«][±kŽ‘…V«];Ž¡‘±tŽ‘!œu:ÏmatrixŽ‘?›«[Ïr‘ÿ}'owŽ‘ k«][±kŽ‘…V«]–Ç=“ÏhrŽ‘ ±d«;Ž¡‘·g‘±=·‘ÿýÂforŽ‘“+·±=Ž¡‘ÏhiŽ‘ |N«=‘DZpŽ‘Ï«[±jŽ‘°Ä«];Ž¡‘±pŽ‘«[±jŽ‘°Ä«]–Ç=“±pŽ‘Ï«[Ïr‘ÿ}'owŽ‘ k«];Ž¡‘±pŽ‘«[Ïr‘ÿ}'owŽ‘ k«]–Ç=“ÏhiŽ‘ |L«;Ž¡‘ -·g‘±=·‘ÿýÂifŽ‘_·±=Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"FinishedÈ ÝrowÈ ÝexchanŽ‘kÆÜge.\n"Ž’Ž”J·‘ÇÏ ushŽ‘€«;ŽŸÂ185.‘ ü«T‘ÿ*ªransformation.ަ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"t.matrix["Ž‘?Ôw·‘DZjŽ– ->ô·‘ÇÝ"]["Ž‘Œ·‘DZjŽ“·‘ÇÝ"]È Ý==È Ý"Ž‘*Ôƒ·‘DZtŽ‘cŠ:ÏmatrixŽ‘?›«[±jŽ–°Ä«][±jŽ“«]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘ -ÏhrŽ‘±e«=‘Ç1Ž‘Ç±=tŽ‘œr:ÏmatrixŽ‘?›«[±jŽ–°Ä«][±jŽ“«];Ž¡‘ -ÂforŽ‘臫(±iŽ‘9 «=‘Ç0Ž‘Ç;‘ÿý±iŽ‘ 9 <‘ÇnŽ‘Dz«;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘±tŽ‘œr:ÏmatrixŽ›?›«[±iŽ‘qô«][±jŽ‘°Ä«]–Ç=“ÏhrŽ‘êD·‘8à±tŽ‘ÕR:ÏmatrixŽ˜«[±iŽ‘qô«][±jŽ‘°Ä«];Ž¡‘ -±tŽ‘ œs:ÏmatrixŽ‘?›«[±jŽ–°Ä«][±jŽ“«]–Ç=“ÏhrŽ‘ ±d«;Ž¡‘ -ÂforŽ‘臫(±kŽ‘Ln«=‘Ç0Ž‘Ç;‘ÿý±kŽ‘ Lk<‘ÇnŽ‘Dz«;‘ÿý±kŽ‘ SŸÿ®+‘ÿ+ŽŽ‘Ìs«)Ž¡‘ÂifŽ‘´ú«(±kŽ‘Ln·6«=‘DZjŽ‘wÜ«)‘·fŽ¡‘ÂforŽ‘/艫(±iŽ‘9 «=‘Ç0Ž‘Ç;‘ÿý±iŽ‘ 9 <‘ÇnŽ‘Dz«;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)Ž¡‘(ÂifŽ‘3´ü«(±iŽ‘9 ·6«=‘DZjŽ‘wÜ«)‘±tŽ‘œr:ÏmatrixŽ–?›«[±iŽ›qô«][±kŽ‘…V«]‘Ç·«=ŽŽ‘l±tŽ‘¸Þ:ÏmatrixŽ“«[±iŽ˜«][±jŽ›°Ä«]–8à·“±tŽ‘ÕR:ÏmatrixŽ‘?›«[±jŽ˜«][±kŽ‘…V«];Ž¡‘±tŽ‘!œu:ÏmatrixŽ‘?›«[±jŽ‘°Ä«][±kŽ‘…V«]‘Ç·«=ŽŽ‘UO·Ž‘mÏhrŽ‘%¹«;Ž¡‘·gŽ¡‘ -g‘±=·‘ÿý«outer‘UUÂforŽ‘胷±=Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"FinishedÈ ÝTransformaŽ‘kÆÜtion.\n"Ž’™D·‘ÇÏ ushŽ‘€«;ŽŽŽŒ‹5Gƒ Šn ý‘ì·x«186›­3DLDFPRÃŽG’Â3¾ÂCONST–ÕX­VERSION“(NO“ASSIGNMENT)˜«53Ž €n ý•@PÂ186.‘ ü«Column‘UUexc¸ãhange.Ž©·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ޤ ‘ -ÂforŽ‘臫(±iŽ‘9 «=‘Ç0Ž‘Ç;‘ÿý±iŽ‘ 9 <‘ÇnŽ‘Dz«;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘ÂforŽ‘%舫(±kŽ‘Ln«=‘Ç0Ž‘Ç;‘ÿý±kŽ‘ Lk<‘ÇnŽ‘Dz«;‘ÿý±kŽ‘ SŸÿ®+‘ÿ+ŽŽ‘Ìs«)‘ÏhvŽ‘Ln«[±pŽ‘«[±kŽ›…V«]]–Ç=“±tŽ‘cŠ:ÏmatrixŽ‘?›«[±iŽ‘qô«][±kŽ˜«];Ž¡‘ÂforŽ‘%舫(±kŽ‘Ln«=‘Ç0Ž‘Ç;‘ÿý±kŽ‘ Lk<‘ÇnŽ‘Dz«;‘ÿý±kŽ‘ SŸÿ®+‘ÿ+ŽŽ‘Ìs«)‘±tŽ‘œr:ÏmatrixŽ‘?›«[±iŽ‘qô«][±kŽ›…V«]–Ç=“ÏhvŽ‘†«[±kŽ˜«];Ž¡‘ -·g‘±=·‘ÿýÂforŽ‘“+·±=Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"FinishedÈ ÝcolumnÈ ÝexcŽ‘kÆÜhange.\n"Ž’žTA·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"ExitingÈ ÝTransform::Ž‘kÆÜinverse()."Ž’¨Ô;·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝTransform::Ž‘kÆÜinverse()."Ž’¨Ô;·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂreturnŽ‘-æ»±tŽ‘1ƒ-«;‘qÇ·gŽŸÂ187.‘ üNon-const– -°vš®9ersion“(with“assignmen˜t).‘ ü«[¬LDF‘T2002.10.20.«]Ž‘[•8Added–bWthis“function.‘˜ÍI‘bthough¸ãt“ofŽ¡calling–÷ain“\ÏinvertŽ‘ã(«(‘ª®)",›ãbut“I‘÷7decided“against“it,˜bGecause“I‘÷7thoughš¸ãt“ha˜ving“t˜w˜o“functions“called“\ÏinverseŽ‘ ‡«(‘ª®)"Ž¡and–UU\ÏinvertŽ‘ã(«(‘ª®)"“w¸ãould“bGe“confusing.Ž¡‘ -There–œfis“no“pGoinš¸ãt“in“calling“this“function“with“ÏassignŽ‘"µ ·‘=ŠÏfalseŽ‘ìΫ,‘®+since“it“is“equiv‘ÿqÇalen˜t“to“the“ÂconstŽ‘"«v˜ersionŽ¡abGo•¸ãv“e–Ëãwith“no“argumenš¸ãt.‘C÷If“it“is“called“with“ÏassignŽ‘!n·‘ÇÏfalseŽ‘v\«,‘ç`a“w˜arning“is“issued,‘ç`the“ÂconstŽ‘ m«v˜ersion“is“in˜v˜ok˜ed,Ž¡and–UUits“return“v‘ÿqÇalue“is“returned.ަ·h–ª¨«Declare‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­124“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏinverseŽ‘a×Z«(Âb•QÇo“olŽ‘¡fÏassignŽ‘5|‚«);ŽŸÂ188.ަ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ +«ransformŽ‘w S°‘Ç´"matrix® ´=\n"Ž‘BM\¬;ަ‘°gަ‘­forŽ‘/艬(µiŽ‘9 ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fަ‘(­forŽ‘9芬(µjŽ‘wܬ=‘Ç0Ž–Ç;‘ÿýµjŽ‘ wÙ<‘Ǭ4Ž“;‘ÿýµjŽ‘ +0ÁŸÿ³+‘ÿ+ŽŽ‘÷á¬)‘°fަ‘2µtŽ‘5œw:±matrixŽ‘?›¬[µiŽ›qô¬][µjŽ‘°Ä¬]–Ç=“±matrixŽ‘!³¬[µiŽ˜¬][µjŽ‘°Ä¬];ަ‘2­ifŽ‘=´ý¬(´DEBUGŽ‘ÆY¬)‘°fަ‘<±c‘ÿ}'outŽ‘R U°‘DZmatrixŽ‘!³¬[µiŽ‘qô¬][µjŽ‘°Ä¬]–ǰ“´"® ´"Ž‘ w¬;ަ‘2°gަ‘(gަ‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘°fަ‘2±c‘ÿ}'outŽ‘H T°‘Ç´"\n"Ž‘Mt¬;ަ‘(°gަ‘gަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fަ‘(±c‘ÿ}'outŽ‘> S°‘Ç´"\n"Ž‘Mt¬;ަ‘(µtŽ‘+œv:±showŽ‘Šÿ¬(´"t"Ž‘F_¬);ަ‘(±c‘ÿ}'outŽ‘> S°‘Ç´"Enter® ´® ´to® ´cŽ‘kÆÜontinue.\n\n"Ž’³T5°‘DZ ushŽ‘€¬;ަ‘(±getcharŽ‘I&¬(‘ª®);ަ‘°gŽ¡‘­in®9tŽ‘/¤úµpŽ‘4¬ú¬[µnŽ‘š¬];Ž¡‘­forŽ‘/艬(­in®9tŽ‘¤÷µjޑӬ=‘Ç0Ž‘Ç;‘ÿýµjŽ‘ wÙ<‘ÇnŽ‘Dz¬;‘ÿýµjŽ‘ +0ÁŸÿ³+‘ÿ+ŽŽ‘÷á¬)‘µpŽ‘ +¬[µjŽ‘°Ä¬]–Ç=“µjŽ‘wܬ;ަ‘­forŽ‘/艬(µjŽ‘wܬ=‘Ç0Ž‘Ç;‘ÿýµjŽ‘ wÙ<‘ÇnŽ‘Dz¬;‘ÿýµjŽ‘ +0ÁŸÿ³+‘ÿ+ŽŽ‘÷á¬)‘UU°fŽŽŽŒ‹>-ê Šn ý‘ì¬62›­CONST–ÕX¯VERSION“(NO“ASSIGNMENT)’¹À(3DLDF-1.1.5.1˜°x¬228Ž €n ý•@P­228.‘ ü¬Piv•¸ãot‘UUsearc“h.Ž©°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ޤ ‘ +±maxŽ‘ k´¬=‘DZfabsŽ‘ùê¬(µtŽ‘œr:±matrixŽ‘?›¬[µjŽ–°Ä¬][µjŽ“¬]);Ž¡‘ +±r‘ÿ}'owޑӄ¬=‘ǵjŽ‘wܬ;Ž¡‘ +­forŽ‘臬(µiŽ‘9 ¬=‘ǵjŽ‘ °¼¬+‘8à1Ž‘8á;‘ÿýµiŽ‘ 9 <‘ÇnŽ‘Dz¬;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fŽ¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(µtŽ‘œr:±matrixŽ‘?›¬[µiŽ‘qô¬][µjŽ‘°Ä¬])–ǵ>“±maxŽ‘k³¬)‘°fŽ¡‘±maxŽ‘4k¶¬=‘DZfabsŽ‘ùê¬(µtŽ‘œr:±matrixŽ‘?›¬[µiŽ‘qô¬][µjŽ‘°Ä¬]);Ž¡‘±r‘ÿ}'owŽ‘1Ó†¬=‘ǵiŽ‘9 ¬;Ž¡‘°g‘µ=°‘ÿý­ifŽ‘_°µ=Ž¡‘ +°g‘µ=°‘ÿý¬inner‘UU­forŽ‘胰µ=Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"max® ´==® ´"Ž‘5T}°‘DZmaxŽ‘2˰‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"row® ´==® ´"Ž‘5T}°‘DZr‘ÿ}'owŽ‘š›°‘Ç±end‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±maxŽ‘k³°‘Ǭ0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘/“°‘`ë´"ERROR!® ´In® ´TransformŽ‘q`¯::inverse():\n"Ž’ÉÕ°Ž¡‘(´"Matrix® ´is® ´singular.Ž’ÿÈ® ´Returning® ´INVALID_Ž’ùÿŒTRANSFORM.\n"Ž’AŒå°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼´INVALID_TRANSFORMŽ’‘¬ñ¬;Ž¡‘ +°gŽŸ­229.‘ ü¬Ro•¸ãw‘UUexc“hange.ަ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±r‘ÿ}'owŽ‘Óƒµ>‘ÇjŽ‘wܬ)‘°fŽ¡‘­forŽ‘%般(µkŽ‘Ln¬=‘Ç0Ž‘Ç;‘ÿýµkŽ‘ Lk<‘ÇnŽ‘Dz¬;‘ÿýµkŽ‘ SŸÿ³+‘ÿ+ŽŽ‘Ìs¬)‘°fŽ¡‘±hrŽ‘+±g¬=‘ǵtŽ‘cŠ:±matrixŽ‘?›¬[µjŽ‘°Ä¬][µkŽ‘…V¬];Ž¡‘µtŽ‘!œu:±matrixŽ›?›¬[µjŽ‘°Ä¬][µkŽ‘…V¬]–Ç=“µtŽ‘cŠ:±matrixŽ˜¬[±r‘ÿ}'owŽ‘ k¬][µkŽ‘…V¬];Ž¡‘µtŽ‘!œu:±matrixŽ‘?›¬[±r‘ÿ}'owŽ‘ k¬][µkŽ‘…V¬]–Ç=“±hrŽ‘ ±d¬;Ž¡‘°g‘µ=°‘ÿý­forŽ‘“+°µ=Ž¡‘±hiŽ‘ |N¬=‘ǵpŽ‘Ï¬[µjŽ‘°Ä¬];Ž¡‘µpŽ‘¬[µjŽ‘°Ä¬]–Ç=“µpŽ‘Ï¬[±r‘ÿ}'owŽ‘ k¬];Ž¡‘µpŽ‘¬[±r‘ÿ}'owŽ‘ k¬]–Ç=“±hiŽ‘ |L¬;Ž¡‘ +°g‘µ=°‘ÿý­ifŽ‘_°µ=Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Finished® ´row® ´exchanŽ‘kÆÜge.\n"Ž’Ž”J°‘DZ ushŽ‘€¬;ŽŸ­230.‘ ü¬T‘ÿ*ªransformation.ަ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"t.matrix["Ž‘?Ôw°‘ǵjŽ– +>ô°‘Ç´"]["Ž‘Œ°‘ǵjŽ“°‘Ç´"]® ´==® ´"Ž‘*Ôƒ°‘ǵtŽ‘cŠ:±matrixŽ‘?›¬[µjŽ–°Ä¬][µjŽ“¬]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘ +±hrŽ‘±e¬=‘Ç1Ž‘Çµ=tŽ‘œr:±matrixŽ‘?›¬[µjŽ–°Ä¬][µjŽ“¬];Ž¡‘ +­forŽ‘臬(µiŽ‘9 ¬=‘Ç0Ž‘Ç;‘ÿýµiŽ‘ 9 <‘ÇnŽ‘Dz¬;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘µtŽ‘œr:±matrixŽ›?›¬[µiŽ‘qô¬][µjŽ‘°Ä¬]–Ç=“±hrŽ‘êD°‘8àµtŽ‘ÕR:±matrixŽ˜¬[µiŽ‘qô¬][µjŽ‘°Ä¬];Ž¡‘ +µtŽ‘ œs:±matrixŽ‘?›¬[µjŽ–°Ä¬][µjŽ“¬]–Ç=“±hrŽ‘ ±d¬;Ž¡‘ +­forŽ‘臬(µkŽ‘Ln¬=‘Ç0Ž‘Ç;‘ÿýµkŽ‘ Lk<‘ÇnŽ‘Dz¬;‘ÿýµkŽ‘ SŸÿ³+‘ÿ+ŽŽ‘Ìs¬)Ž¡‘­ifŽ‘´ú¬(µkŽ‘Ln°6¬=‘ǵjŽ‘wܬ)‘°fŽ¡‘­forŽ‘/艬(µiŽ‘9 ¬=‘Ç0Ž‘Ç;‘ÿýµiŽ‘ 9 <‘ÇnŽ‘Dz¬;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)Ž¡‘(­ifŽ‘3´ü¬(µiŽ‘9 °6¬=‘ǵjŽ‘wܬ)‘µtŽ‘œr:±matrixŽ–?›¬[µiŽ›qô¬][µkŽ‘…V¬]‘ǰ¬=ŽŽ‘lµtŽ‘¸Þ:±matrixŽ“¬[µiŽ˜¬][µjŽ›°Ä¬]–8à°“µtŽ‘ÕR:±matrixŽ‘?›¬[µjŽ˜¬][µkŽ‘…V¬];Ž¡‘µtŽ‘!œu:±matrixŽ‘?›¬[µjŽ‘°Ä¬][µkŽ‘…V¬]‘ǰ¬=ŽŽ‘UO°Ž‘m±hrŽ‘%¹¬;Ž¡‘°gŽ¡‘ +g‘µ=°‘ÿý¬outer‘UU­forŽ‘胰µ=Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Finished® ´TransformaŽ‘kÆÜtion.\n"Ž’™D°‘DZ ushŽ‘€¬;ŽŽŽŒ‹?6P Šn ý‘ì°x¬231›¯3DLDF-1.1.5.1’¹À(­CONST–ÕX¯VERSION“(NO“ASSIGNMENT)˜¬63Ž €n ý•@P­231.‘ ü¬Column‘UUexc¸ãhange.Ž©°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ޤ ‘ +­forŽ‘臬(µiŽ‘9 ¬=‘Ç0Ž‘Ç;‘ÿýµiŽ‘ 9 <‘ÇnŽ‘Dz¬;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fŽ¡‘­forŽ‘%般(µkŽ‘Ln¬=‘Ç0Ž‘Ç;‘ÿýµkŽ‘ Lk<‘ÇnŽ‘Dz¬;‘ÿýµkŽ‘ SŸÿ³+‘ÿ+ŽŽ‘Ìs¬)‘±hvŽ‘Ln¬[µpŽ‘¬[µkŽ›…V¬]]–Ç=“µtŽ‘cŠ:±matrixŽ‘?›¬[µiŽ‘qô¬][µkŽ˜¬];Ž¡‘­forŽ‘%般(µkŽ‘Ln¬=‘Ç0Ž‘Ç;‘ÿýµkŽ‘ Lk<‘ÇnŽ‘Dz¬;‘ÿýµkŽ‘ SŸÿ³+‘ÿ+ŽŽ‘Ìs¬)‘µtŽ‘œr:±matrixŽ‘?›¬[µiŽ‘qô¬][µkŽ›…V¬]–Ç=“±hvŽ‘†¬[µkŽ˜¬];Ž¡‘ +°g‘µ=°‘ÿý­forŽ‘“+°µ=Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"Finished® ´column® ´excŽ‘kÆÜhange.\n"Ž’žTA°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"Exiting® ´Transform::Ž‘kÆÜinverse()."Ž’¨Ô;°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Transform::Ž‘kÆÜinverse()."Ž’¨Ô;°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +­returnŽ‘-滵tŽ‘1ƒ-¬;‘qǰgŽŸ­232.‘ üNon-const– +°vš®9ersion“(with“assignmen˜t).‘ ü¬[²LDF‘T2002.10.20.¬]Ž‘[•8Added–bWthis“function.‘˜ÍI‘bthough¸ãt“ofŽ¡calling–÷ain“\±invertŽ‘ã(¬(‘ª®)",›ãbut“I‘÷7decided“against“it,˜bGecause“I‘÷7thoughš¸ãt“ha˜ving“t˜w˜o“functions“called“\±inverseŽ‘ ‡¬(‘ª®)"Ž¡and–UU\±invertŽ‘ã(¬(‘ª®)"“w¸ãould“bGe“confusing.Ž¡‘ +There–œfis“no“pGoinš¸ãt“in“calling“this“function“with“±assignŽ‘"µ °‘=бfalseŽ‘ìά,‘®+since“it“is“equiv‘ÿqÇalen˜t“to“the“­constŽ‘"¬v˜ersionŽ¡abGo•¸ãv“e–Ëãwith“no“argumenš¸ãt.‘C÷If“it“is“called“with“±assignŽ‘!n°‘DZfalseŽ‘v\¬,‘ç`a“w˜arning“is“issued,‘ç`the“­constŽ‘ m¬v˜ersion“is“in˜v˜ok˜ed,Ž¡and–UUits“return“v‘ÿqÇalue“is“returned.ަ°h–ª¨¬Declare‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯168“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±inverseŽ‘a×Z¬(­b•QÇo“olŽ‘¡f±assignŽ‘5|‚¬);ŽŸ­233.ަ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘wuC«&Ž‘FÄç«&Ž‘FŒ±;‘ª¨ÂconstŽ‘ÕJrealŽ‘33#«)–Ç=“0Ž‘Ç;Ž¡‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦opQÇeratorŽ’’í[·«=ŽŽŽ’Ÿ´z(ÂconstŽ‘*¢T‘ÿ -«ransformŽ‘Uót«&Ž‘]º’)–Ç=“0Ž‘Ç;Ž¡‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ’Ž«‹«(Âv®9oidŽ‘¨ƒ«)–Ç=“0Ž‘Ç;Ž¡‘ -ÂvirtualŽ‘/Ôb•QÇo“olŽ‘I/:Ïset‘‰ffŽ‘®extr‘ÿ}'emesŽ‘ðë(‘ª®)–Ç=“0Ž‘Ç;Ž¡‘ -ÂvirtualŽ‘/ÔrealŽ‘FAÏget‘‰ffŽ–®minimum‘‰ffŽ“zŽ’‰žÚ«(‘ª®)‘UUÂconstŽ‘ ñº«=‘Ç0Ž‘Ç;Ž¡‘ -ÂvirtualŽ‘/ÔrealŽ‘FAÏget‘‰ffŽ–®maximum‘‰ffŽ“zŽ’Š®«(‘ª®)‘UUÂconstŽ‘ ñº«=‘Ç0Ž‘Ç;Ž¡‘ -ÂvirtualŽ‘/ÔrealŽ‘FAÏget‘‰ffŽ–®me‘ÿ}'an‘‰ffŽ“zŽ‘v÷ «(‘ª®)‘UUÂconstŽ‘ ñº«=‘Ç0Ž‘Ç;Ž¡‘ -ÂvirtualŽ‘/ÔconstŽ‘M¸vv‘ÿ\ralarra®9yŽ‘w··hÂrealŽ‘]Ù·i‘UUÏget‘‰ffŽ‘®extr‘ÿ}'emesŽ‘:™µ«(‘ª®)‘UUÂconstŽ‘ ñº«=‘Ç0Ž‘Ç;Ž¡‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïsuppr‘ÿ}'ess‘‰ffŽ‘®outputŽ’r.«(‘ª®)–Ç=“0Ž‘Ç;Ž¡‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïunsuppr‘ÿ}'ess‘‰ffŽ‘®outputŽ’˜oR«(‘ª®)–Ç=“0Ž‘Ç;–UU·g“«;ŽŸÂ201.‘ üStatic–ÕTdata“mem®9bQÇers.ަ·h–ª¨«De ne‘UUÂstaticŽ‘"ž.ShapQÇeŽ‘Dß«mem¸ãbGer‘UUv‘ÿqÇariables‘@­201“·i‘ÇŽ¡‘ -ÂconstŽ‘(*£signedŽ‘Kš™shortŽ‘ieLÌ«;ŽŸÂ206.‘ üInclude‘ÕT les.ަ·h–ª¨«Include‘UU les‘@­11“·i‘Ç«+·Ž¡«#ÂincludeŽ‘'Ø~Ý"loader.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"pspglb.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"io.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"colors.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"transfor.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"shapes.h"ŽŽ©Â207.– üLabšQÇel.“«[¬LDF‘T2002.10.20.«]Ž‘Zì ÂLab˜elsŽ‘oÖ«are–¹+the“only“ob‘Ž8jects,‘Ò!other“than“ÂShap˜esŽ‘'.t«,‘Ò!that“can“bGe“put“on¸ãtoŽ¡ÂPicturesŽ‘*%I«.‘[ºThey–/are“created“b¸ãy“the“functions“Ïlab‘ÿ}'elŽ‘‡Ç«(›ª®)“and“Ïdotlab‘ÿ}'elŽ‘%"«(˜),‘ jwhicš¸ãh“are“curren˜tly“de ned“for“ÂP•®9oin“tsŽŽ¡«and‘UUÂP®9athsŽ‘ oõ«.ަÂ208.› üLabQÇel–þxclass“de nition.˜«A‘yÂLabQÇelŽ‘#3«conš¸ãtains–ya“pGoin˜ter“to“a“ÂP•®9oin“tŽ‘c«,‘‚ whic˜h“is“its“loGcation,‘‚ a“Âb•QÇo“olŽ‘>G«toŽ¡indicate–.gwhether“the“labšGel“should“ha•¸ãv“e–.ga“dot“or“not,‘d«a“ÂstringŽ‘&,Æ«for“the“text“of“the“lab˜el“and“a“ÂstringŽ‘&,Æ«forŽ¡pšGositioning–¬áthe“text“with“resp˜ect“to“the“lab˜el.‘xlÏptŽ‘ ê«m¸ãust“b˜e“a“p˜oin¸ãter,‘ÂÅb˜ecause“ÂP•®9oin“tŽ‘"ô -«is“an“incomplete“t¸ãyp˜eŽ¡here.‘¶—Ïp‘ÿ}'ositionŽ‘.Þ«can–ðbGe“anš¸ãy“of“the“strings“used“in“MET‘ÿ*ªAF˜ONT,“i.e.,‘GVÝ"top"Ž– ¯«,‘GVÝ"bot"Ž“«,‘GVÝ"lft"Ž“«,‘GVÝ"rt"Ž‘Ͳ«,‘GVÝ"llft"Ž‘$M¬«,Ž¡Ý"ulft"Ž‘ V«,‘UUÝ"lrt"Ž›®«,–UUor“Ý"urt"Ž˜«.Ž¡‘ -[¬LDF‘T2002.10.09.«]Ž‘Y;ÂLabQÇelsŽ‘}(/«are–UUcurrenš¸ãtly“only“ev˜er“created“on“the“free“store.ޤ‘ -ÂformatŽ‘3c(ÏL–ÿ}'ab“elŽ‘Sa±intŽŽ¡·h–ª¨«De ne‘UUclasses‘@­208“·i‘Çޤ ‘ -ÂclassŽ‘$àRLabQÇelŽ‘Dw -·fŽ¡‘ÂfriendŽ‘5f¼classŽ‘PG P•®9oin“tŽ‘káU«;Ž¡‘ÂfriendŽ‘5f¼classŽ‘PG PictureŽ‘uã«;Ž¡‘ÂP•®9oin“tŽ‘2Ž‘7ï ÏptŽ‘AÔ=«;Ž¡‘Âb•QÇo“olŽ‘-¡hÏdotŽ‘<¢u«;Ž¡‘ÂstringŽ‘5%OÏtextŽ‘F}«;Ž¡‘ÂstringŽ‘5%OÏp‘ÿ}'ositionŽ‘Xi¦«;Ž¡‘ -ÂpublicŽ‘)=Ö«:‘ÂstaticŽ‘$HÙb•QÇo“olŽ‘=ê?ÝDO_LABELSŽ‘m°Œ«;ŽŸ‘·h–ª¨«Declare‘UUÂLabQÇelŽ‘"ì «functions‘@­210“·iŽ¡‘ -g«;ޤ ­See–ÕXalso“section“216.Ž¡This–ÕXcouC«&Ž‘Fclass“de nition.˜«[¬LDF‘T2002.08.06.«]Ž‘Z¯DNote–|cthat“ÂLabQÇelŽ‘#:)«has“a“ÂpublicŽ‘&6›staticŽ‘E¦‚«data“mem¸ãbGerޤ named‘ÖYÝDO_LABELSŽ‘3œ¦«,‘öšwhicš¸ãh–ÖYis“used“for“globally“enabling“or“suppressing“putting“ÂLabQÇelsŽ‘(wQ«on˜to“ÂPicturesŽ‘1Ñû«(seeŽ¡abGo•¸ãv“e).Ž¡‘ -ÂPictureŽ‘0œ«::‘Ïdo‘‰ffŽ‘®lab‘ÿ}'elsŽ‘';ç«,›ø¹on–Ø the“other“hand,˜is“for“enabling“or“suppressing“the“output“of“ÂLabQÇelsŽ‘(zµ«for“a“singleŽ¡ÂPictureŽ‘%œ «.‘œ¾If–c§a“ÂPictureŽ‘.c[«is“output“when“Ïdo‘‰ffŽ‘®lab‘ÿ}'elsŽ‘/1«is“ÏfalseŽ‘v’«for“that“ÂPictureŽ‘)ÿ´«,‘§«¶ Šn ý‘ì«62›­DEF‘ÿ8A•ÃŽUL‘ÿJªT‘ÕXCONSTR“UCTOR’ùQ÷3DLDFPR“G˜·x«219Ž €n ý•@PÂ219.Ž©·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Çޤ ‘ -ÂPictureŽ‘0œ«::‘ÂPictureŽ‘&œ«(‘ª®)Ž¡‘ -:‘qÇÏdo‘‰ffŽ‘®lab‘ÿ}'elsŽ‘*­ª«(Ïtrueޑƫ)‘UU·f‘ª¨gޤ ­See–ùalso“sections“226,–ð228,“232,“236,“239,“242,“245,“247,“249,“251,“373,“396,“543,“544,“545,“546,“548,“549,“550,“551,“552,“553,ŽŸ -‘and‘ÕX554.Ž¡This–ÕXcoŸÓVEŽ‘ãxXŽ‘i¡macro“for“\POR›ÿ*ªTING".“!!‘¥­POR˜TING.“[¬LDF‘T2002.12.05.«]Ž‘R€)Mo•¸ãv“edŽ¡to–”žÈpoints.web“«bGecause“ÂPictureŽ‘)0¯«::‘Ïcle‘ÿ}'arŽ‘(Ý«(›ª®)“and“ÂLabQÇelޑ֫::‘Ïget‘‰ffŽ‘®c‘ÿ}'opyŽ‘%ø«(˜)“are“unde ned“in“this“ le.‘1ŠThis“didn't“causeŽ¡a–UUproblem“with“the“DEC“compiler,“but“it“doGes“with“the“GNU“Compiler.ŽŸ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”Ž«=Ž‘V[¬(ÂconstŽ‘*¢PictureŽ‘G«&Ž‘Nã"±pŽ‘Së"«);ަÂ223.‘ üAdding‘ÕTelemen®9ts.ަ224.– üAdd‘/çPicture.“«This–¤function“m¸ãust“bšGe“de ned“in“Èpoints.web«,‘·Èb˜ecause“it“uses“ÂP•®9oin“tŽ‘>_«,‘·Èwhic¸ãh“is“anŽ¡incompletely–UUde ned“ÂclassŽ‘5¦«here.Ž¡‘ -[¬LDF‘T2002.04.17.«]Ž‘Y73It–„Mseems“to“bšGe“most“useful“to“ha•¸ãv“e–„Mthe“argumen¸ãt“ÂPictureŽ‘,¤§±pŽ‘50ô«b˜e“non-ÂconstŽ‘ÕM«,‘ in“order“toŽ¡bGe–ò¢able“to“shift“it“and“add“it“to“·Ž‘ò£ÏthisŽ‘Ðû«mš¸ãultiple“times.‘PáF‘ÿ*ªor“this“to“w˜ork,‘_it“m˜ust“bšGe“p˜ossible“to“set“±pŽ‘ú¢:Ïtr‘ÿ}'ansformŽŽ¡«to–BËthe“iden•¸ãtit“y–BËmatrix“afterwš¸ãards.‘:)It“is“pGossible“to“do“this“explicitly“b˜y“calling“Ïr–ÿ}'eset‘‰ffŽ‘®tr“ansformŽ‘Gõ$«(‘ª®)“on“theŽ¡ÂPictureŽ‘)h«folloš¸ãwing–z[the“call“to“ÂopQÇeratorŽ‘/«+=ŽŽŽ‘>ŸL(‘ª¨),‘ƒœbut“it's“more“con˜v˜enien˜t“to“ha˜v˜e“it“done“automatically‘ÿ*ª.‘àÙIf“itŽ¡turns–UUout“to“bGe“useful,“I“can“add“a“ÂconstŽ‘!÷«v¸ãersion“of“this“function.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.04.17.«]Ž‘Y;Added–UUthis“declaration.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·ŽŸ ‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”Ž«+=ŽŽŽ‘^"Ê(ÂconstŽ‘*¢PictureŽ‘G«&Ž‘Nã"±pŽ‘Së"«);ަÂ225.‘ üAdd‘ÕTShapQÇe.Ž¡·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·ŽŸ ‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”Ž«+=ŽŽŽ‘^"Ê(ÂShapQÇeŽ‘"Ab·Ž‘'Ac±sŽ‘+ñc«);ŽŽŽŒ‹?µñ Šn ý‘ì·x«226–­3DLDFPRÃŽG’*çADD‘ÕXÂSHAPE“«63Ž €n ý•@PÂ226.Ž©·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙPictureŽ‘I™ê«::Ž‘P((ÂopQÇeratorŽ‘{¾Ý«+=ŽŽŽ’‹M(ÂShapQÇeŽ‘"Ab·Ž‘'Ac±sŽ‘+ñc«)Ž¡‘ -·fŽ¡‘Ïshap‘ÿ}'esŽ‘0:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(±sŽ‘°«);Ž¡‘ -·gŽŸÂ227.‘ üAdd‘ÕTLabQÇel.ަ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”Ž«+=ŽŽŽ‘^"Ê(ÂLabQÇelŽ‘–¸·Ž‘$–¹Ïlab‘ÿ}'elŽ‘9 Q«);ŽŸÂ228.ަ·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙPictureŽ‘I™ê«::Ž‘P((ÂopQÇeratorŽ‘{¾Ý«+=ŽŽŽ’‹M(ÂLabQÇelŽ‘–¸·Ž‘$–¹Ïlab‘ÿ}'elŽ‘9 Q«)Ž¡‘ -·fŽ¡‘Ïlab‘ÿ}'elsŽ‘,Tò±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ïlab‘ÿ}'elŽ‘t˜«);Ž¡‘ -·gŽŸÂ229.– üSuppress‘Ê•LabQÇels.“«[¬LDF‘T2002.04.25.«]Ž‘[]yAdded–*˜this“function.‘ñ‘Sometimes“it's“irritating“to“ha•¸ãv“e‘*˜theŽ¡labšGels–½“when“a“ÂPictureŽ‘-3«is“copied“and“transformed,‘×¢and“b˜oth“the“original“and“the“transformed“v¸ãersions“areŽ¡output.ަ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIv®9oidŽ‘Bˆ!Ïsuppr–ÿ}'ess‘‰ffŽ‘®lab“elsŽ’‚´S«(‘ª®)Ž¡‘ -·fŽ¡‘Ïdo‘‰ffŽ‘®lab‘ÿ}'elsŽ‘=ý«=‘ÇÏfalseŽ‘v\«;Ž¡‘ -·gŽŸÂ230.‘ üUnsuppress‘ÕTLabQÇels.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.12.20.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIv®9oidŽ‘Bˆ!Ïunsuppr–ÿ}'ess‘‰ffŽ‘®lab“elsŽ’±w«(‘ª®)Ž¡‘ -·fŽ¡‘Ïdo‘‰ffŽ‘®lab‘ÿ}'elsŽ‘=ý«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ -·gŽŸÂ231.‘ üKill‘ÕTLabQÇels.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.05.07.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏkil‘‚Øl‘‰ffŽ‘®lab‘ÿ}'elsŽ‘LJË«(‘ª®);ŽŽŽŒ‹@à  Šn ý‘ì«64–­KILL‘ÕXÂLABELS’#ÿ'­3DLDFPRÃŽG“·x«232Ž €n ý•@PÂ232.ŽŸ·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙPictureŽ‘I™ê«::‘Ïkil‘‚Øl‘‰ffŽ‘®lab‘ÿ}'elsŽ‘*Lö«(‘ª®)Ž¡‘ -·fŽ¡‘Ïlab‘ÿ}'elsŽ‘,Tò±:Ïcle‘ÿ}'arŽ‘(Ù«(‘ª¨);Ž¡‘ -·gŽ©Â233.– üT‘ÿ -«ransformations.“«T‘ÿ*ªransformations–Êyfor“ÂPicturesŽ‘3º;«are“sa•¸ãv“ed–Êyup,‘'Áand“then“pGerformed“when“theŽ¡ÂPictureŽ‘(ñb«is‘UUoutput.ަÂ234.‘ üAne‘ÕTtransformations.ަ235.‘ üScale.ŽŸ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏsc‘ÿ}'aleŽ‘W}Å«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç1Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç1Ž“);ަÂ236.ŽŸ·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓPictureŽ‘hdä«::‘Ïsc‘ÿ}'aleŽ‘´ö«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:Ïsc‘ÿ}'aleŽ‘´ò«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ -·gަÂ237.– üShift.“«(T‘ÿ*ªranslation.)ަÂ238.‘ üreal‘ÕTv®9ersion.ŽŸ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshiftŽ‘UæP«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç0Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç0Ž“);ަÂ239.‘ üÏshiftŽ‘y«(‘ª®)–¨dreturns“a“ÂT‘ÿ -«ransformŽ‘;ÄE«represenš¸ãting“the“shift,‘½(Ïnot‘›<·Ž‘ ›=ÏthisŽ‘†ó«.‘jõThis“mak˜es“it“pGossible“to“apply“theŽ¡transformation–UUto“other“ob‘Ž8jects.ŽŸ·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓPictureŽ‘hdä«::‘ÏshiftŽ‘«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:ÏshiftŽ‘}«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ -·gަÂ240.› üP•®9oin“t‘¥lv“ersion.˜«This–èäfunction“m¸ãust“de ned“in“Èpoints.web«,‘MÇbGecause“ÂP•®9oin“tŽ‘%l«is“an“incompletelyŽ¡de ned–UUt¸ãypGe“here.ŽŸ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshiftŽ‘UæP«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«);ަÂ241.› üRotation–yaround“the“main“axes.˜Ïr‘ÿ}'otateŽ‘%ï:«(‘ª®)–ã®will“pšGerform“rotation“ab˜out“the“x,‘Dy“and“z-axes“inŽ¡that–ô"order“if“called“with“mš¸ãultiple,‘“non-zero“argumen˜ts.‘QaRotation“only“abGout“the“y“and/or“z-axis“requires“oneŽ¡or›UUt•¸ãw“o˜dumm“y˜0˜argumen“ts˜so˜that˜Ïr‘ÿ}'otateޑē«(‘ª®)˜\kno“ws"˜abGout˜whic“h˜axis˜(or˜axes)˜to˜rotate.ŽŸ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏr‘ÿ}'otateŽ‘\8«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘>’ˆ«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘>f®«=‘Ç0Ž“);ŽŽŽŒ‹AËG Šn ý‘ì·x«242›­3DLDFPR•ÃŽG’Ç7wR“OT–ÿJªA“TION–ÕXARÃŽOUND“THE“MAIN“AXES˜«65Ž €n ý•@PÂ242.Ž©·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓPictureŽ‘hdä«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘;Ëp;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘;Ÿ–«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:Ïr‘ÿ}'otateŽ‘o>«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ -·gŽŸÂ243.› üRotation–·×around“an“arbitrary“axis.˜«[¬LDF‘T2002.05.03.«]Ž‘Zn’This–;±function“is“de ned“in“Èpoints.web«,Ž¡bGecause–UUit“has“ÂP•®9oin“tŽ›"Dò«argumen¸ãts,“and“ÂP•®9oin“tŽ˜«is“an“incomplete“t¸ãypGe“in“this“ le.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.05.03.«]Ž‘Y;Added–UUthis“declaration.Ž¡‘ -[¬LDF‘T2003.05.02.«]Ž‘YËSChanged–mname“of“this“function“from“Ïr–ÿ}'otate‘‰ffŽ‘®ar“oundŽ‘@„ü«(›ª®)“to“Ïr‘ÿ}'otateŽ‘‡««(˜).‘»This“function“no¸ãwŽ¡o•¸ãv“erloads‘UUÏr‘ÿ}'otateޑē«(‘ª®)–UUwith“three“ÂrealŽ‘ƒ«argumen¸ãts.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏr‘ÿ}'otateŽ‘\8«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘Qã«=‘Ç180ŽŽ‘Ç);Ž¡‘±=·‘ÿý«Remem¸ãbGer–UUto“add“shear!‘o·±=ŽŸÂ244.‘ üSet‘ÕTtransform.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.01.17.«]Ž‘Y;Made–UUnon-inline“and“c¸ãhanged“±tŽ‘ -G«from“plain“ÂT‘ÿ -«ransformŽ‘;'«to“ÂconstŽ‘!÷T‘ÿ -«ransformŽ‘YHÉ«&Ž‘aç.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏset‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘},ù«(ÂconstŽ‘*¢T‘ÿ -«ransformŽ‘Uót«&Ž‘]º’±tŽ‘aW«);ŽŸÂ245.ަ·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓPictureŽ‘hdä«::‘Ïset‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘‡_«::Ž‘EÝPERSPŽ‘_Ûö±;‘ª¨ÂrealŽŽ¡‘ÏfactorŽ‘> è«=‘ +«ransformŽ‘wuC¬&Ž‘FÄç¬&Ž‘FŒµ;‘ª¨­constŽ‘ÕJrealŽ‘33#¬)–Ç=“0Ž‘Ç;Ž¡‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦opQÇeratorŽ’’í[°¬=ŽŽŽ’Ÿ´z(­constŽ‘*¢T‘ÿ +«ransformŽ‘Uót¬&Ž‘]º’)–Ç=“0Ž‘Ç;Ž¡‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ’Ž«‹¬(­v®9oidŽ‘¨ƒ¬)–Ç=“0Ž‘Ç;Ž¡‘ +­virtualŽ‘/Ôb•QÇo“olŽ‘I/:±set‘‰ffŽ‘®extr‘ÿ}'emesŽ‘ðì(‘ª®)–Ç=“0Ž‘Ç;Ž¡‘ +­virtualŽ‘/ÔrealŽ‘FA±get‘‰ffŽ–®minimum‘‰ffŽ“zŽ’‰žÚ¬(‘ª®)‘UU­constŽ‘ ñº¬=‘Ç0Ž‘Ç;Ž¡‘ +­virtualŽ‘/ÔrealŽ‘FA±get‘‰ffŽ–®maximum‘‰ffŽ“zŽ’Š®¬(‘ª®)‘UU­constŽ‘ ñº¬=‘Ç0Ž‘Ç;Ž¡‘ +­virtualŽ‘/ÔrealŽ‘FA±get‘‰ffŽ–®me‘ÿ}'an‘‰ffŽ“zŽ‘v÷ ¬(‘ª®)‘UU­constŽ‘ ñº¬=‘Ç0Ž‘Ç;Ž¡‘ +­virtualŽ‘/ÔconstŽ‘M¸vv‘ÿ\ralarra®9yŽ‘w·°h­realŽ‘]Ù°i‘UU±get‘‰ffŽ‘®extr‘ÿ}'emesŽ‘:™µ¬(‘ª®)‘UU­constŽ‘ ñº¬=‘Ç0Ž‘Ç;Ž¡‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±suppr‘ÿ}'ess‘‰ffŽ‘®outputŽ’r.¬(‘ª®)–Ç=“0Ž‘Ç;Ž¡‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±unsuppr‘ÿ}'ess‘‰ffŽ‘®outputŽ’˜oR¬(‘ª®)–Ç=“0Ž‘Ç;–UU°g“¬;ŽŸ­246.‘ üStatic–ÕTdata“mem®9bQÇers.ަ°h–ª¨¬De ne‘UU­staticŽ‘"ž.ShapQÇeŽ‘D߬mem¸ãbGer‘UUv‘ÿqÇariables‘@¯246“°i‘ÇŽ¡‘ +­constŽ‘(*£signedŽ‘Kš™shortŽ‘ieL̬;ŽŸ­251.‘ üInclude‘ÕT les.ަ°h–ª¨¬Include‘UU les‘@¯6“°i‘Ǭ+°Ž¡¬#­includeŽ‘'Ø~´"loader.h"ŽŽ¡¬#­includeŽ‘'Ø~´"pspglb.h"ŽŽ¡¬#­includeŽ‘'Ø~´"io.h"ŽŽ¡¬#­includeŽ‘'Ø~´"colors.h"ŽŽ¡¬#­includeŽ‘'Ø~´"transfor.h"ŽŽ¡¬#­includeŽ‘'Ø~´"shapes.h"ŽŽ©­252.– üLabšQÇel.“¬[²LDF‘T2002.10.20.¬]Ž‘Zì ­Lab˜elsŽ‘oÖ¬are–¹+the“only“ob‘Ž8jects,‘Ò!other“than“­Shap˜esŽ‘'.t¬,‘Ò!that“can“bGe“put“on¸ãtoŽ¡­PicturesŽ‘*%I¬.‘[ºThey–/are“created“b¸ãy“the“functions“±lab‘ÿ}'elŽ‘‡Ç¬(›ª®)“and“±dotlab‘ÿ}'elŽ‘%"¬(˜),‘ jwhicš¸ãh“are“curren˜tly“de ned“for“­P•®9oin“tsŽŽ¡¬and‘UU­P®9athsŽ‘ oõ¬.ަ­253.› üLabQÇel–þxclass“de nition.˜¬A‘y­LabQÇelŽ‘#3¬conš¸ãtains–ya“pGoin˜ter“to“a“­P•®9oin“tŽ‘c¬,‘‚ whic˜h“is“its“loGcation,‘‚ a“­b•QÇo“olŽ‘>G¬toŽ¡indicate–.gwhether“the“labšGel“should“ha•¸ãv“e–.ga“dot“or“not,‘d«a“­stringŽ‘&,Ƭfor“the“text“of“the“lab˜el“and“a“­stringŽ‘&,ƬforŽ¡pšGositioning–¬áthe“text“with“resp˜ect“to“the“lab˜el.‘xl±ptŽ‘ ê¬m¸ãust“b˜e“a“p˜oin¸ãter,‘ÂÅb˜ecause“­P•®9oin“tŽ‘"ô +¬is“an“incomplete“t¸ãyp˜eŽ¡here.‘¶—±p‘ÿ}'ositionŽ‘.Þ¬can–ðbGe“anš¸ãy“of“the“strings“used“in“MET‘ÿ*ªAF˜ONT,“i.e.,‘GV´"top"Ž– ¯¬,‘GV´"bot"Ž“¬,‘GV´"lft"Ž“¬,‘GV´"rt"Ž‘Ͳ¬,‘GV´"llft"Ž‘$M¬¬,Ž¡´"ulft"Ž‘ V¬,‘UU´"lrt"Ž›®¬,–UUor“´"urt"Ž˜¬.Ž¡‘ +[²LDF‘T2002.10.09.¬]Ž‘Y;­LabQÇelsŽ‘}(/¬are–UUcurrenš¸ãtly“only“ev˜er“created“on“the“free“store.ޤ‘ +­formatŽ‘3c(±L–ÿ}'ab“elŽ‘Sa±intŽŽ¡°h–ª¨¬De ne‘UUclasses‘@¯253“°i‘Çޤ ‘ +­classŽ‘$àRLabQÇelŽ‘Dw +°fŽ¡‘­friendŽ‘5f¼classŽ‘PG P•®9oin“tŽ‘káU¬;Ž¡‘­friendŽ‘5f¼classŽ‘PG PictureŽ‘uã¬;Ž¡‘­P•®9oin“tŽ‘2Ž‘7ï ±ptŽ‘AÔ=¬;Ž¡‘­b•QÇo“olŽ‘-¡h±dotŽ‘<¢u¬;Ž¡‘­stringŽ‘5%O±textŽ‘F}¬;Ž¡‘­stringŽ‘5%O±p‘ÿ}'ositionŽ‘Xi¦¬;Ž¡‘ +­publicŽ‘)=Ö¬:‘­staticŽ‘$HÙb•QÇo“olŽ‘=ê?´DO_LABELSŽ‘m°Œ¬;ŽŸ‘°h–ª¨¬Declare‘UU­LabQÇelŽ‘"ì ¬functions‘@¯255“°iŽ¡‘ +g¬;ޤ ¯See–ÕXalso“section“261.Ž¡This–ÕXcouC¬&Ž‘Fclass“de nition.˜¬[²LDF‘T2002.08.06.¬]Ž‘Z¯DNote–|cthat“­LabQÇelŽ‘#:)¬has“a“­publicŽ‘&6›staticŽ‘E¦‚¬data“mem¸ãbGerޤ named‘ÖY´DO_LABELSŽ‘3œ¦¬,‘öšwhicš¸ãh–ÖYis“used“for“globally“enabling“or“suppressing“putting“­LabQÇelsŽ‘(wQ¬on˜to“­PicturesŽ‘1Ñû¬(seeŽ¡abGo•¸ãv“e).Ž¡‘ +­PictureŽ‘0œ¬::‘±do‘‰ffŽ‘®lab‘ÿ}'elsŽ‘';ç¬,›ø¹on–Ø the“other“hand,˜is“for“enabling“or“suppressing“the“output“of“­LabQÇelsŽ‘(zµ¬for“a“singleŽ¡­PictureŽ‘%œ ¬.‘œ¾If–c§a“­PictureŽ‘.c[¬is“output“when“±do‘‰ffŽ‘®lab‘ÿ}'elsŽ‘/1¬is“±falseŽ‘v’¬for“that“­PictureŽ‘)ÿ´¬,‘§ŸÓVEŽ‘ãxXŽ‘i¡macro“for“\POR›ÿ*ªTING".“!!‘¥­POR˜TING.“[²LDF‘T2002.12.05.¬]Ž‘R€)Mo•¸ãv“edŽ¡to–”ž®points.web“¬bGecause“­PictureŽ‘)0¯¬::‘±cle‘ÿ}'arŽ‘(ݬ(›ª®)“and“­LabQÇelޑ֬::‘±get‘‰ffŽ‘®c‘ÿ}'opyŽ‘%ø¬(˜)“are“unde ned“in“this“ le.‘1ŠThis“didn't“causeŽ¡a–UUproblem“with“the“DEC“compiler,“but“it“doGes“with“the“GNU“Compiler.ŽŸ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”ެ=Ž‘V[¬(­constŽ‘*¢PictureŽ‘G¬&Ž‘Nã"µpŽ‘Së"¬);ަ­268.‘ üAdding‘ÕTelemen®9ts.ަ269.– üAdd‘/çPicture.“¬This–¤function“m¸ãust“bšGe“de ned“in“®points.web¬,‘·Èb˜ecause“it“uses“­P•®9oin“tŽ‘>_¬,‘·Èwhic¸ãh“is“anŽ¡incompletely–UUde ned“­classŽ‘5¦¬here.Ž¡‘ +[²LDF‘T2002.04.17.¬]Ž‘Y73It–„Mseems“to“bšGe“most“useful“to“ha•¸ãv“e–„Mthe“argumen¸ãt“­PictureŽ‘,¤§µpŽ‘50ô¬b˜e“non-­constŽ‘ÕM¬,‘ in“order“toŽ¡bGe–ò¢able“to“shift“it“and“add“it“to“°Ž‘ò£±thisŽ‘Ðû¬mš¸ãultiple“times.‘PáF‘ÿ*ªor“this“to“w˜ork,‘_it“m˜ust“bšGe“p˜ossible“to“set“µpŽ‘ú¢:±tr‘ÿ}'ansformŽŽ¡¬to–BËthe“iden•¸ãtit“y–BËmatrix“afterwš¸ãards.‘:)It“is“pGossible“to“do“this“explicitly“b˜y“calling“±r–ÿ}'eset‘‰ffŽ‘®tr“ansformŽ‘Gõ$¬(‘ª®)“on“theŽ¡­PictureŽ‘)h¬folloš¸ãwing–z[the“call“to“­opQÇeratorŽ‘/¬+=ŽŽŽ‘>ŸL(‘ª¨),‘ƒœbut“it's“more“con˜v˜enien˜t“to“ha˜v˜e“it“done“automatically‘ÿ*ª.‘àÙIf“itŽ¡turns–UUout“to“bGe“useful,“I“can“add“a“­constŽ‘!÷¬v¸ãersion“of“this“function.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.04.17.¬]Ž‘Y;Added–UUthis“declaration.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°ŽŸ ‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”ެ+=ŽŽŽ‘^"Ê(­constŽ‘*¢PictureŽ‘G¬&Ž‘Nã"µpŽ‘Së"¬);ަ­270.‘ üAdd‘ÕTShapQÇe.Ž¡°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°ŽŸ ‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”ެ+=ŽŽŽ‘^"Ê(­ShapQÇeŽ‘"Ab°Ž‘'AcµsŽ‘+ñc¬);ŽŽŽŒ‹I¤Ë Šn ý‘ì°x¬271–¯3DLDF-1.1.5.1’!¢QADD‘ÕX­SHAPE“¬73Ž €n ý•@P­271.Ž©°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙPictureŽ‘I™ê¬::Ž‘P((­opQÇeratorŽ‘{¾Ý¬+=ŽŽŽ’‹M(­ShapQÇeŽ‘"Ab°Ž‘'AcµsŽ‘+ñc¬)Ž¡‘ +°fŽ¡‘±shap‘ÿ}'esŽ‘0:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(µsŽ‘°¬);Ž¡‘ +°gŽŸ­272.‘ üAdd‘ÕTLabQÇel.ަ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”ެ+=ŽŽŽ‘^"Ê(­LabQÇelŽ‘–¸°Ž‘$–¹±lab‘ÿ}'elŽ‘9 Q¬);ŽŸ­273.ަ°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙPictureŽ‘I™ê¬::Ž‘P((­opQÇeratorŽ‘{¾Ý¬+=ŽŽŽ’‹M(­LabQÇelŽ‘–¸°Ž‘$–¹±lab‘ÿ}'elŽ‘9 Q¬)Ž¡‘ +°fŽ¡‘±lab‘ÿ}'elsŽ‘,Tòµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±lab‘ÿ}'elŽ‘t˜¬);Ž¡‘ +°gŽŸ­274.– üSuppress‘Ê•LabQÇels.“¬[²LDF‘T2002.04.25.¬]Ž‘[]yAdded–*˜this“function.‘ñ‘Sometimes“it's“irritating“to“ha•¸ãv“e‘*˜theŽ¡labšGels–½“when“a“­PictureŽ‘-3¬is“copied“and“transformed,‘×¢and“b˜oth“the“original“and“the“transformed“v¸ãersions“areŽ¡output.ަ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIv®9oidŽ‘Bˆ!±suppr–ÿ}'ess‘‰ffŽ‘®lab“elsŽ’‚´S¬(‘ª®)Ž¡‘ +°fŽ¡‘±do‘‰ffŽ‘®lab‘ÿ}'elsŽ‘=ý¬=‘DZfalseŽ‘v\¬;Ž¡‘ +°gŽŸ­275.‘ üUnsuppress‘ÕTLabQÇels.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.12.20.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIv®9oidŽ‘Bˆ!±unsuppr–ÿ}'ess‘‰ffŽ‘®lab“elsŽ’±w¬(‘ª®)Ž¡‘ +°fŽ¡‘±do‘‰ffŽ‘®lab‘ÿ}'elsŽ‘=ý¬=‘DZtrueŽ‘‹°¬;Ž¡‘ +°gŽŸ­276.‘ üKill‘ÕTLabQÇels.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.05.07.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±kil‘‚Øl‘‰ffŽ‘®lab‘ÿ}'elsŽ‘LJˬ(‘ª®);ŽŽŽŒ‹J±þ Šn ý‘ì¬74–¯KILL‘ÕX­LABELS’‹‘¯3DLDF-1.1.5.1“°x¬277Ž €n ý•@P­277.ŽŸ°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙPictureŽ‘I™ê¬::‘±kil‘‚Øl‘‰ffŽ‘®lab‘ÿ}'elsŽ‘*Lö¬(‘ª®)Ž¡‘ +°fŽ¡‘±lab‘ÿ}'elsŽ‘,Tòµ:±cle‘ÿ}'arŽ‘(Ù¬(‘ª¨);Ž¡‘ +°gŽ©­278.– üT‘ÿ +«ransformations.“¬T‘ÿ*ªransformations–Êyfor“­PicturesŽ‘3º;¬are“sa•¸ãv“ed–Êyup,‘'Áand“then“pGerformed“when“theŽ¡­PictureŽ‘(ñb¬is‘UUoutput.ަ­279.‘ üAne‘ÕTtransformations.ަ280.‘ üScale.ŽŸ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±sc‘ÿ}'aleŽ‘W}Ŭ(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç1Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç1Ž“);ަ­281.ŽŸ°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓPictureŽ‘hdä¬::‘±sc‘ÿ}'aleŽ‘´ö¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±sc‘ÿ}'aleŽ‘´ò¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘ +°gަ­282.– üShift.“¬(T‘ÿ*ªranslation.)ަ­283.‘ üreal‘ÕTv®9ersion.ŽŸ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shiftŽ‘UæP¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç0Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç0Ž“);ަ­284.‘ ü±shiftŽ‘y¬(‘ª®)–¨dreturns“a“­T‘ÿ +«ransformŽ‘;ÄE¬represenš¸ãting“the“shift,‘½(±not‘›<°Ž‘ ›=±thisŽ‘†ó¬.‘jõThis“mak˜es“it“pGossible“to“apply“theŽ¡transformation–UUto“other“ob‘Ž8jects.ŽŸ°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓPictureŽ‘hdä¬::‘±shiftŽ‘¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±shiftŽ‘}¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘ +°gަ­285.› üP•®9oin“t‘¥lv“ersion.˜¬This–èäfunction“m¸ãust“de ned“in“®points.web¬,‘MÇbGecause“­P•®9oin“tŽ‘%l¬is“an“incompletelyŽ¡de ned–UUt¸ãypGe“here.ŽŸ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shiftŽ‘UæP¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬);ަ­286.› üRotation–yaround“the“main“axes.˜±r‘ÿ}'otateŽ‘%ï:¬(‘ª®)–ã®will“pšGerform“rotation“ab˜out“the“x,‘Dy“and“z-axes“inŽ¡that–ô"order“if“called“with“mš¸ãultiple,‘“non-zero“argumen˜ts.‘QaRotation“only“abGout“the“y“and/or“z-axis“requires“oneŽ¡or›UUt•¸ãw“o˜dumm“y˜0˜argumen“ts˜so˜that˜±r‘ÿ}'otateޑē¬(‘ª®)˜\kno“ws"˜abGout˜whic“h˜axis˜(or˜axes)˜to˜rotate.ŽŸ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±r‘ÿ}'otateŽ‘\8¬(­constŽ‘*¢realŽ‘4ÝеxŽ‘:”ì;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµyŽ‘>’ˆ¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘>f®¬=‘Ç0Ž“);ŽŽŽŒ‹Kº' Šn ý‘ì°x¬287‘¯3DLDF-1.1.5.1’¾ÃáRšÃŽOT–ÿJªA“TION–ÕXAR˜OUND“THE“MAIN“AXES‘¬75Ž €n ý•@P­287.Ž©°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°ޤ ‘ +­T‘ÿ +«ransformŽ‘AÈÓPictureŽ‘hdä¬::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢realŽ‘4ÝеxŽ‘:”ì;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµyŽ‘;Ëp;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘;Ÿ–¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±r‘ÿ}'otateŽ‘o>¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘ +°gŽŸ­288.› üRotation–·×around“an“arbitrary“axis.˜¬[²LDF‘T2002.05.03.¬]Ž‘Zn’This–;±function“is“de ned“in“®points.web¬,Ž¡bGecause–UUit“has“­P•®9oin“tŽ›"Dò¬argumen¸ãts,“and“­P•®9oin“tŽ˜¬is“an“incomplete“t¸ãypGe“in“this“ le.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.05.03.¬]Ž‘Y;Added–UUthis“declaration.Ž¡‘ +[²LDF‘T2003.05.02.¬]Ž‘YËSChanged–mname“of“this“function“from“±r–ÿ}'otate‘‰ffŽ‘®ar“oundŽ‘@„ü¬(›ª®)“to“±r‘ÿ}'otateŽ‘‡«¬(˜).‘»This“function“no¸ãwŽ¡o•¸ãv“erloads‘UU±r‘ÿ}'otateޑē¬(‘ª®)–UUwith“three“­realŽ‘ƒ¬argumen¸ãts.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±r‘ÿ}'otateŽ‘\8¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Åµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘Qã¬=‘Ç180ŽŽ‘Ç);Ž¡‘µ=°‘ÿý¬Remem¸ãbGer–UUto“add“shear!‘o°µ=ŽŸ­289.‘ üSet‘ÕTtransform.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.01.17.¬]Ž‘Y;Made–UUnon-inline“and“c¸ãhanged“µtŽ‘ +G¬from“plain“­T‘ÿ +«ransformŽ‘;'¬to“­constŽ‘!÷T‘ÿ +«ransformŽ‘YHɬ&Ž‘aç.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±set‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘},ù¬(­constŽ‘*¢T‘ÿ +«ransformŽ‘Uót¬&Ž‘]º’µtŽ‘aW¬);ŽŸ­290.ަ°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓPictureŽ‘hdä¬::‘±set‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘‡_¬::Ž‘E´PERSPŽ‘_Ûöµ;‘ª¨­realŽŽ¡‘±factorŽ‘> è¬=‘ 1Ž‘ -±;‘ª¨ÂconstŽ‘!0¨unsignedŽ‘RÃshortŽ‘qéÏsort‘‰ffŽ‘®valueŽ’¢Ý6«=‘ -ÂSortingŽ‘+tQ«::Ž‘2ÝMAX_ZŽ‘LÈè±;‘ª¨ÂconstŽ‘!0¨b•QÇo“olŽŽ¡‘Ïdo‘‰ffŽ‘®warningsŽ‘W»Ÿ«=‘†ÚÏtrueŽ‘Kr±;‘ª¨ÂconstŽ‘ HXrealŽ‘7n”Ïmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘jƼ«=‘†Ú·Ž‘ Mø«40ŽŽ‘Mú±;‘ª¨ÂconstŽ‘ HXrealŽ‘7n”Ïmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘kÖa«=‘†Ú40ŽŽ‘ †Ü±;‘ª¨ÂconstŽ‘ HXrealŽŽ¡‘Ïmin‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘QºD«=‘±}·Ž‘ x›«40ŽŽ–x±;‘ª¨ÂconstŽ‘ aîrealŽ‘7¡ÀÏmax‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘lk¦«=‘±}40ŽŽ‘ ±±;‘ª¨ÂconstŽ‘ aîrealŽ‘7¡ÀÏmin‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘j—¾«=‘±}·Ž‘ x›«40ŽŽ“±;‘ª¨ÂconstŽ‘ aîrealŽŽ¡‘Ïmax‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘QA«=‘Ç40ŽŽ‘ Ç);ަÂ254.‘ üNo–ÕTF‘ÿ -«oQÇcus“argumen®9t.ŽŸ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#ç«ÏoutputŽ‘@öë«(ÂconstŽ‘tunsignedŽ‘P5TshortŽ‘néÉÏpr‘ÿ}'ojŽ’†*U«=‘LÉÂPro‘£ŽjectionsŽ‘?-«::Ž‘E§kÝPERSPŽ‘`mı;‘ª¨ÂrealŽ‘G¨ÏfactorŽ‘8˜O«=‘LÉ1Ž‘ Lʱ;‘ª¨ÂconstŽŽ¡‘unsignedŽ‘Nª1shortŽ‘lçôÏsort‘‰ffŽ‘®valueŽ’œY«=‘†÷ÂSortingŽ‘)ñA«::Ž‘0ÝMAX_ZŽ‘KEر;‘ª¨ÂconstŽ‘ Hjb•QÇo“olŽ‘:\ðÏdo‘‰ffŽ‘®warningsŽ‘t©«=‘†÷ÏtrueŽ‘K±;‘ª¨ÂconstŽ‘ HjrealŽŽ¡‘Ïmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘Q€é«=‘¯˜·Ž‘ v¶«40ŽŽ–v¸±;‘ª¨ÂconstŽ‘ `ÊrealŽ‘7ŸxÏmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘l0«=‘¯˜40ŽŽ‘ ¯š±;‘ª¨ÂconstŽ‘ `ÊrealŽ‘7ŸxÏmin‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘kWÔ«=‘¯˜·Ž‘ v¶«40ŽŽ“±;‘ª¨ÂconstŽ‘ `ÊrealŽŽ¡‘Ïmax‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘Qß„«=‘Ç40ŽŽ– DZ;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏmin‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘h”«=‘Ç·Ž‘ -Ž6«40ŽŽ‘Ž8±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏmax‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘i£¶«=‘Ç40ŽŽ“);ަÂ255.– üClear.“«De ned–UUin“Èpoints.web«.ŽŸ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏcle‘ÿ}'arŽ‘9&²«(‘ª®);ަÂ256.– üReset‘ÕTtransform.“«[¬LDF‘T2002.04.17.«]Ž‘Zˆ6Added–UUthis“function.ŽŸ·h–ª¨«Declare‘UUÂPictureŽ‘,F·«functions‘@­218“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIv®9oidŽ‘Bˆ!Ïr–ÿ}'eset‘‰ffŽ‘®tr“ansformŽ’†:z«(‘ª®)Ž¡‘ -·fŽ¡‘Ïtr‘ÿ}'ansformŽ‘?³C±:Ïr‘ÿ}'esetŽ‘Æ·«(‘ª¨);Ž¡‘ -·gަÂ257.‘ üGlobal‘ÕTv‘ÿ\rariables.ŽŸ·h–ª¨«Global‘UUv‘ÿqÇariables‘@­15“·i‘Ç«+·Ž¡‘ -ÂPictureŽ‘2ñcÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘u*«;ަÂ258.ŽŸ·h›ª¨«Declarations–UUfor“the“header“ le‘@­18˜·i‘Ç«+·Ž¡‘ -ÂexternŽ‘.×PictureŽ‘W9Ïcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ’™5«;ަÂ259.‘ üPutting–ÕTPicture“and“LabQÇel“together.ŽŽŽŒ‹Déx Šn ý‘ì«68›­PUTTING–ÕXÂPICTURE“­AND“ÂLABEL“­TOGETHER’“ þ3DLDFPRÃŽG˜·x«260Ž €n ý•@PÂ260.‘ ü«This–UUis“what's“compiled.ŽŸ‘ -·h–ª¨«Include‘UU les‘@­11“·iޤ ‘ -h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·iŽ¡‘ -h›ª¨«Declare–UUnamespace“ÂPro‘£ŽjectionsŽ‘Aa¹­211˜·iŽ¡‘ -h›ª¨«Declare–UUnamespace“ÂSortingŽ‘,ÿŸ­213˜·iŽ¡‘ -h–ª¨«De ne‘UUclasses‘@­208“·iŽ¡‘ -h–ª¨«Initialize‘UUÂstaticŽ‘"ž.LabQÇelŽ‘B4æ«data‘UUmem¸ãbGers‘@­209“·iŽ¡‘ -h–ª¨«Global‘UUv‘ÿqÇariables‘@­15“·iŽ¡‘ -h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·iŽŽŽŒ‹Eû; Šn ý‘ì·x«261›­3DLDFPRÃŽG’“ þPUTTING–ÕXÂPICTURE“­AND“ÂLABEL“­TOGETHER˜«69Ž €n ý•@PÂ261.‘ ü«This–UUis“what's“written“to“Èpictures.h«.Ž©·h‘ª¨Ýpictures.hŽ‘@0ó­261‘ª¨·i‘Çޤ ‘ -h‘ª¨ÂexternŽ‘%È~«declaration–UUof“namespace“ÂPro‘£ŽjectionsŽ‘Aa¹­212‘ª¨·iŽ¡‘ -h‘ª¨ÂexternŽ‘%È~«declaration–UUof“namespace“ÂSortingŽ‘,ÿŸ­214‘ª¨·iŽ¡‘ -h–ª¨«De ne‘UUclasses‘@­208“·iŽ¡‘ -h›ª¨«Declarations–UUfor“the“header“ le‘@­18˜·iŽŸÂ262.› üP•®9oin“t˜(Èpoints.webÂ).Ž¡‘ -«[¬LDF‘T2002.10.20.«]Ž‘Y¤ÂP•®9oin“tŽ‘x ª«is–_¾the“most“basic“dra•¸ãw“able–_¾(not“ llable!)–‘tš¸ãypGe.“All–_¾of“the“other“ÂShapQÇesŽ‘*4Å«con˜tainŽ¡ÂP•®9oin“tsŽ‘%r«and–Üîare“ultimately“de ned“b¸ãy“their“ÂP•®9oin“tsŽ‘)Ý`«and“the“relationships“among“them.‘ “It“is“thereforeŽ¡understandable–yythat“Èpoints.web“«is“b¸ãy“far“the“largest“of“the“source“ les“of“3DLDF‘ypand“that“ÂP•®9oin“tŽ‘":«has“theŽ¡most–]ÿfunctions“of“anš¸ãy“class“in“3DLDF.“Man˜y“of“the“functions“in“the“other“classes“do“little“more“than“applyŽ¡the‘UUÂP•®9oin“tŽ‘"Dò«v¸ãersion–UUof“the“function“to“their“ÂP•®9oin“tsŽ‘#xÙ«.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.11.12.«]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.Ž¡‘ -[¬LDF‘T2003.12.10.«]Ž‘YQ‘Put–ž«the“vš¸ãersion“con˜trol“iden˜ti ers“bac˜k“in˜to“m˜y“release“v˜ersions“for“3DLDF‘ž™1.1.4.‘MÊI'v˜eŽ¡already–"¯put“some“of“them“bacš¸ãk“in,‘,Ñno˜w“I'm“doing“the“rest“of“them.‘`åHo˜w˜ev˜er,‘,Ñthe“release“v˜ersions“are“no˜w“inŽ¡their–UUoš¸ãwn“R˜CS“repGository‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦·h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚstringŽ‘Jn'Ïr‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(«=‘ÇÝ"$Id:È Ýpoints.web,vÈ Ý1Ž‘kÆÜ.3È Ý2003/12/10È Ý16:21:Ž’ÔÆ 48È Ýlfinsto1È ÝExpÈ Ý$"Ž’3ÌÒ«;ŽŸÂ263.‘ üInclude‘ÕT les.ަ·h–ª¨«Include‘UU les‘@­11“·i‘Ç«+·Ž¡«#ÂincludeŽ‘'Ø~Ý"loader.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"pspglb.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"io.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"colors.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"transfor.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"shapes.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"pictures.h"ŽŽŸÂ264.› üP•®9oin“t–ÕTclass“de nition.˜«[¬LDF‘T2002.10.20.«]ŽŽ¡·Ž‘ -Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘ZiT«con¸ãtains–UUthe“cošGordinates“of“the“ÂP•®9oin“tŽ‘"Dò«in“the“global“co˜ordinate“system.Ž¡·Ž‘ -Ïuser‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘U w«and‘UUÏview‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OY«are–UUnot“curren¸ãtly“used.Ž¡·Ž‘ -Ïuser‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘T»<«is–inš¸ãtended“for“use“with“a“user-de ned“coGordinate“system.‘W F‘ÿ*ªor“example,‘&it“ma˜y“bGe“con˜v˜e-Ž¡‘ +µ;‘ª¨­constŽ‘!0¨unsignedŽ‘RÃshortŽ‘qé±sort‘‰ffŽ‘®valueŽ’¢Ý6¬=‘ +­SortingŽ‘+tQ¬::Ž‘2´MAX_ZŽ‘LÈèµ;‘ª¨­constŽ‘!0¨b•QÇo“olŽŽ¡‘±do‘‰ffŽ‘®warningsŽ‘W»Ÿ¬=‘†Ú±trueŽ‘Krµ;‘ª¨­constŽ‘ HXrealŽ‘7n”±min‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘jƼ¬=‘†Ú°Ž‘ Mø¬40ŽŽ‘Múµ;‘ª¨­constŽ‘ HXrealŽ‘7n”±max‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘kÖa¬=‘†Ú40ŽŽ‘ †Üµ;‘ª¨­constŽ‘ HXrealŽŽ¡‘±min‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘QºD¬=‘±}°Ž‘ x›¬40ŽŽ–xµ;‘ª¨­constŽ‘ aîrealŽ‘7¡À±max‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘lk¦¬=‘±}40ŽŽ‘ ±µ;‘ª¨­constŽ‘ aîrealŽ‘7¡À±min‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘j—¾¬=‘±}°Ž‘ x›¬40ŽŽ“µ;‘ª¨­constŽ‘ aîrealŽŽ¡‘±max‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘QA¬=‘Ç40ŽŽ‘ Ç);ަ­299.‘ üNo–ÕTF‘ÿ +«oQÇcus“argumen®9t.ŽŸ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘#竱outputŽ‘@öë¬(­constŽ‘tunsignedŽ‘P5TshortŽ‘néɱpr‘ÿ}'ojŽ’†*U¬=‘LÉ­Pro‘£ŽjectionsŽ‘?-¬::Ž‘E§k´PERSPŽ‘`mĵ;‘ª¨­realŽ‘G¨±factorŽ‘8˜O¬=‘LÉ1Ž‘ Lʵ;‘ª¨­constŽŽ¡‘unsignedŽ‘Nª1shortŽ‘lçô±sort‘‰ffŽ‘®valueŽ’œY¬=‘†÷­SortingŽ‘)ñA¬::Ž‘0´MAX_ZŽ‘KEص;‘ª¨­constŽ‘ Hjb•QÇo“olŽ‘:\ð±do‘‰ffŽ‘®warningsŽ‘t©¬=‘†÷±trueŽ‘Kµ;‘ª¨­constŽ‘ HjrealŽŽ¡‘±min‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘Q€é¬=‘¯˜°Ž‘ v¶¬40ŽŽ–v¸µ;‘ª¨­constŽ‘ `ÊrealŽ‘7Ÿx±max‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘l0¬=‘¯˜40ŽŽ‘ ¯šµ;‘ª¨­constŽ‘ `ÊrealŽ‘7Ÿx±min‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘kWÔ¬=‘¯˜°Ž‘ v¶¬40ŽŽ“µ;‘ª¨­constŽ‘ `ÊrealŽŽ¡‘±max‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘Qß„¬=‘Ç40ŽŽ– ǵ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±min‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘h”¬=‘Ç°Ž‘ +Ž6¬40ŽŽ‘Ž8µ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±max‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘i£¶¬=‘Ç40ŽŽ“);ަ­300.– üClear.“¬De ned–UUin“®points.web¬.ŽŸ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±cle‘ÿ}'arŽ‘9&²¬(‘ª®);ަ­301.– üReset‘ÕTtransform.“¬[²LDF‘T2002.04.17.¬]Ž‘Zˆ6Added–UUthis“function.ŽŸ°h–ª¨¬Declare‘UU­PictureŽ‘,F·¬functions‘@¯263“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIv®9oidŽ‘Bˆ!±r–ÿ}'eset‘‰ffŽ‘®tr“ansformŽ’†:z¬(‘ª®)Ž¡‘ +°fŽ¡‘±tr‘ÿ}'ansformŽ‘?³Cµ:±r‘ÿ}'esetŽ‘Æ·¬(‘ª¨);Ž¡‘ +°gަ­302.‘ üGlobal‘ÕTv‘ÿ\rariables.ŽŸ°h–ª¨¬Global‘UUv‘ÿqÇariables‘@¯18“°i‘Ǭ+°Ž¡‘ +­PictureŽ‘2ñc±curr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘u*¬;ަ­303.ŽŸ°h›ª¨¬Declarations–UUfor“the“header“ le‘@¯21˜°i‘Ǭ+°Ž¡‘ +­externŽ‘.×PictureŽ‘W9±curr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ’™5¬;ަ­304.‘ üPutting–ÕTPicture“and“LabQÇel“together.ŽŽŽŒ‹NØa Šn ý‘ì¬78›¯PUTTING–ÕX­PICTURE“¯AND“­LABEL“¯TOGETHER’Š­h3DLDF-1.1.5.1˜°x¬305Ž €n ý•@P­305.‘ ü¬This–UUis“what's“compiled.ŽŸ‘ +°h–ª¨¬Include‘UU les‘@¯6“°iޤ ‘ +h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°iŽ¡‘ +h›ª¨¬Declare–UUnamespace“­Pro‘£ŽjectionsŽ‘Aa¹¯256˜°iŽ¡‘ +h›ª¨¬Declare–UUnamespace“­SortingŽ‘,ÿŸ¯258˜°iŽ¡‘ +h–ª¨¬De ne‘UUclasses‘@¯253“°iŽ¡‘ +h–ª¨¬Initialize‘UU­staticŽ‘"ž.LabQÇelŽ‘B4æ¬data‘UUmem¸ãbGers‘@¯254“°iŽ¡‘ +h–ª¨¬Global‘UUv‘ÿqÇariables‘@¯18“°iŽ¡‘ +h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°iŽŽŽŒ‹Oê( Šn ý‘ì°x¬306›¯3DLDF-1.1.5.1’Š­hPUTTING–ÕX­PICTURE“¯AND“­LABEL“¯TOGETHER˜¬79Ž €n ý•@P­306.‘ ü¬This–UUis“what's“written“to“®pictures.h¬.Ž©°h‘ª¨´pictures.hŽ‘@0ó¯306‘ª¨°i‘Çޤ ‘ +h‘ª¨­externŽ‘%È~¬declaration–UUof“namespace“­Pro‘£ŽjectionsŽ‘Aa¹¯257‘ª¨°iŽ¡‘ +h‘ª¨­externŽ‘%È~¬declaration–UUof“namespace“­SortingŽ‘,ÿŸ¯259‘ª¨°iŽ¡‘ +h–ª¨¬De ne‘UUclasses‘@¯253“°iŽ¡‘ +h›ª¨¬Declarations–UUfor“the“header“ le‘@¯21˜°iŽŸ­307.› üP•®9oin“t˜(®points.web­).Ž¡‘ +¬[²LDF‘T2002.10.20.¬]Ž‘Y¤­P•®9oin“tŽ‘x ª¬is–_¾the“most“basic“dra•¸ãw“able–_¾(not“ llable!)–‘tš¸ãypGe.“All–_¾of“the“other“­ShapQÇesŽ‘*4Ŭcon˜tainŽ¡­P•®9oin“tsŽ‘%r¬and–Üîare“ultimately“de ned“b¸ãy“their“­P•®9oin“tsŽ‘)Ý`¬and“the“relationships“among“them.‘ “It“is“thereforeŽ¡understandable–yythat“®points.web“¬is“b¸ãy“far“the“largest“of“the“source“ les“of“3DLDF‘ypand“that“­P•®9oin“tŽ‘":¬has“theŽ¡most–]ÿfunctions“of“anš¸ãy“class“in“3DLDF.“Man˜y“of“the“functions“in“the“other“classes“do“little“more“than“applyŽ¡the‘UU­P•®9oin“tŽ‘"Dò¬v¸ãersion–UUof“the“function“to“their“­P•®9oin“tsŽ‘#xÙ¬.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.11.12.¬]Ž‘ZCáRemo•¸ãv“ed–ûthe“vš¸ãersion“con˜trol“iden˜ti ers“from“the“CWEB‘© les“for“the“distribution“ofŽ¡3DLDF–UU1.1.‘qÇThey're“still“used“in“mš¸ãy“dev˜elopmen˜t“v˜ersions.Ž¡‘ +[²LDF‘T2003.12.10.¬]Ž‘YQ‘Put–ž«the“vš¸ãersion“con˜trol“iden˜ti ers“bac˜k“in˜to“m˜y“release“v˜ersions“for“3DLDF‘ž™1.1.4.‘MÊI'v˜eŽ¡already–"¯put“some“of“them“bacš¸ãk“in,‘,Ñno˜w“I'm“doing“the“rest“of“them.‘`åHo˜w˜ev˜er,‘,Ñthe“release“v˜ersions“are“no˜w“inŽ¡their–UUoš¸ãwn“R˜CS“repGository‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘Ǭ+°Ž¡‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´points.web,v® ´1Ž‘kÆÜ.6® ´2004/01/12® ´21:32:Ž’ÔÆ 01® ´lfinsto1® ´Exp® ´$"Ž’3ÌÒ¬;ŽŸ­308.‘ üInclude‘ÕT les.ަ°h–ª¨¬Include‘UU les‘@¯6“°i‘Ǭ+°Ž¡¬#­includeŽ‘'Ø~´"loader.h"ŽŽ¡¬#­includeŽ‘'Ø~´"pspglb.h"ŽŽ¡¬#­includeŽ‘'Ø~´"creatnew.h"ŽŽ¡¬#­includeŽ‘'Ø~´"io.h"ŽŽ¡¬#­includeŽ‘'Ø~´"colors.h"ŽŽ¡¬#­includeŽ‘'Ø~´"transfor.h"ŽŽ¡¬#­includeŽ‘'Ø~´"shapes.h"ŽŽ¡¬#­includeŽ‘'Ø~´"pictures.h"ŽŽŸ­309.› üP•®9oin“t–ÕTclass“de nition.˜¬[²LDF‘T2002.10.20.¬]ŽŽ¡°Ž‘ +±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘ZiT¬con¸ãtains–UUthe“cošGordinates“of“the“­P•®9oin“tŽ‘"Dò¬in“the“global“co˜ordinate“system.Ž¡°Ž‘ +±user‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘U w¬and‘UU±view‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OY¬are–UUnot“curren¸ãtly“used.Ž¡°Ž‘ +±user‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘T»<¬is–inš¸ãtended“for“use“with“a“user-de ned“coGordinate“system.‘W F‘ÿ*ªor“example,‘&it“ma˜y“bGe“con˜v˜e-Ž¡‘ nienš¸ãt–@âto“de ne“a“coGordinate“system“based“on“a“plane“de ned“b˜y“an“ob‘Ž8ject“in“a“dra˜wing.‘jöThe“user-de nedŽ¡‘ -cošGordinate–:ysystem“will“b˜e“de ned“in“terms“of“the“global“co˜ordinate“system“and“the“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Sˆð«canŽ¡‘ -bGe–UUderivš¸ãed“from“the“Ïuser‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘N`Ë«b˜y“using“the“appropriate“transformation.Ž¡·Ž‘ -Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘k]:«is–§&used“for“pro‘Ž8jecting“the“three-dimensional“ÂP•®9oin“tsŽ‘%qЫonš¸ãto“t˜w˜o-dimensions“for“output.Ž¡‘ +cošGordinate–:ysystem“will“b˜e“de ned“in“terms“of“the“global“co˜ordinate“system“and“the“±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Sˆð¬canŽ¡‘ +bGe–UUderivš¸ãed“from“the“±user‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘N`ˬb˜y“using“the“appropriate“transformation.Ž¡°Ž‘ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘k]:¬is–§&used“for“pro‘Ž8jecting“the“three-dimensional“­P•®9oin“tsŽ‘%qЬonš¸ãto“t˜w˜o-dimensions“for“output.Ž¡‘ Currenš¸ãtly‘ÿ*ª,‘÷½the–×Bonly“pro‘Ž8jection“routines“are“for“p•Gersp“ectiv˜e–×Band“parallel“pro‘Ž8jection.‘÷I‘× plan“to“add“othersŽ¡‘ -(axionometric,‘UUetc.)‘qÇsoGon.Ž¡·Ž‘ -Ïtr‘ÿ}'ansformŽ‘8yå«is–Æ£used“for“storing“the“transformations“that“are“applied“the“ÂP•®9oin“tŽ‘`ë«.‘B7It“is“not“necessary“to“upGdateŽ¡‘ -Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘[I-«(or‘5.Ïuser‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘KëO«,‘m#if–5.they're“bGeing“used)“ev¸ãery“time“a“ÂP•®9oin“tŽ‘$¤«is“transformed.‘QTheŽ¡‘ -transformations–¨÷can“bšGe“sa•¸ãv“ed–¨÷up“and“their“result“applied“to“the“ÂP•®9oin“tŽ‘"ì6«when“needed.‘l­This“will“b˜e“whenŽ¡‘ -the‘m‚ÂP•®9oin“tŽ‘"uL«or–m‚the“ÂShapQÇeŽ‘%Ç«or“ÂLabQÇelŽ‘#g«conš¸ãtaining“it“is“output,‘sor“when“a“function“(suc˜h“as“Ïget‘‰ffŽ‘®xŽ‘ûé«(‘ª®))“requiresŽ¡‘ -up-to-date–UUcoGordinate“v‘ÿqÇalues.Ž¡·Ž‘ -Ïdr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘GJÊ«,‘Ïdr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘C•œ«,‘and‘\KÏp‘ÿ}'enŽ‘ÒI«are–\Kused“in“the“draš¸ãwing“and“undra˜wing“functions“and“inŽ¡‘ -ÂP•®9oin“tŽ‘&šM«::‘ÏoutputŽ‘D«(‘ª®).‘qÇThey–UUare“explained“bGelo¸ãw.ŽŽŽŒ‹Fý¹ Šn ý‘ì«70›ÂPOINT–ÕX­CLASS“DEFINITION’ì~é3DLDFPRÃŽG˜·x«264Ž €n ý•@P·Ž‘ -Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘bç«is–Œ•used“in“outputting“ÂPicturesŽ‘.±Þ«.‘ˆIt's“for“culling“ÂP•®9oin“tsŽ‘)<®«that“are“in¸ãvisible“using“aޤ ‘ -particular‘UUÂF‘ÿ -«oQÇcusŽ‘ J¡«,–UUor“that“lie“outside“the“bGoundaries“passed“as“argumen¸ãts“to“ÂPictureŽ‘)ñf«::‘ÏoutputŽ‘D«(‘ª®).Ž¡·Ž‘ -Ïdo‘‰ffŽ‘®outputŽ‘8Ä«is–Íçfor“enabling“or“suppressing“output“of“a“ÂP•®9oin“tŽ‘h/«.‘Û|It's“needed“when“a“ÂP•®9oin“tŽ‘#6«has“bGeen“culled,Ž¡‘ -as–X describšGed“ab˜o•¸ãv“e.‘yäCulling–X do˜es“not“actually“remo•¸ãv“e–X a“ÂP•®9oin“tŽ‘"JZ«(or“an¸ãy“other“ÂShapQÇeŽ‘"D«)“from“a“ÂPictureŽ‘(ô«,‘X¶soŽ¡‘ +(axionometric,‘UUetc.)‘qÇsoGon.Ž¡°Ž‘ +±tr‘ÿ}'ansformŽ‘8yå¬is–Æ£used“for“storing“the“transformations“that“are“applied“the“­P•®9oin“tŽ‘`ë¬.‘B7It“is“not“necessary“to“upGdateŽ¡‘ +±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘[I-¬(or‘5.±user‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘KëO¬,‘m#if–5.they're“bGeing“used)“ev¸ãery“time“a“­P•®9oin“tŽ‘$¤¬is“transformed.‘QTheŽ¡‘ +transformations–¨÷can“bšGe“sa•¸ãv“ed–¨÷up“and“their“result“applied“to“the“­P•®9oin“tŽ‘"ì6¬when“needed.‘l­This“will“b˜e“whenŽ¡‘ +the‘m‚­P•®9oin“tŽ‘"uL¬or–m‚the“­ShapQÇeŽ‘%Ǭor“­LabQÇelŽ‘#g¬conš¸ãtaining“it“is“output,‘sor“when“a“function“(suc˜h“as“±get‘‰ffŽ‘®xŽ‘ûé¬(‘ª®))“requiresŽ¡‘ +up-to-date–UUcoGordinate“v‘ÿqÇalues.Ž¡°Ž‘ +±dr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘GJʬ,‘±dr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘C•œ¬,‘and‘\K±p‘ÿ}'enŽ‘ÒI¬are–\Kused“in“the“draš¸ãwing“and“undra˜wing“functions“and“inŽ¡‘ +­P•®9oin“tŽ‘&šM¬::‘±outputŽ‘D¬(‘ª®).‘qÇThey–UUare“explained“bGelo¸ãw.ŽŽŽŒ‹P즠Šn ý‘ì¬80›­POINT–ÕX¯CLASS“DEFINITION’ä S3DLDF-1.1.5.1˜°x¬309Ž €n ý•@P°Ž‘ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘bç¬is–Œ•used“in“outputting“­PicturesŽ‘.±Þ¬.‘ˆIt's“for“culling“­P•®9oin“tsŽ‘)<®¬that“are“in¸ãvisible“using“aޤ ‘ +particular‘UU­F‘ÿ +«oQÇcusŽ‘ J¡¬,–UUor“that“lie“outside“the“bGoundaries“passed“as“argumen¸ãts“to“­PictureŽ‘)ñf¬::‘±outputŽ‘D¬(‘ª®).Ž¡°Ž‘ +±do‘‰ffŽ‘®outputŽ‘8Ĭis–Íçfor“enabling“or“suppressing“output“of“a“­P•®9oin“tŽ‘h/¬.‘Û|It's“needed“when“a“­P•®9oin“tŽ‘#6¬has“bGeen“culled,Ž¡‘ +as–X describšGed“ab˜o•¸ãv“e.‘yäCulling–X do˜es“not“actually“remo•¸ãv“e–X a“­P•®9oin“tŽ‘"JZ¬(or“an¸ãy“other“­ShapQÇeŽ‘"D¬)“from“a“­PictureŽ‘(ô¬,‘X¶soŽ¡‘ a›]Æw•¸ãa“y˜of˜suppressing˜output˜is˜needed.‘‹Ho“w“ev“er,‘_ãit˜m“ust˜b•Ge˜p“ossible˜to˜enable˜output˜again,‘_ãb“ecause˜theŽ¡‘ -ÂPictureŽ‘2ñc«maš¸ãy–UUbGe“output“again“using“a“di eren˜t“ÂF‘ÿ -«oQÇcusŽ‘#Ÿö«and/or“di eren˜t“v‘ÿqÇalues“for“the“bGoundaries.Ž¡·Ž‘ -Ïme–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘`G#«is–ðNa“ÂstringŽ‘#°”«that“is“attacš¸ãhed“to“the“n˜umerical“v‘ÿqÇalues“of“the“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘d–¯«whenŽ¡‘ -the–7¼MET‘ÿ*ªAPOST‘7´coGde“is“output“to“Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘2xX«.‘géIt“is“currenš¸ãtly“Ý"cm"Ž‘õÔ«and“at“the“presen˜t“time“(2002.10.20),Ž¡‘ +­PictureŽ‘2ñc¬maš¸ãy–UUbGe“output“again“using“a“di eren˜t“­F‘ÿ +«oQÇcusŽ‘#Ÿö¬and/or“di eren˜t“v‘ÿqÇalues“for“the“bGoundaries.Ž¡°Ž‘ +±me–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘`G#¬is–ðNa“­stringŽ‘#°”¬that“is“attacš¸ãhed“to“the“n˜umerical“v‘ÿqÇalues“of“the“±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘d–¯¬whenŽ¡‘ +the–7¼MET‘ÿ*ªAPOST‘7´coGde“is“output“to“±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘2xX¬.‘géIt“is“currenš¸ãtly“´"cm"Ž‘õÔ¬and“at“the“presen˜t“time“(2002.10.20),Ž¡‘ it's–1}not“a“go•Go“d–1}idea“to“use“more“than“one“v‘ÿqÇalue“for“a“single“dra¸ãwing.‘?Changing“this“will“only“bGecomeŽ¡‘ -urgen¸ãt–UUwhen“I“start“writing“the“input“routine.‘qÇTO“DO.ŽŸ¿åŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.04.01.«]Ž‘YR\Added‘ŸvÝWORLD_VALUESŽ‘C%º«,‘±þÝPROJ_VALUESŽ–=øE«,‘±þÝUSER_VALUESŽ“«,‘±þand‘ŸvÝVIEW_VALUESŽ‘=彫.‘P*They–Ÿvare“usedŽ¡in‘UUÏlab‘ÿ}'elŽ‘Éí«(‘ª®)–UUfor“labGelling“ÂP•®9oin“tsŽ‘&Î.«using“the“v‘ÿqÇalues“in“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘PiS«,“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘b h«,“etc.Ž¡‘ -[¬LDF‘T2003.05.06.«]Ž‘YDÛChanged‘‘õÝWORLD_VALUEŽ‘=Ø<«,‘¡ÝPROJ_VALUEŽ–8§h«,‘¡ÝUSER_VALUEŽ“«,‘¡and‘‘õÝVIEW_VALUEŽ‘<*4«to‘‘õÝWORLD_VALUESŽ‘C9«,Ž¡ÝPROJ_VALUESŽ‘:FG«,‘UUÝUSER_VALUESŽ›=›œ«,–UUand“ÝVIEW_VALUESŽ˜«.‘qÇAdded“ÝWORLD_VALUES_X_YŽ‘WÛ«,“ÝPROJ_VALUES_X_YŽ‘R›«,Ž¡ÝUSER_VALUES_X_YŽ‘OF;«,–UUand“ÝVIEW_VALUES_X_YŽ‘Uðå«for“suppressing“the“z-coGordinate.Ž¡‘ -[¬LDF‘T2003.05.20.«]Ž‘Y;Added‘UUÝWORLD_VALUES_ZŽ‘M[“«.ŽŸŸüÈ„`ÕÁGŽŽ¤ó‘ -ÂformatŽ‘3c(ÏPointŽ‘UøShap‘ÿ}'eŽŽ¡·h–ª¨«De ne‘UUÂclassŽ‘5¦P•®9oin“tŽ‘>ò­264“·i‘Çޤ ‘ -ÂclassŽ‘$àRP•®9oin“tŽ‘CÏï«:‘qÇÂprotectedŽ‘86´ShapQÇeŽ‘Zx·fŽ¡‘ÂfriendŽ‘5f¼T‘ÿ +urgen¸ãt–UUwhen“I“start“writing“the“input“routine.‘qÇTO“DO.ŽŸ¿åŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.04.01.¬]Ž‘YR\Added‘Ÿv´WORLD_VALUESŽ‘C%º¬,‘±þ´PROJ_VALUESŽ–=øE¬,‘±þ´USER_VALUESŽ“¬,‘±þand‘Ÿv´VIEW_VALUESŽ‘=彬.‘P*They–Ÿvare“usedŽ¡in‘UU±lab‘ÿ}'elŽ‘Éí¬(‘ª®)–UUfor“labGelling“­P•®9oin“tsŽ‘&Î.¬using“the“v‘ÿqÇalues“in“±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘PiS¬,“±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘b h¬,“etc.Ž¡‘ +[²LDF‘T2003.05.06.¬]Ž‘YDÛChanged‘‘õ´WORLD_VALUEŽ‘=Ø<¬,‘¡´PROJ_VALUEŽ–8§h¬,‘¡´USER_VALUEŽ“¬,‘¡and‘‘õ´VIEW_VALUEŽ‘<*4¬to‘‘õ´WORLD_VALUESŽ‘C9¬,Ž¡´PROJ_VALUESŽ‘:FG¬,‘UU´USER_VALUESŽ›=›œ¬,–UUand“´VIEW_VALUESŽ˜¬.‘qÇAdded“´WORLD_VALUES_X_YŽ‘WÛ¬,“´PROJ_VALUES_X_YŽ‘R›¬,Ž¡´USER_VALUES_X_YŽ‘OF;¬,–UUand“´VIEW_VALUES_X_YŽ‘Uðå¬for“suppressing“the“z-coGordinate.Ž¡‘ +[²LDF‘T2003.05.20.¬]Ž‘Y;Added‘UU´WORLD_VALUES_ZŽ‘M[“¬.ŽŸŸüÈ„`ÕÁGŽŽ¤ó‘ +­formatŽ‘3c(±PointŽ‘UøShap‘ÿ}'eŽŽ¡°h–ª¨¬De ne‘UU­classŽ‘5¦P•®9oin“tŽ‘>ò¯309“°i‘Çޤ ‘ +­classŽ‘$àRP•®9oin“tŽ‘CÏï¬:‘qÇ­protectedŽ‘86´ShapQÇeŽ‘Zx°fŽ¡‘­friendŽ‘5f¼T‘ÿ «ransformŽ‘m/ŽT‘ÿ -«ransformŽ’¢£«::Ž’©1MÏalign‘‰ffŽ–®with‘‰ffŽ“axisŽ’éãÅ«(ÂP•®9oin“tŽ‘šH±;‘ª¨ÂP•®9oin“tŽ‘Dð±;‘ª¨Âc®9harŽ‘¿œ«);Ž¡‘ -Âpriv‘ÿ\rateŽ‘-¨«:‘ÂT‘ÿ -«ransformŽ‘<ÈÒÏtr‘ÿ}'ansformŽ‘h|«;Ž¡‘Âb•QÇo“olŽ‘-¡hÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘eFZ«;Ž¡‘Âv‘ÿ\ralarra®9yŽ‘=ZC·hÂrealŽ‘]Ù·i‘UUÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘PiS«;Ž¡‘Âv‘ÿ\ralarra®9yŽ‘=ZC·hÂrealŽ‘]Ù·i‘UUÏuser‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘K v«;Ž¡‘Âv‘ÿ\ralarra®9yŽ‘=ZC·hÂrealŽ‘]Ù·i‘UUÏview‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘K¯«;Ž¡‘Âv‘ÿ\ralarra®9yŽ‘=ZC·hÂrealŽ‘]Ù·i‘UUÏpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘b h«;Ž¡‘ÂsignedŽ‘7oøshortŽ‘U:›Ïdr‘ÿ}'awdot‘‰ffŽ‘®valueŽ’’…d«;Ž¡‘ÂconstŽ‘2*¤ColorŽ‘QÏ—·Ž‘VϘÏdr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ’“G,«;Ž¡‘ÂstringŽ‘5%OÏp‘ÿ}'enŽ‘E?«;Ž¡‘ -ÂprotectedŽ‘:o™«:‘±=·‘ò?«LDF‘G“2002.09.18.–m2Added‘G—Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WKè«.“It–G—conš¸ãtains“the“minim˜um“and“maxim˜umŽ¡‘(v‘ÿqÇalues–UUfor“x,“y‘ÿ*ª,“and“z“in“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘b h«.‘o·±=Ž¡‘Âv‘ÿ\ralarra®9yŽ‘=ZC·hÂrealŽ‘]Ù·i‘UUÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WY¦«;Ž¡‘Âb•QÇo“olŽ‘-¡hÏdo‘‰ffŽ‘®outputŽ‘X—›«;‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“data“mem¸ãbGer.‘o·±=Ž¡‘ -ÂpublicŽ‘)=Ö«:‘ÂstaticŽ‘$HÙstringŽ‘En&Ïme–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ’˜Äú«;Ž¡‘ÂstaticŽ‘3HÛrealŽ‘Iü ÝCURR_YŽ‘j_«;Ž¡‘ÂstaticŽ‘3HÛrealŽ‘Iü ÝCURR_ZŽ‘j_«;Ž¡‘ÂstaticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ÝWORLD_VALUESŽ’®Äd«;Ž¡‘ÂstaticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ÝPROJ_VALUESŽ’©„g«;Ž¡‘ÂstaticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ÝUSER_VALUESŽ’©„g«;Ž¡‘ÂstaticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ÝVIEW_VALUESŽ’©„g«;Ž¡‘ÂstaticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ÝWORLD_VALUES_X_YŽ’ÃÄX«;Ž¡‘ÂstaticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ÝPROJ_VALUES_X_YŽ’¾„[«;Ž¡‘ÂstaticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ÝUSER_VALUES_X_YŽ’¾„[«;Ž¡‘ÂstaticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ÝVIEW_VALUES_X_YŽ’¾„[«;Ž¡‘ÂstaticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ÝWORLD_VALUES_ZŽ’¹D^«;ŽŸó‘·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«constructors‘@­279“·iŽ¡‘h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·iŽ¡‘ -g«;ŽŸ ó­This–ÕXco c«=‘ÇÝWORLD_VALUESŽ‘D†<·‘8à«1Ž‘8á;Ž¡‘ -ÂconstŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’«::‘ÝUSER_VALUESŽ‘> c«=‘ÇÝWORLD_VALUESŽ‘D†<·‘8à«2Ž‘8á;Ž¡‘ -ÂconstŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’«::‘ÝVIEW_VALUESŽ‘> c«=‘ÇÝWORLD_VALUESŽ‘D†<·‘8à«3Ž‘8á;Ž¡‘ -ÂconstŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’«::‘ÝWORLD_VALUES_X_YŽ‘XMT«=‘ÇÝWORLD_VALUESŽ‘D†<·‘8à«4Ž‘8á;Ž¡‘ -ÂconstŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’«::‘ÝPROJ_VALUES_X_YŽ‘S W«=‘ÇÝWORLD_VALUESŽ‘D†<·‘8à«5Ž‘8á;Ž¡‘ -ÂconstŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’«::‘ÝUSER_VALUES_X_YŽ‘S W«=‘ÇÝWORLD_VALUESŽ‘D†<·‘8à«6Ž‘8á;Ž¡‘ -ÂconstŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’«::‘ÝVIEW_VALUES_X_YŽ‘S W«=‘ÇÝWORLD_VALUESŽ‘D†<·‘8à«7Ž‘8á;Ž¡‘ -ÂconstŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’«::‘ÝWORLD_VALUES_ZŽ‘MÍZ«=‘ÇÝWORLD_VALUESŽ‘D†<·‘8à«8Ž‘8á;ŽŸ ­This–ÕXcoÄç«&Ž‘FŒÏpptŽ‘U«)ަ‘:‘qDZbŽ‘¼q«(ÏbbŽ‘ -W «)±;‘ÿýÏptŽ‘äš«(ÏpptŽ‘ «)‘UU·f‘ª¨gŽ¡‘Âv®9oidŽ‘,ýÚopQÇeratorŽ‘X”«=Ž‘`[­(ÂconstŽ‘*¢b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘VÒ=«&Ž‘^™[ÏbpŽ‘isÔ«)ަ‘·fަ‘±bŽ‘%Å«=‘ÇÏbpŽ‘ ¡‘±:bŽ‘Jª«;ަ‘ÏptŽ‘*«¸«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä«;ަ‘·gަ‘ -g«;ŽŽŽŒ‹I45 Šn ý‘ì·x«269‘­3DLDFPRÃŽG’c\ÂBOOL‘°¡‰ffs4Ž‘#ÕPOINT‘ÿø«73Ž €n ý•@PÂ269.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«LDF‘Äk2003.05.30.›À'Added–ÄÊthis“section,‘ §and“the“de nition“of“Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘:«(Âv®9oidŽ‘¨ƒ«).˜Previously‘ÿ*ª,‘ §±bŽ‘0«and“ÏptŽŽ¡«wš¸ãere–Zònot“set,‘œXso“their“v‘ÿqÇalues“w˜ere“unpredictable.‘‚I‘Z®had“to“remo˜v˜e“the“de nition“from“the“declaration“ofŽ¡Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘5RF«,–UUbGecause“ÝINVALID_POINTŽ‘Kpë«isn't“de ned,“when“the“declaration“is“read“b¸ãy“the“compiler.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘;üð«functions‘@­269“·i‘Çޤ ‘ -Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘@RK«::‘Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘6RJ«(‘ª®)Ž¡‘ -·fŽ¡‘±bޑī=‘ÇÏfalseŽ‘v\«;Ž¡‘ÏptŽ‘ «·«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘ -·gޤ ­This–ÕXcoœí;‘ª¨Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘:RC±cŽ‘>¦;‘ª¨Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘:RC±dŽ‘?†µ«)Ž¡‘:‘qÇÏ rstŽ‘'q«(±aŽ‘I0«)±;‘ÿýÏse–ÿ}'c“ondŽ‘"§Ä«(±bŽ‘Jª«)±;‘ÿýÏthir‘ÿ}'dŽ‘Üg«(±cŽ‘SÛ«)±;‘ÿýÏfourthŽ‘ xö«(±dŽ‘4r«)‘UU·f‘ª¨gަ‘Âv®9oidŽ‘,ýÚopQÇeratorŽ‘X”«=Ž‘`[­(ÂconstŽ‘*¢b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜quadrupleŽ’ŽM«&Ž’•ØkÏar‘ÿ}'gŽ’¤¨e«)Ž¡‘·fŽ¡‘Ï rstŽ‘0µ­±:bŽ‘«=‘ÇÏar‘ÿ}'gŽ‘—±:Ï rstŽ‘µª±:bŽ‘Jª«;Ž¡‘Ï rstŽ‘0µ­±:ÏptŽ‘ «µ«=‘ÇÏar‘ÿ}'gŽ‘—±:Ï rstŽ‘µª±:ÏptŽ‘ ä«;Ž¡‘Ïse–ÿ}'c“ondŽ‘;§Ê±:bŽ‘«=‘ÇÏar‘ÿ}'gŽ‘—±:Ïse–ÿ}'c“ondŽ‘§Ç±:bŽ‘Jª«;Ž¡‘Ïse–ÿ}'c“ondŽ‘;§Ê±:ÏptŽ‘ «µ«=‘ÇÏar‘ÿ}'gŽ‘—±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ ä«;Ž¡‘Ïthir‘ÿ}'dŽ‘3Üm±:bŽ‘«=‘ÇÏar‘ÿ}'gŽ‘—±:Ïthir‘ÿ}'dŽ‘Üj±:bŽ‘Jª«;Ž¡‘Ïthir‘ÿ}'dŽ‘3Üm±:ÏptŽ‘ «µ«=‘ÇÏar‘ÿ}'gŽ‘—±:Ïthir‘ÿ}'dŽ‘Üj±:ÏptŽ‘ ä«;Ž¡‘ÏfourthŽ‘9xü±:bŽ‘«=‘ÇÏar‘ÿ}'gŽ‘—±:ÏfourthŽ‘xù±:bŽ‘Jª«;Ž¡‘ÏfourthŽ‘9xü±:ÏptŽ‘ «µ«=‘ÇÏar‘ÿ}'gŽ‘—±:ÏfourthŽ‘xù±:ÏptŽ‘ ä«;Ž¡‘·gŽ¡‘ -g«;ŽŽŽŒ‹J8S Šn ý‘ì«74‘­DEF‘ÿ8A•ÃŽUL‘ÿJªT›ÕXCONSTR“UCTOR˜F“OR˜ÂBOOL‘°¡‰ffs4Ž–#ÕPOINT‘°¡‰ffs4Ž“QUADR®9UPLE‘HzÇ­3DLDFPRÃŽG‘·x«271Ž €n ý•@PÂ271.‘ üDefault–ÕTConstructor“for“b•QÇo“ol‘°¡‰ffs4Ž›#Õp“oin®9t‘°¡‰ffs4Ž˜quadruple.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«LDF‘ê—2003.06.1.›NO–ÏrrŽ‘HTç±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏpptŽ‘U«)Ž¡‘:‘qDZbŽ‘¼q«(ÏbbŽ‘ -W «)±;‘ÿýrŽ‘ Ê«(ÏrrŽ‘ -Q«)±;‘ÿýÏptŽ‘äš«(ÏpptŽ‘ «)–UU·f‘ª¨g‘±=·‘ÿý«Construcor“with“Âb•QÇo“olŽ‘¡f«,“ÂrealŽ‘³.«,“and“ÂP•®9oin“tŽ‘"Dò«argumen¸ãts.‘o·±=ަ‘Âv®9oidŽ‘,ýÚopQÇeratorŽ‘X”«=Ž‘`[­(ÂconstŽ‘*¢b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘nqX«&Ž‘v8vÏbrpŽ’…Jd«)‘±=·‘ÿý«Assignmen¸ãt‘UUopGerator.‘o·±=Ž¡‘·fŽ¡‘±bŽ‘%Å«=‘ÇÏbrpŽ‘Ù±:bŽ‘Jª«;Ž¡‘±rŽ‘%‘/«=‘ÇÏbrpŽ‘Ù±:rŽ‘Ê«;Ž¡‘ÏptŽ‘*«¸«=‘ÇÏbrpŽ‘Ù±:ÏptŽ‘ ä«;Ž¡‘·gŽ¡‘ -g«;ŽŽŽŒ‹KD; Šn ý‘ì·x«273‘­3DLDFPR•ÃŽG‘s,~DEF‘ÿ8A“UL‘ÿJªT›ÕXCONSTR“UCTOR˜F“OR˜ÂBOOL‘°¡‰ffs4Ž–#ÕREAL‘°¡‰ffs4Ž“POINT‘«75Ž €n ý•@PÂ273.‘ üDefault–ÕTConstructor“for“b•QÇo“ol‘°¡‰ffs4Ž–#Õreal‘°¡‰ffs4Ž“pQÇoin®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«LDF‘82003.06.1.›h Added–8!this“section.˜Rede ned“the“default“constructor“Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘P)‚«(Âv®9oidŽ‘¨ƒ«),‘=ùso“that“±bŽŽ¡«is–|êset“to“ÏfalseŽ‘,.«,‘†Ð±rŽ‘ ÍΫis“set“to“ÝINVALID_REALŽ‘C.«,›†Ðand“ÏptŽ‘Þq«is“set“to“ÝINVALID_BOOL_POINTŽ‘bƒ«.‘è‡In“order“to“do“this,˜it“w¸ãasŽ¡necessary–Ígto“remo•¸ãv“e–Ígthe“de nition“from“the“declaration“of“Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘O¾È«,‘è—bGecause“when“the“compiler“seesŽ¡it,‘UUÝINVALID_REALŽ‘F0î«and‘UUÝINVALID_POINTŽ‘Kpë«aren't–UUde ned“y¸ãet.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Sœ «functions‘@­273“·i‘Çޤ ‘ -Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Wñf«::‘Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Mñe«(‘ª®)Ž¡‘ -:‘qDZbŽ‘¼q«(ÏfalseŽ‘¯D«)±;‘ÿýrŽ‘ Ê«(ÝINVALID_REALŽ‘?†D«)±;‘ÿýÏptŽ‘äš«(ÝINVALID_POINTŽ‘DÆA«)‘UU·f‘ª¨gŽŸ ­This–ÕXco’ˆ«=‘ÇÝCURR_YŽ–"Ín±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘>f®«=‘ÇÝCURR_ZŽ“«);ŽŸÿõÂ283.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«constructors‘@­280“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘&šM«::‘ÂP•®9oin“tŽ‘šL«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘;Ëp;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘;Ÿ–«)Ž¡‘ -·fŽ¡‘h›ª¨«Initialize–UUcoGordinates“and“limits‘@­278˜·iŽ¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïdo‘‰ffŽ‘®outputŽ‘A½M«=‘ÇÏtrueŽ‘‹°«;Ž¡#ÂifŽ‘ hÍ«0Ž‘$hϱ=·‘³Ò«[¬LDF‘T2002.10.23.«]Ž‘SoáÏuser‘‰ffŽ‘®tr‘ÿ}'ansformŽ’˜ «is– *not“currenš¸ãtly“in“use.‘XdIt“is“in˜tended“for“use“in“implemen˜tingŽ¡‘(user-de ned–UUcoGordinate“systems.‘o·±=Ž¡‘ÂifŽ‘´ú«(Ïuser‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘A¦ü±:Ïis‘‰ffŽ‘®identityŽ‘-2¢«(‘ª¨))Ž¡#ÂendifŽŽ¡‘Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘k«[0Ž‘]–Ç=“±xŽ‘~4«;Ž¡‘Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘a«[1Ž‘]–Ç=“±yŽ‘ -«;Ž¡‘Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘a«[2Ž‘]–Ç=“±zŽ‘Þ6«;Ž¡‘Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘a«[3Ž‘]–Ç=“1Ž‘Ç;Ž¡‘ -·gŽŸÿõÂ284.‘ üSetting‘ÕTfunction.ŽŸ¿øŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.12.01.«]Ž‘Y;Made–UUargumen¸ãts“ÂconstŽ‘*¢«.Ž¡‘ -[¬LDF‘T2003.03.25.«]Ž‘Y$½Changed–q×this“function,‘xøso“that“it“returns“·Ž‘qØÏthisŽ‘Ïe«instead“of“Âv®9oidŽ‘Z«.‘ÇNThis“mak¸ães“it“pGossibleŽ¡to–UUcš¸ãhain“in˜v˜oGcations“of“this“function.ŽŸŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘ÇŽ¡‘ -ÂconstŽ‘(*£P•®9oin“tŽ‘G@«&Ž‘Ná^ÏsetŽ‘\Yâ«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘>’ˆ«=‘ÇÝCURR_YŽ–"Ín±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘>f®«=‘ÇÝCURR_ZŽ“«);Ž© ÿü­See–´?also“sections“288,–ºÝ291,“293,“295,“297,“299,“301,“302,“304,“307,“308,“309,“312,“314,“317,“319,“322,“324,“327,“329,“332,“334,“337,ޤ -‘339,–áú341,“342,“344,“345,“349,“352,“354,“356,“357,“360,“362,“364,“368,“370,“375,“377,“392,“394,“398,“402,“404,“406,“410,“412,Ž¡‘414,–áú416,“419,“420,“422,“423,“425,“426,“428,“429,“431,“433,“438,“440,“442,“444,“445,“447,“449,“451,“457,“461,“463,“466,“468,Ž¡‘474,–ÕX477,“479,“481,“483,“485,“488,“492,“494,“496,“498,“500,“502,“504,“507,“509,“511,“513,“516,“523,“525,“528,“and“529.ަThis–ÕXcoOœ«to‘UUÏtrueŽ‘í«.Ž¡‘ -[¬LDF‘T2002.10.11.«]Ž‘X•3It–âMis“used“in“v‘ÿqÇarious“ÂP•®9oin“tŽ‘!^â«functions,‘ùOand“in“ÂP®9athŽ‘Uþ«and“some“classes“deriv¸ãed“from“ÂP®9athŽ‘s±«,Ž¡currenš¸ãtly‘N¡ÂEllipseŽ‘$7z«,‘ƒ,ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘Dà«,‘ƒ,and‘N¡ÂRectangleŽ‘4Ž6«.‘6It–N¡is“in˜tended“that“ob‘Ž8jects“of“these“t˜ypšGes“b˜e“declared,‘ƒ,i.e.,Ž¡unlikš¸ãe‘—ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘kû/«,‘ñthey–—are“not“mean˜t“to“bGe“used“only“as“base“classes.‘VˆÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽŽ¡«doGes–UUnot“use“Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘L+Q«(‘ª®)“and“it“is“unlik¸ãely“that“other“classes“of“this“kind“will“use“it.ަÂ291.‘ üOptional–ÕTpQÇoinš®9ter“argumen˜t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.29.«]Ž‘YuMade–Úthis“function“non-ÂinlineŽ‘4ó«.›tAdded“argumen¸ãt“ÂconstŽ‘"ŠkP•®9oin“tŽ‘AÿB·Ž‘FÿC±pŽ‘LC«.˜If“±pŽ‘ ‡±·6«=‘¥"0Ž‘¥#,‘ûÝthe“newŽ¡ÂP•®9oin“tŽ‘ï«is–UUassigned“to“using“the“v‘ÿqÇalues“from“±pŽ‘]U«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ŽŸ ‘ -ÂstaticŽ‘)HÚP•®9oin“tŽ‘H8w·Ž‘M8xÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ’–t«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?·Ž‘B@±pŽ‘IéX«=‘Ç0Ž‘Ç);ަÂ292.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïž·Ž‘-ïŸÂP•®9oin“tŽ‘J‰ë«::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘IÖ«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?·Ž‘B@±pŽ‘G"@«)Ž¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2Ž‘7ï ±aŽ‘?ÿè«=‘ÇÂnewŽ‘Ïœ«(ÂP•®9oin“tŽ‘šH«);ŽŸ‘±aŽ‘I2Ÿ~ŽŽ‘I3Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Wµ=«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ÂifŽ‘´ú«(±pŽ‘Ï·6«=‘Ç0Ž–Ç)‘·Ž‘ -±aŽ‘I«=‘Ç·Ž“±pŽ‘ Ï«;Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gަÂ293.‘ üRequired›ÕTP•®9oin“t˜argumen“t.ŽŸ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚP•®9oin“tŽ‘H8w·Ž‘M8xÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ’–t«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«);ŽŽŽŒ‹Pƒ~ Šn ý‘ì«80›­REQUIRED–ÕXÂPOINT“­AR•ÃŽGUMENT’Ú'3DLDFPR“G˜·x«294Ž €n ý•@PÂ294.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïž·Ž‘-ïŸÂP•®9oin“tŽ‘J‰ë«::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘IÖ«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«)Ž¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2Ž‘7ï ±aŽ‘?ÿè«=‘ÇÂnewŽ‘Ïœ«(ÂP•®9oin“tŽ‘šH«);ަ‘±aŽ‘I2Ÿ~ŽŽ‘I3Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Wµ=«=‘ÇÏtrueŽ‘‹°«;Ž¡‘·Ž‘±aŽ‘!K«=‘DZpŽ‘Ï«;Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gŽŸÂ295.‘ üreal‘ÕTargumen®9ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.06.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚP•®9oin“tŽ‘H8w·Ž‘M8xÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ’–t«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘>’ˆ«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘>f®«=‘Ç0Ž“);ŽŸÂ296.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïž·Ž‘-ïŸÂP•®9oin“tŽ‘J‰ë«::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘IÖ«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘;Ëp;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘;Ÿ–«)Ž¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2Ž‘7ï ±aŽ‘?ÿè«=‘ÇÂnewŽ‘Ïœ«(ÂP•®9oin“tŽ‘šH«);ަ‘±aŽ‘I2Ÿ~ŽŽ‘I3Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Wµ=«=‘ÇÏtrueŽ‘‹°«;Ž¡‘±aŽ‘I2Ÿ~ŽŽ‘I3ÏsetŽ‘*Á·«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gŽŸÂ297.‘ üDestructor.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.08.27.«]Ž‘Y(½Added–u×a“ÂvirtualŽ‘)$,«destructor“with“an“empt¸ãy“de nition,‘}øbGecause“GCC‘uÏwith“the“\È-Wall«"Ž¡option–UUissued“the“folloš¸ãwing“w˜arning:‘qÇ\`class“P˜oin˜t'“has“virtual“functions“but“non-virtual“destructor".ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/Ô·Ž‘7TòÂP•®9oin“tŽ‘Rï:«(‘ª¨);ŽŸÂ298.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘&šM«::Ž‘-(‹·Ž‘4ï©ÂP•®9oin“tŽ‘P‰ñ«(‘ª¨)Ž¡‘ -·f‘ª¨gŽŸÂ299.‘ üAssignmen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.03.25.«]Ž‘Yd¦Changed–±Àthis“function,‘ÈÚso“that“it“returns“±pŽ‘ k€«instead“of“Âv®9oidŽ‘ZC«.‘‡This“mak¸ães“it“pGossible“toŽ¡c•¸ãhain›UUin“v“oGcations˜of˜this˜function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂconstŽ‘(*£P•®9oin“tŽ‘G@«&Ž‘Ná^ÂopQÇeratorŽ‘zx«=Ž’‚?1(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«);ŽŽŽŒ‹QD Šn ý‘ì·x«300–­3DLDFPRÃŽG’-ÉEASSIGNMENT“«81Ž €n ý•@PÂ300.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂconstŽ‘(*£P•®9oin“tŽ‘G@«&Ž‘Ná^ÂP•®9oin“tŽ‘k{ª«::Ž‘r èÂopQÇeratorŽ’ «=Ž’¥g»(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«)Ž¡‘ -·fŽ¡‘Ïtr‘ÿ}'ansformŽ‘Bz[«=‘DZpŽ‘Ï:Ïtr‘ÿ}'ansformŽ‘+³A«;Ž¡‘Ïdr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘Tã«=‘DZpŽ‘Ï:Ïdr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘=JÉ«;Ž¡‘Ïdr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘S>®«=‘DZpŽ‘Ï:Ïdr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘YCan‘kI‘=mak¸ãeޤ the‘9ÂF‘ÿ -«oQÇcusŽ‘#¾·Ž‘+ø«argumenš¸ãt‘9ÂconstŽ‘ㆫ?‘ZWhat–9is“the“syn˜tax“for“a“pGoin˜ter“to“a“ÂconstŽ‘ㆫ,‘ras“oppšGosed“to“a“ÂconstŽ‘ ñ¿«p˜oin¸ãter?Ž¡LoGok–UUup!!‘qÇMakš¸ãe“sure“I“c˜hange“this“is“È3DLDF.texi“«if“I“c˜hange“it“here!Ž©Â312.– üNon-const‘ÕTv®9ersion.“«[¬LDF‘T2002.09.19.«]Ž‘Zˆ6Added–UUthis“function.ŽŸ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv‘ÿ\ralarra®9yŽ‘3ZB·hÂrealŽ‘]Ù·i‘DÏget‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘>ÂW«(Âc®9harŽ‘08Ïc–ÿ}'o“or“dsŽ‘:J¾«=‘úÝ'w'Ž‘WY±;‘ª¨ÂconstŽ‘ ›9b•QÇo“olŽ‘;ŽÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘d¼À«=‘úÏtrueޑՒ±;‘ª¨ÂconstŽ‘ ›9b•QÇo“olŽŽ¡‘Ïdo‘‰ffŽ‘®applyŽ‘GÈJ«=‘½rÏtrueŽ‘‚ -±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘"‰·Ž‘'‰±fŽ‘1?r«=‘½r0Ž‘½s±;‘ª¨ÂconstŽ‘ iunsignedŽ‘Q3øshortŽ‘o’kÏpr‘ÿ}'ojŽ’†C «=‘½rÂPro‘£ŽjectionsŽ‘>‰Ö«::Ž‘EÝPERSPŽ‘_Þm±;‘ª¨ÂrealŽŽ¡‘ÏfactorŽ‘;Êù«=‘Ç1Ž‘Ç);ަÂ313.ŽŸ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âv‘ÿ\ralarra®9yŽ‘3ZB·hÂrealŽ‘]Ù·i‘q2ÂP•®9oin“tŽ‘ ~«::‘Ïget‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘;§«(Âc®9harŽ‘†&Ïc–ÿ}'o“or“dsŽ‘5²±;‘ª¨ÂconstŽ‘ñ'b•QÇo“olŽ‘9®jÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘_W¢±;‘ª¨ÂconstŽ‘ñ'b•QÇo“olŽ‘9®jÏdo‘‰ffŽ‘®applyŽ‘_¹?±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘2·Ž‘7±fŽ‘<øì;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’€Ê¾±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïdo‘‰ffŽ‘®applyŽ‘& -Õ«)‘Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Kß«(‘ª®);Ž¡‘Ïc–ÿ}'o“or“dsŽ‘2Ц«=‘ÇÏtolowerŽ‘#í«(Ïc–ÿ}'o“or“dsŽ‘ Œ«);Ž¡‘ÂifŽ‘´ú«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'w'Ž‘ w«)‘ÂreturnŽ‘(æºÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘uú¸«;Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'v'Ž‘ w«)‘ÂreturnŽ‘(æºÏview‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘q@i«;Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'u'Ž‘ w«)‘ÂreturnŽ‘(æºÏuser‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘pœÛ«;Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'p'Ž‘ w«)‘·fŽ¡‘ÂifŽ‘)´û«(Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘%©8«)‘·fŽ¡‘(ÂifŽ‘3´ü«(±fŽ‘¿þ·‘Ç«0Ž‘Ç)‘±fŽ‘ ¿þ«=‘Ç&Ž‘ -Ž6Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘Bl4«;Ž¡‘(Ïpr–ÿ}'oje“ctŽ‘Fw«(·Ž‘±fŽ‘ -øç;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘·gŽ¡‘ÂreturnŽ‘Aæ½Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ’ œÐ«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘8mŽ·‘·åÝ"ERROR!È ÝInÈ ÝPoint::geŽ‘p·©t_all_coords():\n"Ž’×uÀ·Ž¡‘2Ý"ArgumentÈ ÝcoordsÈ ÝhasŽ’šÿÉÈ ÝinvalidÈ Ývalue:È Ý"Ž’ûß×·‘ÙÏc–ÿ}'o“or“dsŽ‘*=>·Ž¡‘2Ý".È ÝReturningÈ ÝworldÈ ÝcŽ’šÿÉoordinates.\n"Ž’çÍ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ’Žú»«;Ž¡‘·gŽ¡‘ -gަÂ314.– üconst‘ÕTv®9ersion.“«[¬LDF‘T2002.09.19.«]Ž‘Zˆ6Added–UUthis“function.ŽŸ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv‘ÿ\ralarra®9yŽ‘3ZB·hÂrealŽ‘]Ù·i‘DÏget‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘>ÂW«(Âc®9harŽ‘08Ïc–ÿ}'o“or“dsŽ‘:J¾«=‘úÝ'w'Ž‘WY±;‘ª¨ÂconstŽ‘ ›9b•QÇo“olŽ‘;ŽÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘d¼À«=‘úÏtrueޑՒ±;‘ª¨ÂconstŽ‘ ›9b•QÇo“olŽŽ¡‘Ïdo‘‰ffŽ‘®applyŽ‘GÈJ«=‘½rÏtrueŽ‘‚ -±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘"‰·Ž‘'‰±fŽ‘1?r«=‘½r0Ž‘½s±;‘ª¨ÂconstŽ‘ iunsignedŽ‘Q3øshortŽ‘o’kÏpr‘ÿ}'ojŽ’†C «=‘½rÂPro‘£ŽjectionsŽ‘>‰Ö«::Ž‘EÝPERSPŽ‘_Þm±;‘ª¨ÂrealŽŽ¡‘ÏfactorŽ‘;Êù«=‘Ç1Ž‘Ç)‘UUÂconstŽ‘*¢«;ަÂ315.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âv‘ÿ\ralarra®9yŽ‘3ZB·hÂrealŽ‘]Ù·i‘q2ÂP•®9oin“tŽ‘ ~«::‘Ïget‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘;§«(Âc®9harŽ‘†&Ïc–ÿ}'o“or“dsŽ‘5²±;‘ª¨ÂconstŽ‘ñ'b•QÇo“olŽ‘9®jÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘_W¢±;‘ª¨ÂconstŽ‘ñ'b•QÇo“olŽ‘9®jÏdo‘‰ffŽ‘®applyŽ‘_¹?±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘2·Ž‘7±fŽ‘<øì;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’€Ê¾±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2pŽ‘7÷Ÿ«(·Ž‘ÏthisŽ‘ë·«);Ž¡‘Âv‘ÿ\ralarra®9yŽ‘=ZC·hÂrealŽ‘]Ù·i‘UU±vŽ‘ Q*«=‘DZpŽ‘Ï:Ïget‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘:§«(Ïc–ÿ}'o“or“dsŽ‘ Œ±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž«);ަ‘ÂreturnŽ‘7æ¼±vŽ‘=y«;Ž¡‘ -·gŽŽŽŒ‹T¯é Šn ý‘ì«84–­GET‘ÕXCOORD’2=33DLDFPRÃŽG“·x«316Ž €n ý•@PÂ316.– üGet‘…ïcoQÇord.“«[¬LDF‘T2002.09.14.«]Ž‘[!ÈAdded‘îçÏget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘,K׫(‘ª®).‘>}Fixing–îça“bug“that“caused“Ïget‘‰ffŽ‘®xŽ‘}N«(Ý'p'Ž‘F_«),–Letc.,“toޤ call‘UUÏpr–ÿ}'oje“ctŽ‘!Ìc«(›ª®)–UUm¸ãultiple“times“when“doing“ÂP®9athŽ‘潫::‘ÏoutputŽ‘D«(˜).Ž©Â317.– üNon-const‘Mv®9ersion.“«[¬LDF‘T2002.10.27.«]Ž‘YéíThe–· argumen¸ãt“±cŽ‘ Áó«refers“to“either“the“x,–Ö´y‘ÿ*ª,“z,“or–· w“coGordinate.ŽŸ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘!ëxÏget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘JHh«(Âc®9harŽ‘¢’±cŽ‘öm;‘ª¨Âc®9harŽ‘M:Ïc–ÿ}'o“or“dsŽ‘=&U«=‘ÏÝ'w'Ž‘î±;‘ª¨ÂconstŽ‘! “b•QÇo“olŽ‘;çBÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘f` «=‘ÏÏtrueŽ‘”'±;‘ª¨ÂconstŽ‘! “b•QÇo“olŽŽ¡‘Ïdo‘‰ffŽ‘®applyŽ‘GÈJ«=‘½rÏtrueŽ‘‚ -±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘"‰·Ž‘'‰±fŽ‘1?r«=‘½r0Ž‘½s±;‘ª¨ÂconstŽ‘ iunsignedŽ‘Q3øshortŽ‘o’kÏpr‘ÿ}'ojŽ’†C «=‘½rÂPro‘£ŽjectionsŽ‘>‰Ö«::Ž‘EÝPERSPŽ‘_Þm±;‘ª¨ÂrealŽŽ¡‘ÏfactorŽ‘;Êù«=‘Ç1Ž‘Ç);ަÂ318.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ eaP•®9oin“tŽ‘<ÿ­«::‘Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘)\ô«(Âc®9harŽ‘{±cŽ‘pV;‘ª¨Âc®9harŽ‘Ç#Ïc–ÿ}'o“or“dsŽ‘6Я±;‘ª¨ÂconstŽ‘‡|b•QÇo“olŽ‘8ÛÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘^„L±;‘ª¨ÂconstŽ‘‡|b•QÇo“olŽ‘8ÛÏdo‘‰ffŽ‘®applyŽ‘^åé±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!§{·Ž‘&§|±fŽ‘, b;‘ª¨ÂconstŽŽ¡‘2unsignedŽ‘b7shortŽ’€¶Ïpr‘ÿ}'ojŽ’’õy±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïdo‘‰ffŽ‘®applyŽ‘& -Õ«)‘Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Kß«(‘ª®);Ž¡‘ÂifŽ‘´ú«(±fŽ‘¿þ·‘Ç«0Ž‘Ç)‘±fŽ‘ ¿þ«=‘Ç&Ž‘ -Ž6Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘Bl4«;ަ‘ÂunsignedŽ‘D7shortŽ‘b³ÏctrŽ‘o»¡«;ަ‘±cŽ‘õ«=‘ÇÏtolowerŽ‘#í«(±cŽ‘SÛ«);Ž¡‘ÂifŽ‘´ú«(±cŽ‘ó·‘ÇÝ'x'Ž‘ w«)‘ÏctrŽ‘«=‘Ç0Ž‘Ç;Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±cŽ‘ó·‘ÇÝ'y'Ž‘ w«)‘ÏctrŽ‘«=‘Ç1Ž‘Ç;Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±cŽ‘ó·‘ÇÝ'z'Ž‘ w«)‘ÏctrŽ‘«=‘Ç2Ž‘Ç;Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±cŽ‘ó·‘ÇÝ'w'Ž‘ w«)‘ÏctrŽ‘«=‘Ç3Ž‘Ç;Ž¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘4)«·‘tÝ"ERROR!È ÝInÈ ÝPoint::geŽ‘lsÆt_coord():È Ý"Ž’¯n ·‘tÝ"InvalidÈ ÝcÈ Ýargument:Ž‘lsÆÈ Ý"Ž‘zî*·‘t±cŽ‘ ;ß·‘tÝ".\n"Ž‘!®]·Ž¡‘2Ý"UsingÈ Ýx\n"Ž‘o d·‘ÇÏ ushŽ‘€«;Ž¡‘ÏctrŽ‘. «=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘Ïc–ÿ}'o“or“dsŽ‘2Ц«=‘ÇÏtolowerŽ‘#í«(Ïc–ÿ}'o“or“dsŽ‘ Œ«);Ž¡‘ÂifŽ‘´ú«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'w'Ž‘ w«)‘ÂreturnŽ‘(æºÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘uú¸«[ÏctrŽ‘ ¹î«];Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'u'Ž‘ w«)‘ÂreturnŽ‘(æºÏuser‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘pœÛ«[ÏctrŽ‘ ¹î«];Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'p'Ž‘ w«)‘·fŽ¡‘ÂifŽ‘)´û«(Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘%©8«)‘Ïpr–ÿ}'oje“ctŽ‘#w«(·Ž‘±fŽ‘ -øç;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ÂreturnŽ‘Aæ½Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ’ œÐ«[ÏctrŽ‘ ¹î«];Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'v'Ž‘ w«)‘ÂreturnŽ‘(æºÏview‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘q@i«[ÏctrŽ‘ ¹î«];Ž¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘4 ø·‘WOÝ"ERROR!È ÝInÈ ÝPoint::geŽ‘lWt_coord().È ÝInvalidÈ ÝaŽ’ÕV×rgumentÈ ÝcharÈ Ýcoords:Ž’>V›È Ý"Ž’L´L·‘WOÏc–ÿ}'o“or“dsŽ‘"¸*·Ž¡‘2Ïend‘‚ØlŽ‘H¸ß·‘ÇÝ"ReturningÈ ÝINVALID_RŽ‘kÆÜEAL.\n\n"Ž’žTA·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_REALŽ’m«;Ž¡‘·gŽ¡‘ -gŽŸÂ319.‘ üconst‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘!ëxÏget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘JHh«(Âc®9harŽ‘¢’±cŽ‘öm;‘ª¨Âc®9harŽ‘M:Ïc–ÿ}'o“or“dsŽ‘=&U«=‘ÏÝ'w'Ž‘î±;‘ª¨ÂconstŽ‘! “b•QÇo“olŽ‘;çBÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘f` «=‘ÏÏtrueŽ‘”'±;‘ª¨ÂconstŽ‘! “b•QÇo“olŽŽ¡‘Ïdo‘‰ffŽ‘®applyŽ‘GÈJ«=‘½rÏtrueŽ‘‚ -±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘"‰·Ž‘'‰±fŽ‘1?r«=‘½r0Ž‘½s±;‘ª¨ÂconstŽ‘ iunsignedŽ‘Q3øshortŽ‘o’kÏpr‘ÿ}'ojŽ’†C «=‘½rÂPro‘£ŽjectionsŽ‘>‰Ö«::Ž‘EÝPERSPŽ‘_Þm±;‘ª¨ÂrealŽŽ¡‘ÏfactorŽ‘;Êù«=‘Ç1Ž‘Ç)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹UÂ_ Šn ý‘ì·x«320–­3DLDFPRÃŽG’onÂCONST‘ÕX­VERSION“«85Ž €n ý•@PÂ320.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ eaP•®9oin“tŽ‘<ÿ­«::‘Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘)\ô«(Âc®9harŽ‘{±cŽ‘pV;‘ª¨Âc®9harŽ‘Ç#Ïc–ÿ}'o“or“dsŽ‘6Я±;‘ª¨ÂconstŽ‘‡|b•QÇo“olŽ‘8ÛÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘^„L±;‘ª¨ÂconstŽ‘‡|b•QÇo“olŽ‘8ÛÏdo‘‰ffŽ‘®applyŽ‘^åé±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!§{·Ž‘&§|±fŽ‘, b;‘ª¨ÂconstŽŽ¡‘2unsignedŽ‘b7shortŽ’€¶Ïpr‘ÿ}'ojŽ’’õy±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2pŽ‘7÷Ÿ«(·Ž‘ÏthisŽ‘ë·«);ަ‘ÂreturnŽ‘7æ¼±pŽ‘<î¼:Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘(\ð«(±cŽ‘SÛ;‘ª¨Ïc–ÿ}'o“or“dsŽ‘´4±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gޤÂ321.‘ üGet‘ÕTx.Ž¡322.‘ üNon-const‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘!$åÏget‘‰ffŽ‘®xŽ‘7³L«(Âc®9harŽ‘ÛÿÏc–ÿ}'o“or“dsŽ‘9j'«=‘„œÝ'w'Ž‘Êû±;‘ª¨ÂconstŽ‘ Gb•QÇo“olŽ‘:ZÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘c‡ð«=‘„œÏtrueŽ–I4±;‘ª¨ÂconstŽ‘ Gb•QÇo“olŽ‘:ZÏdo‘‰ffŽ‘®applyŽ‘cé«=‘„œÏtrueŽ“±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘·Ž‘#±fŽ‘+À«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’ƒ‘Ö«=‘ÇÂPro‘£ŽjectionsŽ‘=“|«::Ž‘D!ºÝPERSPŽ‘^è±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘6(Ì«=‘Ç1Ž“);ŽŸÂ323.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ žHP•®9oin“tŽ‘=8”«::‘Ïget‘‰ffŽ‘®xŽ‘Žk«(Âc®9harŽ‘UbÏc–ÿ}'o“or“dsŽ‘5^î±;‘ª¨ÂconstŽ‘Àcb•QÇo“olŽ‘9LâÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘^ö±;‘ª¨ÂconstŽ‘Àcb•QÇo“olŽ‘9LâÏdo‘‰ffŽ‘®applyŽ‘_W·±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!àb·Ž‘&àc±fŽ‘,ÙI;‘ª¨ÂconstŽ‘ÀcunsignedŽŽ¡‘2shortŽ‘OʨÏpr‘ÿ}'ojŽ‘b¾k±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬«(Ý'x'Ž‘F_±;‘ª¨Ïc–ÿ}'o“or“dsŽ‘´4±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gŽŸÂ324.‘ üconst‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘!$åÏget‘‰ffŽ‘®xŽ‘7³L«(Âc®9harŽ‘ÛÿÏc–ÿ}'o“or“dsŽ‘9j'«=‘„œÝ'w'Ž‘Êû±;‘ª¨ÂconstŽ‘ Gb•QÇo“olŽ‘:ZÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘c‡ð«=‘„œÏtrueŽ–I4±;‘ª¨ÂconstŽ‘ Gb•QÇo“olŽ‘:ZÏdo‘‰ffŽ‘®applyŽ‘cé«=‘„œÏtrueŽ“±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘·Ž‘#±fŽ‘+À«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’ƒ‘Ö«=‘ÇÂPro‘£ŽjectionsŽ‘=“|«::Ž‘D!ºÝPERSPŽ‘^è±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘6(Ì«=‘Ç1Ž“)‘UUÂconstŽ‘*¢«;ŽŸÂ325.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ žHP•®9oin“tŽ‘=8”«::‘Ïget‘‰ffŽ‘®xŽ‘Žk«(Âc®9harŽ‘UbÏc–ÿ}'o“or“dsŽ‘5^î±;‘ª¨ÂconstŽ‘Àcb•QÇo“olŽ‘9LâÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘^ö±;‘ª¨ÂconstŽ‘Àcb•QÇo“olŽ‘9LâÏdo‘‰ffŽ‘®applyŽ‘_W·±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!àb·Ž‘&àc±fŽ‘,ÙI;‘ª¨ÂconstŽ‘ÀcunsignedŽŽ¡‘2shortŽ‘OʨÏpr‘ÿ}'ojŽ‘b¾k±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬«(Ý'x'Ž‘F_±;‘ª¨Ïc–ÿ}'o“or“dsŽ‘´4±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gޤÂ326.‘ üGet‘ÕTy‘ÿ -«.Ž¡327.‘ üNon-const‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘!%>Ïget‘‰ffŽ‘®yŽ‘7™T«(Âc®9harŽ‘ÜXÏc–ÿ}'o“or“dsŽ‘9k«=‘…0Ý'w'Ž‘˱;‘ª¨ÂconstŽ‘ GYb•QÇo“olŽ‘:ZÎÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘c‰6«=‘…0ÏtrueŽ–Iȱ;‘ª¨ÂconstŽ‘ GYb•QÇo“olŽ‘:ZÎÏdo‘‰ffŽ‘®applyŽ‘cêÓ«=‘…0ÏtrueŽ“±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘·Ž‘#±fŽ‘+À«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’ƒ‘Ö«=‘ÇÂPro‘£ŽjectionsŽ‘=“|«::Ž‘D!ºÝPERSPŽ‘^è±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘6(Ì«=‘Ç1Ž“);ŽŽŽŒ‹VÓL Šn ý‘ì«86–­NON-ÂCONST‘ÕX­VERSION’ÿAÖ3DLDFPRÃŽG“·x«328Ž €n ý•@PÂ328.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ ŸÕP•®9oin“tŽ‘=:!«::‘Ïget‘‰ffŽ‘®yŽ‘t«(Âc®9harŽ‘VïÏc–ÿ}'o“or“dsŽ‘5`{±;‘ª¨ÂconstŽ‘Áðb•QÇo“olŽ‘9OüÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘^ù4±;‘ª¨ÂconstŽ‘Áðb•QÇo“olŽ‘9OüÏdo‘‰ffŽ‘®applyŽ‘_Zѱ;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!áï·Ž‘&áð±fŽ‘,ÚÖ;‘ª¨ÂconstŽ‘ÁðunsignedŽŽ¡‘2shortŽ‘OʨÏpr‘ÿ}'ojŽ‘b¾k±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬«(Ý'y'Ž‘F_±;‘ª¨Ïc–ÿ}'o“or“dsŽ‘´4±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gŽŸÂ329.‘ üconst‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘!%>Ïget‘‰ffŽ‘®yŽ‘7™T«(Âc®9harŽ‘ÜXÏc–ÿ}'o“or“dsŽ‘9k«=‘…0Ý'w'Ž‘˱;‘ª¨ÂconstŽ‘ GYb•QÇo“olŽ‘:ZÎÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘c‰6«=‘…0ÏtrueŽ–Iȱ;‘ª¨ÂconstŽ‘ GYb•QÇo“olŽ‘:ZÎÏdo‘‰ffŽ‘®applyŽ‘cêÓ«=‘…0ÏtrueŽ“±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘·Ž‘#±fŽ‘+À«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’ƒ‘Ö«=‘ÇÂPro‘£ŽjectionsŽ‘=“|«::Ž‘D!ºÝPERSPŽ‘^è±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘6(Ì«=‘Ç1Ž“)‘UUÂconstŽ‘*¢«;ŽŸÂ330.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ŸÕP•®9oin“tŽ‘=:!«::‘Ïget‘‰ffŽ‘®yŽ‘t«(Âc®9harŽ‘VïÏc–ÿ}'o“or“dsŽ‘5`{±;‘ª¨ÂconstŽ‘Áðb•QÇo“olŽ‘9OüÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘^ù4±;‘ª¨ÂconstŽ‘Áðb•QÇo“olŽ‘9OüÏdo‘‰ffŽ‘®applyŽ‘_Zѱ;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!áï·Ž‘&áð±fŽ‘,ÚÖ;‘ª¨ÂconstŽ‘ÁðunsignedŽŽ¡‘2shortŽ‘OʨÏpr‘ÿ}'ojŽ‘b¾k±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬«(Ý'y'Ž‘F_±;‘ª¨Ïc–ÿ}'o“or“dsŽ‘´4±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gޤÂ331.‘ üGet‘ÕTz.Ž¡332.‘ üNon-const‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘!&ªÏget‘‰ffŽ‘®zŽ‘7.««(Âc®9harŽ‘ÝÄÏc–ÿ}'o“or“dsŽ‘9nß«=‘‡Ý'w'Ž‘Íî±;‘ª¨ÂconstŽ‘ HÅb•QÇo“olŽ‘:]¦Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘cŽm«=‘‡ÏtrueŽ–L'±;‘ª¨ÂconstŽ‘ HÅb•QÇo“olŽ‘:]¦Ïdo‘‰ffŽ‘®applyŽ‘cð -«=‘‡ÏtrueŽ“±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘·Ž‘#±fŽ‘+À«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’ƒ‘Ö«=‘ÇÂPro‘£ŽjectionsŽ‘=“|«::Ž‘D!ºÝPERSPŽ‘^è±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘6(Ì«=‘Ç1Ž“);ŽŸÂ333.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ¦0P•®9oin“tŽ‘=@|«::‘Ïget‘‰ffŽ‘®zŽ‘«(Âc®9harŽ‘]JÏc–ÿ}'o“or“dsŽ‘5fÖ±;‘ª¨ÂconstŽ‘ÈKb•QÇo“olŽ‘9\²Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘_ê±;‘ª¨ÂconstŽ‘ÈKb•QÇo“olŽ‘9\²Ïdo‘‰ffŽ‘®applyŽ‘_g‡±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!èJ·Ž‘&èK±fŽ‘,á1;‘ª¨ÂconstŽ‘ÈKunsignedŽŽ¡‘2shortŽ‘OʨÏpr‘ÿ}'ojŽ‘b¾k±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬«(Ý'z'Ž‘F_±;‘ª¨Ïc–ÿ}'o“or“dsŽ‘´4±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gŽŸÂ334.‘ üconst‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘!&ªÏget‘‰ffŽ‘®zŽ‘7.««(Âc®9harŽ‘ÝÄÏc–ÿ}'o“or“dsŽ‘9nß«=‘‡Ý'w'Ž‘Íî±;‘ª¨ÂconstŽ‘ HÅb•QÇo“olŽ‘:]¦Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘cŽm«=‘‡ÏtrueŽ–L'±;‘ª¨ÂconstŽ‘ HÅb•QÇo“olŽ‘:]¦Ïdo‘‰ffŽ‘®applyŽ‘cð -«=‘‡ÏtrueŽ“±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘·Ž‘#±fŽ‘+À«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’ƒ‘Ö«=‘ÇÂPro‘£ŽjectionsŽ‘=“|«::Ž‘D!ºÝPERSPŽ‘^è±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘6(Ì«=‘Ç1Ž“)‘UUÂconstŽ‘*¢«;ŽŸÂ335.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ¦0P•®9oin“tŽ‘=@|«::‘Ïget‘‰ffŽ‘®zŽ‘«(Âc®9harŽ‘]JÏc–ÿ}'o“or“dsŽ‘5fÖ±;‘ª¨ÂconstŽ‘ÈKb•QÇo“olŽ‘9\²Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘_ê±;‘ª¨ÂconstŽ‘ÈKb•QÇo“olŽ‘9\²Ïdo‘‰ffŽ‘®applyŽ‘_g‡±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!èJ·Ž‘&èK±fŽ‘,á1;‘ª¨ÂconstŽ‘ÈKunsignedŽŽ¡‘2shortŽ‘OʨÏpr‘ÿ}'ojŽ‘b¾k±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬«(Ý'z'Ž‘F_±;‘ª¨Ïc–ÿ}'o“or“dsŽ‘´4±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gŽŸÂ336.‘ üGet‘ÕTw.ŽŽŽŒ‹Wãs Šn ý‘ì·x«337–­3DLDFPRÃŽG’ÿAÖNON-ÂCONST‘ÕX­VERSION“«87Ž €n ý•@PÂ337.‘ üNon-const‘ÕTv®9ersion.Ž©·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘!’Ïget‘‰ffŽ‘®wŽ‘9­«(Âc®9harޑլÏc–ÿ}'o“or“dsŽ‘9YI«=‘zÝ'w'Ž‘Àp±;‘ª¨ÂconstŽ‘ @­b•QÇo“olŽ‘:MvÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘cp¿«=‘zÏtrueŽ–>©±;‘ª¨ÂconstŽ‘ @­b•QÇo“olŽ‘:MvÏdo‘‰ffŽ‘®applyŽ‘cÒ\«=‘zÏtrueŽ“±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘·Ž‘#±fŽ‘+À«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’ƒ‘Ö«=‘ÇÂPro‘£ŽjectionsŽ‘=“|«::Ž‘D!ºÝPERSPŽ‘^è±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘6(Ì«=‘Ç1Ž“);ŽŸÂ338.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ‚P•®9oin“tŽ‘=N«::‘Ïget‘‰ffŽ‘®wŽ‘o«(Âc®9harŽ‘9Ïc–ÿ}'o“or“dsŽ‘5B¨±;‘ª¨ÂconstŽ‘¤b•QÇo“olŽ‘9VÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘^½Ž±;‘ª¨ÂconstŽ‘¤b•QÇo“olŽ‘9VÏdo‘‰ffŽ‘®applyŽ‘_+±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!Ä·Ž‘&ıfŽ‘,½;‘ª¨ÂconstŽ‘¤unsignedŽŽ¡‘2shortŽ‘OʨÏpr‘ÿ}'ojŽ‘b¾k±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬«(Ý'w'Ž‘F_±;‘ª¨Ïc–ÿ}'o“or“dsŽ‘´4±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gŽŸÂ339.‘ üconst‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘!’Ïget‘‰ffŽ‘®wŽ‘9­«(Âc®9harޑլÏc–ÿ}'o“or“dsŽ‘9YI«=‘zÝ'w'Ž‘Àp±;‘ª¨ÂconstŽ‘ @­b•QÇo“olŽ‘:MvÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘cp¿«=‘zÏtrueŽ–>©±;‘ª¨ÂconstŽ‘ @­b•QÇo“olŽ‘:MvÏdo‘‰ffŽ‘®applyŽ‘cÒ\«=‘zÏtrueŽ“±;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘·Ž‘#±fŽ‘+À«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’ƒ‘Ö«=‘ÇÂPro‘£ŽjectionsŽ‘=“|«::Ž‘D!ºÝPERSPŽ‘^è±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘6(Ì«=‘Ç1Ž“)‘UUÂconstŽ‘*¢«;ŽŸÂ340.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ‚P•®9oin“tŽ‘=N«::‘Ïget‘‰ffŽ‘®wŽ‘o«(Âc®9harŽ‘9Ïc–ÿ}'o“or“dsŽ‘5B¨±;‘ª¨ÂconstŽ‘¤b•QÇo“olŽ‘9VÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘^½Ž±;‘ª¨ÂconstŽ‘¤b•QÇo“olŽ‘9VÏdo‘‰ffŽ‘®applyŽ‘_+±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘!Ä·Ž‘&ıfŽ‘,½;‘ª¨ÂconstŽ‘¤unsignedŽŽ¡‘2shortŽ‘OʨÏpr‘ÿ}'ojŽ‘b¾k±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïget‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬«(Ý'w'Ž‘F_±;‘ª¨Ïc–ÿ}'o“or“dsŽ‘´4±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gŽŸÂ341.‘ üGet‘ÕTtransform.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y;Made–UUthis“function“ÂconstŽ‘*¢«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIT‘ÿ -«ransformŽ‘aSÏget‘‰ffŽ‘®tr‘ÿ}'ansformŽ’:«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý«;Ž¡‘ -·gŽŸÂ342.‘ üGet‘ÕTcop®9y‘ÿ +«ransformŽ’¢£¬::Ž’©1M±align‘‰ffŽ–®with‘‰ffŽ“axisŽ’éãŬ(­P•®9oin“tŽ‘šHµ;‘ª¨­P•®9oin“tŽ‘Dðµ;‘ª¨­c®9harŽ‘¿œ¬);Ž¡‘ +­priv‘ÿ\rateŽ‘-¨¬:‘­T‘ÿ +«ransformŽ‘<ÈÒ±tr‘ÿ}'ansformŽ‘h|¬;Ž¡‘­b•QÇo“olŽ‘-¡h±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘eFZ¬;Ž¡‘­v‘ÿ\ralarra®9yŽ‘=ZC°h­realŽ‘]Ù°i‘UU±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘PiS¬;Ž¡‘­v‘ÿ\ralarra®9yŽ‘=ZC°h­realŽ‘]Ù°i‘UU±user‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘K v¬;Ž¡‘­v‘ÿ\ralarra®9yŽ‘=ZC°h­realŽ‘]Ù°i‘UU±view‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘K¯¬;Ž¡‘­v‘ÿ\ralarra®9yŽ‘=ZC°h­realŽ‘]Ù°i‘UU±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘b h¬;Ž¡‘­signedŽ‘7oøshortŽ‘U:›±dr‘ÿ}'awdot‘‰ffŽ‘®valueŽ’’…d¬;Ž¡‘­constŽ‘2*¤ColorŽ‘QÏ—°Ž‘VϘ±dr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ’“G,¬;Ž¡‘­stringŽ‘5%O±p‘ÿ}'enŽ‘E?¬;Ž¡‘ +­protectedŽ‘:o™¬:‘µ=°‘ò?¬LDF‘G“2002.09.18.–m2Added‘G—±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WKè¬.“It–G—conš¸ãtains“the“minim˜um“and“maxim˜umŽ¡‘(v‘ÿqÇalues–UUfor“x,“y‘ÿ*ª,“and“z“in“±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘b h¬.‘o°µ=Ž¡‘­v‘ÿ\ralarra®9yŽ‘=ZC°h­realŽ‘]Ù°i‘UU±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WY¦¬;Ž¡‘­b•QÇo“olŽ‘-¡h±do‘‰ffŽ‘®outputŽ‘X—›¬;‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“data“mem¸ãbGer.‘o°µ=Ž¡‘ +­publicŽ‘)=Ö¬:‘­staticŽ‘$HÙstringŽ‘En&±me–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ’˜Äú¬;Ž¡‘­staticŽ‘3HÛrealŽ‘Iü ´CURR_YŽ‘j_¬;Ž¡‘­staticŽ‘3HÛrealŽ‘Iü ´CURR_ZŽ‘j_¬;Ž¡‘­staticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ´WORLD_VALUESŽ’®Äd¬;Ž¡‘­staticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ´PROJ_VALUESŽ’©„g¬;Ž¡‘­staticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ´USER_VALUESŽ’©„g¬;Ž¡‘­staticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ´VIEW_VALUESŽ’©„g¬;Ž¡‘­staticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ´WORLD_VALUES_X_YŽ’ÃÄX¬;Ž¡‘­staticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ´PROJ_VALUES_X_YŽ’¾„[¬;Ž¡‘­staticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ´USER_VALUES_X_YŽ’¾„[¬;Ž¡‘­staticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ´VIEW_VALUES_X_YŽ’¾„[¬;Ž¡‘­staticŽ‘3HÛconstŽ‘Qs}shortŽ‘o> ´WORLD_VALUES_ZŽ’¹D^¬;ŽŸó‘°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬constructors‘@¯324“°iŽ¡‘h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°iŽ¡‘ +g¬;ŽŸ ó¯This–ÕXco c¬=‘Ç´WORLD_VALUESŽ‘D†<°‘8à¬1Ž‘8á;Ž¡‘ +­constŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’¬::‘´USER_VALUESŽ‘> c¬=‘Ç´WORLD_VALUESŽ‘D†<°‘8à¬2Ž‘8á;Ž¡‘ +­constŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’¬::‘´VIEW_VALUESŽ‘> c¬=‘Ç´WORLD_VALUESŽ‘D†<°‘8à¬3Ž‘8á;Ž¡‘ +­constŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’¬::‘´WORLD_VALUES_X_YŽ‘XMT¬=‘Ç´WORLD_VALUESŽ‘D†<°‘8à¬4Ž‘8á;Ž¡‘ +­constŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’¬::‘´PROJ_VALUES_X_YŽ‘S W¬=‘Ç´WORLD_VALUESŽ‘D†<°‘8à¬5Ž‘8á;Ž¡‘ +­constŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’¬::‘´USER_VALUES_X_YŽ‘S W¬=‘Ç´WORLD_VALUESŽ‘D†<°‘8à¬6Ž‘8á;Ž¡‘ +­constŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’¬::‘´VIEW_VALUES_X_YŽ‘S W¬=‘Ç´WORLD_VALUESŽ‘D†<°‘8à¬7Ž‘8á;Ž¡‘ +­constŽ‘(*£shortŽ‘EõFP•®9oin“tŽ‘b’¬::‘´WORLD_VALUES_ZŽ‘MÍZ¬=‘Ç´WORLD_VALUESŽ‘D†<°‘8à¬8Ž‘8á;ŽŸ ¯This–ÕXcoÄç¬&Ž‘FŒ±pptŽ‘U¬)ަ‘:‘qǵbŽ‘¼q¬(±bbŽ‘ +W ¬)µ;‘ÿý±ptŽ‘䚬(±pptŽ‘ ¬)‘UU°f‘ª¨gŽ¡‘­v®9oidŽ‘,ýÚopQÇeratorŽ‘X”¬=Ž‘`[­(­constŽ‘*¢b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘VÒ=¬&Ž‘^™[±bpŽ‘isÔ¬)ަ‘°fަ‘µbŽ‘%Ŭ=‘DZbpŽ‘ ¡‘µ:bŽ‘Jª¬;ަ‘±ptŽ‘*«¸¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ ä¬;ަ‘°gަ‘ +g¬;ŽŽŽŒ‹S#H Šn ý‘ì°x¬314‘¯3DLDF-1.1.5.1’ïÆ­BOOL‘°¡‰ffs4Ž‘#ÕPOINT‘ÿø¬83Ž €n ý•@P­314.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬LDF‘Äk2003.05.30.›À'Added–ÄÊthis“section,‘ §and“the“de nition“of“­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘:¬(­v®9oidŽ‘¨ƒ¬).˜Previously‘ÿ*ª,‘ §µbŽ‘0¬and“±ptŽŽ¡¬wš¸ãere–Zònot“set,‘œXso“their“v‘ÿqÇalues“w˜ere“unpredictable.‘‚I‘Z®had“to“remo˜v˜e“the“de nition“from“the“declaration“ofŽ¡­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘5RF¬,–UUbGecause“´INVALID_POINTŽ‘Kpë¬isn't“de ned,“when“the“declaration“is“read“b¸ãy“the“compiler.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘;üð¬functions‘@¯314“°i‘Çޤ ‘ +­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘@RK¬::‘­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘6RJ¬(‘ª®)Ž¡‘ +°fŽ¡‘µbŽ‘Ĭ=‘DZfalseŽ‘v\¬;Ž¡‘±ptŽ‘ «·¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘ +°gޤ ¯This–ÕXcoœí;‘ª¨­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘:RCµcŽ‘>¦;‘ª¨­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘:RCµdŽ‘?†µ¬)Ž¡‘:‘qDZ rstŽ‘'q¬(µaŽ‘I0¬)µ;‘ÿý±se–ÿ}'c“ondŽ‘"§Ä¬(µbŽ‘Jª¬)µ;‘ÿý±thir‘ÿ}'dŽ‘Üg¬(µcŽ‘SÛ¬)µ;‘ÿý±fourthŽ‘ xö¬(µdŽ‘4r¬)‘UU°f‘ª¨gަ‘­v®9oidŽ‘,ýÚopQÇeratorŽ‘X”¬=Ž‘`[­(­constŽ‘*¢b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜quadrupleŽ’ŽM¬&Ž’•Øk±ar‘ÿ}'gŽ’¤¨e¬)Ž¡‘°fŽ¡‘± rstŽ‘0µ­µ:bŽ‘¬=‘DZar‘ÿ}'gŽ‘—µ:± rstŽ‘µªµ:bŽ‘Jª¬;Ž¡‘± rstŽ‘0µ­µ:±ptŽ‘ «µ¬=‘DZar‘ÿ}'gŽ‘—µ:± rstŽ‘µªµ:±ptŽ‘ ä¬;Ž¡‘±se–ÿ}'c“ondŽ‘;§Êµ:bŽ‘¬=‘DZar‘ÿ}'gŽ‘—µ:±se–ÿ}'c“ondŽ‘§Çµ:bŽ‘Jª¬;Ž¡‘±se–ÿ}'c“ondŽ‘;§Êµ:±ptŽ‘ «µ¬=‘DZar‘ÿ}'gŽ‘—µ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ ä¬;Ž¡‘±thir‘ÿ}'dŽ‘3Ümµ:bŽ‘¬=‘DZar‘ÿ}'gŽ‘—µ:±thir‘ÿ}'dŽ‘Üjµ:bŽ‘Jª¬;Ž¡‘±thir‘ÿ}'dŽ‘3Ümµ:±ptŽ‘ «µ¬=‘DZar‘ÿ}'gŽ‘—µ:±thir‘ÿ}'dŽ‘Üjµ:±ptŽ‘ ä¬;Ž¡‘±fourthŽ‘9xüµ:bŽ‘¬=‘DZar‘ÿ}'gŽ‘—µ:±fourthŽ‘xùµ:bŽ‘Jª¬;Ž¡‘±fourthŽ‘9xüµ:±ptŽ‘ «µ¬=‘DZar‘ÿ}'gŽ‘—µ:±fourthŽ‘xùµ:±ptŽ‘ ä¬;Ž¡‘°gŽ¡‘ +g¬;ŽŽŽŒ‹T'h Šn ý‘ì¬84‘¯DEF‘ÿ8A•ÃŽUL‘ÿJªT›ÕXCONSTR“UCTOR˜F“OR˜­BOOL‘°¡‰ffs4Ž–#ÕPOINT‘°¡‰ffs4Ž“QUADR®9UPLE‘@1¯3DLDF-1.1.5.1‘°x¬316Ž €n ý•@P­316.‘ üDefault–ÕTConstructor“for“b•QÇo“ol‘°¡‰ffs4Ž›#Õp“oin®9t‘°¡‰ffs4Ž˜quadruple.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬LDF‘ê—2003.06.1.›NO–±rrŽ‘HTçµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±pptŽ‘U¬)Ž¡‘:‘qǵbŽ‘¼q¬(±bbŽ‘ +W ¬)µ;‘ÿýrŽ‘ ʬ(±rrŽ‘ +Q¬)µ;‘ÿý±ptŽ‘䚬(±pptŽ‘ ¬)–UU°f‘ª¨g‘µ=°‘ÿý¬Construcor“with“­b•QÇo“olŽ‘¡f¬,“­realŽ‘³.¬,“and“­P•®9oin“tŽ‘"Dò¬argumen¸ãts.‘o°µ=ަ‘­v®9oidŽ‘,ýÚopQÇeratorŽ‘X”¬=Ž‘`[­(­constŽ‘*¢b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘nqX¬&Ž‘v8v±brpŽ’…Jd¬)‘µ=°‘ÿý¬Assignmen¸ãt‘UUopGerator.‘o°µ=Ž¡‘°fŽ¡‘µbŽ‘%Ŭ=‘DZbrpŽ‘Ùµ:bŽ‘Jª¬;Ž¡‘µrŽ‘%‘/¬=‘DZbrpŽ‘Ùµ:rŽ‘Ê¬;Ž¡‘±ptŽ‘*«¸¬=‘DZbrpŽ‘Ùµ:±ptŽ‘ ä¬;Ž¡‘°gŽ¡‘ +g¬;ŽŽŽŒ‹U3R Šn ý‘ì°x¬318‘¯3DLDF-1.1.5.1‘j¸èDEF‘ÿ8A•ÃŽUL‘ÿJªT›ÕXCONSTR“UCTOR˜F“OR˜­BOOL‘°¡‰ffs4Ž–#ÕREAL‘°¡‰ffs4Ž“POINT‘¬85Ž €n ý•@P­318.‘ üDefault–ÕTConstructor“for“b•QÇo“ol‘°¡‰ffs4Ž–#Õreal‘°¡‰ffs4Ž“pQÇoin®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬LDF‘82003.06.1.›h Added–8!this“section.˜Rede ned“the“default“constructor“­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘P)‚¬(­v®9oidŽ‘¨ƒ¬),‘=ùso“that“µbŽŽ¡¬is–|êset“to“±falseŽ‘,.¬,‘†ÐµrŽ‘ Íάis“set“to“´INVALID_REALŽ‘C.¬,›†Ðand“±ptŽ‘Þq¬is“set“to“´INVALID_BOOL_POINTŽ‘bƒ¬.‘è‡In“order“to“do“this,˜it“w¸ãasŽ¡necessary–Ígto“remo•¸ãv“e–Ígthe“de nition“from“the“declaration“of“­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘O¾È¬,‘è—bGecause“when“the“compiler“seesŽ¡it,‘UU´INVALID_REALŽ‘F0î¬and‘UU´INVALID_POINTŽ‘Kpë¬aren't–UUde ned“y¸ãet.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Sœ ¬functions‘@¯318“°i‘Çޤ ‘ +­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Wñf¬::‘­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Mñe¬(‘ª®)Ž¡‘ +:‘qǵbŽ‘¼q¬(±falseŽ‘¯D¬)µ;‘ÿýrŽ‘ ʬ(´INVALID_REALŽ‘?†D¬)µ;‘ÿý±ptŽ‘䚬(´INVALID_POINTŽ‘DÆA¬)‘UU°f‘ª¨gŽŸ ¯This–ÕXco’ˆ¬=‘Ç´CURR_YŽ–"Ínµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘>f®¬=‘Ç´CURR_ZŽ“¬);ŽŸÿõ­328.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬constructors‘@¯325“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘&šM¬::‘­P•®9oin“tŽ‘šL¬(­constŽ‘*¢realŽ‘4ÝеxŽ‘:”ì;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµyŽ‘;Ëp;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘;Ÿ–¬)Ž¡‘ +°fŽ¡‘h›ª¨¬Initialize–UUcoGordinates“and“limits‘@¯323˜°iŽ¡‘±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl ¬=‘DZfalseŽ‘v\¬;Ž¡‘±do‘‰ffŽ‘®outputŽ‘A½M¬=‘DZtrueŽ‘‹°¬;Ž¡#­ifŽ‘ hͬ0Ž‘$hϵ=°‘³Ò¬[²LDF‘T2002.10.23.¬]Ž‘Soá±user‘‰ffŽ‘®tr‘ÿ}'ansformŽ’˜ ¬is– *not“currenš¸ãtly“in“use.‘XdIt“is“in˜tended“for“use“in“implemen˜tingŽ¡‘(user-de ned–UUcoGordinate“systems.‘o°µ=Ž¡‘­ifŽ‘´ú¬(±user‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘A¦üµ:±is‘‰ffŽ‘®identityŽ‘-2¢¬(‘ª¨))Ž¡#­endifŽŽ¡‘±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘k¬[0Ž‘]–Ç=“µxŽ‘~4¬;Ž¡‘±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘a¬[1Ž‘]–Ç=“µyŽ‘ +¬;Ž¡‘±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘a¬[2Ž‘]–Ç=“µzŽ‘Þ6¬;Ž¡‘±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘a¬[3Ž‘]–Ç=“1Ž‘Ç;Ž¡‘ +°gŽŸÿõ­329.‘ üSetting‘ÕTfunction.ŽŸ¿øŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.12.01.¬]Ž‘Y;Made–UUargumen¸ãts“­constŽ‘*¢¬.Ž¡‘ +[²LDF‘T2003.03.25.¬]Ž‘Y$½Changed–q×this“function,‘xøso“that“it“returns“°Ž‘qرthisŽ‘Ïe¬instead“of“­v®9oidŽ‘Z¬.‘ÇNThis“mak¸ães“it“pGossibleŽ¡to–UUcš¸ãhain“in˜v˜oGcations“of“this“function.ŽŸŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘ÇŽ¡‘ +­constŽ‘(*£P•®9oin“tŽ‘G@¬&Ž‘Ná^±setŽ‘\Yâ¬(­constŽ‘*¢realŽ‘4ÝеxŽ‘:”ì;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµyŽ‘>’ˆ¬=‘Ç´CURR_YŽ–"Ínµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘>f®¬=‘Ç´CURR_ZŽ“¬);Ž© ÿü¯See–´?also“sections“333,–ºÝ338,“340,“342,“344,“346,“349,“350,“352,“355,“357,“360,“362,“365,“367,“370,“372,“375,“377,“380,“382,“384,“385,ޤ +‘387,–áú389,“393,“396,“398,“400,“401,“404,“406,“408,“412,“414,“419,“421,“436,“438,“442,“446,“448,“450,“454,“456,“458,“460,“463,Ž¡‘464,–áú466,“467,“469,“470,“472,“473,“475,“477,“482,“484,“486,“488,“489,“491,“493,“495,“501,“505,“507,“510,“512,“518,“521,“523,Ž¡‘525,–ÕX527,“529,“532,“536,“538,“540,“542,“544,“546,“548,“551,“553,“555,“557,“560,“567,“569,“572,“and“573.ަThis–ÕXcoïÿµ<‘à?­P•®9oin“tŽ‘#ZƵ>–à?¬(‘ª®)“is“mean¸ãt“to“bGe“usedŽ¡instead–É/of“­newŽ‘E¬(‘ª®)“for“dynamic“alloGcation“of“­P•®9oin“tsŽ‘#쳬.‘ÍUIt“calls“the“default“constructor“(without“argumen¸ãts)Ž¡and–UUthen“sets“±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘>Oœ¬to“±trueŽ‘í¬.Ž¡‘ +[²LDF‘T2002.10.11.¬]Ž‘X•3It–âMis“used“in“v‘ÿqÇarious“­P•®9oin“tŽ‘!^â¬functions,‘ùOand“in“­P®9athŽ‘Uþ¬and“some“classes“deriv¸ãed“from“­P®9athŽ‘s±¬,Ž¡currenš¸ãtly‘N¡­EllipseŽ‘$7z¬,‘ƒ,­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘Dà¬,‘ƒ,and‘N¡­RectangleŽ‘4Ž6¬.‘6It–N¡is“in˜tended“that“ob‘Ž8jects“of“these“t˜ypšGes“b˜e“declared,‘ƒ,i.e.,Ž¡unlikš¸ãe‘—­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘kû/¬,‘ñthey–—are“not“mean˜t“to“bGe“used“only“as“base“classes.‘Vˆ­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽŽ¡¬doGes–UUnot“use“±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<“­P•®9oin“tŽ‘"Dòµ>“¬(‘ª®)“and“it“is“unlik¸ãely“that“other“classes“of“this“kind“will“use“it.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.12.30.¬]Ž‘WëÉReplaced–8ãthe“non-template“±cr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘K߬(›ª®)“functions“with“v¸ãersions“of“the“±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘1ȧ¬(˜)Ÿ€„ +Ž¡template–n‚function.‘½NI‘n|bšGeliev¸ãe“the“de nitions“shouldn't“b˜e“necessary‘ÿ*ª,‘tÍbut“at“presen¸ãt“they“are.‘½NWithout“them,Ž¡the–UUtemplates“aren't“instan¸ãtiated.Ž¡‘ +[²LDF‘T2003.12.30.¬]Ž‘Y;Changed–UUthe“argumenš¸ãt.‘qÇIt's“no˜w“a“­constŽ‘!÷P•®9oin“tŽ‘@o”°Ž‘Eo•¬.Ž¡‘ +[²LDF‘T2003.12.30.¬]Ž‘YÂÿRemo•¸ãv“ed–default“argumen¸ãt“\0",‘>ÊbGecause“this“caused“a“compiler“error“when“using“theŽ¡DEC–UU²C‘€Ÿÿ³+‘ÿ+ŽŽ‘œu¬compiler.‘qÇApparenš¸ãtly‘ÿ*ª,“it“suces“to“declare“a“default“argumen˜t“in“the“template“declaration.ަŸüÈ„`ÕÁGŽŽŸ­336.‘ üP•®9oin“ter‘ÕTargumen“t.ަ°h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­P•®9oin“tŽ‘#/¡¯336˜°i‘ÇŽ¡‘ +­P•®9oin“tŽ‘(ïž°Ž‘-cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘]c¬(­constŽ‘*¢P•®9oin“tŽ‘=?°Ž‘B@µpŽ‘G"@¬);ޤ ¯See–ÕXalso“section“337.Ž¡This–ÕXco®¬=‘ǵpŽ‘Ï:±dr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘YCan‘kI‘=mak¸ãeޤ the‘9­F‘ÿ +«oQÇcusŽ‘#¾°Ž‘+ø¬argumenš¸ãt‘9­constŽ‘ㆬ?‘ZWhat–9is“the“syn˜tax“for“a“pGoin˜ter“to“a“­constŽ‘ㆬ,‘ras“oppšGosed“to“a“­constŽ‘ ñ¿¬p˜oin¸ãter?Ž¡LoGok–UUup!!‘qÇMakš¸ãe“sure“I“c˜hange“this“is“®3DLDF.texi“¬if“I“c˜hange“it“here!ŽŽŽŒ‹]“ΠŠn ý‘ì°x¬355–¯3DLDF-1.1.5.1’öÎ@NON-­CONST‘ÕX¯VERSION“¬93Ž €n ý•@P­355.– üNon-const‘ÕTv®9ersion.“¬[²LDF‘T2002.09.19.¬]Ž‘Zˆ6Added–UUthis“function.Ž©°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­v‘ÿ\ralarra®9yŽ‘3ZB°h­realŽ‘]Ù°i‘D±get‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘>ÂW¬(­c®9harŽ‘08±c–ÿ}'o“or“dsŽ‘:J¾¬=‘ú´'w'Ž‘WYµ;‘ª¨­constŽ‘ ›9b•QÇo“olŽ‘;ޱdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘d¼À¬=‘ú±trueޑՒµ;‘ª¨­constŽ‘ ›9b•QÇo“olŽŽ¡‘±do‘‰ffŽ‘®applyŽ‘GÈJ¬=‘½r±trueŽ‘‚ +µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘"‰°Ž‘'‰µfŽ‘1?r¬=‘½r0Ž‘½sµ;‘ª¨­constŽ‘ iunsignedŽ‘Q3øshortŽ‘o’k±pr‘ÿ}'ojŽ’†C ¬=‘½r­Pro‘£ŽjectionsŽ‘>‰Ö¬::Ž‘E´PERSPŽ‘_Þmµ;‘ª¨­realŽŽ¡‘±factorŽ‘;Êù¬=‘Ç1Ž‘Ç);ŽŸ­356.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­v‘ÿ\ralarra®9yŽ‘3ZB°h­realŽ‘]Ù°i‘q2­P•®9oin“tŽ‘ ~¬::‘±get‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘;§¬(­c®9harŽ‘†&±c–ÿ}'o“or“dsŽ‘5²µ;‘ª¨­constŽ‘ñ'b•QÇo“olŽ‘9®j±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘_W¢µ;‘ª¨­constŽ‘ñ'b•QÇo“olŽ‘9®j±do‘‰ffŽ‘®applyŽ‘_¹?µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘2°Ž‘7µfŽ‘<øì;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’€Ê¾µ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±do‘‰ffŽ‘®applyŽ‘& +Õ¬)‘±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘K߬(‘ª®);Ž¡‘±c–ÿ}'o“or“dsŽ‘2Ц¬=‘DZtolowerŽ‘#í¬(±c–ÿ}'o“or“dsŽ‘ Œ¬);Ž¡‘­ifŽ‘´ú¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'w'Ž‘ w¬)‘­returnŽ‘(溱world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘uú¸¬;Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'v'Ž‘ w¬)‘­returnŽ‘(溱view‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘q@i¬;Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'u'Ž‘ w¬)‘­returnŽ‘(溱user‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘pœÛ¬;Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'p'Ž‘ w¬)‘°fŽ¡‘­ifŽ‘)´û¬(±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘%©8¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(µfŽ‘¿þ°‘Ǭ0Ž‘Ç)‘µfŽ‘ ¿þ¬=‘Ç&Ž‘ +Ž6±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘Bl4¬;Ž¡‘(±pr–ÿ}'oje“ctŽ‘Fw¬(°Ž‘µfŽ‘ +øç;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘°gŽ¡‘­returnŽ‘Aæ½±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ’ œÐ¬;Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘8mް‘·å´"ERROR!® ´In® ´Point::geŽ‘p·©t_all_coords():\n"Ž’×uÀ°Ž¡‘2´"Argument® ´coords® ´hasŽ’šÿÉ® ´invalid® ´value:® ´"Ž’ûß×°‘Ù±c–ÿ}'o“or“dsŽ‘*=>°Ž¡‘2´".® ´Returning® ´world® ´cŽ’šÿÉoordinates.\n"Ž’çͰ‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ’Žú»¬;Ž¡‘°gŽ¡‘ +gŽŸ­357.– üconst‘ÕTv®9ersion.“¬[²LDF‘T2002.09.19.¬]Ž‘Zˆ6Added–UUthis“function.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­v‘ÿ\ralarra®9yŽ‘3ZB°h­realŽ‘]Ù°i‘D±get‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘>ÂW¬(­c®9harŽ‘08±c–ÿ}'o“or“dsŽ‘:J¾¬=‘ú´'w'Ž‘WYµ;‘ª¨­constŽ‘ ›9b•QÇo“olŽ‘;ޱdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘d¼À¬=‘ú±trueޑՒµ;‘ª¨­constŽ‘ ›9b•QÇo“olŽŽ¡‘±do‘‰ffŽ‘®applyŽ‘GÈJ¬=‘½r±trueŽ‘‚ +µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘"‰°Ž‘'‰µfŽ‘1?r¬=‘½r0Ž‘½sµ;‘ª¨­constŽ‘ iunsignedŽ‘Q3øshortŽ‘o’k±pr‘ÿ}'ojŽ’†C ¬=‘½r­Pro‘£ŽjectionsŽ‘>‰Ö¬::Ž‘E´PERSPŽ‘_Þmµ;‘ª¨­realŽŽ¡‘±factorŽ‘;Êù¬=‘Ç1Ž‘Ç)‘UU­constŽ‘*¢¬;ŽŸ­358.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­v‘ÿ\ralarra®9yŽ‘3ZB°h­realŽ‘]Ù°i‘q2­P•®9oin“tŽ‘ ~¬::‘±get‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘;§¬(­c®9harŽ‘†&±c–ÿ}'o“or“dsŽ‘5²µ;‘ª¨­constŽ‘ñ'b•QÇo“olŽ‘9®j±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘_W¢µ;‘ª¨­constŽ‘ñ'b•QÇo“olŽ‘9®j±do‘‰ffŽ‘®applyŽ‘_¹?µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘2°Ž‘7µfŽ‘<øì;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’€Ê¾µ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2pŽ‘7÷Ÿ¬(°Ž‘±thisŽ‘ë·¬);Ž¡‘­v‘ÿ\ralarra®9yŽ‘=ZC°h­realŽ‘]Ù°i‘UUµvŽ‘ Q*¬=‘ǵpŽ‘Ï:±get‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘:§¬(±c–ÿ}'o“or“dsŽ‘ Œµ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž¬);ަ‘­returnŽ‘7æ¼µvŽ‘=y¬;Ž¡‘ +°gŽŸ­359.– üGet‘…ïcoQÇord.“¬[²LDF‘T2002.09.14.¬]Ž‘[!ÈAdded‘îç±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘,K׬(‘ª®).‘>}Fixing–îça“bug“that“caused“±get‘‰ffŽ‘®xŽ‘}N¬(´'p'Ž‘F_¬),–Letc.,“toŽ¡call‘UU±pr–ÿ}'oje“ctŽ‘!Ìc¬(›ª®)–UUm¸ãultiple“times“when“doing“­P®9athŽ‘潬::‘±outputŽ‘D¬(˜).ŽŽŽŒ‹^Ÿ+ Šn ý‘ì¬94–¯NON-­CONST‘ÕX¯VERSION’öÎ@3DLDF-1.1.5.1“°x¬360Ž €n ý•@P­360.– üNon-const‘Mv®9ersion.“¬[²LDF‘T2002.10.27.¬]Ž‘YéíThe–· argumen¸ãt“µcŽ‘ Áó¬refers“to“either“the“x,–Ö´y‘ÿ*ª,“z,“or–· w“coGordinate.Ž©°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­realŽ‘!ëx±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘JHh¬(­c®9harŽ‘¢’µcŽ‘öm;‘ª¨­c®9harŽ‘M:±c–ÿ}'o“or“dsŽ‘=&U¬=‘Ï´'w'Ž‘îµ;‘ª¨­constŽ‘! “b•QÇo“olŽ‘;çB±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘f` ¬=‘ϱtrueŽ‘”'µ;‘ª¨­constŽ‘! “b•QÇo“olŽŽ¡‘±do‘‰ffŽ‘®applyŽ‘GÈJ¬=‘½r±trueŽ‘‚ +µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘"‰°Ž‘'‰µfŽ‘1?r¬=‘½r0Ž‘½sµ;‘ª¨­constŽ‘ iunsignedŽ‘Q3øshortŽ‘o’k±pr‘ÿ}'ojŽ’†C ¬=‘½r­Pro‘£ŽjectionsŽ‘>‰Ö¬::Ž‘E´PERSPŽ‘_Þmµ;‘ª¨­realŽŽ¡‘±factorŽ‘;Êù¬=‘Ç1Ž‘Ç);ŽŸ­361.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ eaP•®9oin“tŽ‘<ÿ­¬::‘±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘)\ô¬(­c®9harŽ‘{µcŽ‘pV;‘ª¨­c®9harŽ‘Ç#±c–ÿ}'o“or“dsŽ‘6Яµ;‘ª¨­constŽ‘‡|b•QÇo“olŽ‘8Û±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘^„Lµ;‘ª¨­constŽ‘‡|b•QÇo“olŽ‘8Û±do‘‰ffŽ‘®applyŽ‘^åéµ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!§{°Ž‘&§|µfŽ‘, b;‘ª¨­constŽŽ¡‘2unsignedŽ‘b7shortŽ’€¶±pr‘ÿ}'ojŽ’’õyµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±do‘‰ffŽ‘®applyŽ‘& +Õ¬)‘±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘K߬(‘ª®);Ž¡‘­ifŽ‘´ú¬(µfŽ‘¿þ°‘Ǭ0Ž‘Ç)‘µfŽ‘ ¿þ¬=‘Ç&Ž‘ +Ž6±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘Bl4¬;ަ‘­unsignedŽ‘D7shortŽ‘b³±ctrŽ‘o»¡¬;ަ‘µcŽ‘õ¬=‘DZtolowerŽ‘#í¬(µcŽ‘SÛ¬);Ž¡‘­ifŽ‘´ú¬(µcŽ‘ó°‘Ç´'x'Ž‘ w¬)‘±ctrŽ‘¬=‘Ç0Ž‘Ç;Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µcŽ‘ó°‘Ç´'y'Ž‘ w¬)‘±ctrŽ‘¬=‘Ç1Ž‘Ç;Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µcŽ‘ó°‘Ç´'z'Ž‘ w¬)‘±ctrŽ‘¬=‘Ç2Ž‘Ç;Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µcŽ‘ó°‘Ç´'w'Ž‘ w¬)‘±ctrŽ‘¬=‘Ç3Ž‘Ç;Ž¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘4)«°‘t´"ERROR!® ´In® ´Point::geŽ‘lsÆt_coord():® ´"Ž’¯n °‘t´"Invalid® ´c® ´argument:Ž‘lsÆ® ´"Ž‘zî*°‘tµcŽ‘ ;ß°‘t´".\n"Ž‘!®]°Ž¡‘2´"Using® ´x\n"Ž‘o d°‘DZ ushŽ‘€¬;Ž¡‘±ctrŽ‘. ¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘±c–ÿ}'o“or“dsŽ‘2Ц¬=‘DZtolowerŽ‘#í¬(±c–ÿ}'o“or“dsŽ‘ Œ¬);Ž¡‘­ifŽ‘´ú¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'w'Ž‘ w¬)‘­returnŽ‘(溱world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘uú¸¬[±ctrŽ‘ ¹î¬];Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'u'Ž‘ w¬)‘­returnŽ‘(溱user‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘pœÛ¬[±ctrŽ‘ ¹î¬];Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'p'Ž‘ w¬)‘°fŽ¡‘­ifŽ‘)´û¬(±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘%©8¬)‘±pr–ÿ}'oje“ctŽ‘#w¬(°Ž‘µfŽ‘ +øç;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘­returnŽ‘Aæ½±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ’ œÐ¬[±ctrŽ‘ ¹î¬];Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'v'Ž‘ w¬)‘­returnŽ‘(溱view‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘q@i¬[±ctrŽ‘ ¹î¬];Ž¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘4 ø°‘WO´"ERROR!® ´In® ´Point::geŽ‘lWt_coord().® ´Invalid® ´aŽ’ÕV×rgument® ´char® ´coords:Ž’>V›® ´"Ž’L´L°‘WO±c–ÿ}'o“or“dsŽ‘"¸*°Ž¡‘2±end‘‚ØlŽ‘H¸ß°‘Ç´"Returning® ´INVALID_RŽ‘kÆÜEAL.\n\n"Ž’žTA°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_REALŽ’m¬;Ž¡‘°gŽ¡‘ +gŽŸ­362.‘ üconst‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­realŽ‘!ëx±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘JHh¬(­c®9harŽ‘¢’µcŽ‘öm;‘ª¨­c®9harŽ‘M:±c–ÿ}'o“or“dsŽ‘=&U¬=‘Ï´'w'Ž‘îµ;‘ª¨­constŽ‘! “b•QÇo“olŽ‘;çB±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘f` ¬=‘ϱtrueŽ‘”'µ;‘ª¨­constŽ‘! “b•QÇo“olŽŽ¡‘±do‘‰ffŽ‘®applyŽ‘GÈJ¬=‘½r±trueŽ‘‚ +µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘"‰°Ž‘'‰µfŽ‘1?r¬=‘½r0Ž‘½sµ;‘ª¨­constŽ‘ iunsignedŽ‘Q3øshortŽ‘o’k±pr‘ÿ}'ojŽ’†C ¬=‘½r­Pro‘£ŽjectionsŽ‘>‰Ö¬::Ž‘E´PERSPŽ‘_Þmµ;‘ª¨­realŽŽ¡‘±factorŽ‘;Êù¬=‘Ç1Ž‘Ç)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹_±= Šn ý‘ì°x¬363–¯3DLDF-1.1.5.1’ ûØ­CONST‘ÕX¯VERSION“¬95Ž €n ý•@P­363.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­realŽ‘ eaP•®9oin“tŽ‘<ÿ­¬::‘±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘)\ô¬(­c®9harŽ‘{µcŽ‘pV;‘ª¨­c®9harŽ‘Ç#±c–ÿ}'o“or“dsŽ‘6Яµ;‘ª¨­constŽ‘‡|b•QÇo“olŽ‘8Û±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘^„Lµ;‘ª¨­constŽ‘‡|b•QÇo“olŽ‘8Û±do‘‰ffŽ‘®applyŽ‘^åéµ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!§{°Ž‘&§|µfŽ‘, b;‘ª¨­constŽŽ¡‘2unsignedŽ‘b7shortŽ’€¶±pr‘ÿ}'ojŽ’’õyµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2pŽ‘7÷Ÿ¬(°Ž‘±thisŽ‘ë·¬);ަ‘­returnŽ‘7æ¼µpŽ‘<î¼:±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘(\ð¬(µcŽ‘SÛ;‘ª¨±c–ÿ}'o“or“dsŽ‘´4µ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gޤ­364.‘ üGet‘ÕTx.Ž¡365.‘ üNon-const‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­realŽ‘!$å±get‘‰ffŽ‘®xŽ‘7³L¬(­c®9harŽ‘Ûÿ±c–ÿ}'o“or“dsŽ‘9j'¬=‘„œ´'w'Ž‘Êûµ;‘ª¨­constŽ‘ Gb•QÇo“olŽ‘:Z±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘c‡ð¬=‘„œ±trueŽ–I4µ;‘ª¨­constŽ‘ Gb•QÇo“olŽ‘:Z±do‘‰ffŽ‘®applyŽ‘cé¬=‘„œ±trueŽ“µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘°Ž‘#µfŽ‘+À¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’ƒ‘Ö¬=‘Ç­Pro‘£ŽjectionsŽ‘=“|¬::Ž‘D!º´PERSPŽ‘^èµ;‘ª¨­realŽ‘]Ö±factorŽ‘6(̬=‘Ç1Ž“);ŽŸ­366.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ žHP•®9oin“tŽ‘=8”¬::‘±get‘‰ffŽ‘®xŽ‘Žk¬(­c®9harŽ‘Ub±c–ÿ}'o“or“dsŽ‘5^îµ;‘ª¨­constŽ‘Àcb•QÇo“olŽ‘9Lâ±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘^öµ;‘ª¨­constŽ‘Àcb•QÇo“olŽ‘9Lâ±do‘‰ffŽ‘®applyŽ‘_W·µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!àb°Ž‘&àcµfŽ‘,ÙI;‘ª¨­constŽ‘ÀcunsignedŽŽ¡‘2shortŽ‘Oʨ±pr‘ÿ}'ojŽ‘b¾kµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬¬(´'x'Ž‘F_µ;‘ª¨±c–ÿ}'o“or“dsŽ‘´4µ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gŽŸ­367.‘ üconst‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­realŽ‘!$å±get‘‰ffŽ‘®xŽ‘7³L¬(­c®9harŽ‘Ûÿ±c–ÿ}'o“or“dsŽ‘9j'¬=‘„œ´'w'Ž‘Êûµ;‘ª¨­constŽ‘ Gb•QÇo“olŽ‘:Z±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘c‡ð¬=‘„œ±trueŽ–I4µ;‘ª¨­constŽ‘ Gb•QÇo“olŽ‘:Z±do‘‰ffŽ‘®applyŽ‘cé¬=‘„œ±trueŽ“µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘°Ž‘#µfŽ‘+À¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’ƒ‘Ö¬=‘Ç­Pro‘£ŽjectionsŽ‘=“|¬::Ž‘D!º´PERSPŽ‘^èµ;‘ª¨­realŽ‘]Ö±factorŽ‘6(̬=‘Ç1Ž“)‘UU­constŽ‘*¢¬;ŽŸ­368.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ žHP•®9oin“tŽ‘=8”¬::‘±get‘‰ffŽ‘®xŽ‘Žk¬(­c®9harŽ‘Ub±c–ÿ}'o“or“dsŽ‘5^îµ;‘ª¨­constŽ‘Àcb•QÇo“olŽ‘9Lâ±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘^öµ;‘ª¨­constŽ‘Àcb•QÇo“olŽ‘9Lâ±do‘‰ffŽ‘®applyŽ‘_W·µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!àb°Ž‘&àcµfŽ‘,ÙI;‘ª¨­constŽ‘ÀcunsignedŽŽ¡‘2shortŽ‘Oʨ±pr‘ÿ}'ojŽ‘b¾kµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬¬(´'x'Ž‘F_µ;‘ª¨±c–ÿ}'o“or“dsŽ‘´4µ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gޤ­369.‘ üGet‘ÕTy‘ÿ +«.Ž¡370.‘ üNon-const‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­realŽ‘!%>±get‘‰ffŽ‘®yŽ‘7™T¬(­c®9harŽ‘ÜX±c–ÿ}'o“or“dsŽ‘9k¬=‘…0´'w'Ž‘˵;‘ª¨­constŽ‘ GYb•QÇo“olŽ‘:Zαdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘c‰6¬=‘…0±trueŽ–Iȵ;‘ª¨­constŽ‘ GYb•QÇo“olŽ‘:Zαdo‘‰ffŽ‘®applyŽ‘cêÓ¬=‘…0±trueŽ“µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘°Ž‘#µfŽ‘+À¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’ƒ‘Ö¬=‘Ç­Pro‘£ŽjectionsŽ‘=“|¬::Ž‘D!º´PERSPŽ‘^èµ;‘ª¨­realŽ‘]Ö±factorŽ‘6(̬=‘Ç1Ž“);ŽŽŽŒ‹`Àú Šn ý‘ì¬96–¯NON-­CONST‘ÕX¯VERSION’öÎ@3DLDF-1.1.5.1“°x¬371Ž €n ý•@P­371.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­realŽ‘ ŸÕP•®9oin“tŽ‘=:!¬::‘±get‘‰ffŽ‘®yŽ‘t¬(­c®9harŽ‘Vï±c–ÿ}'o“or“dsŽ‘5`{µ;‘ª¨­constŽ‘Áðb•QÇo“olŽ‘9Oü±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘^ù4µ;‘ª¨­constŽ‘Áðb•QÇo“olŽ‘9Oü±do‘‰ffŽ‘®applyŽ‘_Zѵ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!áï°Ž‘&áðµfŽ‘,ÚÖ;‘ª¨­constŽ‘ÁðunsignedŽŽ¡‘2shortŽ‘Oʨ±pr‘ÿ}'ojŽ‘b¾kµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬¬(´'y'Ž‘F_µ;‘ª¨±c–ÿ}'o“or“dsŽ‘´4µ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gŽŸ­372.‘ üconst‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­realŽ‘!%>±get‘‰ffŽ‘®yŽ‘7™T¬(­c®9harŽ‘ÜX±c–ÿ}'o“or“dsŽ‘9k¬=‘…0´'w'Ž‘˵;‘ª¨­constŽ‘ GYb•QÇo“olŽ‘:Zαdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘c‰6¬=‘…0±trueŽ–Iȵ;‘ª¨­constŽ‘ GYb•QÇo“olŽ‘:Zαdo‘‰ffŽ‘®applyŽ‘cêÓ¬=‘…0±trueŽ“µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘°Ž‘#µfŽ‘+À¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’ƒ‘Ö¬=‘Ç­Pro‘£ŽjectionsŽ‘=“|¬::Ž‘D!º´PERSPŽ‘^èµ;‘ª¨­realŽ‘]Ö±factorŽ‘6(̬=‘Ç1Ž“)‘UU­constŽ‘*¢¬;ŽŸ­373.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ŸÕP•®9oin“tŽ‘=:!¬::‘±get‘‰ffŽ‘®yŽ‘t¬(­c®9harŽ‘Vï±c–ÿ}'o“or“dsŽ‘5`{µ;‘ª¨­constŽ‘Áðb•QÇo“olŽ‘9Oü±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘^ù4µ;‘ª¨­constŽ‘Áðb•QÇo“olŽ‘9Oü±do‘‰ffŽ‘®applyŽ‘_Zѵ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!áï°Ž‘&áðµfŽ‘,ÚÖ;‘ª¨­constŽ‘ÁðunsignedŽŽ¡‘2shortŽ‘Oʨ±pr‘ÿ}'ojŽ‘b¾kµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬¬(´'y'Ž‘F_µ;‘ª¨±c–ÿ}'o“or“dsŽ‘´4µ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gޤ­374.‘ üGet‘ÕTz.Ž¡375.‘ üNon-const‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­realŽ‘!&ª±get‘‰ffŽ‘®zŽ‘7.«¬(­c®9harŽ‘Ýıc–ÿ}'o“or“dsŽ‘9n߬=‘‡´'w'Ž‘Íîµ;‘ª¨­constŽ‘ HÅb•QÇo“olŽ‘:]¦±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘cŽm¬=‘‡±trueŽ–L'µ;‘ª¨­constŽ‘ HÅb•QÇo“olŽ‘:]¦±do‘‰ffŽ‘®applyŽ‘cð +¬=‘‡±trueŽ“µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘°Ž‘#µfŽ‘+À¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’ƒ‘Ö¬=‘Ç­Pro‘£ŽjectionsŽ‘=“|¬::Ž‘D!º´PERSPŽ‘^èµ;‘ª¨­realŽ‘]Ö±factorŽ‘6(̬=‘Ç1Ž“);ŽŸ­376.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ¦0P•®9oin“tŽ‘=@|¬::‘±get‘‰ffŽ‘®zŽ‘¬(­c®9harŽ‘]J±c–ÿ}'o“or“dsŽ‘5fÖµ;‘ª¨­constŽ‘ÈKb•QÇo“olŽ‘9\²±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘_êµ;‘ª¨­constŽ‘ÈKb•QÇo“olŽ‘9\²±do‘‰ffŽ‘®applyŽ‘_g‡µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!èJ°Ž‘&èKµfŽ‘,á1;‘ª¨­constŽ‘ÈKunsignedŽŽ¡‘2shortŽ‘Oʨ±pr‘ÿ}'ojŽ‘b¾kµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬¬(´'z'Ž‘F_µ;‘ª¨±c–ÿ}'o“or“dsŽ‘´4µ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gŽŸ­377.‘ üconst‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­realŽ‘!&ª±get‘‰ffŽ‘®zŽ‘7.«¬(­c®9harŽ‘Ýıc–ÿ}'o“or“dsŽ‘9n߬=‘‡´'w'Ž‘Íîµ;‘ª¨­constŽ‘ HÅb•QÇo“olŽ‘:]¦±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘cŽm¬=‘‡±trueŽ–L'µ;‘ª¨­constŽ‘ HÅb•QÇo“olŽ‘:]¦±do‘‰ffŽ‘®applyŽ‘cð +¬=‘‡±trueŽ“µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘°Ž‘#µfŽ‘+À¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’ƒ‘Ö¬=‘Ç­Pro‘£ŽjectionsŽ‘=“|¬::Ž‘D!º´PERSPŽ‘^èµ;‘ª¨­realŽ‘]Ö±factorŽ‘6(̬=‘Ç1Ž“)‘UU­constŽ‘*¢¬;ŽŸ­378.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ¦0P•®9oin“tŽ‘=@|¬::‘±get‘‰ffŽ‘®zŽ‘¬(­c®9harŽ‘]J±c–ÿ}'o“or“dsŽ‘5fÖµ;‘ª¨­constŽ‘ÈKb•QÇo“olŽ‘9\²±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘_êµ;‘ª¨­constŽ‘ÈKb•QÇo“olŽ‘9\²±do‘‰ffŽ‘®applyŽ‘_g‡µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!èJ°Ž‘&èKµfŽ‘,á1;‘ª¨­constŽ‘ÈKunsignedŽŽ¡‘2shortŽ‘Oʨ±pr‘ÿ}'ojŽ‘b¾kµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬¬(´'z'Ž‘F_µ;‘ª¨±c–ÿ}'o“or“dsŽ‘´4µ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gŽŸ­379.‘ üGet‘ÕTw.ŽŽŽŒ‹aÑ# Šn ý‘ì°x¬380–¯3DLDF-1.1.5.1’öÎ@NON-­CONST‘ÕX¯VERSION“¬97Ž €n ý•@P­380.‘ üNon-const‘ÕTv®9ersion.Ž©°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­realŽ‘!’±get‘‰ffŽ‘®wŽ‘9­¬(­c®9harޑլ±c–ÿ}'o“or“dsŽ‘9YI¬=‘z´'w'Ž‘Àpµ;‘ª¨­constŽ‘ @­b•QÇo“olŽ‘:Mv±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘cp¿¬=‘z±trueŽ–>©µ;‘ª¨­constŽ‘ @­b•QÇo“olŽ‘:Mv±do‘‰ffŽ‘®applyŽ‘cÒ\¬=‘z±trueŽ“µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘°Ž‘#µfŽ‘+À¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’ƒ‘Ö¬=‘Ç­Pro‘£ŽjectionsŽ‘=“|¬::Ž‘D!º´PERSPŽ‘^èµ;‘ª¨­realŽ‘]Ö±factorŽ‘6(̬=‘Ç1Ž“);ŽŸ­381.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ‚P•®9oin“tŽ‘=N¬::‘±get‘‰ffŽ‘®wŽ‘o¬(­c®9harŽ‘9±c–ÿ}'o“or“dsŽ‘5B¨µ;‘ª¨­constŽ‘¤b•QÇo“olŽ‘9V±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘^½Žµ;‘ª¨­constŽ‘¤b•QÇo“olŽ‘9V±do‘‰ffŽ‘®applyŽ‘_+µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!İޑ&ĵfŽ‘,½;‘ª¨­constŽ‘¤unsignedŽŽ¡‘2shortŽ‘Oʨ±pr‘ÿ}'ojŽ‘b¾kµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬¬(´'w'Ž‘F_µ;‘ª¨±c–ÿ}'o“or“dsŽ‘´4µ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gŽŸ­382.‘ üconst‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­realŽ‘!’±get‘‰ffŽ‘®wŽ‘9­¬(­c®9harޑլ±c–ÿ}'o“or“dsŽ‘9YI¬=‘z´'w'Ž‘Àpµ;‘ª¨­constŽ‘ @­b•QÇo“olŽ‘:Mv±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘cp¿¬=‘z±trueŽ–>©µ;‘ª¨­constŽ‘ @­b•QÇo“olŽ‘:Mv±do‘‰ffŽ‘®applyŽ‘cÒ\¬=‘z±trueŽ“µ;‘ª¨­F‘ÿ +«oQÇcusŽŽ¡‘°Ž‘#µfŽ‘+À¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±pr‘ÿ}'ojŽ’ƒ‘Ö¬=‘Ç­Pro‘£ŽjectionsŽ‘=“|¬::Ž‘D!º´PERSPŽ‘^èµ;‘ª¨­realŽ‘]Ö±factorŽ‘6(̬=‘Ç1Ž“)‘UU­constŽ‘*¢¬;ŽŸ­383.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ‚P•®9oin“tŽ‘=N¬::‘±get‘‰ffŽ‘®wŽ‘o¬(­c®9harŽ‘9±c–ÿ}'o“or“dsŽ‘5B¨µ;‘ª¨­constŽ‘¤b•QÇo“olŽ‘9V±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘^½Žµ;‘ª¨­constŽ‘¤b•QÇo“olŽ‘9V±do‘‰ffŽ‘®applyŽ‘_+µ;‘ª¨­F‘ÿ +«oQÇcusŽ‘!İޑ&ĵfŽ‘,½;‘ª¨­constŽ‘¤unsignedŽŽ¡‘2shortŽ‘Oʨ±pr‘ÿ}'ojŽ‘b¾kµ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±get‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘`C¬¬(´'w'Ž‘F_µ;‘ª¨±c–ÿ}'o“or“dsŽ‘´4µ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gŽŸ­384.‘ üGet‘ÕTtransform.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Y;Made–UUthis“function“­constŽ‘*¢¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIT‘ÿ +«ransformŽ‘aS±get‘‰ffŽ‘®tr‘ÿ}'ansformŽ’:¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ý¬;Ž¡‘ +°gŽŸ­385.‘ üGet‘ÕTcop®9y‘ÿ «.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y;Made–UUthis“function“ÂconstŽ‘*¢«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂShapQÇeŽ‘,Ac·Ž‘1AdÏget‘‰ffŽ‘®c‘ÿ}'opyŽ‘V«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹Xõÿ Šn ý‘ì«88–­GET‘ÕXCOPY’9qÙ3DLDFPRÃŽG“·x«343Ž €n ý•@PÂ343.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂShapQÇeŽ‘,Ac·Ž‘1AdÂP•®9oin“tŽ‘MÛ°«::‘Ïget‘‰ffŽ‘®c‘ÿ}'opyŽ‘%ø«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2Ž‘7ï ±pŽ‘?¾¸«=‘ÇÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘K«(‘ª¨);ަ‘·Ž‘±pŽ‘ Ï«=‘Ç·Ž‘ÇÏthisŽ‘²Ï«;Ž¡‘ÂreturnŽ‘7æ¼staticu½‰™šs4Ž‘ÔwcastŽ‘ld^·hÂShapQÇeŽ‘"Ab·Ž‘'Aci«(±pŽ‘«);Ž¡‘ -·gŽŸÂ344.‘ üIs–ÕTon“free“store.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIb•QÇo“olŽ‘C+¯Ïis‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ’…¦„«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘o‹®«;Ž¡‘ -·gŽŸÂ345.– üSlopQÇe.“«[¬LDF‘T2002.10.27.«]Ž‘ZîYÏslop‘ÿ}'eŽ‘q&$«(‘ª®)–»xreturns“the“slopGe“of“the“Ïtr–ÿ}'ac“e‘{Ó«of–»xthe“line“from“·Ž‘»yÏthisŽ‘b§«to“±pŽ‘ ~ð«on“theŽ¡plane–UUindicated“bš¸ãy“the“Âc®9harŽ‘¿ž«argumen˜ts“±mŽ‘ra«and“±nŽ‘ Uï«.‘qÇThese“should“bGe“Ý'x'Ž››´«,“Ý'y'Ž˜«,“Ý'z'Ž˜«,“Ý'X'Ž˜«,“Ý'Y'Ž˜«,“or“Ý'Z'Ž˜«.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y;No¸ãw–UUusing“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘S¾¨«directly“instead“of“\get"“functions.Ž¡‘ -[¬LDF‘T2002.10.27.«]Ž‘Y;Changed–UUargumen¸ãt“±pŽ‘ ²ª«from“ÂconstŽ‘!÷P•®9oin“tŽ‘@o”«&Ž‘KŒto“ÂP•®9oin“tŽ‘ï«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/Ïslop‘ÿ}'eŽ‘6êú«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷;‘ª¨Âc®9harŽ‘ñ±mŽ‘&£À«=‘ÇÝ'x'Ž– w±;‘ª¨Âc®9harŽ‘ñ±nŽ‘#Ü£«=‘ÇÝ'y'Ž“«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹Yn Šn ý‘ì·x«346–­3DLDFPRÃŽG’KmSLOPE“«89Ž €n ý•@PÂ346.ޤ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž© ‘ -ÂrealŽ‘ ³/P•®9oin“tŽ‘=M{«::‘Ïslop‘ÿ}'eŽ‘7Ï«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷;‘ª¨Âc®9harŽ‘ñ±mŽ‘#ܨ;‘ª¨Âc®9harŽ‘ñ±nŽ‘!‹«)‘UUÂconstŽ‘*¢·f‘UUÂb•QÇo“olŽ‘ö»ÝDEBUGŽ‘:„,«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=Ž¡‘ÂP•®9oin“tŽ‘<ï ±aŽ‘B8Ы(·Ž‘ÏthisŽ‘ë·«);Ž¡‘±aŽ‘#I3:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘±pŽ‘#:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘ÂifŽ‘)´û«(±aŽ‘H·‘DZpŽ‘Ï«)‘·fަ‘(Ïc‘ÿ}'errŽ‘=Èÿ·‘UÝ"ERROR!È ÝInÈ ÝPoint::slŽ‘lope():\n"Ž’žì»·‘UÝ"PointsÈ ÝareÈ ÝtheÈ ÝsameŽ‘l.È ÝReturningÈ ÝINVALID_Ž’ÕÝ\ŽŽ¦‘<REAL\n\n"Ž‘nk·‘ÇÏ ushŽ‘€«;ަ‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘·fަ‘2±aŽ‘7I5:ÏshowŽ‘Šÿ«(Ý"a"Ž‘F_«);ަ‘2±pŽ‘7:ÏshowŽ‘Šÿ«(Ý"p"Ž‘F_«);ަ‘(·gަ‘(ÂreturnŽ‘Kæ¾ÝINVALID_REALŽ’‹m«;ަ‘·gަ‘±mŽ‘)ŽÒ«=‘ÇÏtolowerŽ‘#í«(±mŽ‘Ç·«);ަ‘±nŽ‘&ǵ«=‘ÇÏtolowerŽ‘#í«(±nŽ‘š«);ަ‘ÂifŽ‘)´û«(·:«((±mŽ‘ ŽÏ·‘ÇÝ'x'Ž–FW·_‘8à±mŽ› ǯ·‘ÇÝ'y'Ž“·_‘8à±mŽ˜·‘ÇÝ'z'Ž‘ w«)–8à·^“«(±nŽ‘Dz·‘ÇÝ'x'Ž›FW·_“±nŽ‘ ’·‘ÇÝ'y'Ž˜·_“±nŽ‘ ’·‘ÇÝ'z'Ž‘ w«)“·^“«(±mŽ‘ ŽÏ·6«=‘DZnŽ‘Dz«)))‘·fަ‘(Ïc‘ÿ}'errŽ‘=Èÿ·‘UÝ"ERROR!È ÝInÈ ÝPoint::slŽ‘lope():\n"Ž’žì»·‘UÝ"OneÈ ÝorÈ ÝbothÈ ÝcharÈ ÝarŽ‘lgumentsÈ ÝareÈ ÝinvalidÈ Ž’ÕÝÝ\ŽŽ¦‘<orÈ ÝtheyÈ ÝareÈ ÝtheÈ ÝsameŽ’¤ÿÊ:È Ý"Ž’¸ A·‘DZmŽ‘Uç·‘ÇÝ",È Ý"Ž‘Œ·‘DZnŽ‘ ŽÊ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÝ"ReturningÈ ÝINVALID_RŽ‘kÆÜEAL\n\n"Ž’™D·ަ‘<Ï ushŽ‘Q¹«;ަ‘(ÂreturnŽ‘Kæ¾ÝINVALID_REALŽ’‹m«;ަ‘·gŽ¡‘Âin®9tŽ‘/¤úÏctrŽ‘@&«=‘DZmŽ‘ ǯ·‘8àÝ'x'Ž‘?«;ަ‘ÂrealŽ‘4³1Ïa‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ‘dI“«=‘DZaŽ‘H:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[ÏctrŽ‘ ¹î«];ަ‘ÂrealŽ‘4³1Ïp‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ‘dI“«=‘DZpŽ‘Ï:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[ÏctrŽ‘ ¹î«];Ž¡‘ÏctrŽ‘. «=‘DZnŽ‘ ’·‘8àÝ'x'Ž‘?«;Ž¡‘ÂrealŽ‘4³1Ïa‘‰ffŽ–®n‘‰ffŽ“c–ÿ}'o“or“dŽ‘a»[«=‘DZaŽ‘H:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[ÏctrŽ‘ ¹î«];ަ‘ÂrealŽ‘4³1Ïp‘‰ffŽ–®n‘‰ffŽ“c–ÿ}'o“or“dŽ‘a»[«=‘DZpŽ‘Ï:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[ÏctrŽ‘ ¹î«];ŽŸÂ347.‘ ü«W‘ÿ*ªe–Upoften“use“Ïslop‘ÿ}'eŽ‘;«(‘ª®)“in“order“to“ nd“out“whether“a“line“has“slopGe“or“not,‘Uwso“an“error“message“is“outަof–tplace“here.‘y%A‘Hwš¸ãarning“is“toGo,–-¼probably‘ÿ*ª,“but–tI'm“lea˜ving“this“in“here“for“no˜w,‘-¼just“in“case“I‘Hc˜hange“m˜yަmind.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂifŽ‘´ù«(Ïa‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ–/–b·‘ÇÏp‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ“«)‘·fަ«#ÂifŽ‘ ´ø«0ŽŽ¦‘Ïc‘ÿ}'errŽ‘.»Î·‘&Ý"WARNING!È ÝInÈ ÝPoint::Ž‘qêslope():\n"Ž’³RW·‘&±mŽ‘Ô·ަ‘(Ý"È ÝcoordinatesÈ ÝofÈ ÝpoiŽ’ÿÈntsÈ ÝareÈ ÝequalÈ Ý(noÈ ÝslŽ’ùÿŒope)!\n"Ž’'Lô·‘ÇÝ"ReturningÈ ÝINVALID_RŽ‘kÆÜEAL\n\n"Ž’–M,«;ަ#ÂendifŽŽ¦‘returnŽ‘7æ¼ÝINVALID_REALŽ‘wm«;ަ‘ -·gަ‘ -ÂreturnŽ‘-滫(Ïa‘‰ffŽ–®n‘‰ffŽ“c–ÿ}'o“or“dŽ–,yò·‘8àÏp‘‰ffŽ–®n‘‰ffŽ“c–ÿ}'o“or“dŽ“«)±=«(Ïa‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ–/*·‘8àÏp‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ“«);‘UU·gŽŸÂ348.‘ üIs–ÕTon“segmen®9t.ŽŽŽŒ‹Z -– Šn ý‘ì«90–­NON-ÂCONSTŽ‘+½Ô­VERSION’þ®¡3DLDFPRÃŽG“·x«349Ž €n ý•@PÂ349.– üNon-constŽ‘Øëv®9ersion.“«[¬LDF‘T2002.10.29.«]Ž‘[Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ’˜Äa«(‘ª®)–\1returns“a“Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘6£Ž«with“the“Âb•QÇo“olŽ‘s«in-ޤ dicating–=Vwhether“·Ž‘ =WÏthisŽ‘fc«lies“on“the“line“segmenš¸ãt“bGet˜w˜een“Ïp0Ž‘‘l«and“Ïp1Ž‘T«,‘wVand“a“ÂrealŽ‘Ø…«v‘ÿqÇalue“±t“«represen˜ting“theŽ¡distance–l¤of“·Ž‘l¥ÏthisŽ‘Äÿ«on“the“w•¸ãa“y–l¤from“Ïp0Ž‘ð«to“Ïp1Ž‘ƒd«.›·´If“the“Âb•QÇo“olŽ‘%Y«is“ÏtrueŽ‘1<«,‘rxthen“0–íñ±<«=“±t“<«=“1.˜If›l¤±t“<“«0˜or˜±t“>“«1,‘rxthenŽ¡·Ž‘ÏthisŽ‘Rã«lies–g,on“the“line“passing“through“Ïp0Ž‘å«and“Ïp1Ž‘}ì«,›k¢but“not“on“the“segmen¸ãt.‘§LIf“·Ž‘g-ÏthisŽ‘º«doGesn't“lie“on“the“line,˜±tŽ¡«will–UUbGe“ÝINVALID_REALŽ‘BÛ™«.Ž¡‘ -[¬LDF‘T2002.10.29.«]Ž‘Y;T‘ÿ*ªo›UUc•¸ãhec“k˜whether˜·Ž‘UVÏthisŽ‘–a«lies˜on˜the˜line,˜use˜Ïis‘‰ffŽ–®on‘‰ffŽ“lineŽ‘-°_«(‘ª®).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.29.«]Ž‘XLJBUG‘‘FIX:–¡Added“coGde“to“c•¸ãhec“k–¡whether“the“unit“v¸ãectors“·Ž‘¢ÏthisŽ‘·Ñ·‘·yÏp0Ž›âÚ«and“Ïp1Ž˜·‘·yŽ‘·zÏthisŽ‘·Ñ«areŽ¡equal–gbGefore“calculating“±rŽ‘Ø{«.‘Z#Before“I‘Udid“this,‘—ÏtrueŽ‘ï–«wš¸ãas“returned“for“ÂP•®9oin“tsŽ‘&@R«that“w˜eren't“on“the“line“segmen˜t.Ž¡‘ -[¬LDF‘T2002.10.29.«]Ž‘Y;No¸ãw–UUusing“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘S¾¨«directly“instead“of“Ïget‘‰ffŽ‘®xŽ‘㼫(›ª®),“Ïget‘‰ffŽ‘®yŽ‘Ék«(˜),“and“Ïget‘‰ffŽ‘®zŽ‘]V«(˜).ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ŽŸ ‘ -Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘xuÑ«(ÂP•®9oin“tŽ‘ïÏp0Ž‘+]±;‘ª¨ÂP•®9oin“tŽ‘ šEÏp1Ž‘,±«);ŽŽŽŒ‹[ Šn ý‘ì·x«350–­3DLDFPRÃŽG’þ®¡NON-ÂCONSTŽ‘+½Ô­VERSION“«91Ž €n ý•@PÂ350.ޤ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž© ‘ -Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚P•®9oin“tŽ‘WÚΫ::‘Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘>5S«(ÂP•®9oin“tŽ‘ïÏp0Ž‘+]±;‘ª¨ÂP•®9oin“tŽ‘ šEÏp1Ž‘,±«)·f‘UUÂb•QÇo“olŽ‘ö»ÝDEBUGŽ‘:„,«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPoint::is_Ž‘kÆÜon_segment().\n"Ž’Ã,·‘ÇÏ ushŽ‘€«;ަ‘Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘dâ«(‘ª®);ަ‘Ïp0Ž‘*ñ:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘Ïp1Ž‘*ñ:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fަ‘(ÏshowŽ‘>‹«(Ý"this"Ž‘ V«);ަ‘(Ïp0Ž‘4ı:ÏshowŽ‘Šÿ«(Ý"p0"Ž‘†\«);ަ‘(Ïp1Ž‘4ı:ÏshowŽ‘Šÿ«(Ý"p1"Ž‘†\«);ަ‘·gަ‘ÂifŽ‘)´û«(·Ž‘ÏthisŽ‘²Ï·‘ÇÝINVALID_POINTŽ–IÆ9·_‘8àÏp0Ž›¸·‘ÇÝINVALID_POINTŽ“·_‘8àÏp1Ž˜·‘ÇÝINVALID_POINTŽ‘GY«)‘·fަ‘(Ïc‘ÿ}'errŽ‘=”Ü·‘ß2Ý"ERROR!È ÝInÈ ÝPoint::isŽ‘kÞö_on_segment():\n"Ž’È„]·‘ß2Ý"OneÈ ÝofÈ ÝtheÈ ÝPointsÈ ÝiŽ‘kÞösÈ Ýinvalid!È Ý"Ž’®Dl·ަ‘<Ý"ReturningÈ ÝfalseÈ ÝandŽ’¤ÿÊÈ ÝINVALID_REAL.\n\n"Ž’ ·‘ÇÏ ushŽ‘€«;ަ‘(ÂreturnŽ‘Kæ¾pairŽ‘`bÏ·hÂb•QÇo“olŽ‘L±;‘ª¨ÂrealŽ‘·i«(ÏfalseŽ‘¯D±;‘ª¨ÝINVALID_REALŽ‘A0ì«);ަ‘·gŽ¡‘Âb•QÇo“olŽ‘7¡i±bŽ‘;ì«;ަ‘ÂrealŽ‘4³1±rŽ‘9}E«;Ž¡‘ÂifŽ‘)´û«(Ïp0Ž–ÝØ·‘ÇÏp1Ž‘¸·^‘8àŽ‘8áÏthisŽ‘믷‘ÇÏp0Ž“«)‘·fަ‘(Ïc‘ÿ}'errŽ‘BNa·‘˜·Ý"ERROR!È ÝInÈ ÝPoint::isŽ‘p˜{_on_segment():\n"Ž’Ñ÷g·ަ‘<Ý"*thisÈ ÝandÈ ÝtheÈ ÝargumŽ’¤ÿÊentsÈ Ýp0È ÝandÈ Ýp1È ÝareÈ ÝaŽ’ ÿŽllÈ Ýequal.È Ý"Ž’N‡g·ަ‘<Ý"ReturningÈ ÝfalseÈ ÝandŽ’¤ÿÊÈ ÝINVALID_REAL.\n"Ž’þÅÿ«;ަ‘(ÂreturnŽ‘Kæ¾pairŽ‘`bÏ·hÂb•QÇo“olŽ‘L±;‘ª¨ÂrealŽ‘·i«(ÏfalseŽ‘¯D±;‘ª¨ÝINVALID_REALŽ‘A0ì«);ަ‘·gަ‘ÂelseŽ‘4.7ifŽ‘?ã/«(Ïp0Ž–ÝØ·‘ÇÏp1Ž“«)‘·fަ‘(Ïc‘ÿ}'errŽ‘=|·‘ÇÝ"ERROR!È ÝInÈ ÝPoint::isŽ‘kÆÜ_on_segment():\n"Ž’ÈT)·‘ÇÝ"ArgumentsÈ Ýp0È ÝandÈ Ýp1Ž‘kÆÜÈ ÝareÈ Ýequal.È Ý"Ž’³T5·ަ‘<Ý"ReturningÈ ÝfalseÈ ÝandŽ’¤ÿÊÈ ÝINVALID_REAL.\n"Ž’þÅÿ«;ަ‘(ÂreturnŽ‘Kæ¾pairŽ‘`bÏ·hÂb•QÇo“olŽ‘L±;‘ª¨ÂrealŽ‘·i«(ÏfalseŽ‘¯D±;‘ª¨ÝINVALID_REALŽ‘A0ì«);ަ‘·gަ‘ÂelseŽ‘4.7ifŽ‘?ã/«(·Ž‘ÏthisŽ‘²Ï·‘ÇÏp0Ž‘ÝØ«)‘·fަ‘(ÂreturnŽ‘Kæ¾pairŽ‘`bÏ·hÂb•QÇo“olŽ‘L±;‘ª¨ÂrealŽ‘·i«(ÏtrueŽ‘ʱ;‘ª¨«0±:«0ŽŽ‘qÇ);ަ‘·gަ‘ÂelseŽ‘4.7ifŽ‘?ã/«(·Ž‘ÏthisŽ‘²Ï·‘ÇÏp1Ž‘ÝØ«)‘·fަ‘(ÂreturnŽ‘Kæ¾pairŽ‘`bÏ·hÂb•QÇo“olŽ‘L±;‘ª¨ÂrealŽ‘·i«(ÏtrueŽ‘ʱ;‘ª¨«1±:«0ŽŽ‘qÇ);ަ‘·gަ‘=ª³±=·‘ÿý«[¬LDF‘T2002.10.29.«]Ž‘T7Beginning–UUof“new“coGde.‘o·±=Ž¡‘ÂP•®9oin“tŽ‘<ï Ïv0Ž‘Hƒ‡«(·Ž‘ÏthisŽ‘$—·‘8àÏp0Ž‘O «);ަ‘ÂP•®9oin“tŽ‘<ï Ïv1Ž‘Hƒ‡«(Ïp1Ž‘O ·‘8àŽ‘8áÏthisŽ‘$—«);Ž¡‘Ïv0Ž‘)“ê±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘Ïv1Ž‘)“ê±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fަ‘(Ïv0Ž‘3“ë±:ÏshowŽ‘Šÿ«(Ý"v0"Ž‘†\«);ަ‘(Ïv1Ž‘3“ë±:ÏshowŽ‘Šÿ«(Ý"v1"Ž‘†\«);ަ‘·gަ‘Ïv0Ž‘)“ê±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);ަ‘Ïv1Ž‘)“ê±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fަ‘(Ïv0Ž‘3“ë±:ÏshowŽ‘Šÿ«(Ý"v0"Ž‘†\«);ަ‘(Ïv1Ž‘3“ë±:ÏshowŽ‘Šÿ«(Ý"v1"Ž‘†\«);ަ‘·gŽŽŽŒ‹\ + Šn ý‘ì«92–­NON-ÂCONSTŽ‘+½Ô­VERSION’þ®¡3DLDFPRÃŽG“·x«350Ž €n ý•@P‘ÂP•®9oin“tŽ‘<ï Ïv2Ž‘Hƒ‡«(·Ž‘ÇÏv1Ž‘[«);Ž©‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fޤ ‘(Ïv2Ž‘3“ë±:ÏshowŽ‘Šÿ«(Ý"v2"Ž‘†\«);Ž¡‘·gŽ¡‘ÂifŽ‘)´û«(Ïv0Ž›Zÿ·6«=‘ÇÏv1Ž–“ß·^‘8àÏv0Ž“·6«=‘ÇÏv2Ž˜«)‘·fŽ¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"NotÈ ÝonÈ Ýline.\n"Ž‘WMP«;Ž¡‘(ÂreturnŽ‘Kæ¾pairŽ‘`bÏ·hÂb•QÇo“olŽ‘L±;‘ª¨ÂrealŽ‘·i«(ÏfalseŽ‘¯D±;‘ª¨ÝINVALID_REALŽ‘A0ì«);Ž¡‘·gŽ¡‘=ª³±=·‘ÿý«[¬LDF‘T2002.10.29.«]Ž‘T7End–UUof“new“coGde.‘o·±=ŽŸÂ351.‘ ü«[¬LDF‘T2002.10.29.«]Ž‘Zˆ6Calculate–UUhoš¸ãw“far“·Ž‘UVÏthisŽ‘–a«is“on“the“w˜a˜y“from“Ïp0Ž‘Áj«to“Ïp1Ž‘l«.Ž¡‘ -LDF‘&ÐUndated.‘bIThe–&Üv‘ÿqÇalue“±t“«can“bšGe“calculated“from“either“the“x,–0'y‘ÿ*ª,“or–&Üz-co˜ordinates.‘bIW‘ÿ*ªe“try“them“in“orderŽ¡and–çireturn“the“ rst“one“that“wš¸ãorks.‘M#Because“of“the“limited“precision“with“whic˜h“w˜e“are“w˜orking,‘ýeit's“pGossibleŽ¡that–¯the“v‘ÿqÇalue“of“±t“«can“di er,‘ÅodepšGending“on“what“co˜ordinates“are“used“to“calculate“it.‘~ÓIn“general,‘Åothis“willŽ¡not–bGe“signi canš¸ãt,‘Lsince“w˜e'll“mainly“bGe“needing“this“function“to“determine“whether“a“ÂP•®9oin“tŽ‘#Ðh«is“on“a“lineŽ¡segmenš¸ãt;–UUthe“exact“v‘ÿqÇalue“of“±t“«will“usually“not“bGe“signi can˜t.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–Ç·6«=“Ïp0Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[0Ž‘])Ž¡‘±rŽ‘‘.«=‘Ç(Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–²õ·“Ïp0Ž‘ ɵ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[0Ž–])±=«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[0Ž“]–²õ·“Ïp0Ž‘ ɵ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[0Ž‘]);Ž¡‘ -ÂelseŽ‘ .5ifŽ‘+ã-«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[1Ž‘]–Ç·6«=“Ïp0Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘])Ž¡‘±rŽ‘‘.«=‘Ç(Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[1Ž‘]–²õ·“Ïp0Ž‘ ɵ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž–])±=«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž“]–²õ·“Ïp0Ž‘ ɵ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]);Ž¡‘ -ÂelseŽ‘ .5ifŽ‘+ã-«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[2Ž‘]–Ç·6«=“Ïp0Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘])Ž¡‘±rŽ‘‘.«=‘Ç(Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[2Ž‘]–²õ·“Ïp0Ž‘ ɵ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž–])±=«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž“]–²õ·“Ïp0Ž‘ ɵ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]);Ž¡‘ -ÂelseŽ‘!Øà·fŽ¡‘Ïc‘ÿ}'errŽ‘.ô·‘>uÝ"ERROR!È ÝInÈ ÝPoint::isŽ‘q>9_on_segment()\n"Ž’Îæ·Ž¡‘(Ý"Can'tÈ ÝcalculateÈ Ýt.È Ž’ÿÈÝReturningÈ ÝfalseÈ ÝandÈ Ž’ùÿŒÝINVALID_REAL.\n\n"Ž’[ÌÖ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼pairŽ‘LbÍ·hÂb•QÇo“olŽ‘L±;‘ª¨ÂrealŽ‘·i«(ÏfalseŽ‘¯D±;‘ª¨ÝINVALID_REALŽ‘A0ì«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(±rŽ‘‘,·‘Ç«0Ž‘ ÿù·^‘8à±rŽ‘ Ê ·‘Ç«1Ž‘Ç)‘±bŽ‘ «=‘ÇÏtrueŽ‘‹°«;Ž¡‘ -ÂelseŽ‘!Øà±bŽ‘(ꢫ=‘ÇÏfalseŽ‘v\«;Ž¡‘ -ÂreturnŽ‘-æ»pairŽ‘BbÌ·hÂb•QÇo“olŽ‘L±;‘ª¨ÂrealŽ‘·i«(±bŽ‘Jª;‘ª¨rŽ‘t¼«);‘UU·gŽŸÂ352.‘ üconstŽ‘**v®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.29.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘xuÑ«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹]-è Šn ý‘ì·x«353–­3DLDFPRÃŽG’Ü9ÂCONSTŽ’@š ­VERSION“«93Ž €n ý•@PÂ353.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚P•®9oin“tŽ‘WÚΫ::‘Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘>5S«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘ÂreturnŽ‘7æ¼±aŽ‘=/ì:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïp0Ž‘ À±;‘ª¨Ïp1Ž‘ Áh«);Ž¡‘ -·gŽŸÂ354.› üIs–‰®on“line.˜«[¬LDF‘T2002.10.29.«]Ž‘ZFnTO‘|DO:–Maš¸ãybGe“add“a“non-ÂconstŽ‘èÚ«v˜ersion.‘[ÚThis“isn't“urgen˜t,‘ µthough.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.29.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚Ïis‘‰ffŽ–®on‘‰ffŽ“lineŽ‘e›Œ«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å«)‘UUÂconstŽ‘*¢«;ŽŸÂ355.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚P•®9oin“tŽ‘WÚΫ::‘Ïis‘‰ffŽ–®on‘‰ffŽ“lineŽ‘+[«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘E@ƒÏbrŽ‘Ro«=‘ÇÏis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘?üg«(Ïp0Ž‘ À±;‘ª¨Ïp1Ž‘ Áh«);ަ‘ÂifŽ‘´ú«(ÏbrŽ‘ -gs±:Ïse–ÿ}'c“ondŽ‘ nß·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘ÏbrŽ‘gs±:Ï rstŽ‘|«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ÂreturnŽ‘7æ¼ÏbrŽ‘BN/«;Ž¡‘ -·gŽŸÂ356.› üIs–°ìon“Plane.˜«[¬LDF‘T2003.06.04.«]Ž‘ZhŽThis–5­function“returns“ÏtrueŽ‘úE«,›<if“·Ž‘5®ÏthisŽ‘W«lies“on“the“ÂPlaneŽ‘#L½±pŽ‘(T½«,˜otherwiseŽ¡ÏfalseŽ‘¯D«.‘qÇIt–UUm¸ãust“bšGe“de ned“in“Èplanes.web«,“b˜ecause“ÂPlaneŽ‘#Œ «is“an“incomplete“t¸ãyp˜e“here.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.04.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gÏis‘‰ffŽ–®on‘‰ffŽ“planeŽ‘U$A«(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(x±pŽ‘K0x«)‘UUÂconstŽ‘*¢«;ŽŸÂ357.› üIs–öin“triangle.˜«[¬LDF‘T2003.06.11.«]Ž‘YÆThis–“P•®9oin“tŽ‘?VÏ«&Ž‘GíÏp1Ž–S4­±;‘ª¨ÂconstŽ‘ >P•®9oin“tŽ‘?VÏ«&Ž‘GíÏp2Ž“±;‘ª¨Âb•QÇo“olŽ‘•Ïverb‘ÿ}'oseŽ‘?g«=‘@¯ÏfalseŽ‘ïó«)Ž¡‘ÂconstŽ‘8ÕP«;ޤÂ358.‘ üT‘ÿ -«ransformations.Ž¡359.‘ üAne‘ÕTtransformations.ŽŽŽŒ‹^= Šn ý‘ì«94‘­RšÃŽOT–ÿJªA“TION–ÕXAR˜OUND“THE“MAIN“AXES’Ç7w3DLDFPR˜G‘·x«360Ž €n ý•@PÂ360.‘ üRotation–ÕTaround“the“main“axes.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2003.01.22.«]Ž‘Y«µReplaced›øÏb•Go“dy˜of˜function.‘\4ÂT‘ÿ -«ransformŽ‘;ϵ«::‘Ïr‘ÿ}'otateŽ‘oB«(‘ª®)˜returns˜a˜ÂT‘ÿ -«ransformŽ‘’ˆ«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘>f®«=‘Ç0Ž“);ŽŸÂ361.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘;Ëp;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘;Ÿ–«)ަ‘ -·fަ‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:Ïr‘ÿ}'otateŽ‘o>«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);ަ‘ -·gŽŸÂ362.‘ üScale.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2003.01.22.«]Ž‘Xr1Replaced›¿Kb•Go“dy˜of˜function.‘?ÄÂT‘ÿ -«ransformŽ‘9³E«::‘Ïsc‘ÿ}'aleŽ‘´ö«(‘ª®)˜returns˜a˜ÂT‘ÿ -«ransformŽ‘9ò«represen¸ãting˜theަrotation–UUonly‘ÿ*ª,“so“I“don't“need“to“use“a“loGcally“declared“ÂT‘ÿ -«ransformŽ‘;'±tŽ‘Bî«in“this“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏsc‘ÿ}'aleŽ‘W}Å«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç1Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç1Ž“);ŽŸÂ363.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::‘Ïsc‘ÿ}'aleŽ‘´ö«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)ަ‘ -·fަ‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:Ïsc‘ÿ}'aleŽ‘´ò«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);ަ‘ -·gŽŸÂ364.‘ üShear.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2003.01.22.«]Ž‘YßžReplaced›,¸b•Go“dy˜of˜function.‘÷ïÂT‘ÿ -«ransformŽ‘«(‘ª®)˜returns˜a˜ÂT‘ÿ -«ransformŽ‘<Ìí«represen¸ãtingަthe–UUrotation“only‘ÿ*ª,“so“I“don't“need“to“use“a“loGcally“declared“ÂT‘ÿ -«ransformŽ‘;'±tŽ‘Bî«in“this“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshe‘ÿ}'arŽ‘Yý «(ÂrealŽ‘³.ÏxyŽ‘!—±;‘ª¨ÂrealŽ‘]ÖÏxzŽ‘%œÀ«=‘Ç0Ž–Ç±;‘ª¨ÂrealŽ‘]ÖÏyxŽ‘&Zœ«=‘Ç0Ž“±;‘ª¨ÂrealŽ‘]ÖÏyzŽ‘%Ô6«=‘Ç0Ž“±;‘ª¨ÂrealŽ‘]ÖÏzxŽ‘%–Y«=‘Ç0Ž“±;‘ª¨ÂrealŽ‘]ÖÏzyŽ‘%|«=‘Ç0Ž“);ŽŸÂ365.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::‘Ïshe‘ÿ}'arŽ‘4>«(ÂrealŽ‘³.ÏxyŽ‘!—±;‘ª¨ÂrealŽ‘]ÖÏxzŽ‘"Õ¨±;‘ª¨ÂrealŽ‘]ÖÏyxŽ‘#“„±;‘ª¨ÂrealŽ‘]ÖÏyzŽ‘# ±;‘ª¨ÂrealŽ‘]ÖÏzxŽ‘"ÏA±;‘ª¨ÂrealŽ‘]ÖÏzyŽ‘"´ð«)ަ‘ -·fަ‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:Ïshe‘ÿ}'arŽ‘4:«(ÏxyŽ‘ -ãç±;‘ª¨ÏxzŽ‘ "z±;‘ª¨ÏyxŽ‘ àV±;‘ª¨ÏyzŽ‘ Yð±;‘ª¨ÏzxŽ‘ ±;‘ª¨ÏzyŽ‘ «);ަ‘ -·gޤÂ366.‘ üShift.Ž¡367.‘ üP•®9oin“t‘ÕTv“ersions.ŽŽŽŒ‹_J Šn ý‘ì·x«368‘­3DLDFPRšÃŽG’ëÆXTHREE–ÕXÂREAL“­AR˜GUMENTS‘«95Ž €n ý•@PÂ368.‘ üThree–ÕTreal“argumen®9ts.ޤ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž© ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshiftŽ‘UæP«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç0Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç0Ž“);ŽŸÂ369.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::‘ÏshiftŽ‘«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)ަ‘ -·fަ‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;Ž¡‘ÂifŽ‘´ú«(±xŽ‘~4·6«=‘Ç0Ž– ÿù·_‘8à±yŽ‘ -Bð·6«=‘Ç0Ž“·_‘8à±zŽ‘ -·6«=‘Ç0Ž‘Ç)‘Ïtr‘ÿ}'ansformŽ‘3zY·«=ŽŽ‘C±tŽ‘F¥:ÏshiftŽ‘}«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);ަ‘ÂreturnŽ‘7æ¼±tŽ‘;ƒ.«;ަ‘ -·gŽŸÂ370.‘ üP•®9oin“t‘ÕTargumen“t.Ž¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshiftŽ‘UæP«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«);ŽŸÂ371.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::‘ÏshiftŽ‘«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«)ަ‘ -·fަ‘ÂreturnŽ‘7æ¼ÏshiftŽ‘L9«(±pŽ‘:Ïget‘‰ffŽ‘®xŽ‘Žg«(–ª¨)±;“pŽ›²¨:Ïget‘‰ffŽ‘®yŽ‘t«(“)±;“pŽ˜:Ïget‘‰ffŽ‘®zŽ‘«(“));ަ‘ -·gŽŸÂ372.– üT‘ÿ -«ransform‘ÿ\vš®9ersion.“P˜oin˜tŽ‘+rÁ«argumen¸ãt.‘{@[¬LDF‘T2002.04.24.«]Ž‘W†¢Added–X}this“function.‘{@It's“declared“inަÈtransfor.web«,–UUbut“m¸ãust“bšGe“de ned“here,“b˜ecause“ÂP•®9oin“tŽ‘"Dò«is“an“incomplete“t¸ãyp˜e“there.Ž¡·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ަ‘ -ÂT‘ÿ +¬[²LDF‘T2002.10.27.¬]Ž‘Y;Made–UUthis“function“­constŽ‘*¢¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­ShapQÇeŽ‘,Ac°Ž‘1Ad±get‘‰ffŽ‘®c‘ÿ}'opyŽ‘V¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹bã± Šn ý‘ì¬98–¯GET‘ÕXCOPY’0þC3DLDF-1.1.5.1“°x¬386Ž €n ý•@P­386.ޤ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž© ‘ +­ShapQÇeŽ‘,Ac°Ž‘1Ad­P•®9oin“tŽ‘MÛ°¬::‘±get‘‰ffŽ‘®c‘ÿ}'opyŽ‘%ø¬(‘ª®)‘UU­constŽ‘*¢°f‘UU­P•®9oin“tŽ‘"Dò°Ž‘'DóµpŽ‘/¢H¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(0Ž‘);Ž¡‘°Ž‘#µpŽ‘*Ϭ=‘Ç°Ž‘Ç±thisŽ‘²Ï¬;ަ‘­returnŽ‘Aæ½staticu½‰™šs4Ž‘ÔwcastŽ‘vd_°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(µpŽ‘¬);‘UU°gŽŸ­387.‘ üIs–ÕTon“free“store.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2004.01.06.¬]Ž‘Y;Made‘UUnon-inline.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­b•QÇo“olŽ‘#¡g±is‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘f<¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŸ­388.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­b•QÇo“olŽ‘#¡gP•®9oin“tŽ‘@;³¬::‘±is‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘CzÙ¬(‘ª®)‘UU­constŽŽ¦‘ +°fަ‘­returnŽ‘7æ¼±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘o‹®¬;ަ‘ +°gŽŸ­389.– üSlopQÇe.“¬[²LDF‘T2002.10.27.¬]Ž‘ZîY±slop‘ÿ}'eŽ‘q&$¬(‘ª®)–»xreturns“the“slopGe“of“the“±tr–ÿ}'ac“e‘{Ó¬of–»xthe“line“from“°Ž‘»y±thisŽ‘b§¬to“µpŽ‘ ~ð¬on“theަplane–UUindicated“bš¸ãy“the“­c®9harŽ‘¿ž¬argumen˜ts“µmŽ‘ra¬and“µnŽ‘ Uï¬.‘qÇThese“should“bGe“´'x'Ž››´¬,“´'y'Ž˜¬,“´'z'Ž˜¬,“´'X'Ž˜¬,“´'Y'Ž˜¬,“or“´'Z'Ž˜¬.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Y;No¸ãw–UUusing“±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘S¾¨¬directly“instead“of“\get"“functions.ަ‘ +[²LDF‘T2002.10.27.¬]Ž‘Y;Changed–UUargumen¸ãt“µpŽ‘ ²ª¬from“­constŽ‘!÷P•®9oin“tŽ‘@o”¬&Ž‘KŒto“­P•®9oin“tŽ‘ï¬.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­realŽ‘ ³/±slop‘ÿ}'eŽ‘6êú¬(­P•®9oin“tŽ‘ïµpŽ‘#÷;‘ª¨­c®9harŽ‘ñµmŽ‘&£À¬=‘Ç´'x'Ž– wµ;‘ª¨­c®9harŽ‘ñµnŽ‘#Ü£¬=‘Ç´'y'Ž“¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹cñ" Šn ý‘ì°x¬390–¯3DLDF-1.1.5.1’C×SLOPE“¬99Ž €n ý•@P­390.ޤ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž© ‘ +­realŽ‘ ³/P•®9oin“tŽ‘=M{¬::‘±slop‘ÿ}'eŽ‘7Ϭ(­P•®9oin“tŽ‘ïµpŽ‘#÷;‘ª¨­c®9harŽ‘ñµmŽ‘#ܨ;‘ª¨­c®9harŽ‘ñµnŽ‘!‹¬)‘UU­constŽ‘*¢°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž¡‘­P•®9oin“tŽ‘<ï µaŽ‘B8Ь(°Ž‘±thisŽ‘ë·¬);Ž¡‘µaŽ‘#I3:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘µpŽ‘#:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘­ifŽ‘)´û¬(µaŽ‘H°‘ǵpŽ‘Ï¬)‘°fަ‘(±c‘ÿ}'errŽ‘=Èÿ°‘U´"ERROR!® ´In® ´Point::slŽ‘lope():\n"Ž’žì»°‘U´"Points® ´are® ´the® ´sameŽ‘l.® ´Returning® ´INVALID_Ž’ÕÝ\ŽŽ¦‘<REAL\n\n"Ž‘nk°‘DZ ushŽ‘€¬;ަ‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘°fަ‘2µaŽ‘7I5:±showŽ‘Šÿ¬(´"a"Ž‘F_¬);ަ‘2µpŽ‘7:±showŽ‘Šÿ¬(´"p"Ž‘F_¬);ަ‘(°gަ‘(­returnŽ‘Kæ¾´INVALID_REALŽ’‹m¬;ަ‘°gަ‘µmŽ‘)ŽÒ¬=‘DZtolowerŽ‘#í¬(µmŽ‘Ç·¬);ަ‘µnŽ‘&ǵ¬=‘DZtolowerŽ‘#í¬(µnŽ‘š¬);ަ‘­ifŽ‘)´û¬(°:¬((µmŽ‘ ŽÏ°‘Ç´'x'Ž–FW°_‘8àµmŽ› ǯ°‘Ç´'y'Ž“°_‘8àµmŽ˜°‘Ç´'z'Ž‘ w¬)–8à°^“¬(µnŽ‘Dz°‘Ç´'x'Ž›FW°_“µnŽ‘ ’°‘Ç´'y'Ž˜°_“µnŽ‘ ’°‘Ç´'z'Ž‘ w¬)“°^“¬(µmŽ‘ ŽÏ°6¬=‘ǵnŽ‘Dz¬)))‘°fަ‘(±c‘ÿ}'errŽ‘=Èÿ°‘U´"ERROR!® ´In® ´Point::slŽ‘lope():\n"Ž’žì»°‘U´"One® ´or® ´both® ´char® ´arŽ‘lguments® ´are® ´invalid® Ž’ÕÝ´\ŽŽ¦‘<or® ´they® ´are® ´the® ´sameŽ’¤ÿÊ:® ´"Ž’¸ A°‘ǵmŽ‘Uç°‘Ç´",® ´"Ž‘Œ°‘ǵnŽ‘ ŽÊ°‘DZend‘‚ØlŽ‘ò°‘Ç´"Returning® ´INVALID_RŽ‘kÆÜEAL\n\n"Ž’™D°ަ‘<± ushŽ‘Q¹¬;ަ‘(­returnŽ‘Kæ¾´INVALID_REALŽ’‹m¬;ަ‘°gŽ¡‘­in®9tŽ‘/¤ú±ctrŽ‘@&¬=‘ǵmŽ‘ ǯ°‘8à´'x'Ž‘?¬;ަ‘­realŽ‘4³1±a‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ‘dI“¬=‘ǵaŽ‘H:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[±ctrŽ‘ ¹î¬];ަ‘­realŽ‘4³1±p‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ‘dI“¬=‘ǵpŽ‘Ï:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[±ctrŽ‘ ¹î¬];Ž¡‘±ctrŽ‘. ¬=‘ǵnŽ‘ ’°‘8à´'x'Ž‘?¬;Ž¡‘­realŽ‘4³1±a‘‰ffŽ–®n‘‰ffŽ“c–ÿ}'o“or“dŽ‘a»[¬=‘ǵaŽ‘H:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[±ctrŽ‘ ¹î¬];ަ‘­realŽ‘4³1±p‘‰ffŽ–®n‘‰ffŽ“c–ÿ}'o“or“dŽ‘a»[¬=‘ǵpŽ‘Ï:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[±ctrŽ‘ ¹î¬];ŽŸ­391.‘ ü¬W‘ÿ*ªe–Upoften“use“±slop‘ÿ}'eŽ‘;¬(‘ª®)“in“order“to“ nd“out“whether“a“line“has“slopGe“or“not,‘Uwso“an“error“message“is“outަof–tplace“here.‘y%A‘Hwš¸ãarning“is“toGo,–-¼probably‘ÿ*ª,“but–tI'm“lea˜ving“this“in“here“for“no˜w,‘-¼just“in“case“I‘Hc˜hange“m˜yަmind.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­ifŽ‘´ù¬(±a‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ–/–b°‘DZp‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ“¬)‘°fަ¬#­ifŽ‘ ´ø¬0ŽŽ¦‘±c‘ÿ}'errŽ‘.»Î°‘&´"WARNING!® ´In® ´Point::Ž‘qêslope():\n"Ž’³RW°‘&µmŽ‘Ô°ަ‘(´"® ´coordinates® ´of® ´poiŽ’ÿÈnts® ´are® ´equal® ´(no® ´slŽ’ùÿŒope)!\n"Ž’'Lô°‘Ç´"Returning® ´INVALID_RŽ‘kÆÜEAL\n\n"Ž’–M,¬;ަ#­endifŽŽ¦‘returnŽ‘7æ¼´INVALID_REALŽ‘wm¬;ަ‘ +°gަ‘ +­returnŽ‘-滬(±a‘‰ffŽ–®n‘‰ffŽ“c–ÿ}'o“or“dŽ–,yò°‘8à±p‘‰ffŽ–®n‘‰ffŽ“c–ÿ}'o“or“dŽ“¬)µ=¬(±a‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ–/*°‘8à±p‘‰ffŽ–®m‘‰ffŽ“c–ÿ}'o“or“dŽ“¬);‘UU°gŽŸ­392.‘ üIs–ÕTon“segmen®9t.ŽŽŽŒ‹dùš Šn ý‘ì¬100–¯NON-­CONSTŽ‘+½Ô¯VERSION’ñ; +3DLDF-1.1.5.1“°x¬393Ž €n ý•@P­393.– üNon-constŽ‘Øëv®9ersion.“¬[²LDF‘T2002.10.29.¬]Ž‘[±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ’˜Äa¬(‘ª®)–\1returns“a“­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘6£Ž¬with“the“­b•QÇo“olŽ‘s¬in-ޤ dicating–=Vwhether“°Ž‘ =W±thisŽ‘fc¬lies“on“the“line“segmenš¸ãt“bGet˜w˜een“±p0Ž‘‘l¬and“±p1Ž‘T¬,‘wVand“a“­realŽ‘Ø…¬v‘ÿqÇalue“µt“¬represen˜ting“theŽ¡distance–l¤of“°Ž‘l¥±thisŽ‘Äÿ¬on“the“w•¸ãa“y–l¤from“±p0Ž‘ð¬to“±p1Ž‘ƒd¬.›·´If“the“­b•QÇo“olŽ‘%Y¬is“±trueŽ‘1<¬,‘rxthen“0–íñµ<¬=“µt“<¬=“1.˜If›l¤µt“<“¬0˜or˜µt“>“¬1,‘rxthenŽ¡°Ž‘±thisŽ‘Rã¬lies–g,on“the“line“passing“through“±p0Ž‘å¬and“±p1Ž‘}ì¬,›k¢but“not“on“the“segmen¸ãt.‘§LIf“°Ž‘g-±thisŽ‘º¬doGesn't“lie“on“the“line,˜µtŽ¡¬will–UUbGe“´INVALID_REALŽ‘BÛ™¬.Ž¡‘ +[²LDF‘T2002.10.29.¬]Ž‘Y;T‘ÿ*ªo›UUc•¸ãhec“k˜whether˜°Ž‘UV±thisŽ‘–a¬lies˜on˜the˜line,˜use˜±is‘‰ffŽ–®on‘‰ffŽ“lineŽ‘-°_¬(‘ª®).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.29.¬]Ž‘XLJBUG‘‘FIX:–¡Added“coGde“to“c•¸ãhec“k–¡whether“the“unit“v¸ãectors“°Ž‘¢±thisŽ‘·Ñ°‘·y±p0Ž›âÚ¬and“±p1Ž˜°‘·yŽ‘·z±thisŽ‘·Ñ¬areŽ¡equal–gbGefore“calculating“µrŽ‘Ø{¬.‘Z#Before“I‘Udid“this,‘—±trueŽ‘ï–¬wš¸ãas“returned“for“­P•®9oin“tsŽ‘&@R¬that“w˜eren't“on“the“line“segmen˜t.Ž¡‘ +[²LDF‘T2002.10.29.¬]Ž‘Y;No¸ãw–UUusing“±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘S¾¨¬directly“instead“of“±get‘‰ffŽ‘®xŽ‘㼬(›ª®),“±get‘‰ffŽ‘®yŽ‘Ék¬(˜),“and“±get‘‰ffŽ‘®zŽ‘]V¬(˜).ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ŽŸ ‘ +­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘xuѬ(­P•®9oin“tŽ‘ï±p0Ž‘+]µ;‘ª¨­P•®9oin“tŽ‘ šE±p1Ž‘,±¬);ŽŽŽŒ‹e – Šn ý‘ì°x¬394–¯3DLDF-1.1.5.1’ñ; +NON-­CONSTŽ‘+½Ô¯VERSION“¬101Ž €n ý•@P­394.ޤ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž© ‘ +­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚P•®9oin“tŽ‘WÚά::‘±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘>5S¬(­P•®9oin“tŽ‘ï±p0Ž‘+]µ;‘ª¨­P•®9oin“tŽ‘ šE±p1Ž‘,±¬)°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Point::is_Ž‘kÆÜon_segment().\n"Ž’Ã,°‘DZ ushŽ‘€¬;ަ‘±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘dâ¬(‘ª®);ަ‘±p0Ž‘*õ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘±p1Ž‘*õ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fަ‘(±showŽ‘>‹¬(´"this"Ž‘ V¬);ަ‘(±p0Ž‘4ĵ:±showŽ‘Šÿ¬(´"p0"Ž‘†\¬);ަ‘(±p1Ž‘4ĵ:±showŽ‘Šÿ¬(´"p1"Ž‘†\¬);ަ‘°gަ‘­ifŽ‘)´û¬(°Ž‘±thisŽ‘²Ï°‘Ç´INVALID_POINTŽ–IÆ9°_‘8à±p0Ž›¸°‘Ç´INVALID_POINTŽ“°_‘8à±p1Ž˜°‘Ç´INVALID_POINTŽ‘GY¬)‘°fަ‘(±c‘ÿ}'errŽ‘=”ܰ‘ß2´"ERROR!® ´In® ´Point::isŽ‘kÞö_on_segment():\n"Ž’È„]°‘ß2´"One® ´of® ´the® ´Points® ´iŽ‘kÞös® ´invalid!® ´"Ž’®Dl°ަ‘<´"Returning® ´false® ´andŽ’¤ÿÊ® ´INVALID_REAL.\n\n"Ž’ °‘DZ ushŽ‘€¬;ަ‘(­returnŽ‘Kæ¾pairŽ‘`bϰh­b•QÇo“olŽ‘Lµ;‘ª¨­realŽ‘°i¬(±falseŽ‘¯Dµ;‘ª¨´INVALID_REALŽ‘A0ì¬);ަ‘°gŽ¡‘­b•QÇo“olŽ‘7¡iµbŽ‘;ì¬;ަ‘­realŽ‘4³1µrŽ‘9}E¬;Ž¡‘­ifŽ‘)´û¬(±p0Ž–ÝØ°‘DZp1Ž‘¸°^‘8àŽ‘8á±thisŽ‘믰‘DZp0Ž“¬)‘°fަ‘(±c‘ÿ}'errŽ‘BNa°‘˜·´"ERROR!® ´In® ´Point::isŽ‘p˜{_on_segment():\n"Ž’Ñ÷g°ަ‘<´"*this® ´and® ´the® ´argumŽ’¤ÿÊents® ´p0® ´and® ´p1® ´are® ´aŽ’ ÿŽll® ´equal.® ´"Ž’N‡g°ަ‘<´"Returning® ´false® ´andŽ’¤ÿÊ® ´INVALID_REAL.\n"Ž’þÅÿ¬;ަ‘(­returnŽ‘Kæ¾pairŽ‘`bϰh­b•QÇo“olŽ‘Lµ;‘ª¨­realŽ‘°i¬(±falseŽ‘¯Dµ;‘ª¨´INVALID_REALŽ‘A0ì¬);ަ‘°gަ‘­elseŽ‘4.7ifŽ‘?ã/¬(±p0Ž–ÝØ°‘DZp1Ž“¬)‘°fަ‘(±c‘ÿ}'errŽ‘=|°‘Ç´"ERROR!® ´In® ´Point::isŽ‘kÆÜ_on_segment():\n"Ž’ÈT)°‘Ç´"Arguments® ´p0® ´and® ´p1Ž‘kÆÜ® ´are® ´equal.® ´"Ž’³T5°ަ‘<´"Returning® ´false® ´andŽ’¤ÿÊ® ´INVALID_REAL.\n"Ž’þÅÿ¬;ަ‘(­returnŽ‘Kæ¾pairŽ‘`bϰh­b•QÇo“olŽ‘Lµ;‘ª¨­realŽ‘°i¬(±falseŽ‘¯Dµ;‘ª¨´INVALID_REALŽ‘A0ì¬);ަ‘°gަ‘­elseŽ‘4.7ifŽ‘?ã/¬(°Ž‘±thisŽ‘²Ï°‘DZp0Ž‘ÝØ¬)‘°fަ‘(­returnŽ‘Kæ¾pairŽ‘`bϰh­b•QÇo“olŽ‘Lµ;‘ª¨­realŽ‘°i¬(±trueŽ‘ʵ;‘ª¨¬0µ:¬0ŽŽ‘qÇ);ަ‘°gަ‘­elseŽ‘4.7ifŽ‘?ã/¬(°Ž‘±thisŽ‘²Ï°‘DZp1Ž‘ÝØ¬)‘°fަ‘(­returnŽ‘Kæ¾pairŽ‘`bϰh­b•QÇo“olŽ‘Lµ;‘ª¨­realŽ‘°i¬(±trueŽ‘ʵ;‘ª¨¬1µ:¬0ŽŽ‘qÇ);ަ‘°gަ‘=ª³µ=°‘ÿý¬[²LDF‘T2002.10.29.¬]Ž‘T7Beginning–UUof“new“coGde.‘o°µ=Ž¡‘­P•®9oin“tŽ‘<ï ±v0Ž‘Hƒ‡¬(°Ž‘±thisŽ‘$—°‘8à±p0Ž‘O ¬);ަ‘­P•®9oin“tŽ‘<ï ±v1Ž‘Hƒ‡¬(±p1Ž‘O °‘8àŽ‘8á±thisŽ‘$—¬);Ž¡‘±v0Ž‘)“êµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘±v1Ž‘)“êµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fަ‘(±v0Ž‘3“ëµ:±showŽ‘Šÿ¬(´"v0"Ž‘†\¬);ަ‘(±v1Ž‘3“ëµ:±showŽ‘Šÿ¬(´"v1"Ž‘†\¬);ަ‘°gަ‘±v0Ž‘)“êµ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);ަ‘±v1Ž‘)“êµ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fަ‘(±v0Ž‘3“ëµ:±showŽ‘Šÿ¬(´"v0"Ž‘†\¬);ަ‘(±v1Ž‘3“ëµ:±showŽ‘Šÿ¬(´"v1"Ž‘†\¬);ަ‘°gŽŽŽŒ‹f 4 Šn ý‘ì¬102–¯NON-­CONSTŽ‘+½Ô¯VERSION’ñ; +3DLDF-1.1.5.1“°x¬394Ž €n ý•@P‘­P•®9oin“tŽ‘<ï ±v2Ž‘Hƒ‡¬(°Ž‘DZv1Ž‘[¬);Ž©‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fޤ ‘(±v2Ž‘3“ëµ:±showŽ‘Šÿ¬(´"v2"Ž‘†\¬);Ž¡‘°gŽ¡‘­ifŽ‘)´û¬(±v0Ž›Zÿ°6¬=‘DZv1Ž–“ß°^‘8à±v0Ž“°6¬=‘DZv2Ž˜¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Not® ´on® ´line.\n"Ž‘WMP¬;Ž¡‘(­returnŽ‘Kæ¾pairŽ‘`bϰh­b•QÇo“olŽ‘Lµ;‘ª¨­realŽ‘°i¬(±falseŽ‘¯Dµ;‘ª¨´INVALID_REALŽ‘A0ì¬);Ž¡‘°gŽ¡‘=ª³µ=°‘ÿý¬[²LDF‘T2002.10.29.¬]Ž‘T7End–UUof“new“coGde.‘o°µ=ŽŸ­395.‘ ü¬[²LDF‘T2002.10.29.¬]Ž‘Zˆ6Calculate–UUhoš¸ãw“far“°Ž‘UV±thisŽ‘–a¬is“on“the“w˜a˜y“from“±p0Ž‘Áj¬to“±p1Ž‘l¬.Ž¡‘ +LDF‘&ÐUndated.‘bIThe–&Üv‘ÿqÇalue“µt“¬can“bšGe“calculated“from“either“the“x,–0'y‘ÿ*ª,“or–&Üz-co˜ordinates.‘bIW‘ÿ*ªe“try“them“in“orderŽ¡and–çireturn“the“ rst“one“that“wš¸ãorks.‘M#Because“of“the“limited“precision“with“whic˜h“w˜e“are“w˜orking,‘ýeit's“pGossibleŽ¡that–¯the“v‘ÿqÇalue“of“µt“¬can“di er,‘ÅodepšGending“on“what“co˜ordinates“are“used“to“calculate“it.‘~ÓIn“general,‘Åothis“willŽ¡not–bGe“signi canš¸ãt,‘Lsince“w˜e'll“mainly“bGe“needing“this“function“to“determine“whether“a“­P•®9oin“tŽ‘#Ðh¬is“on“a“lineŽ¡segmenš¸ãt;–UUthe“exact“v‘ÿqÇalue“of“µt“¬will“usually“not“bGe“signi can˜t.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ǰ6¬=“±p0Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[0Ž‘])Ž¡‘µrŽ‘‘.¬=‘Ç(±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–²õ°“±p0Ž‘ ɵµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[0Ž–])µ=¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[0Ž“]–²õ°“±p0Ž‘ ɵµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[0Ž‘]);Ž¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[1Ž‘]–ǰ6¬=“±p0Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘])Ž¡‘µrŽ‘‘.¬=‘Ç(±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[1Ž‘]–²õ°“±p0Ž‘ ɵµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž–])µ=¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž“]–²õ°“±p0Ž‘ ɵµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]);Ž¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[2Ž‘]–ǰ6¬=“±p0Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘])Ž¡‘µrŽ‘‘.¬=‘Ç(±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[2Ž‘]–²õ°“±p0Ž‘ ɵµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž–])µ=¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž“]–²õ°“±p0Ž‘ ɵµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]);Ž¡‘ +­elseŽ‘!Øà°fŽ¡‘±c‘ÿ}'errŽ‘.ô°‘>u´"ERROR!® ´In® ´Point::isŽ‘q>9_on_segment()\n"Ž’Îæ°Ž¡‘(´"Can't® ´calculate® ´t.® Ž’ÿÈ´Returning® ´false® ´and® Ž’ùÿŒ´INVALID_REAL.\n\n"Ž’[ÌÖ°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼pairŽ‘LbͰh­b•QÇo“olŽ‘Lµ;‘ª¨­realŽ‘°i¬(±falseŽ‘¯Dµ;‘ª¨´INVALID_REALŽ‘A0ì¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(µrŽ‘‘,°‘Ǭ0Ž‘ ÿù°^‘8àµrŽ‘ Ê °‘Ǭ1Ž‘Ç)‘µbŽ‘ ¬=‘DZtrueŽ‘‹°¬;Ž¡‘ +­elseŽ‘!ØàµbŽ‘(ꢬ=‘DZfalseŽ‘v\¬;Ž¡‘ +­returnŽ‘-æ»pairŽ‘Bb̰h­b•QÇo“olŽ‘Lµ;‘ª¨­realŽ‘°i¬(µbŽ‘Jª;‘ª¨rŽ‘t¼¬);‘UU°gŽŸ­396.‘ üconstŽ‘**v®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.29.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘xuѬ(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Å¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹g ô Šn ý‘ì°x¬397–¯3DLDF-1.1.5.1’h¢­CONSTŽ’3&v¯VERSION“¬103Ž €n ý•@P­397.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚P•®9oin“tŽ‘WÚά::‘±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘>5S¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Å¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2aŽ‘88Ϭ(°Ž‘±thisŽ‘ë·¬);ަ‘­returnŽ‘7æ¼µaŽ‘=/ì:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±p0Ž‘ Àµ;‘ª¨±p1Ž‘ Áh¬);Ž¡‘ +°gŽŸ­398.› üIs–‰®on“line.˜¬[²LDF‘T2002.10.29.¬]Ž‘ZFnTO‘|DO:–Maš¸ãybGe“add“a“non-­constŽ‘èÚ¬v˜ersion.‘[ÚThis“isn't“urgen˜t,‘ µthough.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.29.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚±is‘‰ffŽ–®on‘‰ffŽ“lineŽ‘e›Œ¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Å¬)‘UU­constŽ‘*¢¬;ŽŸ­399.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚P•®9oin“tŽ‘WÚά::‘±is‘‰ffŽ–®on‘‰ffŽ“lineŽ‘+[¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Å¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘E@ƒ±brŽ‘Ro¬=‘DZis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘?üg¬(±p0Ž‘ Àµ;‘ª¨±p1Ž‘ Áh¬);ަ‘­ifŽ‘´ú¬(±brŽ‘ +gsµ:±se–ÿ}'c“ondŽ‘ nß°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘±brŽ‘gsµ:± rstŽ‘|¬=‘DZtrueŽ‘‹°¬;Ž¡‘­returnŽ‘7æ¼±brŽ‘BN/¬;Ž¡‘ +°gŽŸ­400.› üIs–°ìon“Plane.˜¬[²LDF‘T2003.06.04.¬]Ž‘ZhŽThis–5­function“returns“±trueŽ‘úE¬,›<if“°Ž‘5®±thisŽ‘W¬lies“on“the“­PlaneŽ‘#L½µpŽ‘(T½¬,˜otherwiseŽ¡±falseŽ‘¯D¬.‘qÇIt–UUm¸ãust“bšGe“de ned“in“®planes.web¬,“b˜ecause“­PlaneŽ‘#Œ ¬is“an“incomplete“t¸ãyp˜e“here.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.04.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡g±is‘‰ffŽ–®on‘‰ffŽ“planeŽ‘U$A¬(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(xµpŽ‘K0x¬)‘UU­constŽ‘*¢¬;ŽŸ­401.› üIs–öin“triangle.˜¬[²LDF‘T2003.06.11.¬]Ž‘YÆThis–“P•®9oin“tŽ‘?VϬ&Ž‘Gí±p1Ž–S4­µ;‘ª¨­constŽ‘ >P•®9oin“tŽ‘?VϬ&Ž‘Gí±p2Ž“µ;‘ª¨­b•QÇo“olŽ‘•±verb‘ÿ}'oseŽ‘?g¬=‘@¯±falseŽ‘ïó¬)Ž¡‘­constŽ‘8ÕP¬;ޤ­402.‘ üT‘ÿ +«ransformations.Ž¡403.‘ üAne‘ÕTtransformations.ŽŽŽŒ‹h ,! Šn ý‘ì¬104‘¯RšÃŽOT–ÿJªA“TION–ÕXAR˜OUND“THE“MAIN“AXES’¹Ãà3DLDF-1.1.5.1‘°x¬404Ž €n ý•@P­404.‘ üRotation–ÕTaround“the“main“axes.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2003.01.22.¬]Ž‘Y«µReplaced›øÏb•Go“dy˜of˜function.‘\4­T‘ÿ +«ransformŽ‘;ϵ¬::‘±r‘ÿ}'otateŽ‘oB¬(‘ª®)˜returns˜a˜­T‘ÿ +«ransformŽ‘’ˆ¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘>f®¬=‘Ç0Ž“);ŽŸ­405.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢realŽ‘4ÝеxŽ‘:”ì;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµyŽ‘;Ëp;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘;Ÿ–¬)ަ‘ +°fަ‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±r‘ÿ}'otateŽ‘o>¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);ަ‘ +°gŽŸ­406.‘ üScale.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2003.01.22.¬]Ž‘Xr1Replaced›¿Kb•Go“dy˜of˜function.‘?Ä­T‘ÿ +«ransformŽ‘9³E¬::‘±sc‘ÿ}'aleŽ‘´ö¬(‘ª®)˜returns˜a˜­T‘ÿ +«ransformŽ‘9ò¬represen¸ãting˜theަrotation–UUonly‘ÿ*ª,“so“I“don't“need“to“use“a“loGcally“declared“­T‘ÿ +«ransformŽ‘;'µtŽ‘Bî¬in“this“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±sc‘ÿ}'aleŽ‘W}Ŭ(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç1Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç1Ž“);ŽŸ­407.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::‘±sc‘ÿ}'aleŽ‘´ö¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)ަ‘ +°fަ‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±sc‘ÿ}'aleŽ‘´ò¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);ަ‘ +°gŽŸ­408.‘ üShear.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2003.01.22.¬]Ž‘YßžReplaced›,¸b•Go“dy˜of˜function.‘÷ï­T‘ÿ +«ransformŽ‘¬(‘ª®)˜returns˜a˜­T‘ÿ +«ransformŽ‘<Ìí¬represen¸ãtingަthe–UUrotation“only‘ÿ*ª,“so“I“don't“need“to“use“a“loGcally“declared“­T‘ÿ +«ransformŽ‘;'µtŽ‘Bî¬in“this“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±she‘ÿ}'arŽ‘Yý ¬(­realŽ‘³.±xyŽ‘!—µ;‘ª¨­realŽ‘]Ö±xzŽ‘%œÀ¬=‘Ç0Ž–Çµ;‘ª¨­realŽ‘]Ö±yxŽ‘&Zœ¬=‘Ç0Ž“µ;‘ª¨­realŽ‘]Ö±yzŽ‘%Ô6¬=‘Ç0Ž“µ;‘ª¨­realŽ‘]Ö±zxŽ‘%–Y¬=‘Ç0Ž“µ;‘ª¨­realŽ‘]Ö±zyŽ‘%|¬=‘Ç0Ž“);ŽŸ­409.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::‘±she‘ÿ}'arŽ‘4>¬(­realŽ‘³.±xyŽ‘!—µ;‘ª¨­realŽ‘]Ö±xzŽ‘"Õ¨µ;‘ª¨­realŽ‘]Ö±yxŽ‘#“„µ;‘ª¨­realŽ‘]Ö±yzŽ‘# µ;‘ª¨­realŽ‘]Ö±zxŽ‘"ÏAµ;‘ª¨­realŽ‘]Ö±zyŽ‘"´ð¬)ަ‘ +°fަ‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±she‘ÿ}'arŽ‘4:¬(±xyŽ‘ +ãçµ;‘ª¨±xzŽ‘ "zµ;‘ª¨±yxŽ‘ àVµ;‘ª¨±yzŽ‘ Yðµ;‘ª¨±zxŽ‘ µ;‘ª¨±zyŽ‘ ¬);ަ‘ +°gޤ­410.‘ üShift.Ž¡411.‘ üP•®9oin“t‘ÕTv“ersions.ŽŽŽŒ‹i 9¢ Šn ý‘ì°x¬412›¯3DLDF-1.1.5.1’ÞRÁTHREE–ÕX­REAL“¯ARÃŽGUMENTS˜¬105Ž €n ý•@P­412.‘ üThree–ÕTreal“argumen®9ts.ޤ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž© ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shiftŽ‘UæP¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç0Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç0Ž“);ŽŸ­413.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::‘±shiftŽ‘¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)ަ‘ +°fަ‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;Ž¡‘­ifŽ‘´ú¬(µxŽ‘~4°6¬=‘Ç0Ž– ÿù°_‘8àµyŽ‘ +Bð°6¬=‘Ç0Ž“°_‘8àµzŽ‘ +°6¬=‘Ç0Ž‘Ç)‘±tr‘ÿ}'ansformŽ‘3zY°¬=ŽŽ‘CµtŽ‘F¥:±shiftŽ‘}¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);ަ‘­returnŽ‘7æ¼µtŽ‘;ƒ.¬;ަ‘ +°gŽŸ­414.‘ üP•®9oin“t‘ÕTargumen“t.Ž¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shiftŽ‘UæP¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬);ŽŸ­415.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::‘±shiftŽ‘¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬)ަ‘ +°fަ‘­returnŽ‘7æ¼±shiftŽ‘L9¬(µpŽ‘:±get‘‰ffŽ‘®xŽ‘Žg¬(–ª¨)µ;“pŽ›²¨:±get‘‰ffŽ‘®yŽ‘t¬(“)µ;“pŽ˜:±get‘‰ffŽ‘®zŽ‘¬(“));ަ‘ +°gŽŸ­416.– üT‘ÿ +«ransform‘ÿ\vš®9ersion.“P˜oin˜tŽ‘+rÁ¬argumen¸ãt.‘{@[²LDF‘T2002.04.24.¬]Ž‘W†¢Added–X}this“function.‘{@It's“declared“inަ®transfor.web¬,–UUbut“m¸ãust“bšGe“de ned“here,“b˜ecause“­P•®9oin“tŽ‘"Dò¬is“an“incomplete“t¸ãyp˜e“there.Ž¡°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ަ‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘wrid“of“loGcal“ÂT‘ÿ -«ransformŽ‘;Ýù±tŽ‘?zk«.›‘ƒIt“w¸ãasn't“needed.˜No¸ãw“just“returning“the“return“v‘ÿqÇalueŽ¡of‘UUÏtr‘ÿ}'ansformŽ‘/–±:Ïshift‘‰ffŽ‘®timesŽ‘.ì;«(‘ª¨).ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž© ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshift‘‰ffŽ‘®timesŽ‘pµ«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç1Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç1Ž“);ŽŸÂ376.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::‘Ïshift‘‰ffŽ‘®timesŽ‘/ì?«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)ަ‘ -·fަ‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:Ïshift‘‰ffŽ‘®timesŽ‘.ì;«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);ަ‘ -·gŽŸÂ377.‘ üP•®9oin“t‘ÕTargumen“t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2003.01.19.«]Ž‘Y;Added–UUthis“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshift‘‰ffŽ‘®timesŽ‘pµ«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«);ŽŸÂ378.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::‘Ïshift‘‰ffŽ‘®timesŽ‘/ì?«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«)ަ‘ -·fަ‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:Ïshift‘‰ffŽ‘®timesŽ‘.ì;«(±pŽ‘:Ïget‘‰ffŽ‘®xŽ‘Žg«(–ª¨)±;“pŽ›²¨:Ïget‘‰ffŽ‘®yŽ‘t«(“)±;“pŽ˜:Ïget‘‰ffŽ‘®zŽ‘«(“));ަ‘ -·gŽŸÂ379.› üAlignmen®9t–Ï?with“an“axis.˜«Declared–.§in“Ètransfor.web«.‘ý¼De ned“here,‘dûbGecause“it“needs“ÂP•®9oin“tsŽ‘$R+«.ަ[¬LDF‘T2002.10.23.«]Ž‘NÔÏalign‘‰ffŽ–®with‘‰ffŽ“axisŽ’†—«(‘ª®)–!:returns“the“ÂT‘ÿ -«ransformŽ‘:µñ«needed“to“alignŸü±È“·ŽŽ‘Â!‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®1ŽŽŽŽŽ‘KZ«with“one“of“the“main“axes.ަ‘ -[¬LDF‘T2003.05.04.«]Ž‘Y;BUG:–UUTO“DO:“T‘ÿ*ªry“to“ nd“out“wh¸ãy“I“sometimes“get“erroneous“results“withަÏr‘ÿ}'otateŽ‘o>«(ÂP•®9oin“tŽ‘šH±;‘ª¨ÂP•®9oin“tŽ‘Dð±;‘ª¨ÂrealŽ‘«)–UU(formerly“Ïr–ÿ}'otate‘‰ffŽ‘®ar“oundŽ‘?Áä«(‘ª®)).‘qÇI“think“the“problem“ma¸ãy“bGe“here.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.12.10.«]Ž‘YÓ»Made– Õthis“function“a“ÂfriendŽ‘&S«in“ÂclassŽ‘̦P•®9oin“tŽ‘;fî«.‘ÔHNo¸ãw“calling“Ïp0Ž‘7•±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨)“andަÏp1Ž‘ À±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨)–UUat“the“bGeginning“of“this“function“and“using“Ïp0Ž‘l±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘PiS«andަÏp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘PiS«directly–UUinstead“of“Ïget‘‰ffŽ‘®xŽ‘㼫(›ª®),“Ïget‘‰ffŽ‘®yŽ‘Ék«(˜),“and“Ïget‘‰ffŽ‘®zŽ‘]V«(˜).Ž¡ŸüÈ„`ÕÁGŽŽŽŽŒ‹ac Šn ý‘ì·x«380›­3DLDFPRÃŽG’ïàALIGNMENT–ÕXWITH“AN“AXIS˜«97Ž €n ý•@PÂ380.Ž©·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ +«ransformŽ‘wrid“of“loGcal“­T‘ÿ +«ransformŽ‘;ÝùµtŽ‘?zk¬.›‘ƒIt“w¸ãasn't“needed.˜No¸ãw“just“returning“the“return“v‘ÿqÇalueŽ¡of‘UU±tr‘ÿ}'ansformŽ‘/–µ:±shift‘‰ffŽ‘®timesŽ‘.ì;¬(‘ª¨).ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž© ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shift‘‰ffŽ‘®timesŽ‘pµ¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç1Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç1Ž“);ŽŸ­420.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::‘±shift‘‰ffŽ‘®timesŽ‘/ì?¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)ަ‘ +°fަ‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±shift‘‰ffŽ‘®timesŽ‘.ì;¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);ަ‘ +°gŽŸ­421.‘ üP•®9oin“t‘ÕTargumen“t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2003.01.19.¬]Ž‘Y;Added–UUthis“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shift‘‰ffŽ‘®timesŽ‘pµ¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬);ŽŸ­422.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::‘±shift‘‰ffŽ‘®timesŽ‘/ì?¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬)ަ‘ +°fަ‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±shift‘‰ffŽ‘®timesŽ‘.ì;¬(µpŽ‘:±get‘‰ffŽ‘®xŽ‘Žg¬(–ª¨)µ;“pŽ›²¨:±get‘‰ffŽ‘®yŽ‘t¬(“)µ;“pŽ˜:±get‘‰ffŽ‘®zŽ‘¬(“));ަ‘ +°gŽŸ­423.› üAlignmen®9t–Ï?with“an“axis.˜¬Declared–.§in“®transfor.web¬.‘ý¼De ned“here,‘dûbGecause“it“needs“­P•®9oin“tsŽ‘$R+¬.ަ[²LDF‘T2002.10.23.¬]Ž‘NÔ±align‘‰ffŽ–®with‘‰ffŽ“axisŽ’†—¬(‘ª®)–!:returns“the“­T‘ÿ +«ransformŽ‘:µñ¬needed“to“alignŸü±È“°ŽŽ‘Â!‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³1ŽŽŽŽŽ‘KZ¬with“one“of“the“main“axes.ަ‘ +[²LDF‘T2003.05.04.¬]Ž‘Y;BUG:–UUTO“DO:“T‘ÿ*ªry“to“ nd“out“wh¸ãy“I“sometimes“get“erroneous“results“withަ±r‘ÿ}'otateŽ‘o>¬(­P•®9oin“tŽ‘šHµ;‘ª¨­P•®9oin“tŽ‘Dðµ;‘ª¨­realŽ‘¬)–UU(formerly“±r–ÿ}'otate‘‰ffŽ‘®ar“oundŽ‘?Áä¬(‘ª®)).‘qÇI“think“the“problem“ma¸ãy“bGe“here.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.12.10.¬]Ž‘YÓ»Made– Õthis“function“a“­friendŽ‘&S¬in“­classŽ‘̦P•®9oin“tŽ‘;fî¬.‘ÔHNo¸ãw“calling“±p0Ž‘7•µ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨)“andަ±p1Ž‘ Àµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨)–UUat“the“bGeginning“of“this“function“and“using“±p0Ž‘lµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘PiS¬andަ±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘PiS¬directly–UUinstead“of“±get‘‰ffŽ‘®xŽ‘㼬(›ª®),“±get‘‰ffŽ‘®yŽ‘Ék¬(˜),“and“±get‘‰ffŽ‘®zŽ‘]V¬(˜).Ž¡ŸüÈ„`ÕÁGŽŽŽŽŒ‹k R¦ Šn ý‘ì°x¬424›¯3DLDF-1.1.5.1’âlêALIGNMENT–ÕXWITH“AN“AXIS˜¬107Ž €n ý•@P­424.Ž©°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ޤ ‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘wIGgument:È Ý"Ž’qY·Ž¡‘<ÏaxisŽ‘Qæ·‘ÇÏend‘‚ØlŽ–ò·‘ÇÝ"ReturningÈ ÝidentityÈ Ž‘kÆÜÝmatrix."Ž’™D·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂreturnŽ‘Kæ¾±tŽ‘Oƒ0«;Ž¡‘·gަ‘ÂrealŽ‘4³1ÏangleŽ‘Ls„«;ŽŸÂ381.‘ ü«[¬LDF‘T2002.10.23.«]Ž‘[]ÓShift‘*òÏp0Ž›l¤«to–*òorigin,‘`Yand“shift“Ïp1Ž˜«the“same“w•¸ãa“y‘ÿ*ª,‘`Yso–*òthat“the“relationship“bGet•¸ãw“eenŽ¡them–UUremains“constan¸ãt.ަ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïp0Ž‘ÝØ·6«=‘ÇÏoriginŽ‘½9«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïp0Ž‘*ñ:ÏshowŽ‘Šÿ«(Ý"p0"Ž‘†\«);Ž¡‘Ïp1Ž‘*ñ:ÏshowŽ‘Šÿ«(Ý"p1"Ž‘†\«);Ž¡‘·gŽ¡‘±tŽ‘œt:ÏshiftŽ‘}«(·Ž‘ÇÏp0Ž‘ÝÞ«);Ž¡‘Ïp1Ž‘"ÝÚ·«=ŽŽ‘2l±tŽ‘6ƒ«;Ž¡‘Ïp1Ž‘ ±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘Ïp0Ž‘ ±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ -·gަ‘ -h–ª¨«Normalize›Y -pGoin¸ãt‘@­389“·i‘±=·‘²«[¬LDF‘T2002.10.23.«]Ž‘T¡T–ÿ*ªransform˜the˜ÂP•®9oin“tŽ‘"L\«so˜that˜it's˜x,›Y÷y“,˜and–Y -z“coGordinatesŽ¡‘2are–UUall“pšGositiv¸ãe.‘qÇSee“b˜elo¸ãw“for“the“explanation.‘o·±=Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(±tŽ‘+œv:ÏshowŽ‘Šÿ«(Ý"tÈ ÝoutsideÈ ÝofÈ ÝnormaŽ‘hÿÄlization"Ž’˜Æ«);Ž¡‘·gަ‘ÂP•®9oin“tŽ‘<¼Ïpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ’ˆ,"«(Ïp1Ž‘ À«);‘±=·‘Ìv«[¬LDF‘T2002.10.23.«]Ž‘S¡)Get–!Îthe“pro‘Ž8jection“of“Ïp1Ž‘Z\«on“the“x-z“plane.‘ B·±=Ž¡‘ -Ïpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘Up -±:ÏshiftŽ‘}«(0Ž–±;‘ª¨·Ž‘ qÆÏp1Ž‘ˆ†±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž“]);ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘Pp ±:ÏshowŽ‘Šÿ«(Ý"proj_on_x_z_plane"Ž‘dF/«);ŽŽŽŒ‹bp1 Šn ý‘ì«98›­ALIGNMENT–ÕXWITH“AN“AXIS’ïà3DLDFPRÃŽG˜·x«382Ž €n ý•@PÂ382.‘ ü«[¬LDF‘T2002.10.23.«]Ž‘ZJœIf–»wš¸ãe're“aligning“with“the“x“or“y-axis,‘$ rotate“Ïp1Ž‘F6«on˜to“the“x-y“plane“and“then“to“theޤ x-axis.Ž©·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÏaxisŽ‘à·‘ÇÝ'x'Ž‘FW·_‘8àÏaxisŽ‘<À·‘ÇÝ'y'Ž‘ w«)‘·fŽ¡‘ÂP•®9oin“tŽ‘2ïŸÏpt‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“axisŽ‘hЫ;ަ‘Ïpt‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“axisŽ‘I3±:ÏsetŽ‘ x„«(1Ž‘);Ž¡‘ÏangleŽ‘.‡m«=‘ÇÏpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘N7!±:ÏangleŽ‘ÀS«(Ïpt‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“axisŽ‘51«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"angleÈ ÝofÈ ÝprojectionŽ‘kÆÜ:È Ý"Ž‘~ÔS·‘ÇÏangleŽ‘Nƒ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÏangleŽ‘‡k·6«=‘Ç0Ž‘ ÿù·^‘8àÏangleŽ‘ÀK·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘±tŽ‘ cŠ·«=ŽŽ‘ñÁÏp1Ž‘'±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨·Ž‘ qÆÏangleŽ‘!2«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïp1Ž‘À±:ÏshowŽ‘Šÿ«(Ý"p1È ÝafterÈ ÝrotationÈ ÝtŽ‘hÿÄoÈ Ýx-yÈ Ýplane"Ž’¨†«);Ž¡‘ÏangleŽ‘.‡m«=‘ÇÏp1Ž‘ÝØ±:ÏangleŽ‘ÀS«(Ïpt‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“axisŽ‘51«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"angleÈ ÝtoÈ Ýx-axis:È Ý"Ž‘iÔ_·‘ÇÏangleŽ‘Nƒ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÏangleŽ‘‡k·6«=‘Ç0Ž‘ ÿù·^‘8àÏangleŽ‘ÀK·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘±tŽ‘ cŠ·«=ŽŽ‘ñÁÏp1Ž‘'±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆÏangleŽ‘!2«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïp1Ž‘À±:ÏshowŽ‘Šÿ«(Ý"p1È ÝafterÈ ÝrotationÈ ÝtŽ‘hÿÄoÈ Ýx-axis"Ž’˜Æ«);Ž¡‘ -·gŽŸÂ383.‘ ü«[¬LDF‘T2002.10.23.«]Ž‘YÇŠIf–”©wš¸ãe're“aligning“with“the“z-axis,‘»2rotate“Ïp1Ž‘@«on˜to“the“y-z“plane“and“then“to“the“z-axis.ަ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂelseŽ‘ .5ifŽ‘+ã-«(ÏaxisŽ‘à·‘ÇÝ'z'Ž‘ w«)–UU·f“ÂP•®9oin“tŽ‘"DòÏpt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘VÍV«;ަ‘ -Ïpt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘>ˆe±:ÏsetŽ‘ x„«(0Ž‘±;‘ª¨«0Ž–ª©±;‘ª¨«1Ž“);‘±=·‘<«[¬LDF‘T2002.10.23.«]Ž‘T€qThis–‘rassumes“that“Ïpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘O{±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨)–+H·“«0Ž‘+I.‘&ItŽ¡‘should–UUbšGe,“but“if“it“isn't,“the“follo¸ãwing“error“handling“co˜de“tak¸ães“care“of“the“problem.‘o·±=Ž¡‘ -ÂifŽ‘´ù«(Ïpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘Kp ±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨)–DZ<“«0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘.ä·‘M<Ý"ERROR!È ÝInÈ ÝTransformŽ‘pM::align_with_axis():Ž’ÙLÄ\n"Ž’ðà_·Ž¡‘(Ý"proj_on_x_z_plane.gŽ’ÿÈet_z()È Ý<È Ý0\n"Ž’ØÛ·‘ Ý"@Ž‘lÏÈ ÝshouldÈ ÝensureÈ ÝthatÈ Ž’Õ“Ý"Ž’Ýð·Ž¡‘(Ý"thisÈ ÝvalueÈ ÝisÈ Ý>=È Ý0.Ž’ÿÈ\n"Ž’¤[2·‘ Ý"HandlingÈ ÝtheÈ Ýerror,Ž‘lÏÈ ÝbutÈ ÝfindÈ ÝoutÈ ÝwhyÈ ÝitŽ’Õ“È Ýhappened!"Ž’oå·Ž¡‘(Ïend‘‚ØlŽ‘>¸Þ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïpt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘Hˆf±:ÏsetŽ‘ x„«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆ«1Ž‘qÇ);Ž¡‘ -·gŽŸÂ384.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.12.10.«]Ž‘Yð:Added–=Tthe“follo¸ãwing“conditional.‘)ÅT‘ÿ*ªrying“to“ x“a“bug“that“ošGccurred“while“p˜orting“toŽ¡GNU/Lin¸ãux.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘Kp ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–Ç·“«0Ž‘ ÿù·^‘8àÏpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘M¨é±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“·“«0Ž›Ç)‘ÏangleŽ‘‡k«=“0Ž˜;Ž¡‘ -ÂelseŽ‘!ØàÏangleŽ‘<`K«=‘ÇÏpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘N7!±:ÏangleŽ‘ÀS«(Ïpt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘4ˆd«);ŽŸÂ385.ަ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"angleÈ ÝofÈ ÝprojectionŽ‘kÆÜ:È Ý"Ž‘~ÔS·‘ÇÏangleŽ‘Nƒ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂifŽ‘´ù«(ÏangleŽ‘‡k·6«=‘Ç0Ž‘ ÿù·^‘8àÏangleŽ‘ÀK·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘±tŽ‘ cŠ·«=ŽŽ‘ñÁÏp1Ž‘'±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨ÏangleŽ‘jû«);Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïp1Ž‘À±:ÏshowŽ‘Šÿ«(Ý"p1È ÝafterÈ ÝrotationÈ ÝtŽ‘hÿÄoÈ Ýz-yÈ Ýplane"Ž’¨†«);Ž¡‘ -Ïp1Ž‘Á±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ŽŽŽŒ‹c|àŠn ý‘ì·x«386›­3DLDFPRÃŽG’ïàALIGNMENT–ÕXWITH“AN“AXIS˜«99Ž €n ý•@PÂ386.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.12.10.«]Ž‘Yð:Added–=Tthe“follo¸ãwing“conditional.‘)ÅT‘ÿ*ªrying“to“ x“a“bug“that“ošGccurred“while“p˜orting“toŽ¡GNU/Lin¸ãux.Ž¡‘ -[¬LDF‘T2003.06.13.«]Ž‘X=BUG‘ŠFIX:–Š9Changed“Ïpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘P„{«to“Ïp1Ž‘+2«in“the“\ÂifŽ‘_£«"“part“of“the“follo¸ãwing“conditional.Ž¡The–]/y-coGordinate“of“Ïpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘R*g«is“alw•¸ãa“ys–]/0,‘_&so“ÏangleŽ‘z±«wš¸ãas“alw˜a˜ys“set“to“0.‘‰VI‘]-disco˜v˜ered“this“bug“whenŽ¡I‘'‘tried–'œrotating“a“ÂP•®9oin“tŽ‘!逫in“the“plane“of“a“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘GÍì«abGout“a“line“from“the“cen¸ãter“of“the“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽŽ¡«in–UUthe“direction“of“its“normal,“and“the“resulting“ÂP•®9oin“tŽ‘"Dò«w¸ãas“not“in“the“same“plane.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ޤ ‘ -ÂifŽ‘´ù«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘]–Ç·“«0Ž›Ç)‘ÏangleŽ‘‡k«=“0Ž˜;Ž¡‘ -ÂelseŽ‘!ØàÏangleŽ‘<`K«=‘ÇÏp1Ž‘ÝØ±:ÏangleŽ‘ÀS«(Ïpt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘4ˆd«);Ž©Â387.ŽŸ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"angleÈ ÝtoÈ Ýz-axis:È Ý"Ž‘iÔ_·‘ÇÏangleŽ‘Nƒ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂifŽ‘´ù«(ÏangleŽ‘‡k·6«=‘Ç0Ž‘ ÿù·^‘8àÏangleŽ‘ÀK·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘±tŽ‘ cŠ·«=ŽŽ‘ñÁÏp1Ž‘'±:Ïr‘ÿ}'otateŽ‘o>«(·Ž‘ÇÏangleŽ‘‡q«);Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïp1Ž‘À±:ÏshowŽ‘Šÿ«(Ý"p1È ÝafterÈ ÝrotationÈ ÝtŽ‘hÿÄoÈ Ýz-axis"Ž’˜Æ«);Ž¡‘ -·gަÂ388.‘ ü«[¬LDF‘T2002.10.23.«]Ž‘ZÚÖIf–§õwš¸ãe're“aligning“with“the“y-axis,‘¼Ïp1Ž‘{R«m˜ust“bGe“rotated“from“the“x-axis“(where“it“isŽ¡noš¸ãw)–UUaround“the“z-axis“b˜y“90Ÿü^ÿºŽ‘˜ä«.‘qÇThen“it“will“bGe“on“the“y-axis.ŽŸ·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÏaxisŽ‘à·‘ÇÝ'y'Ž‘ w«)‘·fŽ¡‘±tŽ‘cŒ·«=ŽŽ‘)ñÃÏp1Ž‘6ƒ±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨«90ŽŽ‘ ªª);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïp1Ž‘À±:ÏshowŽ‘Šÿ«(Ý"p1È ÝafterÈ ÝrotationÈ ÝtŽ‘hÿÄoÈ Ýy-axis"Ž’˜Æ«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"p1.magnitude()È Ý==È Ý"Ž‘o\·‘ÇÏp1Ž‘ÝØ±:ÏmagnitudeŽ‘.=r«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘±tŽ‘œt:ÏshowŽ‘Šÿ«(Ý"tÈ ÝatÈ ÝendÈ ÝofÈ Ýalign_wŽ‘hÿÄith_axis()"Ž’£F «);Ž¡‘ -·gŽ¡‘ -Ž‘ÏthisŽ‘"²Ð·«=ŽŽ‘2A±tŽ‘5Ýy«;Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝTransform::Ž‘kÆÜalign_with_axis."Ž’ÈT)·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂreturnŽ‘-æ»±tŽ‘1ƒ-«;‘qÇ·gŽŽŽŒ‹d Šn ý‘ì«100–­NORMALIZE‘ÕXPOINT’>Ü3DLDFPRÃŽG“·x«389Ž €n ý•@PÂ389.– üNormalize‘ ŽpQÇoin®9t.“«It–'qmakš¸ães“it“easier“to“determine“the“correct“direction“of“rotation“to˜w˜ard“the“x-yޤ or–xþy-z“plane“if“Ïp1Ž‘¾«'s“coGordinates“are“all“±>«=‘†0,‘èso“wš¸ãe“rotate“it“in“order“to“mak˜e“them“so.‘ÜÁThe“only“case“thatŽ¡requires–.‡more“than“a“rotation“around“a“single“axis“is“the“case“that“±xŸÿó 0e—rcmmi7´p®1Ž–›Å«,›6J±yŸÿ´p®1Ž“«,˜and–.‡±zŸÿ´p®1Ž‘ ÊL«are“all“±<‘Ç«0.‘dØIt“w¸ãould“bGeŽ¡nice–UUif“I“could“replace“this“long“conditional“with“a“more“eleganš¸ãt“construction,“but“I“don't“kno˜w“one.Ž©·h–ª¨«Normalize‘UUpGoin¸ãt‘@­389“·i‘ÇŽ¡‘ -fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïp1Ž‘À±:ÏshowŽ‘Šÿ«(Ý"p1È ÝbeforeÈ ÝnormalizaŽ‘hÿÄtion"Ž’ƒÆ«);Ž¡‘ÂifŽ‘´ú«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–DZ<“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“·“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]“·“«0Ž‘Ç)Ž¡‘(±=·‘ÿý«x–UUnegativš¸ãe,“y“and“z“pGositiv˜e.‘o·±=Ž¡‘tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨·Ž‘ qÆ«90ŽŽ‘qÈ);Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–Ç·“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“±<“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]“·“«0Ž‘Ç)Ž¡‘(±=·‘ÿý«x–UUpGositivš¸ãe,“y“negativ˜e,“z“pGositiv˜e.‘o·±=Ž¡‘tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:Ïr‘ÿ}'otateŽ‘o>«(90ŽŽ‘ -);Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–Ç·“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“·“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]“±<“«0Ž‘Ç)Ž¡‘(±=·‘ÿý«x–UUpšGositiv¸ãe,“y“p˜ositivš¸ãe,“z“negativ˜e.‘o·±=Ž¡‘tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:Ïr‘ÿ}'otateŽ‘o>«(·Ž‘Ç«90ŽŽ‘Ç );Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–DZ<“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“±<“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]“·“«0Ž‘Ç)Ž¡‘(±=·‘ÿý«x–UUnegativš¸ãe,“y“negativ˜e,“z“pGositiv˜e.‘o·±=Ž¡‘tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨«180ŽŽ‘ª«);Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–DZ<“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“·“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]“±<“«0Ž‘Ç)Ž¡‘(±=·‘ÿý«x–UUnegativš¸ãe,“y“pGositiv˜e,“z“negativ˜e.‘o·±=Ž¡‘tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«180ŽŽ‘ª«);Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–Ç·“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“±<“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]“±<“«0Ž‘Ç)Ž¡‘(±=·‘ÿý«x–UUpGositivš¸ãe,“y“negativ˜e,“z“negativ˜e.‘o·±=Ž¡‘tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:Ïr‘ÿ}'otateŽ‘o>«(180ŽŽ‘);Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïp1Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–DZ<“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“±<“«0Ž‘ ÿù·^‘8àÏp1Ž‘O ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]“±<“«0Ž‘Ç)Ž¡‘±=·‘ÿý«All‘UUnegativ¸ãe.‘o·±=Ž¡‘·fŽ¡‘ÂrealŽ‘4³1±aŽ‘<Ãy«=‘ÇÏp1Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];ަ‘±tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:Ïr‘ÿ}'otateŽ‘o>«(180ŽŽ‘±;‘ª¨«180ŽŽ‘ª«);Ž¡‘±tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:ÏshiftŽ‘}«(±aŽ‘I0«);Ž¡‘±tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«180ŽŽ‘ª«);Ž¡‘±tŽ‘$c·«=ŽŽ‘3ñÄÏp1Ž‘@„±:ÏshiftŽ‘}«(·Ž‘DZaŽ‘ N«);Ž¡‘·gŽ¡‘Ïp1Ž‘ ±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïp0Ž‘*ñ:ÏshowŽ‘Šÿ«(Ý"p0È ÝafterÈ ÝnormalizatŽ‘hÿÄion"Ž‘~† «);Ž¡‘Ïp1Ž‘*ñ:ÏshowŽ‘Šÿ«(Ý"p1È ÝafterÈ ÝnormalizatŽ‘hÿÄion"Ž‘~† «);Ž¡‘±tŽ‘!œu:ÏshowŽ‘Šÿ«(Ý"tÈ ÝafterÈ ÝnormalizatiŽ‘hÿÄon"Ž‘yF#«);Ž¡‘·gŽ¡‘ -gŽŸ ­This–ÕXcoÄç«&Ž‘FŒÏp1Ž‘R¢Å±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘Qã«=‘Ç180ŽŽ‘Ç);ŽŸÂ393.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘NHË«)ަ‘ -·fަ‘ÂP•®9oin“tŽ‘2aŽ‘:ÿç«=‘ÇÏp1Ž‘¸·‘8àÏp0Ž‘O «;ަ‘ÂP•®9oin“tŽ‘2bŽ‘:a«=‘Ç·Ž‘ÇÏthisŽ‘믷‘8àÏp0Ž‘O «;Ž¡‘±aŽ‘I2:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);ަ‘±bŽ‘J¬:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);Ž¡‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;Ž¡‘ÂifŽ‘´ú«(±aŽ‘H·‘DZbŽ‘ J¢·_‘8à±aŽ‘ -I(·‘ÇŽ‘ -Ž6±bŽ‘Øà«)‘·fަ‘Ïc‘ÿ}'errŽ‘3ÓK·‘¢Ý"WARNING!È ÝInÈ ÝPoint::Ž‘lfrotate().\n"Ž’®ÁL·‘¢Ý"PointÈ ÝtoÈ ÝbeÈ ÝrotatedŽ‘lfÈ ÝliesÈ ÝonÈ Ýaxis.\n"Ž’É=·ަ‘2Ý"ReturningÈ ÝidentityÈ Ž’šÿÉÝTransform.\n\n"Ž’í ·‘ÇÏ ushŽ‘€«;ަ‘ÂreturnŽ‘Aæ½±tŽ‘Eƒ/«;ަ‘·gަ‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:Ïr‘ÿ}'otateŽ‘o>«(Ïp0Ž‘ À±;‘ª¨Ïp1Ž‘ Áh±;‘ª¨ÏangleŽ‘jû«);ަ‘ -·gŽŸÂ394.› üP•®9ath‘**argumen“t.˜«De ned–Ÿin“Èpaths.web«,‘±‹bšGecause“ÂP®9athŽ‘Ϙ«is“still“an“incomplete“t¸ãyp˜e“in“this“compi-ަlation‘UUunit.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.04.07.«]Ž‘Y;Added–UUdefault“v‘ÿqÇalue“for“ÏangleŽ‘jý·‘Ç«180.ަ‘ -[¬LDF‘T2003.05.02.«]Ž‘YËSChanged–mname“of“this“function“from“Ïr–ÿ}'otate‘‰ffŽ‘®ar“oundŽ‘@„ü«(›ª®)“to“Ïr‘ÿ}'otateŽ‘‡««(˜).‘»This“function“no¸ãwަo•¸ãv“erloads‘UUÏr‘ÿ}'otateޑē«(‘ª®)–UUwith“three“ÂrealŽ‘ƒ«argumen¸ãts.Ž¡ŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏr‘ÿ}'otateŽ‘\8«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘Qã«=‘Ç180ŽŽ‘Ç);ŽŽŽŒ‹f®c Šn ý‘ì«102–ÂTRANSF®9ORM‘ÕX­VERSION’ìö–3DLDFPRÃŽG“·x«395Ž €n ý•@PÂ395.– üT‘ÿ -«ransform‘"v®9ersion.“«Declared–˜in“Ètransfor.web«.‘:[¬LDF‘T2002.09.29.«]Ž‘T…TO‘˜ DO:“P¸ãossible“BUG!!‘:Ac-ޤ tually‘ÿ*ª,‘©qthe–˜žproblem“that“oGccurred“maš¸ãy“just“ha˜v˜e“to“do“c˜hoGosing“the“direction“of“rotation.‘;£I'v˜e“c˜hanged“theŽ¡place–UUwhere“the“problem“oGccurred,“so“I'll“ha•¸ãv“e–UUto“write“a“routine“to“test“this.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.23.«]Ž‘XûqChanged,›Kso–H‹that“the“direction“ofŸü±È“·ŽŽ‘ér‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®1ŽŽŽŽŽ‘™ü«is“tested.‘m„If“it“is“parallel“to“the“x“or“y-axis,˜thenŽ¡that–^kaxis“is“used“for“alignmen¸ãt.› +«ransformŽ‘wIGgument:® ´"Ž’qY°Ž¡‘<±axisŽ‘Q民DZend‘‚ØlŽ–ò°‘Ç´"Returning® ´identity® Ž‘kÆÜ´matrix."Ž’™D°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘Kæ¾µtŽ‘Oƒ0¬;Ž¡‘°gަ‘­realŽ‘4³1±angleŽ‘Ls„¬;ŽŸ­425.‘ ü¬[²LDF‘T2002.10.23.¬]Ž‘[]ÓShift‘*ò±p0Ž›l¤¬to–*òorigin,‘`Yand“shift“±p1Ž˜¬the“same“w•¸ãa“y‘ÿ*ª,‘`Yso–*òthat“the“relationship“bGet•¸ãw“eenŽ¡them–UUremains“constan¸ãt.ަ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±p0Ž‘ÝØ°6¬=‘DZoriginŽ‘½9¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±p0Ž‘*õ:±showŽ‘Šÿ¬(´"p0"Ž‘†\¬);Ž¡‘±p1Ž‘*õ:±showŽ‘Šÿ¬(´"p1"Ž‘†\¬);Ž¡‘°gŽ¡‘µtŽ‘œt:±shiftŽ‘}¬(°Ž‘DZp0Ž‘ÝÞ¬);Ž¡‘±p1Ž‘"ÝÚ°¬=ŽŽ‘2lµtŽ‘6ƒ¬;Ž¡‘±p1Ž‘ µ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘±p0Ž‘ µ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘ +°gަ‘ +h–ª¨¬Normalize›Y +pGoin¸ãt‘@¯433“°i‘µ=°‘²¬[²LDF‘T2002.10.23.¬]Ž‘T¡T–ÿ*ªransform˜the˜­P•®9oin“tŽ‘"L\¬so˜that˜it's˜x,›Y÷y“,˜and–Y +z“coGordinatesŽ¡‘2are–UUall“pšGositiv¸ãe.‘qÇSee“b˜elo¸ãw“for“the“explanation.‘o°µ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(µtŽ‘+œv:±showŽ‘Šÿ¬(´"t® ´outside® ´of® ´normaŽ‘hÿÄlization"Ž’˜Æ¬);Ž¡‘°gަ‘­P•®9oin“tŽ‘<¼±pr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ’ˆ,"¬(±p1Ž‘ À¬);‘µ=°‘Ìv¬[²LDF‘T2002.10.23.¬]Ž‘S¡)Get–!Îthe“pro‘Ž8jection“of“±p1Ž‘Z\¬on“the“x-z“plane.‘ B°µ=Ž¡‘ +±pr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘Up +µ:±shiftŽ‘}¬(0Ž–µ;‘ª¨°Ž‘ qƱp1Ž‘ˆ†µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž“]);ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±pr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘Pp µ:±showŽ‘Šÿ¬(´"proj_on_x_z_plane"Ž‘dF/¬);ŽŽŽŒ‹l _O Šn ý‘ì¬108›¯ALIGNMENT–ÕXWITH“AN“AXIS’âlê3DLDF-1.1.5.1˜°x¬426Ž €n ý•@P­426.‘ ü¬[²LDF‘T2002.10.23.¬]Ž‘ZJœIf–»wš¸ãe're“aligning“with“the“x“or“y-axis,‘$ rotate“±p1Ž‘F6¬on˜to“the“x-y“plane“and“then“to“theޤ x-axis.Ž©°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±axisŽ‘à°‘Ç´'x'Ž‘FW°_‘8à±axisŽ‘<À°‘Ç´'y'Ž‘ w¬)‘°fŽ¡‘­P•®9oin“tŽ‘2pt‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“axisŽ‘hЬ;ަ‘±pt‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“axisŽ‘I3µ:±setŽ‘ x„¬(1Ž‘);Ž¡‘±angleŽ‘.‡m¬=‘DZpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘N7!µ:±angleŽ‘ÀS¬(±pt‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“axisŽ‘51¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"angle® ´of® ´projectionŽ‘kÆÜ:® ´"Ž‘~ÔS°‘DZangleŽ‘Nƒ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(±angleŽ‘‡k°6¬=‘Ç0Ž‘ ÿù°^‘8à±angleŽ‘ÀK°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘µtŽ‘ cа¬=ŽŽ‘ñÁ±p1Ž‘'µ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨°Ž‘ qƱangleŽ‘!2¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±p1Ž‘Àµ:±showŽ‘Šÿ¬(´"p1® ´after® ´rotation® ´tŽ‘hÿÄo® ´x-y® ´plane"Ž’¨†¬);Ž¡‘±angleŽ‘.‡m¬=‘DZp1Ž‘ÝØµ:±angleŽ‘ÀS¬(±pt‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“axisŽ‘51¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"angle® ´to® ´x-axis:® ´"Ž‘iÔ_°‘DZangleŽ‘Nƒ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(±angleŽ‘‡k°6¬=‘Ç0Ž‘ ÿù°^‘8à±angleŽ‘ÀK°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘µtŽ‘ cа¬=ŽŽ‘ñÁ±p1Ž‘'µ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱangleŽ‘!2¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±p1Ž‘Àµ:±showŽ‘Šÿ¬(´"p1® ´after® ´rotation® ´tŽ‘hÿÄo® ´x-axis"Ž’˜Æ¬);Ž¡‘ +°gŽŸ­427.‘ ü¬[²LDF‘T2002.10.23.¬]Ž‘YÇŠIf–”©wš¸ãe're“aligning“with“the“z-axis,‘»2rotate“±p1Ž‘@¬on˜to“the“y-z“plane“and“then“to“the“z-axis.ަ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(±axisŽ‘à°‘Ç´'z'Ž‘ w¬)–UU°f“­P•®9oin“tŽ‘"Dò±pt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘VÍV¬;ަ‘ +±pt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘>ˆeµ:±setŽ‘ x„¬(0Ž‘µ;‘ª¨¬0Ž–ª©µ;‘ª¨¬1Ž“);‘µ=°‘<¬[²LDF‘T2002.10.23.¬]Ž‘T€qThis–‘rassumes“that“±pr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘O{µ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨)–+H°“¬0Ž‘+I.‘&ItŽ¡‘should–UUbšGe,“but“if“it“isn't,“the“follo¸ãwing“error“handling“co˜de“tak¸ães“care“of“the“problem.‘o°µ=Ž¡‘ +­ifŽ‘´ù¬(±pr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘Kp µ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨)–ǵ<“¬0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘.ä°‘M<´"ERROR!® ´In® ´TransformŽ‘pM::align_with_axis():Ž’ÙLÄ\n"Ž’ðà_°Ž¡‘(´"proj_on_x_z_plane.gŽ’ÿÈet_z()® ´<® ´0\n"Ž’ØÛ°‘ ´"@Ž‘lÏ® ´should® ´ensure® ´that® Ž’Õ“´"Ž’Ýð°Ž¡‘(´"this® ´value® ´is® ´>=® ´0.Ž’ÿÈ\n"Ž’¤[2°‘ ´"Handling® ´the® ´error,Ž‘lÏ® ´but® ´find® ´out® ´why® ´itŽ’Õ“® ´happened!"Ž’oå°Ž¡‘(±end‘‚ØlŽ‘>¸Þ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±pt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘Hˆfµ:±setŽ‘ x„¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƬ1Ž‘qÇ);Ž¡‘ +°gŽŸ­428.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.12.10.¬]Ž‘Yð:Added–=Tthe“follo¸ãwing“conditional.‘)ÅT‘ÿ*ªrying“to“ x“a“bug“that“ošGccurred“while“p˜orting“toŽ¡GNU/Lin¸ãux.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±pr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘Kp µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ǰ“¬0Ž‘ ÿù°^‘8à±pr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘M¨éµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“°“¬0Ž›Ç)‘±angleŽ‘‡k¬=“0Ž˜;Ž¡‘ +­elseŽ‘!Øà±angleŽ‘<`K¬=‘DZpr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘N7!µ:±angleŽ‘ÀS¬(±pt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘4ˆd¬);ŽŸ­429.ަ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"angle® ´of® ´projectionŽ‘kÆÜ:® ´"Ž‘~ÔS°‘DZangleŽ‘Nƒ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +­ifŽ‘´ù¬(±angleŽ‘‡k°6¬=‘Ç0Ž‘ ÿù°^‘8à±angleŽ‘ÀK°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘µtŽ‘ cа¬=ŽŽ‘ñÁ±p1Ž‘'µ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨±angleŽ‘jû¬);Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±p1Ž‘Àµ:±showŽ‘Šÿ¬(´"p1® ´after® ´rotation® ´tŽ‘hÿÄo® ´z-y® ´plane"Ž’¨†¬);Ž¡‘ +±p1Ž‘Áµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ŽŽŽŒ‹m kä Šn ý‘ì°x¬430›¯3DLDF-1.1.5.1’âlêALIGNMENT–ÕXWITH“AN“AXIS˜¬109Ž €n ý•@P­430.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.12.10.¬]Ž‘Yð:Added–=Tthe“follo¸ãwing“conditional.‘)ÅT‘ÿ*ªrying“to“ x“a“bug“that“ošGccurred“while“p˜orting“toŽ¡GNU/Lin¸ãux.Ž¡‘ +[²LDF‘T2003.06.13.¬]Ž‘X=BUG‘ŠFIX:–Š9Changed“±pr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘P„{¬to“±p1Ž‘+2¬in“the“\­ifŽ‘_£¬"“part“of“the“follo¸ãwing“conditional.Ž¡The–]/y-coGordinate“of“±pr‘ÿ}'oj‘‰ffŽ–®on‘‰ffŽ“x‘‰ffŽ“z‘‰ffŽ“planeŽ‘R*g¬is“alw•¸ãa“ys–]/0,‘_&so“±angleŽ‘z±¬wš¸ãas“alw˜a˜ys“set“to“0.‘‰VI‘]-disco˜v˜ered“this“bug“whenŽ¡I‘'‘tried–'œrotating“a“­P•®9oin“tŽ‘!逬in“the“plane“of“a“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘GÍì¬abGout“a“line“from“the“cen¸ãter“of“the“­Regu½‰™šs4Ž‘ÔwP®9olygonŽŽ¡¬in–UUthe“direction“of“its“normal,“and“the“resulting“­P•®9oin“tŽ‘"Dò¬w¸ãas“not“in“the“same“plane.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ޤ ‘ +­ifŽ‘´ù¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘]–ǰ“¬0Ž›Ç)‘±angleŽ‘‡k¬=“0Ž˜;Ž¡‘ +­elseŽ‘!Øà±angleŽ‘<`K¬=‘DZp1Ž‘ÝØµ:±angleŽ‘ÀS¬(±pt‘‰ffŽ–®on‘‰ffŽ“z‘‰ffŽ“axisŽ‘4ˆd¬);Ž©­431.ŽŸ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"angle® ´to® ´z-axis:® ´"Ž‘iÔ_°‘DZangleŽ‘Nƒ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +­ifŽ‘´ù¬(±angleŽ‘‡k°6¬=‘Ç0Ž‘ ÿù°^‘8à±angleŽ‘ÀK°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘µtŽ‘ cа¬=ŽŽ‘ñÁ±p1Ž‘'µ:±r‘ÿ}'otateŽ‘o>¬(°Ž‘DZangleŽ‘‡q¬);Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±p1Ž‘Àµ:±showŽ‘Šÿ¬(´"p1® ´after® ´rotation® ´tŽ‘hÿÄo® ´z-axis"Ž’˜Æ¬);Ž¡‘ +°gަ­432.‘ ü¬[²LDF‘T2002.10.23.¬]Ž‘ZÚÖIf–§õwš¸ãe're“aligning“with“the“y-axis,‘¼±p1Ž‘{R¬m˜ust“bGe“rotated“from“the“x-axis“(where“it“isŽ¡noš¸ãw)–UUaround“the“z-axis“b˜y“90Ÿü^ÿ¶Ž‘˜ä¬.‘qÇThen“it“will“bGe“on“the“y-axis.ŽŸ°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±axisŽ‘à°‘Ç´'y'Ž‘ w¬)‘°fŽ¡‘µtŽ‘cŒ°¬=ŽŽ‘)ññp1Ž‘6ƒµ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨¬90ŽŽ‘ ªª);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±p1Ž‘Àµ:±showŽ‘Šÿ¬(´"p1® ´after® ´rotation® ´tŽ‘hÿÄo® ´y-axis"Ž’˜Æ¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"p1.magnitude()® ´==® ´"Ž‘o\°‘DZp1Ž‘ÝØµ:±magnitudeŽ‘.=r¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘µtŽ‘œt:±showŽ‘Šÿ¬(´"t® ´at® ´end® ´of® ´align_wŽ‘hÿÄith_axis()"Ž’£F ¬);Ž¡‘ +°gŽ¡‘ +Ž‘±thisŽ‘"²Ð°¬=ŽŽ‘2AµtŽ‘5Ýy¬;Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Transform::Ž‘kÆÜalign_with_axis."Ž’ÈT)°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +­returnŽ‘-滵tŽ‘1ƒ-¬;‘qǰgŽŽŽŒ‹n 2 Šn ý‘ì¬110–¯NORMALIZE‘ÕXPOINT’ËF3DLDF-1.1.5.1“°x¬433Ž €n ý•@P­433.– üNormalize‘ ŽpQÇoin®9t.“¬It–'qmakš¸ães“it“easier“to“determine“the“correct“direction“of“rotation“to˜w˜ard“the“x-yޤ or–xþy-z“plane“if“±p1Ž‘¾¬'s“coGordinates“are“all“µ>¬=‘†0,‘èso“wš¸ãe“rotate“it“in“order“to“mak˜e“them“so.‘ÜÁThe“only“case“thatŽ¡requires–.‡more“than“a“rotation“around“a“single“axis“is“the“case“that“µxŸÿó 0e—rcmmi7·p³1Ž–›Å¬,›6JµyŸÿ·p³1Ž“¬,˜and–.‡µzŸÿ·p³1Ž‘ ÊL¬are“all“µ<‘Ǭ0.‘dØIt“w¸ãould“bGeŽ¡nice–UUif“I“could“replace“this“long“conditional“with“a“more“eleganš¸ãt“construction,“but“I“don't“kno˜w“one.Ž©°h–ª¨¬Normalize‘UUpGoin¸ãt‘@¯433“°i‘ÇŽ¡‘ +fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±p1Ž‘Àµ:±showŽ‘Šÿ¬(´"p1® ´before® ´normalizaŽ‘hÿÄtion"Ž’ƒÆ¬);Ž¡‘­ifŽ‘´ú¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ǵ<“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“°“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]“°“¬0Ž‘Ç)Ž¡‘(µ=°‘ÿý¬x–UUnegativš¸ãe,“y“and“z“pGositiv˜e.‘o°µ=Ž¡‘tŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨°Ž‘ qƬ90ŽŽ‘qÈ);Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ǰ“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“µ<“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]“°“¬0Ž‘Ç)Ž¡‘(µ=°‘ÿý¬x–UUpGositivš¸ãe,“y“negativ˜e,“z“pGositiv˜e.‘o°µ=Ž¡‘tŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±r‘ÿ}'otateŽ‘o>¬(90ŽŽ‘ +);Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ǰ“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“°“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]“µ<“¬0Ž‘Ç)Ž¡‘(µ=°‘ÿý¬x–UUpšGositiv¸ãe,“y“p˜ositivš¸ãe,“z“negativ˜e.‘o°µ=Ž¡‘tŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±r‘ÿ}'otateŽ‘o>¬(°Ž‘Ǭ90ŽŽ‘Ç );Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ǵ<“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“µ<“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]“°“¬0Ž‘Ç)Ž¡‘(µ=°‘ÿý¬x–UUnegativš¸ãe,“y“negativ˜e,“z“pGositiv˜e.‘o°µ=Ž¡‘tŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨¬180ŽŽ‘ª«);Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ǵ<“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“°“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]“µ<“¬0Ž‘Ç)Ž¡‘(µ=°‘ÿý¬x–UUnegativš¸ãe,“y“pGositiv˜e,“z“negativ˜e.‘o°µ=Ž¡‘tŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬180ŽŽ‘ª«);Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ǰ“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“µ<“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]“µ<“¬0Ž‘Ç)Ž¡‘(µ=°‘ÿý¬x–UUpGositivš¸ãe,“y“negativ˜e,“z“negativ˜e.‘o°µ=Ž¡‘tŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±r‘ÿ}'otateŽ‘o>¬(180ŽŽ‘);Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±p1Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ǵ<“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“µ<“¬0Ž‘ ÿù°^‘8à±p1Ž‘O µ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]“µ<“¬0Ž‘Ç)Ž¡‘µ=°‘ÿý¬All‘UUnegativ¸ãe.‘o°µ=Ž¡‘°fŽ¡‘­realŽ‘4³1µaŽ‘<Ãy¬=‘DZp1Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];ަ‘µtŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±r‘ÿ}'otateŽ‘o>¬(180ŽŽ‘µ;‘ª¨¬180ŽŽ‘ª«);Ž¡‘µtŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±shiftŽ‘}¬(µaŽ‘I0¬);Ž¡‘µtŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬180ŽŽ‘ª«);Ž¡‘µtŽ‘$c°¬=ŽŽ‘3ñıp1Ž‘@„µ:±shiftŽ‘}¬(°Ž‘ǵaŽ‘ N¬);Ž¡‘°gŽ¡‘±p1Ž‘ µ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±p0Ž‘*õ:±showŽ‘Šÿ¬(´"p0® ´after® ´normalizatŽ‘hÿÄion"Ž‘~† ¬);Ž¡‘±p1Ž‘*õ:±showŽ‘Šÿ¬(´"p1® ´after® ´normalizatŽ‘hÿÄion"Ž‘~† ¬);Ž¡‘µtŽ‘!œu:±showŽ‘Šÿ¬(´"t® ´after® ´normalizatiŽ‘hÿÄon"Ž‘yF#¬);Ž¡‘°gŽ¡‘ +gŽŸ ¯This–ÕXcoÄç¬&Ž‘FŒ±p1Ž‘R¢Åµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘Qã¬=‘Ç180ŽŽ‘Ç);ŽŸ­437.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Åµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘NHˬ)ަ‘ +°fަ‘­P•®9oin“tŽ‘2aŽ‘:ÿç¬=‘DZp1Ž‘¸°‘8à±p0Ž‘O ¬;ަ‘­P•®9oin“tŽ‘2bŽ‘:a¬=‘Ç°Ž‘Ç±thisŽ‘믰‘8à±p0Ž‘O ¬;Ž¡‘µaŽ‘I2:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);ަ‘µbŽ‘J¬:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);Ž¡‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;Ž¡‘­ifŽ‘´ú¬(µaŽ‘H°‘ǵbŽ‘ J¢°_‘8àµaŽ‘ +I(°‘ÇŽ‘ +Ž6µbŽ‘Øà¬)‘°fަ‘±c‘ÿ}'errŽ‘3ÓK°‘¢´"WARNING!® ´In® ´Point::Ž‘lfrotate().\n"Ž’®ÁL°‘¢´"Point® ´to® ´be® ´rotatedŽ‘lf® ´lies® ´on® ´axis.\n"Ž’É=°ަ‘2´"Returning® ´identity® Ž’šÿÉ´Transform.\n\n"Ž’í °‘DZ ushŽ‘€¬;ަ‘­returnŽ‘Aæ½µtŽ‘Eƒ/¬;ަ‘°gަ‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±r‘ÿ}'otateŽ‘o>¬(±p0Ž‘ Àµ;‘ª¨±p1Ž‘ Áhµ;‘ª¨±angleŽ‘jû¬);ަ‘ +°gŽŸ­438.› üP•®9ath‘**argumen“t.˜¬De ned–Ÿin“®paths.web¬,‘±‹bšGecause“­P®9athŽ‘Ϙ¬is“still“an“incomplete“t¸ãyp˜e“in“this“compi-ަlation‘UUunit.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.04.07.¬]Ž‘Y;Added–UUdefault“v‘ÿqÇalue“for“±angleŽ‘jý°‘Ǭ180.ަ‘ +[²LDF‘T2003.05.02.¬]Ž‘YËSChanged–mname“of“this“function“from“±r–ÿ}'otate‘‰ffŽ‘®ar“oundŽ‘@„ü¬(›ª®)“to“±r‘ÿ}'otateŽ‘‡«¬(˜).‘»This“function“no¸ãwަo•¸ãv“erloads‘UU±r‘ÿ}'otateޑē¬(‘ª®)–UUwith“three“­realŽ‘ƒ¬argumen¸ãts.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±r‘ÿ}'otateŽ‘\8¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘Qã¬=‘Ç180ŽŽ‘Ç);ŽŽŽŒ‹p Œ Šn ý‘ì¬112–­TRANSF®9ORM‘ÕX¯VERSION’äƒ3DLDF-1.1.5.1“°x¬439Ž €n ý•@P­439.– üT‘ÿ +«ransform‘"v®9ersion.“¬Declared–˜in“®transfor.web¬.‘:[²LDF‘T2002.09.29.¬]Ž‘T…TO‘˜ DO:“P¸ãossible“BUG!!‘:Ac-ޤ tually‘ÿ*ª,‘©qthe–˜žproblem“that“oGccurred“maš¸ãy“just“ha˜v˜e“to“do“c˜hoGosing“the“direction“of“rotation.‘;£I'v˜e“c˜hanged“theŽ¡place–UUwhere“the“problem“oGccurred,“so“I'll“ha•¸ãv“e–UUto“write“a“routine“to“test“this.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.23.¬]Ž‘XûqChanged,›Kso–H‹that“the“direction“ofŸü±È“°ŽŽ‘ér‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³1ŽŽŽŽŽ‘™ü¬is“tested.‘m„If“it“is“parallel“to“the“x“or“y-axis,˜thenŽ¡that–^kaxis“is“used“for“alignmen¸ãt.› Otherwise,‘`±the“z-axis“is“used.˜This“maš¸ãy“help“reduce“inaccuracies“caused“b˜yŽ¡rotations.›qÇHa•¸ãv“en't–UUtested“it“y¸ãet.˜TO“DO:“T‘ÿ*ªest“this!Ž¡‘ -[¬LDF‘T2002.11.03.«]Ž‘Y;TO–UUDO:“See“if“I“can't“makš¸ãe“ÂP•®9oin“tŽ‘"Dò«argumen˜ts“ÂconstŽ‘*¢«.Ž¡‘ -[¬LDF‘T2003.05.02.«]Ž‘YËSChanged–mname“of“this“function“from“Ïr–ÿ}'otate‘‰ffŽ‘®ar“oundŽ‘@„ü«(›ª®)“to“Ïr‘ÿ}'otateŽ‘‡««(˜).‘»This“function“no¸ãwŽ¡o•¸ãv“erloads‘UUÏr‘ÿ}'otateޑē«(‘ª®)–UUwith“three“ÂrealŽ‘ƒ«argumen¸ãts.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ +[²LDF‘T2002.11.03.¬]Ž‘Y;TO–UUDO:“See“if“I“can't“makš¸ãe“­P•®9oin“tŽ‘"Dò¬argumen˜ts“­constŽ‘*¢¬.Ž¡‘ +[²LDF‘T2003.05.02.¬]Ž‘YËSChanged–mname“of“this“function“from“±r–ÿ}'otate‘‰ffŽ‘®ar“oundŽ‘@„ü¬(›ª®)“to“±r‘ÿ}'otateŽ‘‡«¬(˜).‘»This“function“no¸ãwŽ¡o•¸ãv“erloads‘UU±r‘ÿ}'otateޑē¬(‘ª®)–UUwith“three“­realŽ‘ƒ¬argumen¸ãts.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°ޤ ‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘w«(ÏangleŽ‘ÀS«);Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏaxisŽ‘à·‘ÇÝ'y'Ž‘ w«)‘±tŽ‘œr:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨ÏangleŽ‘jû«);Ž¡‘ÂelseŽ‘+Øá±tŽ‘/uS:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨ÏangleŽ‘jû«);Ž¡‘±tŽ‘cŒ·«=ŽŽ‘)ññiŽ‘-c·«;Ž¡‘±tŽ‘œt:Ïcle‘ÿ}'anŽ‘A‚«(‘ª¨);Ž¡‘·Ž‘ÏthisŽ‘,²Ñ·«=ŽŽ‘Äç«&Ž‘FŒÏp1Ž‘R¢Å±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘NHË«)Ž¡‘ -·fŽ¡‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ŽŸ‘±tŽ‘œt:Ïr‘ÿ}'otateŽ‘o>«(Ïp0Ž‘ À±;‘ª¨Ïp1Ž‘ Áh±;‘ª¨ÏangleŽ‘jû«);Ž¡‘Ïtr‘ÿ}'ansformŽ‘Bz[·«=ŽŽ‘R’±tŽ‘U¥«;Ž¡‘ÂreturnŽ‘7æ¼±tŽ‘;ƒ.«;Ž¡‘ -·gŽŸÂ397.– üPro‘£Žjection.“«[¬LDF‘T2002.10.23.«]Ž‘\E™F‘ÿ*ªor–¸stš¸ãylistic“reasons,‘‚and“for“the“sak˜e“of“clean“programming,‘‚IŽ¡bGeliev¸ãe–_$that“the“programmer“who“uses“Ïpr–ÿ}'oje“ctŽ‘"Ö2«(›ª®)“should“ensure“that“Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘J«(˜)“has“bGeen“in•¸ãv“ok“edŽ¡ rst.‘Ä7Ho•¸ãw“ev“er,‘w®Ïtr‘ÿ}'ansformŽ‘2›¿«is›pÐc“hec“k“ed˜in˜Ïpr–ÿ}'oje“ctŽ‘!çÞ«(–ª®)˜and˜Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘I¯«(“)˜is˜in•¸ãv“ok“ed,–w®if˜required,“so˜in•¸ãv“okingŽ¡Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª®)–UUexplicitly“bšGeforehand“is“not“strictly“sp˜eaking“necessary‘ÿ*ª.ަŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.09.«]Ž‘XmThe–º3new“vš¸ãersion“no˜w“almost“w˜orks“Added“division“of“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘d*y«b˜y“the“v‘ÿqÇalueŽ¡calculated–Ø6for“±wŽ‘ EØ«.›úiHo•¸ãw“ev“er,‘øíit–Ø6doGesn't“w¸ãork“when“I‘Øuse“Ïhex‘‰ffŽ‘®p‘ÿ}'attern1Ž‘;¥~«(‘ª®).˜Find“out“wh¸ãy“not!!˜TO‘ØDO:“AddŽ¡routine–UUfor“calculating“±zŽ‘ls«.‘qÇThen“I“can“add“sorting“routine“in“ÂPictureŽ‘)ñf«::‘ÏoutputŽ‘D«(‘ª®).Ž¡‘ -[¬LDF‘T2002.09.14.«]Ž‘Y I‘m"bGeliev•¸ãe›m(I'v“e˜gotten˜the˜new˜v“ersion˜to˜w“ork˜no“w.‘¹ALOOK–m"UP:˜Do˜I“need˜to˜divide˜theŽ¡deriv•¸ãed‘]ï±zŽ‘ Òü«v‘ÿqÇalue›]ïb“y˜±wŽ‘ -Ë‘«?–‹–I‘]ídon't˜think˜it's˜necessary‘ÿ*ª.“Since˜the˜±zŽ‘ Òü«v‘ÿqÇalues˜of˜all˜of˜the˜ÂP•®9oin“tsŽ‘&ßb«w¸ãould˜bGe˜dividedŽ¡bš¸ãy–§·the“same“amoun˜t,‘¼Otheir“relativ˜e“pGositions“w˜ould“remain“the“same,‘¼Osince“only“the“relationship“\closer“orŽ¡further›UUa•¸ãw“a“y"˜matters,˜not˜the˜exact˜amoun“ts.Ž¡‘ -[¬LDF‘T2002.09.16.«]Ž‘YAdded‘a ÂF‘ÿ -«oQÇcusŽ‘#·Œ«argumenš¸ãt–a to“this“function.‘•(Default“is“Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘;?«,‘dbut“it“w˜as“necessaryŽ¡to–*write“a“dummš¸ãy“v˜ersion“of“this“function“in“order“to“mak˜e“this“w˜ork,‘3bšGecause“Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘>3«do˜esn't“exist“atŽ¡the–UUtime“that“this“declaration“is“compiled.Ž¡‘ -[¬LDF‘T2002.09.18.«]Ž‘X*Changed–aDname“of“this“function“from“Ïp–ÿ}'ersp‘‰ffŽ‘®tr“ansformŽ‘H`k«(‘ª®)“to“Ïpr–ÿ}'oje“ctŽ‘#9–«and“added“ÂT‘ÿ -«ransformŽŽ¡«argumen¸ãt.Ž¡‘ -[¬LDF‘T2003.05.09.«]Ž‘YøÐBUG‘E¬FIX:–EêAdded“loGop,‘‚setting“all“elemenš¸ãts“of“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘gAç«to“0.‘C†This“w˜asŽ¡done–·in“the“conditionally“compiled“coGde“for“the“DEC›·compiler,‘ÏŽbut“I˜forgot“to“do“it“for“GCC˜when“addedŽ¡the–UUdeclaration“of“Ïtemp‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘QQ%«and“resized“it.‘qÇIt“tošGok“me“ab˜out“6{7“hours“to“ nd“this“bug!Ž©ŸüÈ„`ÕÁGŽŽŸÂ398.‘ üF‘ÿ +«ransformŽ‘w¬(±angleŽ‘ÀS¬);Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±axisŽ‘à°‘Ç´'y'Ž‘ w¬)‘µtŽ‘œr:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨±angleŽ‘jû¬);Ž¡‘­elseŽ‘+ØáµtŽ‘/uS:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±angleŽ‘jû¬);Ž¡‘µtŽ‘cŒ°¬=ŽŽ‘)ñõiŽ‘-c·¬;Ž¡‘µtŽ‘œt:±cle‘ÿ}'anŽ‘A‚¬(‘ª¨);Ž¡‘°Ž‘±thisŽ‘,²Ñ°¬=ŽŽ‘Äç¬&Ž‘FŒ±p1Ž‘R¢Åµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘NHˬ)Ž¡‘ +°fŽ¡‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;ŽŸ‘µtŽ‘œt:±r‘ÿ}'otateŽ‘o>¬(±p0Ž‘ Àµ;‘ª¨±p1Ž‘ Áhµ;‘ª¨±angleŽ‘jû¬);Ž¡‘±tr‘ÿ}'ansformŽ‘Bz[°¬=ŽŽ‘R’µtŽ‘U¥¬;Ž¡‘­returnŽ‘7æ¼µtŽ‘;ƒ.¬;Ž¡‘ +°gŽŸ­441.– üPro‘£Žjection.“¬[²LDF‘T2002.10.23.¬]Ž‘\E™F‘ÿ*ªor–¸stš¸ãylistic“reasons,‘‚and“for“the“sak˜e“of“clean“programming,‘‚IŽ¡bGeliev¸ãe–_$that“the“programmer“who“uses“±pr–ÿ}'oje“ctŽ‘"Ö2¬(›ª®)“should“ensure“that“±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘J¬(˜)“has“bGeen“in•¸ãv“ok“edŽ¡ rst.‘Ä7Ho•¸ãw“ev“er,‘w®±tr‘ÿ}'ansformŽ‘2›¿¬is›pÐc“hec“k“ed˜in˜±pr–ÿ}'oje“ctŽ‘!çÞ¬(–ª®)˜and˜±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘I¯¬(“)˜is˜in•¸ãv“ok“ed,–w®if˜required,“so˜in•¸ãv“okingŽ¡±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª®)–UUexplicitly“bšGeforehand“is“not“strictly“sp˜eaking“necessary‘ÿ*ª.ަŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.09.09.¬]Ž‘XmThe–º3new“vš¸ãersion“no˜w“almost“w˜orks“Added“division“of“±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘d*y¬b˜y“the“v‘ÿqÇalueŽ¡calculated–Ø6for“µwŽ‘ Eج.›úiHo•¸ãw“ev“er,‘øíit–Ø6doGesn't“w¸ãork“when“I‘Øuse“±hex‘‰ffŽ‘®p‘ÿ}'attern1Ž‘;¥~¬(‘ª®).˜Find“out“wh¸ãy“not!!˜TO‘ØDO:“AddŽ¡routine–UUfor“calculating“µzŽ‘ls¬.‘qÇThen“I“can“add“sorting“routine“in“­PictureŽ‘)ñf¬::‘±outputŽ‘D¬(‘ª®).Ž¡‘ +[²LDF‘T2002.09.14.¬]Ž‘Y I‘m"bGeliev•¸ãe›m(I'v“e˜gotten˜the˜new˜v“ersion˜to˜w“ork˜no“w.‘¹ALOOK–m"UP:˜Do˜I“need˜to˜divide˜theŽ¡deriv•¸ãed‘]ïµzŽ‘ Òü¬v‘ÿqÇalue›]ïb“y˜µwŽ‘ +Ë‘¬?–‹–I‘]ídon't˜think˜it's˜necessary‘ÿ*ª.“Since˜the˜µzŽ‘ Òü¬v‘ÿqÇalues˜of˜all˜of˜the˜­P•®9oin“tsŽ‘&ßb¬w¸ãould˜bGe˜dividedŽ¡bš¸ãy–§·the“same“amoun˜t,‘¼Otheir“relativ˜e“pGositions“w˜ould“remain“the“same,‘¼Osince“only“the“relationship“\closer“orŽ¡further›UUa•¸ãw“a“y"˜matters,˜not˜the˜exact˜amoun“ts.Ž¡‘ +[²LDF‘T2002.09.16.¬]Ž‘YAdded‘a ­F‘ÿ +«oQÇcusŽ‘#·Œ¬argumenš¸ãt–a to“this“function.‘•(Default“is“±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘;?¬,‘dbut“it“w˜as“necessaryŽ¡to–*write“a“dummš¸ãy“v˜ersion“of“this“function“in“order“to“mak˜e“this“w˜ork,‘3bšGecause“±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘>3¬do˜esn't“exist“atŽ¡the–UUtime“that“this“declaration“is“compiled.Ž¡‘ +[²LDF‘T2002.09.18.¬]Ž‘X*Changed–aDname“of“this“function“from“±p–ÿ}'ersp‘‰ffŽ‘®tr“ansformŽ‘H`k¬(‘ª®)“to“±pr–ÿ}'oje“ctŽ‘#9–¬and“added“­T‘ÿ +«ransformŽŽ¡¬argumen¸ãt.Ž¡‘ +[²LDF‘T2003.05.09.¬]Ž‘YøÐBUG‘E¬FIX:–EêAdded“loGop,‘‚setting“all“elemenš¸ãts“of“±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘gAç¬to“0.‘C†This“w˜asŽ¡done–·in“the“conditionally“compiled“coGde“for“the“DEC›·compiler,‘ÏŽbut“I˜forgot“to“do“it“for“GCC˜when“addedŽ¡the–UUdeclaration“of“±temp‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘QQ%¬and“resized“it.‘qÇIt“tošGok“me“ab˜out“6{7“hours“to“ nd“this“bug!Ž©ŸüÈ„`ÕÁGŽŽŸ­442.‘ üF‘ÿ «oQÇcus‘ÕTargumen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.11.«]Ž‘Y;Added–UUdefaults“for“Ïpr‘ÿ}'ojŽ‘žm«and“ÏfactorŽ‘Y3«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gÏpr–ÿ}'oje“ctŽ‘Bu«(ÂconstŽ‘*¢F‘ÿ -«oQÇcusŽ‘>uC«&Ž‘FuC«&Ž‘FuC¬&Ž‘FuC¬&Ž‘F“ÏepsŽ‘èÚ«)“?“Ïsave‘‰ffŽ‘®zŽ‘!væ«:“0Ž‘Ç;Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"PerspectiveÈ ÝcoordinŽ‘kÆÜates:\n("Ž’›)«;Ž¡‘ÂforŽ‘%舫(±iŽ‘9 «=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘a}+«[±iŽ‘qô«];Ž¡‘ÂifŽ‘)´û«(±iŽ‘9 <‘Ç«3Ž‘Ç)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ",È Ý"Ž‘Mt«;Ž¡‘·gŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ")\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;ŽŽŽŒ‹k탠Šn ý‘ì·x«401›­3DLDFPR•ÃŽG’éy¾PERSPECTIVE‘ÕXPR“OJECTION˜«107Ž €n ý•@P‘ -·gޤ ‘ -ÂforŽ‘臫(±iŽ‘9 «=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«2Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)Ž¡‘±=·‘%d«[¬LDF‘T2002.11.07.«]Ž‘TSKLUDGE.–z¼Added“this“loGop.‘áýThe“v‘ÿqÇalue“used“for“comparison“is“sligh¸ãtly“largerŽ¡‘(than–gÇone“that“arose“while“I‘gÂwš¸ãas“testing“the“constructor“of“ÏT‘ÿ;¼runc‘‰ffŽ‘®Octahe–ÿ}'dr“onŽ‘Tî«.‘©ÏepsŽ‘2§«w˜as“toGo“small.Ž¡‘(·±=Ž¡‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘^¶«[±iŽ›qô«])–Ç·“«10±:«0–8à·“«10Ÿü^ÿº®05ŽŽŽ‘4þ«)‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘c¶«[±iŽ˜«]“=“0Ž‘Ç;Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ Ýproject().\Ž‘kÆÜn"Ž‘y”V·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂreturnŽ‘-æ»ÏtrueŽ‘@«S«;‘qÇ·gŽ©Â402.› üNo–i¿F‘ÿ -«oQÇcus“argumen®9t.˜«[¬LDF‘T2002.09.13.«]Ž‘[ EAdded–Ödthis“function.‘ôõThis“dumm¸ãy“function“just“passesŽ¡Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘:7Ž«to‘YÏpr–ÿ}'oje“ctŽ‘#*.«(‘YÂconstŽ‘ˆmF‘ÿ -«oQÇcusŽ‘>×I«&Ž‘Fžg±fŽ‘P›…:–ª¨:“:Ž‘`Jd«).‘ÛThis–Yis“necessary“bšGecause“it's“imp˜ossible“makš¸ãe“the“argumen˜tŽ¡±fŽ‘ ÿ«optional–/with“Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘?ê\«as“the“default.‘„TThis“is“bšGecause“Ïpr–ÿ}'oje“ctŽ‘"}=«(‘ª®)“m¸ãust“b˜e“declared“inside“the“ÂclassŽŽ¡«declaration–Z´of“ÂP•®9oin“tŽ‘ôü«,›\ whereas“the“declaration“of“ÂF‘ÿ -«oQÇcusŽ‘#ª´«m¸ãust“bGe“later,˜bGecause“it“con¸ãtains“ÂP•®9oin“tsŽ‘#~8«.‘äIt's“notŽ¡a–ž´problem“to“use“Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ›?f«inside“of“Ïpr–ÿ}'oje“ctŽ‘"«(‘ª®),‘± as“long“as“Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ˜«is“de ned“bGefore“the“function“isŽ¡called.ŽŸ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gÏpr–ÿ}'oje“ctŽ‘Bu«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S«&Ž‘sóqÏpr‘ÿ}'ojŽ’‰®L«=‘ÇÂPro‘£ŽjectionsŽ‘=“|«::Ž‘D!ºÝPERSPŽ‘^è±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘6(Ì«=‘Ç1Ž‘Ç);ަÂ403.ŽŸ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gP•®9oin“tŽ‘@;³«::‘Ïpr–ÿ}'oje“ctŽ‘w«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S«&Ž‘sóqÏpr‘ÿ}'ojŽ’†ç4±;‘ª¨ÂrealŽ‘]ÖÏfactorŽ‘3a´«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïpr–ÿ}'oje“ctŽ‘V]Ê«(Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘7Ýþ±;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ -·gަÂ404.– üApplying‘ étransformations.“«This–¸rv¸ãersion“applies“the“transformation“stored“in“ÂP•®9oin“tŽ‘R¾«::‘Ïtr‘ÿ}'ansformŽ‘,³E«.Ž¡!!‘]Add–Ra“vš¸ãersion“that“applies“a“ÂT‘ÿ -«ransformŽ‘9§«supplied“as“an“argumen˜t!!‘][¬LDF‘T2002.12.08.«]Ž‘R WBUG‘QÓFIX:“See“bGelo˜w.ŽŸ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘i¸«(‘ª®);ŽŽŽŒ‹lV Šn ý‘ì«108‘­APPL–ÿJªYING‘ÕXTRANSFšÃŽORMA“TIONS’Ú“¤3DLDFPR˜G‘·x«405Ž €n ý•@PÂ405.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::‘Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Gã«(‘ª®)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘¯?«(Ïtr‘ÿ}'ansformŽ‘+³A±:Ïis‘‰ffŽ‘®identityŽ‘-2¢«(‘ª¨))‘±=·‘úB«If‘OšÏtr‘ÿ}'ansformŽ‘/Û±:ÏmatrixŽ‘!5«is–Ošthe“iden•¸ãtit“y›Ošmatrix,‘P¿w“e˜don't˜need˜to˜bGotherŽ¡‘2to–UUpGerform“the“matrix“m¸ãultiplication.‘o·±=Ž¡‘ÂreturnŽ‘>‘h«;ަ‘Âin®9tŽ‘%¤ù±iŽ‘)í«;Ž¡‘Âin®9tŽ‘%¤ù±jŽ‘*U½«;Ž¡‘Âv‘ÿ\ralarra®9yŽ‘=ZC·hÂrealŽ‘]Ù·i‘UUÏnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘I£¥«;ަ‘Ïnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘ZNR±:Ïr‘ÿ}'esizeŽ‘i«(4Ž‘±;‘ª¨«0Ž‘ª©);‘±=·‘ÿý«[¬LDF‘T2002.12.08.«]Ž‘T7BUG–UUFIX.“F‘ÿ*ªor“GNU“CC.‘ÿý·±=Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"xÈ Ý==È Ý"Ž‘*Ôƒ·‘ÇÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ«[0Ž‘]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"yÈ Ý==È Ý"Ž‘*Ôƒ·‘ÇÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ«[1Ž‘]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"zÈ Ý==È Ý"Ž‘*Ôƒ·‘ÇÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ«[2Ž‘]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"wÈ Ý==È Ý"Ž‘*Ôƒ·‘ÇÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ«[3Ž‘]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘·gŽ¡‘ÂforŽ‘%舫(±iŽ‘9 «=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘ÂforŽ‘/艫(±jŽ‘wÜ«=‘Ç0Ž–Ç;‘ÿý±jŽ‘ wÙ<‘Ç«4Ž“;‘ÿý±jŽ‘ -0ÁŸÿ®+‘ÿ+ŽŽ‘÷á«)‘·fŽ¡‘(Ïnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘nNT«[±iŽ‘qô«]‘Ç+=ŽŽ‘lÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘b0j«[±jŽ›°Ä«]–8à·“Ïtr‘ÿ}'ansformŽ‘-ì!±:ÏmatrixŽ‘?›«[±jŽ˜«][±iŽ‘qô«];Ž¡‘(ÂifŽ‘3´ü«(Ïnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘FNP«[±iŽ‘qô«]–Ç·6«=“0Ž‘Ç)‘·fŽ¡‘2ÂifŽ‘=´ý«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘<Ïc‘ÿ}'outŽ‘R U·‘ÇÝ"new_coordinates["Ž‘d”b·‘DZiŽ‘ $·‘ÇÝ"]È Ý==È Ý"Ž‘*Ôƒ·‘ÇÏnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Ih«[±iŽ‘qô«]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘2·gŽ¡‘(gŽ¡‘gŽ¡‘gަ‘ÂrealŽ‘*³0ÏepsŽ‘<œ -«=‘ÇÏepsilonŽ‘"6«(‘ª¨);ަ‘ÂforŽ‘%舫(±iŽ‘9 «=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"new_coordinates["Ž‘d”b·‘DZiŽ‘ $·‘ÇÝ"]È Ý==È Ý"Ž‘*Ôƒ·‘ÇÏnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Ih«[±iŽ‘qô«]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘·gŽ¡‘Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘k«[±iŽ›qô«]–Ç=“(ÏfabsŽ‘2Ò«(Ïnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘FNP«[±iŽ˜«])“±>“ÏepsŽ‘èÚ«)“?“Ïnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Ih«[±iŽ˜«]“:“0Ž‘Ç;Ž¡‘·gŽ¡‘Ïtr‘ÿ}'ansformŽ‘?³C±:Ïr‘ÿ}'esetŽ‘Æ·«(‘ª¨);Ž¡‘ -·gŽŸÂ406.‘ üSet–ÕTtransform“to“iden•®9tit“y‘ÿ -«.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏr–ÿ}'eset‘‰ffŽ‘®tr“ansformŽ‘f°2«(‘ª®);ŽŽŽŒ‹m¥ Šn ý‘ì·x«407›­3DLDFPRÃŽG’Å©¤SET–ÕXÂTRANSF®9ORM“­TO“IDENTITY˜«109Ž €n ý•@PÂ407.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::‘Ïr–ÿ}'eset‘‰ffŽ‘®tr“ansformŽ‘D²]«(‘ª®)Ž¡‘ -·fŽ¡‘Ïtr‘ÿ}'ansformŽ‘?³C±:Ïr‘ÿ}'esetŽ‘Æ·«(‘ª¨);Ž¡‘ -·gޤÂ408.‘ üDra®9wing.Ž¡409.‘ üDra®9wdot.ޤ ‘ -«[¬LDF‘T2002.10.26.«]Ž‘ZœåÏdr‘ÿ}'awdotŽ‘~0f«(‘ª®)–éÿcopies“·Ž‘ êÏthisŽ‘¿µ«and“puts“the“copš¸ãy“on˜to“the“Âv®9ectorŽ‘)~FÏshap‘ÿ}'esŽ‘KVΫof“the“ÂPictureŽŽ¡«argumenš¸ãt‘‚þÏpictur‘ÿ}'eŽ‘"‹Ô«.‘úÂThe–‚þdata“mem˜bGers“Ïdr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘@ÍÇ«,‘ŽhÏdr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘@ü«,‘Žhand“Ïp‘ÿ}'enŽ‘¯«are“only“set“on“the“cop˜y‘ÿ*ª,‘ŽhnotŽ¡on‘UU·Ž‘UVÏthisŽ‘A «.‘qÇAll–UUof“the“draš¸ãwing“and“ lling“functions“bGeha˜v˜e“similarly‘ÿ*ª.Ž¡‘ -[¬LDF‘T2003.05.30.«]Ž‘XóÛTO‘@ðDO:–@õAdd“cošGde“for“allo˜cating“new“ÂColorŽ‘“«,›Eif“Ïddr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘DÔù±:Ïuse‘‰ffŽ‘®nameŽ‘-Ã?«is“ÏfalseŽ‘ð9«,˜as“inŽ¡the–UUdra¸ãwing“and“ lling“functions“for“ÂP®9athŽ‘<«and“ÂSolidŽ‘Ó,«.ŽŸÂ410.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.11.«]Ž‘Y;Made‘UUÏpp‘ÿ}'enŽ‘àÍ«and‘UUÏdr‘ÿ}'awdotŽ‘&èÖ«(‘ª®)–UUitself“ÂconstŽ‘*¢«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"PµÏdr‘ÿ}'awdotŽ‘Eä6«(ÂconstŽ‘}~ColorŽ‘«=‘ÇÝ""Ž‘ Íz«)‘UUÂconstŽ‘*¢«;Ž©Â413.ŽŸ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::‘Ïdr‘ÿ}'awdotŽ‘$“…«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘OÁV±;‘ª¨ÂconstŽ‘ÕJColorŽ‘?z=«&Ž‘GA[Ïddr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ’ˆÕ_±;‘ª¨ÂconstŽ‘ÕJstringŽ‘@ú—Ïpp‘ÿ}'enŽ‘V0º«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Ïdr‘ÿ}'awdotŽ‘7“ƒ«(Ïddr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘A”±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gަÂ414.– üUndra®9wdot.“«[¬LDF‘T2002.10.26.«]Ž‘\ÑÏundr‘ÿ}'awŽ‘}7Ы(‘ª®)–ÞðdoGes“not“remo•¸ãv“e–Þða“dot“from“Ïpictur‘ÿ}'eŽ‘#çÆ«,‘AVbut“causes“theŽ¡MET‘ÿ*ªAPOST–UUcommand“Âundra®9wdot“«to“bGe“written“to“Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘5ëF«when“Ïpictur‘ÿ}'eŽ‘%³€«is“output.ŽŸ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏundr‘ÿ}'awdotŽ‘QŽ~«(ÂstringŽ‘!%MÏpp‘ÿ}'enŽ‘9"ˆ«=‘ÇÝ""Ž‘ Íz±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«);ަÂ415.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::‘Ïundr‘ÿ}'awdotŽ‘/©«(ÂstringŽ‘!%MÏpp‘ÿ}'enŽ‘6[p±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘Qkþ«)Ž¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2Ž‘7ï ÏptŽ‘D›U«=‘ÇÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘K«(‘ª¨);ަ‘·Ž‘ÏptŽ‘%«¸«=‘Ç·Ž‘ÇÏthisŽ‘²Ï«;Ž¡‘ÏptŽ‘䟟±~ŽŽ‘!ä Ïdr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘aö«=‘ÇÝUNDRAWDOTŽ‘2e«;Ž¡‘ÏptŽ‘䟟±~ŽŽ‘!ä Ïdr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘a#L«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘urŒ«;Ž¡#ÂifŽ‘ ´ø«1ŽŽ¡‘ÏptŽ‘䟟±~ŽŽ‘!ä Ïp‘ÿ}'enŽ‘4Åk«=‘ÇÏpp‘ÿ}'enŽ‘ý;«;Ž¡#ÂendifŽŽ¡‘Ïpictur‘ÿ}'eŽ‘5Ïð«+=ŽŽ‘H%DÂstaticu½‰™šs4Ž‘ÔwcastŽ‘|¢æ·hÂShapQÇeŽ‘"Ab·Ž‘'Aci«(ÏptŽ‘ ä«);Ž¡‘ -·gŽŸÂ416.‘ üPicture–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.01.24.«]Ž‘Y;Added–UUthis“v¸ãersion.Ž¡‘ -[¬LDF‘T2003.01.31.«]Ž‘ZdfRemo•¸ãv“ed–±€default“for“Ïpictur‘ÿ}'eŽ‘#ºV«.‘†HHa¸ãving“a“default“made“calls“to“Ïundr‘ÿ}'awdotŽ‘3B%«(‘ª®)“with“noŽ¡argumen•¸ãts‘UUam“biguous.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏundr‘ÿ}'awdotŽ‘QŽ~«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘OÁV±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž‘ Íz«);ŽŽŽŒ‹o'à Šn ý‘ì·x«417‘­3DLDFPR•ÃŽG’ÚUWÂPICTURE›ÕX­AR“GUMENT˜FIRST‘«111Ž €n ý•@PÂ417.ŽŸ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::‘Ïundr‘ÿ}'awdotŽ‘/©«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘OÁV±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘8«)Ž¡‘ -·fŽ¡‘Ïundr‘ÿ}'awdotŽ‘B§«(Ïpp‘ÿ}'enŽ‘6#±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gŽ©Â418.– üDraš®9w.“«[¬LDF‘T2002.10.26.«]Ž‘[ÁÏdr‘ÿ}'awŽ‘qéì«(‘ª®)–Ž0creates“a“ÂP˜athŽ‘!­Ä«with“the“t•¸ãw“o‘Ž0ÂP˜oin˜tsŽ‘)?ä·Ž‘.?åÏthisŽ‘C¹Ë«and–Ž0the“argumen¸ãtŽ¡±pŽ‘«,›Ðaand–„’the“connector“Ý"--"Ž‘ -î«,˜calls“ÂP®9athŽ‘ú«::‘Ïdr‘ÿ}'awŽ‘(ß«(‘ª®)“for“it,˜and“returns“the“ÂP®9athŽ‘ö«.‘ÿ~The“latter“is“a“line,˜i.e.,Ž¡ÂP®9athŽ‘‘h«::‘Ïget‘‰ffŽ–®line‘‰ffŽ“switchŽ‘@Ö«(‘ª®)–UUreturns“ÏtrueŽ‘oB«for“it.Ž¡‘ -Ïdr‘ÿ}'awŽ‘ (Ü«(‘ª®)–UUm¸ãust“bšGe“de ned“in“Èpaths.web«,“b˜ecause“ÂP®9athŽ‘<«is“an“incomplete“t¸ãyp˜e“here.ަÂ419.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.01.15.«]Ž‘Y;Added–UUthe“argumen¸ãt“Ïaarr‘ÿ}'owŽ‘"Ò«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘&½”Ïdr‘ÿ}'awŽ‘<æo«(ÂconstŽ‘|P•®9oin“tŽ‘>Çó«&Ž‘F±pŽ‘K—;‘ª¨ÂconstŽ‘ ¬$ColorŽ‘A'ñ«&Ž‘HïÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’$å«=‘--·Ž‘ -.ÂColorsŽ‘+ «::Ž‘1”JÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘i%±;‘ª¨ÂstringŽŽ¡‘Ïddashe‘ÿ}'dŽ‘D,«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß±;‘ª¨Âb•QÇo“olŽ‘LÏaarr‘ÿ}'owŽ‘=æ«=‘ÇÏfalseŽ‘v\«)‘UUÂconstŽ‘*¢«;ަÂ420.› üPicture–ªæargumen®9t“ rst.˜«[¬LDF‘T2003.01.15.«]Ž‘ZcQThis–0pfunction“is“con•¸ãv“enien“t–0pfor“when“I‘0gw•¸ãan“t–0pto“pass“aŽ¡ÂPictureŽ‘(ñb«argumen¸ãt.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.17.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.01.15.«]Ž‘Y;Added–UUthe“argumen¸ãt“Ïaarr‘ÿ}'owŽ‘"Ò«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘%æºÏdr‘ÿ}'awŽ‘<•«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘OÁV±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒ±pŽ‘K”;‘ª¨ÂconstŽ‘ÕJColorŽ‘?z=«&Ž‘GA[Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘~«=‘Ç·Ž‘ÇÂColorsŽ‘)Ÿ÷«::Ž‘0.5Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘gª±;Ž¡‘ÂstringŽ‘?%PÏddashe‘ÿ}'dŽ‘e3y«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“±;‘ª¨Âb•QÇo“olŽ‘LÏaarr‘ÿ}'owŽ‘=æ«=‘ÇÏfalseŽ‘v\«);ަÂ421.‘ üDra•®9w‘ÕTarro“w.ަ422.– üNormal‘ÕTv®9ersion.“«[¬LDF‘T2003.01.15.«]Ž‘Zˆ6De ned–UUin“Èpaths.web«.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.01.15.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.06.03.«]Ž‘Y;Made‘UUÏdr–ÿ}'awarr“owŽ‘2H«(‘ª®)‘UUÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘&`¶Ïdr–ÿ}'awarr“owŽ‘USz«(ÂconstŽ‘¤žP•®9oin“tŽ‘>7«&Ž‘EÕU±pŽ‘JÝU;‘ª¨ÂconstŽ‘ OFColorŽ‘@n5«&Ž‘H5SÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘Ðb«=‘’f·Ž‘’gÂColorsŽ‘*kE«::Ž‘0ùƒÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘hu^±;‘ª¨ÂstringŽŽ¡‘Ïddashe‘ÿ}'dŽ‘D,«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹p5F Šn ý‘ì«112‘ÂPICTURE–ÕX­ARšÃŽGUMENT“FIRST’ÚUW3DLDFPR˜G‘·x«423Ž €n ý•@PÂ423.› üPicture–ÕTargumen®9t“ rst.˜«[¬LDF‘T2003.01.15.«]Ž‘Zˆ6De ned–UUin“Èpaths.web«.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ© ‘ -«[¬LDF‘T2003.06.03.«]Ž‘Y;Made‘UUÏdr–ÿ}'awarr“owŽ‘2H«(‘ª®)‘UUÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -ÂP®9athŽ‘%æºÏdr–ÿ}'awarr“owŽ‘TÙ~«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘OÁV±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒ±pŽ‘K”;ަ‘ÂconstŽ‘´±;‘ª¨ÂstringŽ‘#åÏpp‘ÿ}'enŽ‘;‚Z«=‘8RÝ""Ž“«)ަ‘ÂconstŽ‘8ÕP«;ޤÂ424.‘ üUndra®9w.Ž¡425.– üNormal‘¦žv®9ersion.“«This–,¶function“m¸ãust“bšGe“de ned“in“Èpaths.web«,‘4Öb˜ecause“it“uses“ÂP®9athŽ‘¾«,‘4Öwhic¸ãh“is“anަincomplete–UUt¸ãypGe“here.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.4.8.«]Ž‘OÈ?Added–UUthis“function.ަ‘ -[¬LDF‘T2002.11.03.«]Ž‘Y;Changed–UUthis“function,“so“that“it“returns“the“ÂP®9athŽ‘<Ïp‘ÿ}'aŽ‘*9R«,“instead“of“Âv®9oidŽ‘ýØ«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -ÂP®9athŽ‘'5Ïundr‘ÿ}'awŽ‘H[«(ÂconstŽ‘xþP•®9oin“tŽ‘?¶÷«&Ž‘G~ÏptŽ‘Qb²±;‘ª¨ÂstringŽ‘$QÏddashe‘ÿ}'dŽ‘LY»«=‘ôYÝ""Ž–ú»±;‘ª¨ÂstringŽ‘$QÏpp‘ÿ}'enŽ‘>HÍ«=‘ôYÝ""Ž“±;‘ª¨ÂPictureŽŽ¦‘«&Ž‘%Ç!Ïpictur‘ÿ}'eŽ‘G—«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«);ŽŸÂ426.‘ üPicture–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.09.17.«]Ž‘Y;Added–UUthis“function.‘qÇIt's“con•¸ãv“enien“t–UUfor“when“I“w•¸ãan“t–UUto“pass“a“ÂPictureŽ‘,F·«argumen¸ãt.ަ‘ -[¬LDF‘T2002.11.03.«]Ž‘Y;Changed–UUthis“function,“so“that“it“returns“the“ÂP®9athŽ‘<Ïp‘ÿ}'aŽ‘*9R«,“instead“of“Âv®9oidŽ‘ýØ«.Ž¡ŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -ÂP®9athŽ‘%æºÏundr‘ÿ}'awŽ‘G ¹«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘OÁV±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏptŽ‘Pp¢±;‘ª¨ÂstringŽ‘"ÏõÏddashe‘ÿ}'dŽ‘HÞ«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“«);ޤÂ427.– üDra®9w‘+help.“«[¬LDF‘T2002.10.26.«]Ž‘ZÒËÏdr‘ÿ}'aw‘‰ffŽ‘®helpŽ’…˜s«(›ª®)–Ÿêis“lik¸ãe“Ïdr‘ÿ}'awŽ‘ÈÅ«(˜),‘²except“that“the“ÂP®9athŽ‘Ñ8«is“only“dra¸ãwn“ifަthe‘wÀÂstaticŽ‘"ãP®9athŽ‘>ì(«data–wÀmemš¸ãbGer“Ïdo‘‰ffŽ–®help‘‰ffŽ“linesŽ‘>±Ë·‘tÏtrueޑŠ«.‘ÙThis“is“con˜v˜enien˜t“for“dra˜wing“construction“lines“thatަshouldn't–UUbGe“output“in“the“ nal“vš¸ãersion“of“a“dra˜wing.‘qÇAlso,“the“default“color“is“·Ž‘UVÂColorsŽ‘*.4«::Ž‘0¼rÏhelp‘‰ffŽ‘®c‘ÿ}'olorŽ‘\væ«.Ž¡Â428.– üNormal‘ødv®9ersion.“«[¬LDF‘T2002.4.8.«]Ž‘RESThis–Rnfunction“m¸ãust“bšGe“de ned“in“Èpaths.web«,‘‘´b˜ecause“it“usesަÂP®9athŽ‘‘d«,–UUwhicš¸ãh“is“an“incomplete“t˜ypGe“here.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.4.8.«]Ž‘OÈ?Added–UUthis“function.ަ‘ -[¬LDF‘T2003.07.13.«]Ž‘Y;Made–UUthis“function“ÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -ÂP®9athŽ‘&Š/Ïdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘QO׫(ÂconstŽ‘ÎP•®9oin“tŽ‘>a)«&Ž‘F(GÏptŽ‘P ä±;‘ª¨ÂconstŽ‘ x¿ColorŽ‘@Á'«&Ž‘HˆEÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’€hr«=‘ׄ·Ž‘×…ÂColorsŽ‘*°c«::Ž‘1>¡Ïhelp‘‰ffŽ‘®c‘ÿ}'olorŽ‘\ù±;‘ª¨ÂstringŽŽ¦‘Ïddashe‘ÿ}'dŽ‘D,«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹qC8 Šn ý‘ì·x«429‘­3DLDFPR•ÃŽG’ÚUWÂPICTURE›ÕX­AR“GUMENT˜FIRST‘«113Ž €n ý•@PÂ429.› üPicture–âargumen®9t“ rst.˜«[¬LDF‘T2002.09.17.«]Ž‘ZÇMThis–”lvš¸ãersion“is“con˜v˜enien˜t“for“when“I‘”\w˜an˜t“to“pass“aޤ ÂPictureŽ‘(ñb«argumen¸ãt.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.17.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.07.13.«]Ž‘Y;Made–UUthis“function“ÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘%æºÏdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘P¬b«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘OÁV±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏptŽ‘Pp¢±;Ž¡‘ÂconstŽ‘<JColorŽ‘[–â«&Ž‘c^Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’š-Á«=‘Ç·Ž‘ÇÂColorsŽ‘)Ÿ÷«::Ž‘0.5Ïhelp‘‰ffŽ‘®c‘ÿ}'olorŽ‘[話;‘ª¨ÂstringŽ‘"³šÏddashe‘ÿ}'dŽ‘HÁë=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"³šÏpp‘ÿ}'enŽ‘:°Õ«=‘ÇÝ""Ž“«)‘8úÂconstŽ‘G«;ޤÂ430.‘ üSho®9wing.Ž¡431.– üSho®9w.“«[¬LDF‘T2002.10.26.«]Ž‘Zˆ6The‘UUargumen¸ãts:Ž©ÂstringŽ‘!%MÏtextŽŽ’— «If‘UUÏtextŽ‘v«is–UUnon-empt¸ãy‘ÿ*ª,“(i.e.,“not“Ý""Ž‘[·«),“it's“written“to“standard“outputޤ ’— (ÝstdoutŽ‘ V«).‘ÇlIf–qáit“is“emptš¸ãy‘ÿ*ª,‘yor“ÏshowŽ‘üà«(‘ª®)“is“called“without“an˜y“argumen˜ts,‘ytheŽ¡’— default–UUis“used,“namely“Ý"Point:"Ž‘-Û¥«.ަÂc®9harŽ‘jIÏc–ÿ}'o“or“dsŽŽ’— «One–ª´of“the“c¸ãharacters“Ý'w'Ž‘ñ«,‘À Ý'p'Ž–j«,‘À Ý'u'Ž“«,›À or‘ª´Ý'v'Ž‘›Ç«should–ª´bGe“used,˜to“indicateŽ¡’— whic¸ãh–Dset“of“cošGordinates“should“b˜e“sho¸ãwn:‘OÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Uc«,‘¿ªÏpr–ÿ}'oje“c-Ž¡’— tive‘‰ffŽ–®c›ÿ}'oordinates«,‘hXÏuser‘‰ffŽ“c˜o˜or˜dinatesŽ‘Ky«,‘hXor‘d‹Ïview‘‰ffŽ“c˜o˜or˜dinatesŽ‘K¾:«,‘hXrespGectiv¸ãely‘ÿ*ª.‘ŸhTheŽ¡’— latter›Ý(t•¸ãw“o˜exist,‘õ1but˜are˜not˜curren“tly˜used.‘I¸The˜corresp•Gonding˜upp“ercaseŽ¡’— c¸ãharacters–UUcan“also“bGe“used.ަÂconstŽ‘*¢b•QÇo“olŽ‘7ÌÏdo‘‰ffŽ‘®p‘ÿ}'erspŽŽ’— «Only–ÛKmeaningful“if“the“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘hl©«are“bGeing“sho¸ãwn“(Ïc–ÿ}'o“or“dsŽŽ¡’— «argumen¸ãt‘»uÝ'p'Ž‘Ô«).‘¤'If‘»uÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘/€¢·‘õÏtrueŽ‘à«,‘ýthen‘»uÏpr–ÿ}'oje“ctŽ‘#2ƒ«(‘ª®)–»uis“called“on“·Ž‘ »vÏthisŽŽ¡’— «bGefore‘u Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘e )«are–u shoš¸ãwn.‘ÐèThis“is“usually“what“one“w˜an˜ts.Ž¡’— Ho•¸ãw“ev“er,‘´it›oËma“y˜sometimes˜bGe˜useful˜to˜sho“w˜the˜con“ten“ts˜of˜Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o-Ž¡’— ordinates«,›‰without–±calling“Ïpr–ÿ}'oje“ctŽ‘#(«(‘ª®),˜in“whic¸ãh“case“Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘/ 6«should“bGeŽ¡’— ÏfalseŽ’«ÏZ«.ަÂconstŽ‘*¢b•QÇo“olŽ‘7ÌÏdo‘‰ffŽ‘®applyŽŽ’— «Usually‘ÿ*ª,‘êÏapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘I"É«(‘ª®)–îOshould“bšGe“called“on“·Ž‘îPÏthisŽ‘ÈU«b˜efore“sho¸ãwing“a“setŽ¡’— of–ð/coGordinates,›jso“the“default“for“Ïdo‘‰ffŽ‘®applyŽ‘+ë3«is“ÏtrueŽ‘´Ç«.‘PHo•¸ãw“ev“er,˜it›ð/ma“y˜some-Ž¡’— times–*pbšGe“useful“to“sho¸ãw“the“v‘ÿqÇalues“of“the“co˜ordinates“without“applyingŽ¡’— Ïtr‘ÿ}'ansformŽ’ÂÓW«,–UUin“whic¸ãh“case“Ïdo‘‰ffŽ‘®applyŽ‘,µ«should“bGe“ÏfalseŽ‘™«.ަÂF‘ÿ -«oQÇcusŽ‘ J¡·Ž‘%J¢±fŽŽ’— «Only–ÛKmeaningful“if“the“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘hl©«are“bGeing“sho¸ãwn“(Ïc–ÿ}'o“or“dsŽŽ¡’— «argumen¸ãt‘Ð>Ý'p'Ž‘«).›âRefers–Ð>to“the“ÂF‘ÿ -«oQÇcusŽ‘$•È«used“for“pro‘Ž8jection.˜If“the“defaultŽ¡’— is– used,›*»or“0“is“passed“as“the“argumen¸ãt“explicitly‘ÿ*ª,˜then“the“global“v‘ÿqÇariableŽ¡’— Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ’ÒSi«is‘UUused.ަÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,SÏpr‘ÿ}'ojŽŽ’— «Only–ÛKmeaningful“if“the“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘hl©«are“bGeing“sho¸ãwn“(Ïc–ÿ}'o“or“dsŽŽ¡’— «argumen¸ãt‘^SÝ'p'Ž‘¤²«).› -ŒÁRefers–^Sto“the“pro‘Ž8jection“used.˜Curren•¸ãtly‘ÿ*ª,‘à’I'v“e‘^SonlyŽ¡’— programmed–dthe“p•Gersp“ectiv¸ãe–dand“the“parallel“pro‘Ž8jections.‘õThe“defaultŽ¡’— is–UUthe“p•Gersp“ectiv¸ãe‘UUpro‘Ž8jection.ަÂconstŽ‘*¢realŽ‘4ÝÐÏfactorŽŽ’— «Only–ÛKmeaningful“if“the“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘hl©«are“bGeing“sho¸ãwn“(Ïc–ÿ}'o“or“dsŽŽ¡’— «argumen¸ãt‘þÅÝ'p'Ž‘E$«)–þÅand“the“parallel“pro‘Ž8jection“is“bGeing“used.‘ nThe“x“andŽ¡’— y–.v‘ÿqÇalues“in“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘fào«are“mš¸ãultiplied“b˜y“ÏfactorŽ‘ «,‘E$so“it“can“bGeŽ¡’— used–ÝHto“magnify“or“shrink“the“pro‘Ž8jected“image.‘ ŸThe“default“is“1“(noŽ¡’— magni cation–UUor“shrinking).ަ‘ -[¬LDF‘T2002.10.26.«]Ž‘Y;TO–UUDO:“Add“case“Ý'a'Ž‘ñ «for“Ïc–ÿ}'o“or“dsŽ‘"´6«for“sho¸ãwing“all“of“the“sets“of“coGordinates.ŽŽŽŒ‹rRq Šn ý‘ì«114›­SHO•ÃŽW’H’F3DLDFPR“G˜·x«431Ž €n ý—‰Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.10.26.«]Ž‘X†½!!‘FKLUDGE:–Ó×In“the“text“abšGo•¸ãv“e,‘í½I'v“e–Ó×had“to“t¸ãyp˜eset“\Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“oordinates«"–Ó×using“\È\it«"Ž¡explicitly–UUin“a“couple“of“places,“in“order“to“get“the“hš¸ãyphenation“to“w˜ork.Ž¡‘ -[¬LDF‘T2002.11.12.«]Ž‘Z8²Added–…Ì\Ý\relaxŽ‘ V«"“after“the“argumen¸ãts“to“\Ý\ARGŽ‘†\«"“in“the“T‘þU>ŸÓVEŽ‘ãxXŽ‘§õcošGde“ab˜o•¸ãv“e–…Ìin“order“toŽ¡suppress–O¦a“space“at“the“bGeginning“of“the“ rst“line“of“the“folloš¸ãwing“inden˜ted“paragraph.‘oâI‘O¥couldn't“ gure“outŽ¡a›UUw•¸ãa“y˜of˜suppressing˜the˜space˜within˜the˜de nition˜of˜Ý\ARGŽ‘Û±«.Ž¡‘ -[¬LDF‘T2003.04.30.«]Ž‘Y;Changed,–UUso“that“a“newline“is“not“output“follo¸ãwing“ÏtextŽ‘­!«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘#ÄÐÏshowŽ‘:OÏ«(ÂstringŽ‘!ìDÏtextŽ‘7V«=‘²Ý""Ž‘±;‘ª¨Âc®9harŽ‘ÛèÏc–ÿ}'o“or“dsŽ‘;ø&«=‘²Ý'w'Ž‘Y±;‘ª¨ÂconstŽ‘ œAb•QÇo“olŽ‘;žÏdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘dÀˆ«=‘²ÏtrueŽ‘×J±;‘ª¨ÂconstŽ‘ œAb•QÇo“olŽŽ¡‘Ïdo‘‰ffŽ‘®applyŽ‘Gd«=‘ŒÏtrueŽ‘Ó$±;‘ª¨ÂF‘ÿ -«oQÇcusŽ‘" )·Ž‘' *±fŽ‘0'œ«=‘Œ0Ž‘±;‘ª¨ÂconstŽ‘ *unsignedŽ‘PbshortŽ‘nW›Ïpr‘ÿ}'ojŽ’„Yê«=‘ŒÂPro‘£ŽjectionsŽ‘=Úð«::Ž‘Di.ÝPERSPŽ‘_/‡±;‘ª¨ÂconstŽ‘ *realŽŽ¡‘ÏfactorŽ‘;Êù«=‘Ç1Ž‘Ç)‘UUÂconstŽ‘*¢«;ŽŸÂ432.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#„WP•®9oin“tŽ‘@£«::‘ÏshowŽ‘‹«(ÂstringŽ‘!«ËÏtextŽ‘3—±;‘ª¨Âc®9harŽ‘›oÏc–ÿ}'o“or“dsŽ‘7¤û±;‘ª¨ÂconstŽ‘ [Èb•QÇo“olŽ‘:ƒ¬Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘`,ä±;‘ª¨ÂconstŽ‘ [Èb•QÇo“olŽ‘:ƒ¬Ïdo‘‰ffŽ‘®applyŽ‘`ޱ;‘ª¨ÂF‘ÿ -«oQÇcusŽŽ¡‘2·Ž‘7±fŽ‘<øì;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏpr‘ÿ}'ojŽ’€Ê¾±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏfactorŽ‘QŒV«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(Ïtextޑ䷑ÇÝ""Ž‘ Íz«)‘ÏtextŽ‘ä«=‘ÇÝ"Point:"Ž‘-Mh«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÏtextŽ‘åü·‘ÇÝ"È Ý"Ž‘ w«;Ž¡‘Ïc–ÿ}'o“or“dsŽ‘2Ц«=‘ÇÏtolowerŽ‘#í«(Ïc–ÿ}'o“or“dsŽ‘ Œ«);Ž¡‘ÂifŽ‘´ú«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'w'Ž‘ w«)‘;‘±=·‘ÿý«Do‘UUnothing.‘o·±=Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'p'Ž‘ w«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ProjectiveÈ ÝcoordinaŽ‘kÆÜtes.\n"Ž’“ÔG·‘ÇÏ ushŽ‘€«;Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'u'Ž‘ w«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"UserÈ Ýcoordinates.\nŽ‘kÆÜ"Ž‘tTY·‘ÇÏ ushŽ‘€«;Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïc–ÿ}'o“or“dsŽ‘Ф·‘ÇÝ'v'Ž‘ w«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ViewÈ Ýcoordinates.\nŽ‘kÆÜ"Ž‘tTY·‘ÇÏ ushŽ‘€«;Ž¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘45¡·‘øÝ"WARNING!È ÝInÈ Ý|show()Ž‘l¼|:È Ý"Ž’…†·‘øÝ"InvalidÈ ÝcharacterÈ ÝfŽ‘l¼orÈ ÝcoordsÈ Ýargument.\Ž’Õ€n"Ž’äÚ·Ž¡‘2Ý"ShowingÈ ÝworldÈ ÝcoordŽ’šÿÉinates.\n"Ž’ÒÍ+·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc–ÿ}'o“or“dsŽ‘<Ч«=‘ÇÝ'w'Ž‘ w«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(·Ž‘ÏthisŽ‘²Ï·‘ÇÝINVALID_POINTŽ‘GY«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"PointÈ ÝisÈ Ý==È ÝINVALIDŽ‘kÆÜ_POINT.\nCan'tÈ Ýshow.Ž’ÔÆ È ÝReturning.\n"Ž’!“ö·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïtr‘ÿ}'ansformŽ‘0³A±:ÏshowŽ‘Šÿ«(Ý"TransformÈ ÝbeforeÈ ÝapŽ‘hÿÄply_transform"Ž’³«);ަ‘Âv‘ÿ\ralarra®9yŽ‘=ZC·hÂrealŽ‘]Ù·i‘UU±vŽ‘ Q*«=‘ÇÏget‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘=n+«(Ïc–ÿ}'o“or“dsŽ‘ Œ±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"("Ž‘Ô·‘DZvŽ›ûÕ«[0Ž‘]–Ç·“Ý",È Ý"Ž‘Œ·“±vŽ˜«[1Ž‘]“·“Ý",È Ý"Ž‘Œ·“±vŽ˜«[2Ž‘]“·“Ý")\n"Ž‘ T‰·“Ï ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïtr‘ÿ}'ansformŽ‘I³D±:ÏshowŽ‘Šÿ«(Ý"TransformÈ ÝafterÈ ÝappŽ‘hÿÄly_transform"Ž’­Æ«);Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"on_free_storeÈ Ý==È Ý"Ž‘iÔ_·‘ÇÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘=3"·‘ÇÝ"\n"Ž‘Mt«;Ž¡‘·gŽ¡‘ -gŽŸÂ433.‘ üSho®9w‘ÕTtransform.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏshow‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘gSÅ«(ÂstringŽ‘!%MÏtextŽ‘5D1«=‘ÇÝ""Ž‘ Íz«);ŽŽŽŒ‹se– Šn ý‘ì·x«434›­3DLDFPR•ÃŽG’ ï6SHO“W‘ÕXTRANSF“ORM˜«115Ž €n ý•@PÂ434.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::‘Ïshow‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘EUð«(ÂstringŽ‘!%MÏtextŽ‘2}«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïtextޑ䷑ÇÝ""Ž‘ Íz«)‘ÏtextŽ‘ä«=‘ÇÝ"transform:"Ž‘BM\«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÏtextŽ‘åü·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïtr‘ÿ}'ansformŽ‘?³C±:ÏshowŽ‘Šÿ«(‘ª¨);Ž¡‘ -·gޤÂ435.‘ üOutputting.Ž¡436.– üOutput‘ ropQÇerator.“«[¬LDF‘T2002.10.26.«]Ž‘[8ÕThis–ôfunction“is“used“in“ÂP®9athŽ‘—\«::‘ÏoutputŽ‘D«(‘ª®)“for“writing“the“xޤ and–‚Iy“v‘ÿqÇalues“of“the“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘gº¥«to“Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘3Âå«.‘ø¤All“coGde“using“this“function“m¸ãust“ensure“thatŽ¡Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(›ª®)–UUand“Ïpr–ÿ}'oje“ctŽ‘!Ìc«(˜)“are“called“Ï rst‘òØ«!ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.16.«]Ž‘Y;Remo•¸ãv“ed–UUcalls“to“Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Iu4«(›ª®)“and“Ïpr–ÿ}'oje“ctŽ‘!Ìc«(˜).ަŸüÈ„`ÕÁGŽŽ¦·h›ª¨«Declare–UUnon-mem¸ãbGer“functions“for“ÂP•®9oin“tsŽ‘'¸Ý­436˜·i‘ÇŽ¡‘ -Ïostr–ÿ}'e“amŽ‘/«&‘8àÂopQÇeratorŽ‘-Ï•·Ž‘7Ï–«(Ïostr–ÿ}'e“amŽ‘%«&‘8à±oŽ‘Ä;‘ª¨ÂP•®9oin“tŽ‘ šE«&Ž‘(ac±pŽ‘-ic«);ޤ ­See–ÕXalso“section“490.Ž¡This–ÕXco:«(‘ª®)–Hêis“a“pure“ÂvirtualŽ‘.ÊR«function“in“ÂShapQÇeŽ‘%4÷«.‘ L…It's“called“b¸ãyŽ¡ÂPictureŽ‘&œ«::‘ÏoutputŽ‘D«(‘ª®).‘E Eacš¸ãh–Ïof“the“ÂShapQÇeŽ‘$ŠA«pGoin˜ters“on“the“Âv®9ectorŽ‘%H|Ïshap‘ÿ}'esŽ‘E«in“the“ÂPictureŽ‘+:A«m˜ust“bGe“\extracted".Ž¡F‘ÿ*ªor‘˜ýÂP•®9oin“tsŽ‘$¼«,‘éæthis–˜ýmeans“pro‘Ž8jecting“the“ÂP•®9oin“tŽ‘$ÌB«using“the“ÂF‘ÿ -«oQÇcusŽ‘&'F«passed“to“Ïextr‘ÿ}'actŽ‘#[l«(‘ª®)“as“an“argumen¸ãt.‘<¿IfŽ¡Ïpr–ÿ}'oje“ctŽ‘w«(›ª®)–UUsucceeds,“Ïextr‘ÿ}'actŽ‘"Ä«(˜)“returns“a“Âv®9ectorŽ‘&Tò«conš¸ãtaining“ÏthisŽ‘A «.‘qÇOtherwise,“it“returns“an“empt˜y“Âv®9ectorŽ‘"ÿ«.Ž¡‘ -[¬LDF‘T2002.10.26.«]Ž‘YKNA‘˜WÂv®9ectorŽ‘&Û«is–˜hreturned“rather“than“ÏthisŽ‘†«bš¸ãy“itself“bGecause“it“ma˜y“sometimes“bGe“useful“toŽ¡return– a“collection“of“ÂShapQÇeŽ‘%(«pGoinš¸ãters“rather“than“a“single“one.‘_XThis“w˜as“formerly“the“case“for“ÂCubQÇoidŽ‘(m£«,‘)butŽ¡at–UUthe“presenš¸ãt“time,“no“v˜ersion“of“Ïextr‘ÿ}'actŽ‘"Ä«(‘ª®)“returns“a“Âv®9ectorŽ‘&Tò«with“more“than“one“pGoin˜ter“to“ÂShapQÇeŽ‘"Ab«.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.17.«]Ž‘Y -WAdded‘WqÂconstŽ‘!„/F‘ÿ -«oQÇcusŽ‘AÐì«&Ž‘I˜ -±fŽ‘Rèa«argumenš¸ãt–Wqand“error“handling“coGde.‘xNo˜w,‘W÷if“the“ÂP•®9oin“tŽ‘"I*«cannotŽ¡bGe–fÝpro›Ž8jected“on¸ãto“the“pro˜jection“plane“using“the“ÂF‘ÿ -«oQÇcusŽ‘'ñfŽ‘-»ì«,‘ë>it“is“not“put“on¸ãto“the“Âv®9ectorŽ‘%%·hÂShapQÇeŽ‘$Rê·Ž‘)RëiŽ¡ÂPictureŽ‘&œ«::‘ÏelementsŽ‘'åÿ«,–UUand“consequenš¸ãtly“nev˜er“reac˜hes“ÂPictureŽ‘)ñf«::‘ÏoutputŽ›D«(‘ª®)“and“ÂP•®9oin“tŽ‘ï¡«::‘ÏoutputŽ˜«(‘ª®).ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9ectorŽ‘)ªI·hÂShapQÇeŽ‘"Ab·Ž‘'Aci‘UUÏextr‘ÿ}'actŽ‘"Ä«(ÂconstŽ‘*¢F‘ÿ -«oQÇcusŽ‘>uC«&Ž‘FuC«&Ž‘F.\n"Ž’üM·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½±vŽ‘Gz«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘6¬e·‘S+Ý"world_coordinates:È Ž‘nRï Ý("Ž’˜ìm·‘S+Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Rg)«[0Ž‘]–S+·“Ý",È Ý"Ž‘ ,²·Ž¡‘2Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘«[1Ž›]–£Ø·“Ý",È Ý"Ž‘Î ·“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘P·Ö«[2Ž˜]“·“Ý",È Ý"Ž‘Î ·“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘P·Ö«[3Ž˜]“·Ž¡‘2Ý")\n"Ž‘R…·‘A'Ý"projective_coordinaŽ‘n@ëtes:È Ý("Ž’˜Èe·‘A'Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘c÷:«[0Ž‘]‘A'·Ž¡‘2Ý",È Ý"Ž‘KÙ®·‘SMÏpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ›c `«[1Ž‘]–SM·“Ý",È Ý"Ž‘,ö·“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ˜«[2Ž‘]“·“Ý",È Ý"Ž‘,ö·Ž¡‘2Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ’¶«[3Ž‘]–Ç·“Ý")\n"Ž‘q«;Ž¡‘·gŽ¡‘±vŽ‘4¿:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÏthisŽ‘ë¶«);Ž¡‘ÂreturnŽ‘7æ¼±vŽ‘=y«;Ž¡‘ -·gŽŸÂ444.– üGet‘3Lextremes.“«[¬LDF‘T2002.09.18.«]Ž‘ZÙìAdded–§ this“function.‘fêAnš¸ãy“coGde“that“calls“Ïget‘‰ffŽ‘®extr‘ÿ}'emesŽ‘:ëk«(‘ª®)“m˜ustŽ¡ensure–UUthat“Ïpr–ÿ}'oje“ctŽ‘!Ìc«(‘ª®)“has“bGeen“in•¸ãv“ok“ed‘UU rst.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔinlineŽ‘OconstŽ‘mB¾v‘ÿ\ralarra®9yŽ’–œÿ·hÂrealŽ‘]Ù·i‘UUÏget‘‰ffŽ‘®extr‘ÿ}'emesŽ‘:™µ«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ’‹ë «;Ž¡‘ -·gŽŸÂ445.› üGet–ÕTminim®9um“z.˜«[¬LDF‘T2002.09.17.«]Ž‘Zˆ6Added–UUthis“function.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔrealŽ‘FAÏget‘‰ffŽ–®minimum‘‰ffŽ“zŽ’‰žÚ«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹vL Šn ý‘ì«118›­GET–ÕXMINIMUM“Z’´3DLDFPRÃŽG˜·x«446Ž €n ý•@PÂ446.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ ³/P•®9oin“tŽ‘=M{«::‘Ïget‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘D]Ü«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPoint::getŽ‘kÆÜ_minimum_z()"Ž’³T5·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"minimum_zÈ Ý==È Ý"Ž‘TÔk·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[4Ž‘]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPoint::get_Ž‘kÆÜminimum_z()"Ž’®8·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ’‹ë «[4Ž‘];Ž¡‘ -·gŽŸÂ447.› üGet–ÕTmaxim®9um“z.˜«[¬LDF‘T2002.09.17.«]Ž‘Zˆ6Added–UUthis“function.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔrealŽ‘FAÏget‘‰ffŽ–®maximum‘‰ffŽ“zŽ’Š®«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ448.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/P•®9oin“tŽ‘=M{«::‘Ïget‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘Em«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPoint::getŽ‘kÆÜ_maximum_z()"Ž’³T5·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"maximum_zÈ Ý==È Ý"Ž‘TÔk·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[5Ž‘]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPoint::get_Ž‘kÆÜmaximum_z()"Ž’®8·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ’‹ë «[5Ž‘];Ž¡‘ -·gŽŸÂ449.› üGet–ÕTmean“z.˜«[¬LDF‘T2003.05.16.«]Ž‘Zˆ6Added–UUthis“function.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔrealŽ‘FAÏget‘‰ffŽ–®me‘ÿ}'an‘‰ffŽ“zŽ‘v÷ «(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ450.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/P•®9oin“tŽ‘=M{«::‘Ïget‘‰ffŽ–®me‘ÿ}'an‘‰ffŽ“zŽ‘1¶«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7漫((Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«[4Ž›]–8à+“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘V=1«[5Ž˜])±=«2Ž˜);Ž¡‘ -·gŽŸÂ451.– üSet‘írextremes.“«This–Héfunction“sets“\extreme"“v‘ÿqÇalues“for“the“x,–…Îy‘ÿ*ª,“and–Héz-coGordinates.‘LƒThis“is,‘…ÎofŽ¡course,›ßtrivial–Ñfor“ÂP•®9oin“tsŽ‘#ç«,˜bGecause“they“only“ha•¸ãv“e–Ñone“x,˜y“and“z-coGordinate.‘¼zSo“the“maxima“and“minimaŽ¡for–UUeacš¸ãh“coGordinate“are“alw˜a˜ys“the“same.Ž¡‘ -[¬LDF‘T2002.10.20.«]Ž‘Z¸ÎThe–èprogrammer“who“uses“Ïset‘‰ffŽ‘®extr‘ÿ}'emesŽ‘;Çq«(›ª®)“m¸ãust“ensure“that“Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘K%Ç«(˜)“andŽ¡Ïpr–ÿ}'oje“ctŽ‘w«(›ª®)–UUare“in•¸ãv“ok“ed–UUbGefore“Ïset‘‰ffŽ‘®extr‘ÿ}'emesŽ‘:Þ«(˜)!ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.17.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2002.09.18.«]Ž‘Y;Changed–UUthe“name“of“this“function“from“Ïset‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘F0V«(›ª®)“to“Ïset‘‰ffŽ‘®extr‘ÿ}'emesŽ‘:Þ«(˜).ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/Ôb•QÇo“olŽ‘I/:Ïset‘‰ffŽ‘®extr‘ÿ}'emesŽ‘ðë(‘ª®);ŽŽŽŒ‹w™K Šn ý‘ì·x«452–­3DLDFPRÃŽG’®SET‘ÕXEXTREMES“«119Ž €n ý•@PÂ452.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olŽ‘#¡gP•®9oin“tŽ‘@;³«::‘Ïset‘‰ffŽ‘®extr‘ÿ}'emesŽ‘7Á«(‘ª®)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPoint::setŽ‘kÆÜ_extremes()"Ž’®8·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘ÂifŽ‘)´û«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘^¶«[±iŽ‘qô«]–Ç·“ÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘(Ïc‘ÿ}'errŽ‘=|·‘ÇÝ"ERROR!È ÝInÈ ÝPoint::seŽ‘kÆÜt_extremes():\n"Ž’Ã,·‘ÇÝ"projective_coordinaŽ‘kÆÜtes["Ž’‰TM·‘DZiŽ‘ $·‘ÇÝ"]"Ž‘Ô·Ž¡‘<Ý"È Ý==È ÝINVALID_REAL.\nŽ’¤ÿÊ"Ž’®&µ·‘`†Ý"SettingÈ ÝeveryÈ ÝelemeŽ‘l`JntÈ ÝinÈ Ýprojective_extŽ’Õ`remesÈ Ý"Ž’þç·Ž¡‘<Ý"toÈ ÝINVALID_REALÈ ÝandŽ’¤ÿÊÈ ÝreturningÈ Ýfalse.\n"Ž’M·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂforŽ‘9芫(Âin®9tŽ‘¤÷±jޑӫ=‘Ç0Ž–Ç;‘ÿý±jŽ‘ wÙ<‘Ç«6Ž“;‘ÿý±jŽ‘ -0ÁŸÿ®+‘ÿ+ŽŽ‘÷á«)‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘YQ«[±jŽ‘°Ä«]–Ç=“ÝINVALID_REALŽ‘BM\«;Ž¡‘(ÂreturnŽ‘Kæ¾ÏfalseŽ‘`–«;Ž¡‘·gŽ¡‘gŽ¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[0Ž›]–Ç=“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘a}+«[0Ž˜];‘±=·–ÿý«min‘UUx“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[1Ž›]–Ç=“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘a}+«[0Ž˜];‘±=·–ÿý«max‘UUx“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[2Ž›]–Ç=“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘a}+«[1Ž˜];‘±=·–ÿý«min‘UUy“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[3Ž›]–Ç=“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘a}+«[1Ž˜];‘±=·–ÿý«max‘UUy“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[4Ž›]–Ç=“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘a}+«[2Ž˜];‘±=·–ÿý«min‘UUz“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[5Ž›]–Ç=“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘a}+«[2Ž˜];‘±=·–ÿý«max‘UUz“·±=Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPoint::setŽ‘kÆÜ_extremes()"Ž’®8·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼ÏtrueŽ‘J«T«;Ž¡‘ -·gŽŸÂ453.– üComparison‘ÕTclasses.“«[¬LDF‘T2003.05.16.«]Ž‘Zˆ6The–UUfunction“classes“in“this“section“are“used“inŽ¡ÂPictureŽ‘&œ«::‘ÏoutputŽ‘D«(‘ª®)– õto“sort“the“pGoinš¸ãters“to“ÂShapQÇeŽ‘%÷«in“Âv®9ectorŽ‘"·=·hÂShapQÇeŽ‘!ù·Ž‘&ùi“ÏelementsŽ‘)òð«.‘Y§The“argumen˜t“Ïsort‘‰ffŽ‘®valueŽ‘.÷«,Ž¡whicš¸ãh–9pshould“bGe“one“of“the“constan˜ts“in“ÂnamespaceŽ‘<ÁSortingŽ‘b+K«,‘?determines“whic˜h“one“is“used,‘?or“if“ÏelementsŽŽ¡«shouldn't–UUbGe“sorted.Ž¡·Ž‘ -«If‘|õÂSortingŽ‘(ç?«::‘ÝMIN_ZŽ‘CR«is–|õpassed“to“ÂPictureŽ‘)«::‘ÏoutputŽ‘D«(‘ª®),‘¨<ÏComp–ÿ}'ar“e‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘bsY«is“used“for“sorting.‘)¨The“elemen¸ãtsŽ¡‘ -are–UUsorted“in“descending“order“of“the“Ïminimum‘¸«z-v‘ÿqÇalue“from“their“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WY¦«.Ž¡·Ž‘ -«If‘dÂSortingŽ‘(ÎÙ«::‘ÝMAX_ZŽ‘*ì«is–dpassed“to“ÂPictureŽ‘) «::‘ÏoutputŽ‘D«(‘ª®),‘”·ÏComp–ÿ}'ar“e‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘cW«is“used“for“sorting.‘!†The“elemen¸ãtsŽ¡‘ -are–UUthen“sorted“in“descending“order“of“the“Ïmaximum‘¸«z-v‘ÿqÇalue“from“their“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WY¦«.Ž¡·Ž‘ -«If‘ÂSortingŽ‘*f«::‘ÝMEAN_ZŽ‘$£v«is–passed“to“ÂPictureŽ‘*9-«::‘ÏoutputŽ‘D«(‘ª®),‘¯ÏComp–ÿ}'ar“e‘‰ffŽ›®me“an‘‰ffŽ˜zŽ‘Qò„«is“used“for“sorting.‘IThe“elemen¸ãtsŽ¡‘ +­realŽ‘ ³/±epsŽ‘2œ ¬=‘DZepsilonŽ‘"6¬(‘ª¨);ަ‘ +­ifŽ‘´ù¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘^¶¬[3Ž‘]–ǰ“¬0Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘*”ذ‘ß0´"ERROR!® ´In® ´Point::prŽ‘lÞôoject():® ´"Ž’¥Än°‘ß0´"projective_coordinaŽ‘lÞôtes[3]® ´==® ´0.\n"Ž’À_°Ž¡‘(´"This® ´will® ´cause® ´a® ´fŽ’ÿÈloating® ´point® ´error.Ž’ùÿŒ\n"Ž’4r°Ž¡‘(´"Setting® ´projective_Ž’ÿÈcoordinates® ´to® ´INVALŽ’ùÿŒID_REAL"Ž’'Lô°‘Ç´"® ´and® ´returning.\n"Ž‘iÔ_°‘DZ ushŽ‘€¬;Ž¡‘­forŽ‘%般(µiŽ‘9 ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘c¶¬[µiŽ‘qô¬]–Ç=“´INVALID_REALŽ‘BM\¬;Ž¡‘­returnŽ‘7æ¼±falseŽ‘L–¬;Ž¡‘ +°gŽ¡‘ +­forŽ‘臬(µiŽ‘9 ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fŽ¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘r¶¬[µiŽ‘qô¬]‘ǵ=¬=ŽŽ‘UO±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘q b¬[3Ž‘];Ž¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘^¶¬[µiŽ›qô¬])–ǵ<“±epsŽ‘èÚ¬)‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘c¶¬[µiŽ˜¬]“=“0Ž‘Ç;Ž¡‘ +°g‘µ=°‘ž¬[²LDF‘T2002.09.14.¬]Ž‘TySet–Zöthe“µzŽ‘ Í +¬v‘ÿqÇalue“of“the“p•Gersp“ectiv¸ãe›Zöco“ordinates˜in˜order˜to˜b“e˜able˜to˜use˜it˜forŽ¡‘(m¸ãy–UUhidden“surface“algorith.‘o°µ=Ž¡‘ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘h¶¬[2Ž‘]–Ç=“(±fabsŽ‘2Ò¬(±save‘‰ffŽ‘®zŽ‘趬)“µ>“±epsŽ‘èÚ¬)“?“±save‘‰ffŽ‘®zŽ‘!væ¬:“0Ž‘Ç;Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"Perspective® ´coordinŽ‘kÆÜates:\n("Ž’›)¬;Ž¡‘­forŽ‘%般(µiŽ‘9 ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘a}+¬[µiŽ‘qô¬];Ž¡‘­ifŽ‘)´û¬(µiŽ‘9 <‘Ǭ3Ž‘Ç)‘±c‘ÿ}'outŽ‘ O°‘Ç´",® ´"Ž‘Mt¬;Ž¡‘°gŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´")\n"Ž‘ T‰°‘DZ ushŽ‘€¬;ŽŽŽŒ‹u ܼ Šn ý‘ì°x¬445–¯3DLDF-1.1.5.1’á(PERSPECTIVE‘ÕXPRÃŽOJECTION“¬117Ž €n ý•@P‘ +°gޤ ‘ +­forŽ‘臬(µiŽ‘9 ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ2Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)Ž¡‘µ=°‘%d¬[²LDF‘T2002.11.07.¬]Ž‘TSKLUDGE.–z¼Added“this“loGop.‘áýThe“v‘ÿqÇalue“used“for“comparison“is“sligh¸ãtly“largerŽ¡‘(than–gÇone“that“arose“while“I‘gÂwš¸ãas“testing“the“constructor“of“±T‘ÿ;¼runc‘‰ffŽ‘®Octahe–ÿ}'dr“onŽ‘Tî¬.‘©±epsŽ‘2§¬w˜as“toGo“small.Ž¡‘(°µ=Ž¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘^¶¬[µiŽ›qô¬])–ǰ“¬10µ:¬0–8à°“¬10Ÿü^ÿ¶³05ŽŽŽ‘4þ¬)‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘c¶¬[µiŽ˜¬]“=“0Ž‘Ç;Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´project().\Ž‘kÆÜn"Ž‘y”V°‘DZ ushŽ‘€¬;Ž¡‘ +­returnŽ‘-æ»±trueŽ‘@«S¬;‘qǰgŽ©­446.› üNo–i¿F‘ÿ +«oQÇcus“argumen®9t.˜¬[²LDF‘T2002.09.13.¬]Ž‘[ EAdded–Ödthis“function.‘ôõThis“dumm¸ãy“function“just“passesŽ¡±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘:7ެto‘Y±pr–ÿ}'oje“ctŽ‘#*.¬(‘Y­constŽ‘ˆmF‘ÿ +«oQÇcusŽ‘>×I¬&Ž‘FžgµfŽ‘P›…:–ª¨:“:Ž‘`Jd¬).‘ÛThis–Yis“necessary“bšGecause“it's“imp˜ossible“makš¸ãe“the“argumen˜tŽ¡µfŽ‘ ÿ¬optional–/with“±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘?ê\¬as“the“default.‘„TThis“is“bšGecause“±pr–ÿ}'oje“ctŽ‘"}=¬(‘ª®)“m¸ãust“b˜e“declared“inside“the“­classŽŽ¡¬declaration–Z´of“­P•®9oin“tŽ‘ôü¬,›\ whereas“the“declaration“of“­F‘ÿ +«oQÇcusŽ‘#ª´¬m¸ãust“bGe“later,˜bGecause“it“con¸ãtains“­P•®9oin“tsŽ‘#~8¬.‘äIt's“notŽ¡a–ž´problem“to“use“±default‘‰ffŽ‘®fo‘ÿ}'cusŽ›?f¬inside“of“±pr–ÿ}'oje“ctŽ‘"¬(‘ª®),‘± as“long“as“±default‘‰ffŽ‘®fo‘ÿ}'cusŽ˜¬is“de ned“bGefore“the“function“isŽ¡called.ŽŸ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡g±pr–ÿ}'oje“ctŽ‘Bu¬(­constŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S¬&Ž‘sóq±pr‘ÿ}'ojŽ’‰®L¬=‘Ç­Pro‘£ŽjectionsŽ‘=“|¬::Ž‘D!º´PERSPŽ‘^èµ;‘ª¨­realŽ‘]Ö±factorŽ‘6(̬=‘Ç1Ž‘Ç);ަ­447.ŽŸ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡gP•®9oin“tŽ‘@;³¬::‘±pr–ÿ}'oje“ctŽ‘w¬(­constŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S¬&Ž‘sóq±pr‘ÿ}'ojŽ’†ç4µ;‘ª¨­realŽ‘]Ö±factorŽ‘3a´¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±pr–ÿ}'oje“ctŽ‘V]ʬ(±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘7Ýþµ;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘ +°gަ­448.– üApplying‘ étransformations.“¬This–¸rv¸ãersion“applies“the“transformation“stored“in“­P•®9oin“tŽ‘R¾¬::‘±tr‘ÿ}'ansformŽ‘,³E¬.Ž¡!!‘]Add–Ra“vš¸ãersion“that“applies“a“­T‘ÿ +«ransformŽ‘9§¬supplied“as“an“argumen˜t!!‘][²LDF‘T2002.12.08.¬]Ž‘R WBUG‘QÓFIX:“See“bGelo˜w.ŽŸ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘i¸¬(‘ª®);ŽŽŽŒ‹v ò“ Šn ý‘ì¬118›¯APPL–ÿJªYING‘ÕXTRANSFÃŽORMA“TIONS’Ò 3DLDF-1.1.5.1˜°x¬449Ž €n ý•@P­449.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::‘±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Gã¬(‘ª®)Ž¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘¯?¬(±tr‘ÿ}'ansformŽ‘+³Aµ:±is‘‰ffŽ‘®identityŽ‘-2¢¬(‘ª¨))‘µ=°‘úB¬If‘Oš±tr‘ÿ}'ansformŽ‘/Ûµ:±matrixŽ‘!5¬is–Ošthe“iden•¸ãtit“y›Ošmatrix,‘P¿w“e˜don't˜need˜to˜bGotherŽ¡‘2to–UUpGerform“the“matrix“m¸ãultiplication.‘o°µ=Ž¡‘­returnŽ‘>‘h¬;ަ‘­in®9tŽ‘%¤ùµiŽ‘)í¬;Ž¡‘­in®9tŽ‘%¤ùµjŽ‘*U½¬;Ž¡‘­v‘ÿ\ralarra®9yŽ‘=ZC°h­realŽ‘]Ù°i‘UU±new‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘I£¥¬;ަ‘±new‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘ZNRµ:±r‘ÿ}'esizeŽ‘i¬(4Ž‘µ;‘ª¨¬0Ž‘ª©);‘µ=°‘ÿý¬[²LDF‘T2002.12.08.¬]Ž‘T7BUG–UUFIX.“F‘ÿ*ªor“GNU“CC.‘ÿý°µ=Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"x® ´==® ´"Ž‘*Ôƒ°‘DZworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ¬[0Ž‘]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"y® ´==® ´"Ž‘*Ôƒ°‘DZworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ¬[1Ž‘]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"z® ´==® ´"Ž‘*Ôƒ°‘DZworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ¬[2Ž‘]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"w® ´==® ´"Ž‘*Ôƒ°‘DZworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ¬[3Ž‘]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘°gŽ¡‘­forŽ‘%般(µiŽ‘9 ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fŽ¡‘­forŽ‘/艬(µjŽ‘wܬ=‘Ç0Ž–Ç;‘ÿýµjŽ‘ wÙ<‘Ǭ4Ž“;‘ÿýµjŽ‘ +0ÁŸÿ³+‘ÿ+ŽŽ‘÷á¬)‘°fŽ¡‘(±new‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘nNT¬[µiŽ‘qô¬]‘Ç+=ŽŽ‘l±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘b0j¬[µjŽ›°Ä¬]–8à°“±tr‘ÿ}'ansformŽ‘-ì!µ:±matrixŽ‘?›¬[µjŽ˜¬][µiŽ‘qô¬];Ž¡‘(­ifŽ‘3´ü¬(±new‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘FNP¬[µiŽ‘qô¬]–ǰ6¬=“0Ž‘Ç)‘°fŽ¡‘2­ifŽ‘=´ý¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘<±c‘ÿ}'outŽ‘R U°‘Ç´"new_coordinates["Ž‘d”b°‘ǵiŽ‘ $°‘Ç´"]® ´==® ´"Ž‘*Ôƒ°‘DZnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Ih¬[µiŽ‘qô¬]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘2°gŽ¡‘(gŽ¡‘gŽ¡‘gަ‘­realŽ‘*³0±epsŽ‘<œ +¬=‘DZepsilonŽ‘"6¬(‘ª¨);ަ‘­forŽ‘%般(µiŽ‘9 ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ4Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"new_coordinates["Ž‘d”b°‘ǵiŽ‘ $°‘Ç´"]® ´==® ´"Ž‘*Ôƒ°‘DZnew‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Ih¬[µiŽ‘qô¬]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘°gŽ¡‘±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘k¬[µiŽ›qô¬]–Ç=“(±fabsŽ‘2Ò¬(±new‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘FNP¬[µiŽ˜¬])“µ>“±epsŽ‘èÚ¬)“?“±new‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Ih¬[µiŽ˜¬]“:“0Ž‘Ç;Ž¡‘°gŽ¡‘±tr‘ÿ}'ansformŽ‘?³Cµ:±r‘ÿ}'esetŽ‘Æ·¬(‘ª¨);Ž¡‘ +°gŽŸ­450.‘ üSet–ÕTtransform“to“iden•®9tit“y‘ÿ +«.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±r–ÿ}'eset‘‰ffŽ‘®tr“ansformŽ‘f°2¬(‘ª®);ŽŽŽŒ‹w ýæ Šn ý‘ì°x¬451›¯3DLDF-1.1.5.1’½6SET–ÕX­TRANSF®9ORM“¯TO“IDENTITY˜¬119Ž €n ý•@P­451.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::‘±r–ÿ}'eset‘‰ffŽ‘®tr“ansformŽ‘D²]¬(‘ª®)Ž¡‘ +°fŽ¡‘±tr‘ÿ}'ansformŽ‘?³Cµ:±r‘ÿ}'esetŽ‘Æ·¬(‘ª¨);Ž¡‘ +°gޤ­452.‘ üDra®9wing.Ž¡453.‘ üDra®9wdot.ޤ ‘ +¬[²LDF‘T2002.10.26.¬]Ž‘Zœå±dr‘ÿ}'awdotŽ‘~0f¬(‘ª®)–éÿcopies“°Ž‘ ê±thisŽ‘¿µ¬and“puts“the“copš¸ãy“on˜to“the“­v®9ectorŽ‘)~F±shap‘ÿ}'esŽ‘KVάof“the“­PictureŽŽ¡¬argumenš¸ãt‘‚þ±pictur‘ÿ}'eŽ‘"‹Ô¬.‘úÂThe–‚þdata“mem˜bGers“±dr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘@ÍǬ,‘Žh±dr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘@ü¬,‘Žhand“±p‘ÿ}'enŽ‘¯¬are“only“set“on“the“cop˜y‘ÿ*ª,‘ŽhnotŽ¡on‘UU°Ž‘UV±thisŽ‘A ¬.‘qÇAll–UUof“the“draš¸ãwing“and“ lling“functions“bGeha˜v˜e“similarly‘ÿ*ª.Ž¡‘ +[²LDF‘T2003.05.30.¬]Ž‘XóÛTO‘@ðDO:–@õAdd“cošGde“for“allo˜cating“new“­ColorŽ‘“¬,›Eif“±ddr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘DÔùµ:±use‘‰ffŽ‘®nameŽ‘-Ã?¬is“±falseŽ‘ð9¬,˜as“inŽ¡the–UUdra¸ãwing“and“ lling“functions“for“­P®9athŽ‘<¬and“­SolidŽ‘Ó,¬.ŽŸ­454.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.11.¬]Ž‘Y;Made‘UU±pp‘ÿ}'enŽ‘àͬand‘UU±dr‘ÿ}'awdotŽ‘&èÖ¬(‘ª®)–UUitself“­constŽ‘*¢¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"Pµ±dr‘ÿ}'awdotŽ‘Eä6¬(­constŽ‘}~ColorŽ‘1¬&Ž‘Eø!±ddr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ’‡Œ%µ;‘ª¨­constŽ‘ stringŽ‘A\±pp‘ÿ}'enŽ‘V’(µ;‘ª¨­PictureŽ‘*ÌÁ¬&Ž‘2“ß±pictur‘ÿ}'eŽ‘Qœµ¬)‘† ­constŽ‘[Y°fŽ¡‘2­b•QÇo“olŽ‘K¡k´DEBUGŽ‘i.ܬ=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´drawdot()"Ž‘o\°‘Ç´"\n"Ž‘Œ°‘DZ ushŽ‘€¬;Ž¡‘­P•®9oin“tŽ‘<ï °Ž‘AptŽ‘O)“¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(0Ž‘);ަ‘°Ž‘#±ptŽ‘/«¹¬=‘Ç°Ž‘Ç±thisŽ‘²Ï¬;Ž¡‘±ptŽ‘%ä Ÿµ~ŽŽ‘+䡱dr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘kö‚¬=‘Ç´DRAWDOTŽ‘( k¬;Ž¡‘±ptŽ‘%ä Ÿµ~ŽŽ‘+䡱dr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘k#M¬=‘Ç&Ž‘ +Ž6±ddr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘L":¬;Ž¡#­ifŽ‘ ´ø¬1ŽŽ¡‘±ptŽ‘%ä Ÿµ~ŽŽ‘+䡱p‘ÿ}'enŽ‘>Ål¬=‘DZpp‘ÿ}'enŽ‘ý;¬;Ž¡#­endifŽŽ¡‘±pictur‘ÿ}'eŽ‘?Ïñ¬+=ŽŽ‘R%E­staticu½‰™šs4Ž‘ÔwcastŽ’†¢ç°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(±ptŽ‘ ä¬);Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´drawdot()"Ž‘iÔ_°‘Ç´"\n"Ž‘Œ°‘DZ ushŽ‘€¬;Ž¡‘°gŽŽŽŒ‹x + +Û Šn ý‘ì¬120›­PICTURE–ÕX¯ARÃŽGUMENT“FIRST’ÑáÁ3DLDF-1.1.5.1˜°x¬456Ž €n ý•@P­456.‘ üPicture–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.01.24.¬]Ž‘Y;Added–UUthis“v¸ãersion.Ž¡‘ +[²LDF‘T2003.01.31.¬]Ž‘[ñRemo•¸ãv“ed–m default“for“±pictur‘ÿ}'eŽ‘$uá¬.‘ +¸éHa¸ãving“a“default“made“calls“to“±dr‘ÿ}'awdotŽ‘)Œ¬(‘ª®)“with“noŽ¡argumen•¸ãts‘UUam“biguous.Ž¡‘ +[²LDF‘T2003.07.11.¬]Ž‘Y;Made‘UU±pp‘ÿ}'enŽ‘àͬand‘UU±dr‘ÿ}'awdotŽ‘&èÖ¬(‘ª®)–UUitself“­constŽ‘*¢¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ÌE±dr‘ÿ}'awdotŽ‘F_Ƭ(­PictureŽ‘(¿Î¬&Ž‘0†ì±pictur‘ÿ}'eŽ‘Oµ;‘ª¨­constŽ‘£¶ColorŽ‘?¬&Ž‘FÞ3±ddr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ’‹9O¬=‘Ç°Ž‘Ç­ColorsŽ‘)Ÿ÷¬::Ž‘0.5±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘gªµ;‘ª¨­constŽ‘£¶stringŽŽ¡‘±pp‘ÿ}'enŽ‘5ý>¬=‘Ç´""Ž‘ Íz¬)‘UU­constŽ‘*¢¬;Ž©­457.ŽŸ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::‘±dr‘ÿ}'awdotŽ‘$“…¬(­PictureŽ‘(ñb¬&Ž‘0¸€±pictur‘ÿ}'eŽ‘OÁVµ;‘ª¨­constŽ‘ÕJColorŽ‘?z=¬&Ž‘GA[±ddr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ’ˆÕ_µ;‘ª¨­constŽ‘ÕJstringŽ‘@ú—±pp‘ÿ}'enŽ‘V0º¬)‘UU­constŽŽ¡‘ +°fŽ¡‘±dr‘ÿ}'awdotŽ‘7“ƒ¬(±ddr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘A”µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gަ­458.– üUndra®9wdot.“¬[²LDF‘T2002.10.26.¬]Ž‘\ѱundr‘ÿ}'awŽ‘}7Ь(‘ª®)–ÞðdoGes“not“remo•¸ãv“e–Þða“dot“from“±pictur‘ÿ}'eŽ‘#çÆ¬,‘AVbut“causes“theŽ¡MET‘ÿ*ªAPOST–UUcommand“­undra®9wdot“¬to“bGe“written“to“±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘5ëF¬when“±pictur‘ÿ}'eŽ‘%³€¬is“output.ŽŸ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±undr‘ÿ}'awdotŽ‘QŽ~¬(­stringŽ‘!%M±pp‘ÿ}'enŽ‘9"ˆ¬=‘Ç´""Ž‘ Ízµ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘T3¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬);ަ­459.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::‘±undr‘ÿ}'awdotŽ‘/©¬(­stringŽ‘!%M±pp‘ÿ}'enŽ‘6[pµ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘Qkþ¬)°f‘UU­P•®9oin“tŽ‘"Dò°Ž‘'Dó±ptŽ‘4~å¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(0Ž‘);ަ‘°Ž‘#±ptŽ‘/«¹¬=‘Ç°Ž‘Ç±thisŽ‘²Ï¬;Ž¡‘±ptŽ‘%ä Ÿµ~ŽŽ‘+䡱dr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘kö‚¬=‘Ç´UNDRAWDOTŽ‘2e¬;Ž¡‘±ptŽ‘%ä Ÿµ~ŽŽ‘+䡱dr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘k#M¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘urŒ¬;Ž¡#­ifŽ‘ ´ø¬1ŽŽ¡‘±ptŽ‘%ä Ÿµ~ŽŽ‘+䡱p‘ÿ}'enŽ‘>Ål¬=‘DZpp‘ÿ}'enŽ‘ý;¬;Ž¡#­endifŽŽ¡‘±pictur‘ÿ}'eŽ‘?Ïñ¬+=ŽŽ‘R%E­staticu½‰™šs4Ž‘ÔwcastŽ’†¢ç°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(±ptŽ‘ ä¬);‘UU°gŽŸ­460.‘ üPicture–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.01.24.¬]Ž‘Y;Added–UUthis“v¸ãersion.Ž¡‘ +[²LDF‘T2003.01.31.¬]Ž‘ZdfRemo•¸ãv“ed–±€default“for“±pictur‘ÿ}'eŽ‘#ºV¬.‘†HHa¸ãving“a“default“made“calls“to“±undr‘ÿ}'awdotŽ‘3B%¬(‘ª®)“with“noŽ¡argumen•¸ãts‘UUam“biguous.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±undr‘ÿ}'awdotŽ‘QŽ~¬(­PictureŽ‘(ñb¬&Ž‘0¸€±pictur‘ÿ}'eŽ‘OÁVµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘:Í0¬=‘Ç´""Ž‘ Íz¬);ŽŽŽŒ‹y +( Šn ý‘ì°x¬461›¯3DLDF-1.1.5.1’ÑáÁ­PICTURE–ÕX¯ARÃŽGUMENT“FIRST˜¬121Ž €n ý•@P­461.ŽŸ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::‘±undr‘ÿ}'awdotŽ‘/©¬(­PictureŽ‘(ñb¬&Ž‘0¸€±pictur‘ÿ}'eŽ‘OÁVµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘8¬)Ž¡‘ +°fŽ¡‘±undr‘ÿ}'awdotŽ‘B§¬(±pp‘ÿ}'enŽ‘6#µ;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gŽ©­462.– üDraš®9w.“¬[²LDF‘T2002.10.26.¬]Ž‘[Á±dr‘ÿ}'awŽ‘qéì¬(‘ª®)–Ž0creates“a“­P˜athŽ‘!­Ä¬with“the“t•¸ãw“o‘Ž0­P˜oin˜tsŽ‘)?ä°Ž‘.?å±thisŽ‘C¹Ë¬and–Ž0the“argumen¸ãtŽ¡µpŽ‘¬,›Ðaand–„’the“connector“´"--"Ž‘ +î¬,˜calls“­P®9athŽ‘ú¬::‘±dr‘ÿ}'awŽ‘(߬(‘ª®)“for“it,˜and“returns“the“­P®9athŽ‘ö¬.‘ÿ~The“latter“is“a“line,˜i.e.,Ž¡­P®9athŽ‘‘h¬::‘±get‘‰ffŽ–®line‘‰ffŽ“switchŽ‘@Ö¬(‘ª®)–UUreturns“±trueŽ‘oB¬for“it.Ž¡‘ +±dr‘ÿ}'awŽ‘ (ܬ(‘ª®)–UUm¸ãust“bšGe“de ned“in“®paths.web¬,“b˜ecause“­P®9athŽ‘<¬is“an“incomplete“t¸ãyp˜e“here.ަ­463.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.01.15.¬]Ž‘Y;Added–UUthe“argumen¸ãt“±aarr‘ÿ}'owŽ‘"Ò¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­P®9athŽ‘&½”±dr‘ÿ}'awŽ‘<æo¬(­constŽ‘|P•®9oin“tŽ‘>Çó¬&Ž‘FµpŽ‘K—;‘ª¨­constŽ‘ ¬$ColorŽ‘A'ñ¬&Ž‘Hï±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’$å¬=‘--°Ž‘ -.­ColorsŽ‘+ ¬::Ž‘1”J±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘i%µ;‘ª¨­stringŽŽ¡‘±ddashe‘ÿ}'dŽ‘D,¬=‘Ç´""Ž– Ízµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘:Í0¬=‘Ç´""Ž“µ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘T3¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìßµ;‘ª¨­b•QÇo“olŽ‘L±aarr‘ÿ}'owŽ‘=æ¬=‘DZfalseŽ‘v\¬)‘UU­constŽ‘*¢¬;ަ­464.› üPicture–ªæargumen®9t“ rst.˜¬[²LDF‘T2003.01.15.¬]Ž‘ZcQThis–0pfunction“is“con•¸ãv“enien“t–0pfor“when“I‘0gw•¸ãan“t–0pto“pass“aŽ¡­PictureŽ‘(ñb¬argumen¸ãt.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.09.17.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2003.01.15.¬]Ž‘Y;Added–UUthe“argumen¸ãt“±aarr‘ÿ}'owŽ‘"Ò¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­P®9athŽ‘%溱dr‘ÿ}'awŽ‘<•¬(­PictureŽ‘(ñb¬&Ž‘0¸€±pictur‘ÿ}'eŽ‘OÁVµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒµpŽ‘K”;‘ª¨­constŽ‘ÕJColorŽ‘?z=¬&Ž‘GA[±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘~¬=‘Ç°Ž‘Ç­ColorsŽ‘)Ÿ÷¬::Ž‘0.5±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘gªµ;Ž¡‘­stringŽ‘?%P±ddashe‘ÿ}'dŽ‘e3y¬=‘Ç´""Ž– Ízµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘:Í0¬=‘Ç´""Ž“µ;‘ª¨­b•QÇo“olŽ‘L±aarr‘ÿ}'owŽ‘=æ¬=‘DZfalseŽ‘v\¬);ަ­465.‘ üDra•®9w‘ÕTarro“w.ަ466.– üNormal‘ÕTv®9ersion.“¬[²LDF‘T2003.01.15.¬]Ž‘Zˆ6De ned–UUin“®paths.web¬.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.01.15.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2003.06.03.¬]Ž‘Y;Made‘UU±dr–ÿ}'awarr“owŽ‘2H¬(‘ª®)‘UU­constŽ‘*¢¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­P®9athŽ‘&`¶±dr–ÿ}'awarr“owŽ‘USz¬(­constŽ‘¤žP•®9oin“tŽ‘>7¬&Ž‘EÕUµpŽ‘JÝU;‘ª¨­constŽ‘ OFColorŽ‘@n5¬&Ž‘H5S±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘Ðb¬=‘’f°Ž‘’g­ColorsŽ‘*kE¬::Ž‘0ùƒ±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘hu^µ;‘ª¨­stringŽŽ¡‘±ddashe‘ÿ}'dŽ‘D,¬=‘Ç´""Ž– Ízµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘:Í0¬=‘Ç´""Ž“µ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘T3¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹z +$‰ Šn ý‘ì¬122›­PICTURE–ÕX¯ARÃŽGUMENT“FIRST’ÑáÁ3DLDF-1.1.5.1˜°x¬467Ž €n ý•@P­467.› üPicture–ÕTargumen®9t“ rst.˜¬[²LDF‘T2003.01.15.¬]Ž‘Zˆ6De ned–UUin“®paths.web¬.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ +¬[²LDF‘T2003.06.03.¬]Ž‘Y;Made‘UU±dr–ÿ}'awarr“owŽ‘2H¬(‘ª®)‘UU­constŽ‘*¢¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­P®9athŽ‘%溱dr–ÿ}'awarr“owŽ‘TÙ~¬(­PictureŽ‘(ñb¬&Ž‘0¸€±pictur‘ÿ}'eŽ‘OÁVµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒµpŽ‘K”;ަ‘­constŽ‘´µ;‘ª¨­stringŽ‘#å±pp‘ÿ}'enŽ‘;‚Z¬=‘8R´""Ž“¬)ަ‘­constŽ‘8ÕP¬;ޤ­468.‘ üUndra®9w.Ž¡469.– üNormal‘¦žv®9ersion.“¬This–,¶function“m¸ãust“bšGe“de ned“in“®paths.web¬,‘4Öb˜ecause“it“uses“­P®9athŽ‘¾¬,‘4Öwhic¸ãh“is“anަincomplete–UUt¸ãypGe“here.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.4.8.¬]Ž‘OÈ?Added–UUthis“function.ަ‘ +[²LDF‘T2002.11.03.¬]Ž‘Y;Changed–UUthis“function,“so“that“it“returns“the“­P®9athŽ‘<±p‘ÿ}'aŽ‘*9R¬,“instead“of“­v®9oidŽ‘ýج.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­P®9athŽ‘'5±undr‘ÿ}'awŽ‘H[¬(­constŽ‘xþP•®9