## 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•®9oin“tŽ‘?¶÷¬&Ž‘G~±ptŽ‘Qb²µ;‘ª¨­stringŽ‘$Q±ddashe‘ÿ}'dŽ‘LY»¬=‘ôY´""Ž–ú»µ;‘ª¨­stringŽ‘$Q±pp‘ÿ}'enŽ‘>Hͬ=‘ôY´""Ž“µ;‘ª¨­PictureŽŽ¦‘¬&Ž‘%Ç!±pictur‘ÿ}'eŽ‘G—¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬);ŽŸ­470.‘ ü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‘@¯329“°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¬=‘Ç´""Ž“¬);ޤ­471.– ü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æ¬.Ž¡­472.– ü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‘@¯329“°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¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹{ +2| Šn ý‘ì°x¬473›¯3DLDF-1.1.5.1’ÑáÁ­PICTURE–ÕX¯ARÃŽGUMENT“FIRST˜¬123Ž €n ý•@P­473.› ü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‘@¯329“°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¬;ޤ­474.‘ üSho®9wing.Ž¡475.– ü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.ŽŽŽŒ‹| +A¶ Šn ý‘ì¬124–¯SHOÃŽW’@°3DLDF-1.1.5.1“°x¬475Ž €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‘@¯329“°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Ž‘*¢¬;ŽŸ­476.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°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.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(±textŽ‘ä°‘Ç´""Ž‘ Íz¬)‘±textŽ‘ä¬=‘Ç´"Point:"Ž‘-Mh¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘DZtextŽ‘åü°‘Ç´"® ´"Ž‘ w¬;Ž¡‘±c–ÿ}'o“or“dsŽ‘2Ц¬=‘DZtolowerŽ‘#í¬(±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°‘DZ ushŽ‘€¬;Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'u'Ž‘ w¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"User® ´coordinates.\nŽ‘kÆÜ"Ž‘tTY°‘DZ ushŽ‘€¬;Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±c–ÿ}'o“or“dsŽ‘Ф°‘Ç´'v'Ž‘ w¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"View® ´coordinates.\nŽ‘kÆÜ"Ž‘tTY°‘DZ ushŽ‘€¬;Ž¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘45¡°‘ø´"WARNING!® ´In® ´|show()Ž‘l¼|:® ´"Ž’…†°‘ø´"Invalid® ´character® ´fŽ‘l¼or® ´coords® ´argument.\Ž’Õ€n"Ž’äÚ°Ž¡‘2´"Showing® ´world® ´coordŽ’šÿÉinates.\n"Ž’ÒÍ+°‘DZ 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"Ž’!“ö°‘DZ 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*¬=‘DZget‘‰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°‘Ç´"("Ž‘Ô°‘ǵvŽ›ûÕ¬[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Ô_°‘DZon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘=3"°‘Ç´"\n"Ž‘Mt¬;Ž¡‘°gŽ¡‘ +gŽŸ­477.‘ üSho®9w‘ÕTtransform.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±show‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘gSŬ(­stringŽ‘!%M±textŽ‘5D1¬=‘Ç´""Ž‘ Íz¬);ŽŽŽŒ‹} +TÜ Šn ý‘ì°x¬478›¯3DLDF-1.1.5.1’{ SHO•ÃŽW‘ÕXTRANSF“ORM˜¬125Ž €n ý•@P­478.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°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°‘DZtextŽ‘åü°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±tr‘ÿ}'ansformŽ‘?³Cµ:±showŽ‘Šÿ¬(‘ª¨);Ž¡‘ +°gޤ­479.‘ üOutputting.Ž¡480.– ü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“non-template“functions“for“­P•®9oin“tŽ‘#/¡¯480˜°i‘ÇŽ¡‘ +±ostr–ÿ}'e“amŽ‘/¬&‘8à­opQÇeratorŽ‘-Ï•°Ž‘7Ï–¬(±ostr–ÿ}'e“amŽ‘%¬&‘8àµoŽ‘Ä;‘ª¨­P•®9oin“tŽ‘ šE¬&Ž‘(acµpŽ‘-ic¬);ޤ ¯See–ÕXalso“section“534.Ž¡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‘@¯329“°i‘Ǭ+°Ž¡‘ +­v®9ectorŽ‘)ªI°h­ShapQÇeŽ‘"Ab°Ž‘'Aci‘UU±extr‘ÿ}'actŽ‘"Ĭ(­constŽ‘*¢F‘ÿ +«oQÇcusŽ‘>uC¬&Ž‘FuC¬&Ž‘F.\n"Ž’üM°‘DZ 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ŽŸ­488.– ü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‘@¯329“°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ŽŸ­489.› üGet–ÕTminim®9um“z.˜¬[²LDF‘T2002.09.17.¬]Ž‘Zˆ6Added–UUthis“function.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔrealŽ‘FA±get‘‰ffŽ–®minimum‘‰ffŽ“zŽ’‰žÚ¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹€ +|´ Šn ý‘ì¬128›¯GET–ÕXMINIMUM“Z’¨3DLDF-1.1.5.1˜°x¬490Ž €n ý•@P­490.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­realŽ‘ ³/P•®9oin“tŽ‘=M{¬::‘±get‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘D]ܬ(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Point::getŽ‘kÆÜ_minimum_z()"Ž’³T5°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"minimum_z® ´==® ´"Ž‘TÔk°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[4Ž‘]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Point::get_Ž‘kÆÜminimum_z()"Ž’®8°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ’‹ë ¬[4Ž‘];Ž¡‘ +°gŽŸ­491.› üGet–ÕTmaxim®9um“z.˜¬[²LDF‘T2002.09.17.¬]Ž‘Zˆ6Added–UUthis“function.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔrealŽ‘FA±get‘‰ffŽ–®maximum‘‰ffŽ“zŽ’Š®¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŸ­492.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/P•®9oin“tŽ‘=M{¬::‘±get‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘Em¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Point::getŽ‘kÆÜ_maximum_z()"Ž’³T5°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"maximum_z® ´==® ´"Ž‘TÔk°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[5Ž‘]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Point::get_Ž‘kÆÜmaximum_z()"Ž’®8°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ’‹ë ¬[5Ž‘];Ž¡‘ +°gŽŸ­493.› üGet–ÕTmean“z.˜¬[²LDF‘T2003.05.16.¬]Ž‘Zˆ6Added–UUthis“function.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔrealŽ‘FA±get‘‰ffŽ–®me‘ÿ}'an‘‰ffŽ“zŽ‘v÷ ¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŸ­494.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°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ŽŸ­495.– ü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‘@¯329“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/Ôb•QÇo“olŽ‘I/:±set‘‰ffŽ‘®extr‘ÿ}'emesŽ‘ðì(‘ª®);ŽŽŽŒ‹ +ˆ· Šn ý‘ì°x¬496–¯3DLDF-1.1.5.1’:úSET‘ÕXEXTREMES“¬129Ž €n ý•@P­496.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olŽ‘#¡gP•®9oin“tŽ‘@;³¬::‘±set‘‰ffŽ‘®extr‘ÿ}'emesŽ‘7Á¬(‘ª®)Ž¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Point::setŽ‘kÆÜ_extremes()"Ž’®8°‘DZend‘‚ØlŽ‘ò°‘DZ 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°‘ǵiŽ‘ $°‘Ç´"]"Ž‘Ô°Ž¡‘<´"® ´==® ´INVALID_REAL.\nŽ’¤ÿÊ"Ž’®&µ°‘`†´"Setting® ´every® ´elemeŽ‘l`Jnt® ´in® ´projective_extŽ’Õ`remes® ´"Ž’þç°Ž¡‘<´"to® ´INVALID_REAL® ´andŽ’¤ÿÊ® ´returning® ´false.\n"Ž’M°‘DZ 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°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼±trueŽ‘J«T¬;Ž¡‘ +°gŽŸ­497.– ü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Ž¡‘ are–& then“sorted“in“descending“order“of“of“the“mean“of“the“minimš¸ãum“and“maxim˜um“z-v‘ÿqÇalues“from“theirŽ¡‘ -Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R«.Ž¡‘ -In–ÿÅall“three“of“these“cases,›âthe“ÂShapQÇesŽ‘)tÓ«that“are“furthest“from“the“ÂF‘ÿ -«oQÇcusŽ‘"ôÖ«are“output“ rst,˜so“that“they“canŽ¡bGe›UUco•¸ãv“ered,˜if˜necessary‘ÿ*ª,˜b“y˜ÂShapQÇesŽ‘*ó«that˜are˜closer.Ž¡·Ž‘ -«If‘–ÂSortingŽ‘)pà«::‘ÝNO_SORTŽ‘)Lí«is––passed“to“ÂPictureŽ‘)¢§«::‘ÏoutputŽ‘D«(‘ª®),‘VÏelementsŽ‘-ç«is“not“sorted,‘Vand“the“ÂShapQÇesŽ‘)‚u«are“outputŽ¡‘ -in–UUthe“order“in“whicš¸ãh“they“w˜ere“dra˜wn“or“ lled.ŽŽŽŒ‹x¨ Šn ý‘ì«120›­COMP‘ÿJªARE–ÕXMINIMUM“Z’°–3DLDFPRÃŽG˜·x«454Ž €n ý•@PÂ454.‘ üCompare–ÕTminim®9um“z.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ -«[¬LDF‘T2003.05.16.«]Ž‘Y;Added–UUthis“ÂclassŽ‘àQ«.ޤŸüÈ„`ÕÁGŽŽ¡·h›ª¨«De ne–UUcomparison“classes‘@­454˜·i‘Çަ‘ -ÂclassŽ‘$àRCompareu½‰™šs4Ž–Ôwminim®9umu½‰™šs4Ž“zŽ’”Æý·fަ‘ -ÂpublicŽ‘)=Ö«:‘Âin®9tŽ‘¤÷opQÇeratorŽ‘B;¬«(‘ª®)(ÂconstŽ‘*¢ShapQÇeŽ‘@l·Ž‘ElÏs1Ž‘P}±;‘ª¨ÂconstŽ‘ÕJShapQÇeŽ‘B¬·Ž‘G­Ïs2Ž‘R'½«)‘UUÂconstŽŽ¦‘·fަ‘ÂreturnŽ‘Aæ½Ïs1Ž‘J÷ÍŸ±~ŽŽ‘P÷ÎÏget‘‰ffŽ–®minimum‘‰ffŽ“zŽ’”U¦«(›ª¨)–DZ>“Ïs2Ž‘ Ø(Ÿ±~ŽŽ‘Ø)Ïget‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘U6«(˜);ަ‘·gަ‘ -g«;ޤ ­See–ÕXalso“sections“455“and“456.Ž¡This–ÕXco“Ïs2Ž‘ Ø(Ÿ±~ŽŽ‘Ø)Ïget‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘VE¦«(˜);ަ‘·gަ‘ -g«;ŽŽŽŒ‹yº$ Šn ý‘ì·x«456›­3DLDFPRÃŽG’™.COMP‘ÿJªARE–ÕXMEAN“Z˜«121Ž €n ý•@PÂ456.‘ üCompare–ÕTmean“z.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ -«[¬LDF‘T2002.09.17.«]Ž‘Y;Added–UUthis“ÂclassŽ‘àQ«.ޤŸüÈ„`ÕÁGŽŽ¡·h›ª¨«De ne–UUcomparison“classes‘@­454˜·i‘Ç«+·ަ‘ -ÂclassŽ‘$àRCompareu½‰™šs4Ž–Ôwmeanu½‰™šs4Ž“zŽ’€u·fަ‘ -ÂpublicŽ‘)=Ö«:‘Âin®9tŽ‘¤÷opQÇeratorŽ‘B;¬«(‘ª®)(ÂconstŽ‘*¢ShapQÇeŽ‘@l·Ž‘ElÏs1Ž‘P}±;‘ª¨ÂconstŽ‘ÕJShapQÇeŽ‘B¬·Ž‘G­Ïs2Ž‘R'½«)‘UUÂconstŽŽ¦‘·fަ‘ÂreturnŽ‘Dÿ«(((Ïs1Ž‘ Ÿ±~ŽŽ‘Ïget‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘Rné«(›ª¨)–õ´+“Ïs1Ž‘ ÄŸ±~ŽŽ‘ÅÏget‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘WtB«(˜))±=«2Ž‘)‘+±>ަ‘2«((Ïs2Ž‘ Ÿ±~ŽŽ‘Ïget‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘Rné«(›ª¨)–8à+“Ïs2Ž‘ IðŸ±~ŽŽ‘IñÏget‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘U·n«(˜))±=«2Ž‘));ަ‘·gަ‘ -g«;ŽŸÂ457.– üOutput.“«[¬LDF‘T2002.10.26.«]Ž‘\V¼ÏoutputŽ‘yeü«(‘ª®)–#Ûis“a“pure“ÂvirtualŽ‘,€4«function“in“ÂShapQÇeŽ‘$è«.‘ ÝYAfter“the“ÂShapQÇeŽŽ¦«pGoinš¸ãters–¿on“the“Âv®9ectorŽ‘'éÆPictureŽ‘N…׫::‘Ïshap‘ÿ}'esŽ‘"L«ha˜v˜e“bGeen“extracted,‘RZÏoutputŽ‘!aš«(‘ª®)“is“called“for“eac˜h“of“the“ÂShapQÇesŽŽ¦«they–6¨pGoinš¸ãt“to“(except“for“the“ones,‘<Ëif“an˜y‘ÿ*ª,‘<Ëwhere“Ïpr–ÿ}'oje“ctŽ‘!­¶«(›ª®)“failed).‘gÏoutputŽ‘!vÍ«(˜)“writes“the“MET‘ÿ*ªAPOST‘6 coGde“toަÏout‘‰ffŽ‘®str–ÿ}'e“amŽ‘/@œ«.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.09.16.«]Ž‘YAdded‘j!ÂF‘ÿ -«oQÇcusŽ‘#ÉŽ«argumen•¸ãt‘j!±fŽ‘ c«.‘°+I›jw“an“t–j!the“default“to“bGe“Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘;H«,‘oTbut“I˜can't“put“it“inަthe–Þdeclaration,›Âas“I‘Énormally“do,˜bšGecause“Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘=麫hasn't“b˜een“de ned“y•¸ãet.‘WJI'v“e–Þput“it“in“the“de nition,ަand––¿it“seems“to“wš¸ãork.‘6Sometimes“it“doGesn't,‘§and“I‘–®don't“kno˜w“wh˜y‘ÿ*ª,‘§nor“do“I‘–®kno˜w“wh˜y“it“w˜orks“this“time.ަIf–·ÿI‘·ærun“inš¸ãto“problems,‘Щthis“ma˜y“bGe“the“reason.‘™ÅIf“necessary‘ÿ*ª,‘ЩI‘·æcan“mak˜e“a“dumm˜y“v˜ersion“of“this“functionަwith–UUno“argumenš¸ãt“that“calls“Ïthis‘'v«v˜ersion“with“Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘>ˆ¨«as“its“argumen˜t.ަ‘ -[¬LDF‘T2002.09.17.«]Ž‘YèChanged–lthe“argumenš¸ãt“±fŽ‘ Ðê«from“ÂF‘ÿ -«oQÇcusŽ‘#ÍP«to“ÂconstŽ‘!­QF‘ÿ -«oQÇcusŽ‘BŸ«&Ž‘IÕ½.‘µÍRemo˜v˜ed“the“in˜v˜oGcations“ofަÏapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(›ª®)–UUand“Ïpr–ÿ}'oje“ctŽ‘!Ìc«(˜)“and“error“handling“coGde“to“Ïextr‘ÿ}'actŽ‘"Ä«(˜).ަ‘ -[¬LDF‘T2002.10.23.«]Ž‘[hRemo•¸ãv“ed–µthe“argumenš¸ãt“±fŽ‘ ®«.‘ ‘Since“Ïextr‘ÿ}'actŽ‘$w‰«(‘ª®)“tak˜es“care“of“applying“Ïpr–ÿ}'oje“ctŽ‘$,(«(‘ª®),‘M theަÏpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘c:Ыare–„½already“set,‘Зso“all“ÏoutputŽ‘!“ý«(‘ª®)“needs“to“do“is“write“them“to“Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘8J«with“theަpropGer–UUMET‘ÿ*ªAPOST“instructions.Ž¡ŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙÏoutputŽ‘@ «(‘ª®);ŽŽŽŒ‹zÁ Šn ý‘ì«122–­OUTPUT’=\03DLDFPRÃŽG“·x«458Ž €n ý•@PÂ458.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::‘ÏoutputŽ‘D«(‘ª®)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPoint::outŽ‘kÆÜput().\n"Ž’žTA·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(Ïdo‘‰ffŽ‘®outputŽ‘-½K·‘ÇÏfalseŽ‘v\«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"InÈ ÝPoint::output():Ž‘kÆÜÈ Ýdo_outputÈ Ý==È Ýfalse.Ž’ÔÆ È ÝReturning.\n"Ž’!“ö·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(Ïdr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘@á·‘ÇÝDRAWDOTŽ‘( k«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"drawdotÈ Ý"Ž‘7Íb«;Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïdr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘@á·‘ÇÝUNDRAWDOTŽ‘2e«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"drawdotÈ Ý"Ž‘7Íb«;Ž¡‘ÂelseŽ‘:Øâ±=·–ÿý«DRA‘þãWDOT“·±=Ž¡‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6‘š·‘ÛñÝ"WARNING!È ÝInvalidÈ Ý|dŽ‘nÛµrawdot_value|:È Ý"Ž’É=Þ·‘ÛñÏdr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘I«·Ž¡‘2Ý".È ÝUsingÈ Ý\"drawdot\"Ž’šÿÉ\n"Ž’® @·‘ÇÏ ushŽ‘€«;Ž¡#ÂifŽ‘ ´ø«0Ž‘$´ú±=·‘ÿý«!!‘qÇDe ne–UUa“ÂclassŽ‘5¦«for“information“on“the“run“state.‘o·±=Ž¡‘ÂifŽ‘)´û«(·:ÏR¾“un‘‰ffŽ‘®StateŽ‘-ò¦«::Ž‘4€äÏnon‘‰ffŽ‘®stopŽ‘[P„«)‘ÏgetcharŽ‘&%ü«(‘ª®);Ž¡#ÂendifŽŽ¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘P··‘ÇÝ"drawdotÈ Ý"Ž‘7Íb«;Ž¡‘·gŽ¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘HFÕ·‘7Ý"("Ž‘RÍ·‘7Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘c¼J«[0Ž‘]–7·“Ïme–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘]cB·“Ý",È Ý"Ž‘’Ê·Ž¡‘(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ’†¶«[1Ž‘]–Ç·“Ïme–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘Xå·“Ý")"Ž‘ w«;Ž¡‘ÂifŽ‘´ú«(Ïdr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘?>¬·6«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithcolorÈ Ý"Ž‘JTq·‘ÇŽ‘ÇÏdr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘D>­«;Ž¡#ÂifŽ‘ ´ø«1ŽŽ¡‘ÂifŽ‘´ú«(Ïp‘ÿ}'enŽ–àË·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithpenÈ Ý"Ž‘?Ôw·‘ÇÏp‘ÿ}'enŽ“«;Ž¡#ÂendifŽŽ¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ";\n"Ž‘q«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPoint::outpŽ‘kÆÜut().\n"Ž’™D·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gޤÂ459.‘ üLabQÇelling.Ž¡460.‘ üLabQÇel.ŽŽŽŒ‹{Ͷ Šn ý‘ì·x«461›­3DLDFPR•ÃŽG’ÿ€ÂSTRING‘ÕX­AR“GUMENT˜«123Ž €n ý•@PÂ461.– üstring‘ÕTargumen®9t.“«[¬LDF‘T2002.10.27.«]Ž‘Zˆ6The‘UUargumen¸ãts:ޤÂstringŽ‘!%MÏtext‘‰ffŽ‘®strŽŽ‘l‘«The–UUtext“for“the“labGel.Ž¡ÂstringŽ‘!%MÏp‘ÿ}'osition‘‰ffŽ‘®strŽŽ‘l‘«Indicates–ßÊthe“pšGosition“of“the“lab˜el“text“relativ¸ãe“to“the“ÂP•®9oin“tŽ‘z«.‘J™The“same“ÂstringsŽ‘'ïä«areޤ ‘l‘pGermitted–À'as“in“MET‘ÿ*ªAPOST.“They“are“written“unc•¸ãhec“k“ed–À'to“Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘3ë,‘ÚÛso“if“anŽ¡‘l‘inš¸ãv‘ÿqÇalid‘‹uÂstringŽ‘"æâ«is–‹uused,‘³Õit“w˜on't“cause“an“error“in“3DLDF,“but“it“will“in“MET‘ÿ*ªAPOST.Ž¡‘l‘The–ùüpGermitted“ÂstringsŽ‘,$H«are:‘»Ý"top"Ž‘'{j«(the“default),‘c%Ý"bot"Ž– )~«,‘c%Ý"lft"Ž“«,‘c%Ý"rt"Ž‘é«,‘c%Ý"ulft"ŽŽ¡‘l‘«(uppGer›_wleft),‘bÝ"llft"Ž‘&ÇÍ«(lo•¸ãw“er˜left),‘bÝ"urt"Ž‘!‡Ð«(uppGer˜righ“t),‘bÝ"lrt"Ž‘!‡Ð«(lo“w“er˜righ“t),‘band˜Ý""ŽŽ¡‘l‘«for–€putting“the“labGel“righš¸ãt“on“top“of“the“ÂP•®9oin“tŽ‘¯È«.‘²GThe“empt˜y“string“m˜ust“bGe“usedŽ¡‘l‘explicitly‘ÿ*ª,–UUbGecause“Ý"top"Ž‘!q«is“the“default.Ž©Âb•QÇo“olŽ‘¡fÏdotŽŽ‘l‘«If‘“gÏtrueŽ‘Wÿ«,‘¢ìthen–“gÂdotlabšQÇel“«is“written“to“Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘6gj«rather“than“Âlab˜el«.‘+þThis“argumen¸ãtŽ¡‘l‘is–UUmainly“for“use“bš¸ãy“the“function“Ïdotlab‘ÿ}'elŽ‘%UH«(‘ª®),“whic˜h“calls“Ïlab‘ÿ}'elŽ‘Éí«(‘ª®)“with“ÏdotŽ‘z·‘ÇÏtrueŽ‘‹°«.ަÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽŽ‘l‘«Indicates–À}the“ÂPictureŽ‘/«onš¸ãto“whic˜h“the“ÂLabQÇelŽ‘%Â]«should“bGe“placed.‘³>The“default“isŽ¡‘l‘Ïcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ’±‚­±:ަ‘ -«[¬LDF‘T2003.01.15.«]Ž‘Y;TO–UUDO:“Add“Ïp‘ÿ}'enŽ‘Ä]«argumen¸ãt“to“Ïlab‘ÿ}'elŽ‘Éí«(›ª®)“and“Ïdotlab‘ÿ}'elŽ‘%UH«(˜)!!ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.05.14.«]Ž‘Y·¡Changed‘»Ïtext‘‰ffŽ‘®strŽ‘(к«so–»that“it“is“no“longer“optional.‘úIt“doGesn't“makš¸ãe“an˜y“sense“to“prin˜tŽ¡emptš¸ãy–UUlabGels,“so“I'v˜e“made“it“a“required“argumen˜t.Ž¡‘ -[¬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.07.09.«]Ž‘Y;Made‘UUÏtext‘‰ffŽ‘®strŽ‘$™«,‘UUÏp‘ÿ}'osition‘‰ffŽ‘®strŽ‘67™«,–UUand“ÏdotŽ‘«·«argumen¸ãts“ÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘# ©Ïlab‘ÿ}'elŽ‘7A«(ÂconstŽ‘9rstringŽ‘?mÏtext‘‰ffŽ‘®strŽ‘`4Ó±;‘ª¨ÂconstŽ‘ästringŽ‘A7Ïp‘ÿ}'osition‘‰ffŽ‘®strŽ‘vÚC«=‘ßÈÝ"top"Ž‘¦!±;‘ª¨ÂconstŽ‘äb•QÇo“olŽ‘9”PÏdotŽ‘Ku%«=‘ßÈÏfalseŽ‘ ±;‘ª¨ÂPictureŽŽ¡‘«&Ž‘%Ç!Ïpictur‘ÿ}'eŽ‘G—«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹|Ø Šn ý‘ì«124›ÂSTRING‘ÕX­AR•ÃŽGUMENT’ÿ€3DLDFPR“G˜·x«462Ž €n ý•@PÂ462.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ÓžP•®9oin“tŽ‘?mê«::‘Ïlab‘ÿ}'elŽ‘tœ«(ÂconstŽ‘gstringŽ‘>ûyÏtext‘‰ffŽ‘®strŽ‘_½±;‘ª¨ÂconstŽ‘«stringŽ‘@¦!Ïp‘ÿ}'osition‘‰ffŽ‘®strŽ‘sˆe±;‘ª¨ÂconstŽ‘«b•QÇo“olŽ‘9":ÏdotŽ‘H#G±;‘ª¨ÂPictureŽ‘*qÏ«&Ž‘28íÏpictur‘ÿ}'eŽ‘QAë)Ž¡‘2ÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPoint::labŽ‘kÆÜel()"Ž’‰TM·‘ÇÝ"\n"Ž‘Œ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÂLabQÇelŽ‘Ag«::Ž‘#Ï¥ÝDO_LABELSŽ‘V] -·‘ÇÏfalseŽ‘v\«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"Label::DO_LABELSÈ Ý==Ž‘kÆÜÈ Ýfalse.È ÝReturning."Ž’ÒÔ#·‘ÇÝ"\n"Ž‘Œ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(·Ž‘ÏthisŽ‘²Ï·‘ÇÝINVALID_POINTŽ‘GY«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3çe·‘1¼Ý"WARNING!È ÝInÈ ÝPoint::Ž‘l1€label():È Ý"Ž’¤i†·‘1¼Ý"*thisÈ Ý==È ÝINVALID_POŽ‘l1€INT.\nNotÈ ÝdoingÈ ÝanytŽ’Õ1D\ŽŽ¡‘2hing.\n\n"Ž‘iÍg·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gަ‘ÂLabQÇelŽ‘3–º·Ž‘8–»ÏlblŽ‘FŸ=«=‘ÇÂnewŽ‘Ïœ«(ÂLabQÇelŽ‘Ac«);ަ‘ÏlblŽ‘AlŸ±~ŽŽ‘#AmÏptŽ‘/í"«=‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘nÅž«(‘ª¨);Ž¡‘·Ž‘«(ÏlblŽ‘ AjŸ±~ŽŽ‘AkÏptŽ‘&«)–Ç=“·Ž‘ÇÏthisŽ‘²Ï«;Ž¡‘ÂifŽ‘´ú«(ÏdotŽ‘È%·‘ÇÏtrueŽ–‹°«)‘ÏlblŽ‘AjŸ±~ŽŽ‘AkÏdotŽ‘& «=‘ÇÏtrueŽ“«;Ž¡‘ÏlblŽ‘AlŸ±~ŽŽ‘#AmÏp‘ÿ}'ositionŽ‘ILÜ«=‘ÇÏp‘ÿ}'osition‘‰ffŽ‘®strŽ‘5©\«;Ž¡‘ÂifŽ‘´ú«(Ïtext‘‰ffŽ‘®strŽ–#Ž\·6«=‘ÇÝ""Ž‘ Íz«)‘ÏlblŽ‘AjŸ±~ŽŽ‘AkÏtextŽ‘(`O«=‘ÇÏtext‘‰ffŽ‘®strŽ“«;Ž¡‘ÂelseŽ‘+ØáÏlblŽ‘5KŸ±~ŽŽ‘;LÏtextŽ‘O90«=‘ÇÝ"Pt."Ž‘q«;Ž¡‘Ïpictur‘ÿ}'eŽ‘5Ïð«+=ŽŽ‘H%DÏlblŽ‘Sf®«;‘±=·‘ÿý«[¬LDF‘T2002.10.27.«]Ž‘T7The‘UUÂLabQÇelŽ‘"ì «is–UUpushed“on¸ãto“the“Âv®9ectorŽ‘&TòÏlab‘ÿ}'elsŽ‘Aÿ7«in“Ïpictur‘ÿ}'eŽ‘"^+«.‘o·±=Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPoint::labeŽ‘kÆÜl()"Ž’„P·‘ÇÝ"\n"Ž‘Œ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŽŽŒ‹}äJ Šn ý‘ì·x«463›­3DLDFPR•ÃŽG’¿aÂSHOR‘ÿ -«T‘ÕX­AR“GUMENT˜«125Ž €n ý•@PÂ463.– üshort‘S½argumen®9t.“«[¬LDF‘T2003.04.01.«]Ž‘Zö"TO‘Ã$DO:–ÃAMakš¸ãe“non-ÂconstŽ‘˜Ž«v˜ersion“of“this“function!‘»ŠTO‘Ã$DO:ޤ Mak¸ãe–b>it“pšGossible“to“use“ÝPROJ_VALUESŽ‘C -ëto“use“the“v‘ÿqÇalues“in“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘gz«for“the“lab˜el.‘˜This“willŽ¡require–UUadding“argumenš¸ãts“for“use“b˜y“Ïpr–ÿ}'oje“ctŽ‘!Ìc«(‘ª®).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.04.01.«]Ž‘Z^Changed–^xthis“function“so“that“it“tests“whether“Ïtext‘‰ffŽ‘®shortŽ‘3œ_«is“equal“to“ÝWORLD_VALUESŽ‘C伫,Ž¡ÝPROJ_VALUESŽ‘:FG«,‘¶XÝUSER_VALUESŽ‘=üŸ«,–¶Xor‘¢ñÝVIEW_VALUESŽ‘=é8«,“whicš¸ãh–¢ñare“ÂpublicŽ‘&ƒ·constŽ‘DûõstaticŽ‘d’j«data“mem˜bGers“in“ÂP•®9oin“tŽ‘=9«.‘Z›IfŽ¡Ïtext‘‰ffŽ‘®shortŽ‘.ÏŒ«is–ðequal“to“ÝWORLD_VALUESŽ‘Cva«,‘Ï·Ž‘ ÐÏthisŽ‘ò£«is“copied“and“Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Jü«(‘ª®)“is“called“on“the“cop¸ãy‘ÿ*ª.‘B This“isŽ¡necessary‘ÿ*ª,›Ÿ«bGecause–Íthis“function“is“ÂconstŽ‘f«.‘$0Then,˜the“upGdated“v‘ÿqÇalues“in“the“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘T5˜«v¸ãector“of“theŽ¡cop¸ãy–UUare“used“for“the“labGel.Ž¡‘ -[¬LDF‘T2003.05.06.«]Ž‘Y;Added–UUcomparison“of“Ïtext‘‰ffŽ‘®shortŽ‘1Š«with“ÝWORLD_VALUES_X_YŽ‘WÛ«,“ÝPROJ_VALUES_X_YŽ‘R›«,Ž¡ÝUSER_VALUES_X_YŽ‘OF;«,– êor‘‘ÌÝVIEW_VALUES_X_YŽ‘RØ«,“whic¸ãh–‘Ìare“used“for“suppressing“the“z-coGordinate,‘ êwhen“the“v‘ÿqÇaluesŽ¡from–dïone“of“the“sets“of“cošGordinates“are“used“for“the“lab˜el.‘ –Also,›¨Öno“longer“cop¸ãying“·Ž‘ dðÏthisŽ‘P¦«,˜since“Ïget‘‰ffŽ‘®xŽ‘óV«(‘ª®),Ž¡Ïget‘‰ffŽ‘®yŽ‘t«(›ª®),–UUand“Ïget‘‰ffŽ‘®zŽ‘]V«(˜)“are“ÂconstŽ‘!÷«an•¸ãyw“a“y‘ÿ*ª.Ž¡‘ -[¬LDF‘T2003.05.20.«]Ž‘Y;Added–UU\ÝWORLD_VALUES_ZŽ‘J>«"“case.Ž¡‘ -[¬LDF‘T2003.05.22.«]Ž‘Xæ:BUG‘3KFIX:–3TThe“\ÝWORLD_VALUES_ZŽ‘J>«"“case“started“with“ÂifŽ‘ÆK«instead“of“ÂelseŽ‘?‡ifŽ‘!Ÿ*«.‘fqThis“causedŽ¡±sŽ‘°:ÏstrŽ‘ 7«(‘ª¨)–µÒto“ha•¸ãv“e–µÒan“erroneous“ vš¸ãe-digit“in˜teger“follo˜wing“the“closing“paren˜thesis,‘ ðwhen“ÝWORLD_VALUESŽ‘Hñè«orŽ¡ÝWORLD_VALUES_X_YŽ‘Wó «wš¸ãas–lÓused.‘¸@I‘lÍdon't“kno˜w“wh˜y“this“should“ha˜v˜e“bGeen“the“case,‘r²but“c˜hanging“ÂifŽ‘9I«to“ÂelseŽ‘²…ifŽŽ¡« xed–Úthe“problem.‘^ôIt“probably“had“something“to“do“with“the“fact“that“ÝWORLD_VALUES_ZŽ‘P?ò«had“the“same“v‘ÿqÇalueŽ¡as‘UUÝVIEW_VALUES_X_YŽ‘R›«.‘qÇI'vš¸ãe–UU xed“this“abGo˜v˜e“toGda˜y‘ÿ*ª,“toGo.Ž¡‘ -[¬LDF‘T2003.06.06.«]Ž‘WëÉChanged–8ãthe“case,‘qÇwhere“Ïtext‘‰ffŽ‘®shortŽ›/Q5«=“ÝWORLD_VALUESŽ‘Cø -«or“Ïtext‘‰ffŽ‘®shortŽ˜«=“ÝWORLD_VALUES_X_YŽ‘V¿«:Ž¡The–?KcoGordinates“surrounded“bš¸ãy“paren˜theses“are“no˜w“prin˜ted“out“using“T‘þU>ŸÓVEŽ‘ãxXŽ‘Û¨'s“math“moGde,–C³i.e.,“\(±x;–ª¨y[Ù;“zp—«)"‘?Kin-Ž¡stead–UUof“\(±x«,“±y[Ù«,“±zp—«)".Ž¡‘ -[¬LDF‘T2003.07.09.«]Ž‘Y;Made‘UUÏtext‘‰ffŽ‘®shortŽ‘.4Ä«,‘UUÏp‘ÿ}'osition‘‰ffŽ‘®strŽ‘67™«,–UUand“ÏdotŽ‘«·«argumen¸ãts“ÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"Ö4Ïlab‘ÿ}'elŽ‘7JÌ«(ÂconstŽ‘ýshortŽ‘;¥ûÏtext‘‰ffŽ‘®shortŽ‘f…j±;‘ª¨ÂconstŽ‘­¥stringŽ‘@«MÏp‘ÿ}'osition‘‰ffŽ‘®strŽ‘vT©«=‘ÇÝ"top"Ž‘q±;‘ª¨ÂconstŽ‘­¥b•QÇo“olŽ‘9'fÏdotŽ‘Jï‹«=‘ÇÏfalseŽ‘v\±;‘ª¨ÂPictureŽŽ¡‘«&Ž‘%Ç!Ïpictur‘ÿ}'eŽ‘G—«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹~토Šn ý‘ì«126›ÂSHOR‘ÿ -«T‘ÕX­AR•ÃŽGUMENT’¿a3DLDFPR“G˜·x«464Ž €n ý•@PÂ464.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘#‰EP•®9oin“tŽ‘@#‘«::‘Ïlab‘ÿ}'elŽ‘tœ«(ÂconstŽ‘¶shortŽ‘= Ïtext‘‰ffŽ‘®shortŽ‘g댱;‘ª¨ÂconstŽ‘ `¶stringŽ‘BoÏp‘ÿ}'osition‘‰ffŽ‘®strŽ‘tó³±;‘ª¨ÂconstŽ‘ `¶b•QÇo“olŽ‘:ˆÏdotŽ‘IŽ•±;‘ª¨ÂPictureŽŽ¡‘2«&Ž‘9Ç#Ïpictur‘ÿ}'eŽ‘XÏù«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂstringstreamŽ‘W,¹±sŽ‘[ܹ«;ަ‘ÂifŽ‘´ú«(Ïtext‘‰ffŽ‘®shortŽ‘-¦‡·‘ÇÝWORLD_VALUESŽ‘D†<·_‘8àÏtext‘‰ffŽ‘®shortŽ‘/ßg·‘ÇÝWORLD_VALUES_X_YŽ‘WMP«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"It'sÈ ÝWORLD_VALUESÈ ÝoŽ‘kÆÜrÈ ÝWORLD_VALUES_X_Y.\Ž’ÔÆ n"Ž’ßÍ«;Ž¡‘±sŽ‘%w·‘ÇÝ"$("Ž›Œ·‘ÇÏget‘‰ffŽ‘®xŽ‘U«(‘ª¨)–Ç·“Ý",È Ý"Ž˜·“Ïget‘‰ffŽ‘®yŽ‘;.«(‘ª¨);Ž¡‘ÂifŽ‘)´û«(Ïtext‘‰ffŽ‘®shortŽ‘-¦‡·‘ÇÝWORLD_VALUESŽ‘BM\«)‘±sŽ‘ w·‘ÇÝ",È Ý"Ž‘Œ·‘ÇÏget‘‰ffŽ‘®zŽ‘Ï«(‘ª¨);Ž¡‘±sŽ‘%w·‘ÇÝ")$"Ž‘Mt«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïtext‘‰ffŽ‘®shortŽ‘-¦‡·‘ÇÝWORLD_VALUES_ZŽ‘LÍV«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"It'sÈ ÝWORLD_Z.\n"Ž‘\M«;Ž¡‘±sŽ‘%w·‘ÇÏget‘‰ffŽ‘®zŽ‘Ï«(‘ª¨);Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïtext‘‰ffŽ‘®shortŽ‘-¦‡·‘ÇÝPROJ_VALUESŽ‘= _«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"It'sÈ ÝPROJ_VALUES\n"Ž‘lMD«;Ž¡‘Ïc‘ÿ}'errŽ‘4Sº·‘žÝ"WARNING!È ÝInÈ ÝPoint::Ž‘lÕlabel():"Ž— 3·‘žÏend‘‚ØlŽ‘-ä·‘žÝ"text_shortÈ Ý==È ÝPROJ_Ž‘lÕVALUES.È Ý"Ž“·Ž¡‘2Ý"Haven'tÈ ÝprogrammedÈ Ž’šÿÉÝthisÈ ÝcaseÈ Ýyet.\n"Ž’÷·‘ÇÝ"Returning.\n\n"Ž‘Zh·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïtext‘‰ffŽ‘®shortŽ‘-¦‡·‘ÇÝUSER_VALUESŽ‘= _«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"It'sÈ ÝUSER_VALUES\n"Ž‘lMD«;Ž¡‘Ïc‘ÿ}'errŽ‘4Sº·‘žÝ"WARNING!È ÝInÈ ÝPoint::Ž‘lÕlabel():"Ž— 3·‘žÏend‘‚ØlŽ‘-ä·‘žÝ"text_shortÈ Ý==È ÝUSER_Ž‘lÕVALUES.È Ý"Ž“·Ž¡‘2Ý"Haven'tÈ ÝprogrammedÈ Ž’šÿÉÝthisÈ ÝcaseÈ Ýyet.\n"Ž’÷·‘ÇÝ"Returning.\n\n"Ž‘Zh·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïtext‘‰ffŽ‘®shortŽ‘-¦‡·‘ÇÝVIEW_VALUESŽ‘= _«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"It'sÈ ÝVIEW_VALUES\n"Ž‘lMD«;Ž¡‘Ïc‘ÿ}'errŽ‘4Sº·‘žÝ"WARNING!È ÝInÈ ÝPoint::Ž‘lÕlabel():"Ž— 3·‘žÏend‘‚ØlŽ‘-ä·‘žÝ"text_shortÈ Ý==È ÝVIEW_Ž‘lÕVALUES.È Ý"Ž“·Ž¡‘2Ý"Haven'tÈ ÝprogrammedÈ Ž’šÿÉÝthisÈ ÝcaseÈ Ýyet.\n"Ž’÷·‘ÇÝ"Returning.\n\n"Ž‘Zh·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"It'sÈ ÝsomeÈ ÝotherÈ ÝvalŽ‘kÆÜue.\n"Ž’‹Í2«;Ž¡‘±sŽ‘%w·‘ÇÏtext‘‰ffŽ‘®shortŽ‘-¦‡«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"s.str()È Ý==È Ý"Ž‘JTq·‘DZsŽ‘w:ÏstrŽ‘ 7«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘Ïlab‘ÿ}'elŽ‘(tš«(±sŽ‘°:ÏstrŽ‘ 7«(–ª¨)±;“Ïp‘ÿ}'osition‘‰ffŽ‘®strŽ‘4Œì±;“ÏdotŽ‘«µ±;“Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ465.– üDotlabQÇel.“«TO‘ÅŠDO:–ÅéAdd“an“optional“Ïp‘ÿ}'enŽ‘¥…«argumen¸ãt.‘ÃIf“it's“used,‘"use“Ïdr‘ÿ}'awdotŽ‘(Yj«(‘ª®)“with“the“Ïp‘ÿ}'enŽŽ¡«argumen¸ãt,›ptogether–ò7with“Ïlab‘ÿ}'elŽ‘fÏ«(‘ª®).‘HnWhen“I‘òdo“this,˜I‘òshould“also“add“ÂrealŽ‘BG«argumen¸ãts“(to“bGoth“Ïlab‘ÿ}'elŽ‘fÏ«(‘ª®)“andŽ¡Ïdotlab‘ÿ}'elŽ‘!ÿó«(‘ª®))–,Äfor“shifting“the“pGosition“of“the“text,‘4áand“a“vš¸ãersion“with“a“ÂP•®9oin“tŽ‘!óЫargumen˜t“for“the“same“purpGose.Ž¡This–UUis“so“that“the“dot“wš¸ãon't“co˜v˜er“the“text.‘qÇ[¬LDF‘T2003.07.16.«]ŽŽŽŽŒ‹û Šn ý‘ì·x«466›­3DLDFPR•ÃŽG’ÿ€ÂSTRING‘ÕX­AR“GUMENT˜«127Ž €n ý•@PÂ466.‘ üstring‘ÕTargumen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ -«[¬LDF‘T2003.07.09.«]Ž‘Y;Made‘UUÏtext‘‰ffŽ‘®strŽ‘'qî«and‘UUÏp‘ÿ}'osition‘‰ffŽ‘®strŽ‘9Œî«argumen¸ãts‘UUÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘$tiÏdotlab‘ÿ}'elŽ‘Ft\«(ÂconstŽ‘¡2stringŽ‘B=Ïtext‘‰ffŽ‘®strŽ‘cS±;‘ª¨ÂconstŽ‘!KÚstringŽ‘Cç·Ïp‘ÿ}'osition‘‰ffŽ‘®strŽ‘|V«=‘7[Ý"top"Ž‘ý´±;‘ª¨ÂPictureŽŽ¦‘«&Ž‘%Ç!Ïpictur‘ÿ}'eŽ‘G—«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŸÂ467.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::‘Ïdotlab‘ÿ}'elŽ‘"ÿ÷«(ÂconstŽ‘*¢stringŽ‘?OïÏtext‘‰ffŽ‘®strŽ‘`3±;‘ª¨ÂconstŽ‘ÕJstringŽ‘@ú—Ïp‘ÿ}'osition‘‰ffŽ‘®strŽ‘sÜÛ±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘Qkþ«)‘UUÂconstŽŽ¦‘ -·fަ‘Ïlab‘ÿ}'elŽ‘(tš«(Ïtext‘‰ffŽ‘®strŽ‘ ÇD±;‘ª¨Ïp‘ÿ}'osition‘‰ffŽ‘®strŽ‘4Œì±;‘ª¨ÏtrueŽ‘o@±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);ަ‘ -·gŽŸÂ468.‘ üshort‘ÕTargumen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2003.07.09.«]Ž‘Y;Made‘UUÏtext‘‰ffŽ‘®shortŽ‘1Š«and‘UUÏp‘ÿ}'osition‘‰ffŽ‘®strŽ‘9Œî«argumen¸ãts‘UUÂconstŽ‘*¢«.Ž¡ŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘$[)Ïdotlab‘ÿ}'elŽ‘F[«(ÂconstŽ‘‡òshortŽ‘>¯åÏtext‘‰ffŽ‘®shortŽ‘iT±;‘ª¨ÂconstŽ‘!2šstringŽ‘Cµ7Ïp‘ÿ}'osition‘‰ffŽ‘®strŽ‘{¤À«=‘ EÝ"top"Ž‘Óž±;‘ª¨ÂPictureŽŽ¦‘«&Ž‘%Ç!Ïpictur‘ÿ}'eŽ‘G—«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŸÂ469.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::‘Ïdotlab‘ÿ}'elŽ‘"ÿ÷«(ÂconstŽ‘*¢shortŽ‘;õEÏtext‘‰ffŽ‘®shortŽ‘fÔ´±;‘ª¨ÂconstŽ‘ÕJstringŽ‘@ú—Ïp‘ÿ}'osition‘‰ffŽ‘®strŽ‘sÜÛ±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘Qkþ«)‘UUÂconstŽŽ¦‘ -·fަ‘Ïlab‘ÿ}'elŽ‘(tš«(Ïtext‘‰ffŽ‘®shortŽ‘*ßo±;‘ª¨Ïp‘ÿ}'osition‘‰ffŽ‘®strŽ‘4Œì±;‘ª¨ÏtrueŽ‘o@±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);ަ‘ -·gŽŽŽŒ‹€ [ Šn ý‘ì«128›ÂSHOR‘ÿ -«T‘ÕX­AR•ÃŽGUMENT’¿a3DLDFPR“G˜·x«470Ž €n ý•@PÂ470.‘ ü«[¬LDF‘T2002.09.06.«]Ž‘[#¯Commenš¸ãted–ðÎout“·Ž‘ ·ìÂLabQÇelŽ‘'ùO«(‘ª¨).‘D3This“w˜as“the“cause“of“a“bug“that“caused“a“memoryޤ fault–ªµwhen“I‘ªŸtried“to“use“a“labGel“in“ gure“2“(Ïb–ÿ}'e“gin gŽ‘!¡«(2Ž‘))“after“haš¸ãving“used“it“in“ gure“1“and“then“in˜v˜okingŽ¡Ïcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘B%DZ:Ïcle‘ÿ}'arŽ‘(Ù«(‘ª¨)–UUin“bGet•¸ãw“een.Ž©·h–ª¨«De ne‘UUÂLabQÇelŽ‘"ì «functions‘@­470“·i‘ÇŽ¡«#ÂifŽ‘ ´ø«0ŽŽ¡‘ -ÂLabQÇelŽ‘'Ah«::Ž‘-Ϧ·Ž‘5–ÄÂLabQÇelŽ‘QØ'«(‘ª¨)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÏptŽ‘ «µ·6«=‘Ç0Ž‘Ç)‘ÂdeleteŽ‘&ƺÏptŽ‘0«W«;Ž¡‘ -·gŽ¡«#ÂendifŽŽ¤ ­See–ÕXalso“sections“471“and“472.Ž¡This–ÕXcoG«&Ž‘F­±fŽ‘L“;‘ª¨ÂconstŽ‘¾punsignedŽ‘OÞ¤shortŽ‘m’mÏpr‘ÿ}'ojŽ’€†0±;‘ª¨ÂrealŽ‘FüÏfactorŽ‘3JÚ±;‘ª¨ÂconstŽ‘¾pT‘ÿ -«ransformŽ‘Wph«&Ž‘_7†±tŽ‘bÓø«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(·:±tŽ‘œr:Ïis‘‰ffŽ‘®identityŽ‘-2¢«(‘ª¨))‘·Ž‘ -ÏptŽ‘«¶·«=ŽŽ‘&9í±tŽ‘)Ö_«;Ž¡‘ÏptŽ‘䟟±~ŽŽ‘!ä Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘h«(‘ª¨);Ž¡‘ÂifŽ‘´ú«(·:ÏptŽ‘äŸ±~ŽŽ‘ äžÏpr–ÿ}'oje“ctŽ‘,[¬«(±fŽ‘øæ;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3²ƒ·‘üÚÝ"WARNING!È ÝInÈ ÝLabel::Ž‘küžoutput():\n"Ž’®¼·‘üÚÝ"PointÈ ÝinÈ ÝLabelÈ ÝcannŽ‘küžotÈ ÝbeÈ Ýprojected!È Ý"Ž’Íÿª·Ž¡‘2Ý"NotÈ ÝprintingÈ ÝLabel\Ž’šÿÉn"Ž’¨ÍC·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÏdotŽ‘È%·‘ÇÏtrueŽ‘‹°«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"dot"Ž‘q«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ"label"Ž‘( k«;Ž¡‘ÂifŽ‘´ú«(Ïp‘ÿ}'ositionŽ–& o·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"."Ž‘Ô·‘ÇÏp‘ÿ}'ositionŽ“«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ"(btexÈ Ý"Ž‘0€·‘ÇÏtextŽ‘åü·‘ÇÝ"È Ýetex,È Ý("Ž‘:”z·‘ÇÏptŽ‘ -«µŸ±~ŽŽ‘«¶Ïget‘‰ffŽ‘®xŽ‘':«(Ý'p'Ž‘F_±;Ž¡‘(ÏfalseŽ‘<¯H«)–Ç·“ÂP•®9oin“tŽ‘ad«::Ž‘%ï¢Ïme–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘| Ž·“Ý",È Ý"Ž‘Œ·“ÏptŽ‘ -«µŸ±~ŽŽ‘«¶Ïget‘‰ffŽ‘®yŽ‘'Ì«(Ý'p'Ž‘F_±;Ž¡‘(ÏfalseŽ‘<¯H«)–Ç·“ÂP•®9oin“tŽ‘ad«::Ž‘%ï¢Ïme–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘| Ž·“Ý"));\n"Ž‘( k«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŽŽŒ‹¹ Šn ý‘ì·x«473›­3DLDFPRÃŽG’¯,MA–ÿJªTRIX‘ÕXOPERA“TIONS˜«129Ž €n ý•@PÂ473.‘ üMatrix‘ÕTopQÇerations.Ž©474.‘ üMultiplication–ÕTbš®9y“a“T‘ÿ -«ransform“with“assignmen˜t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.11.06.«]Ž‘YeBUG‘_|FIX:–_This“function“noš¸ãw“returns“±tŽ‘ -[p«instead“of“Ïtr‘ÿ}'ansformŽ‘/À«.‘DThis“mak˜es“it“pGossible“toŽ¡c¸ãhain–UUexpressions“using“ÂopQÇeratorŽ‘.ì -·«=ŽŽŽ‘;³)(‘ª¨).ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ŽŸ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓopQÇeratorŽ‘m_ˆ·«=ŽŽŽ‘z&§(ÂconstŽ‘*¢T‘ÿ -«ransformŽ‘Uót«&Ž‘]º’±tŽ‘aW«);ަÂ475.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::Ž‘dñ]ÂopQÇeratorŽ’ˆ·«=ŽŽŽ’O1(ÂconstŽ‘*¢T‘ÿ -«ransformŽ‘Uót«&Ž‘]º’±tŽ‘aW«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7漫(Ïtr‘ÿ}'ansformŽ‘.zY·«=ŽŽ‘>±tŽ‘A¥«);Ž¡‘ -·gަÂ476.– üV‘ÿ -«ector‘uopQÇerations.“«[¬LDF‘T2002.10.27.«]Ž‘Z²îNote–€ that“the“v¸ãector“opšGerations“don't“a ect“the“w“co˜ordi-Ž¡nate.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘YwIn–R‘the“functions“ÂopQÇeratorŽ‘.éF«+Ž‘6°d(–ª¨),ÂopQÇeratorŽ‘+–µ«+=ŽŽŽ‘;$ñ(“),‘SÂopQÇeratorŽ‘.éÔ·Ž‘6°ò«(“),‘Sand‘R‘ÂopQÇeratorŽ‘.éF·«=ŽŽŽ‘>w‚(“):‘peItŽ¡doGesn't–3:seem“wš¸ãorth“it“to“write“non-ÂconstŽ‘!‡«v˜ersions,‘ê²although“I‘2}could.‘ uNo˜w“using“the“elemen˜ts“ofŽ¡Ïp0Ž‘ À±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Qñ -«directly–Ý instead“of“using“Ïget‘‰ffŽ‘®xŽ‘ks«(–ª®),‘>ùÏget‘‰ffŽ‘®yŽ‘³«(“),›>ùand‘Ý Ïget‘‰ffŽ‘®zŽ‘å «(“).‘ ìThis–Ý is“safe,˜as“is“callingŽ¡Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª®)–UUon“±pŽ‘]U«,“and“sa•¸ãv“es–UUthe“cost“of“three“function“calls.ޤŸüÈ„`ÕÁGŽŽ¦Â477.‘ üV‘ÿ -«ector‘ÕTaddition.Ž¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ŽŸ ‘ -ÂP•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S«+Ž‘\Mq(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)‘UUÂconstŽ‘*¢«;ަÂ478.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::Ž‘L(ÂopQÇeratorŽ‘w®Ý«+Ž‘uû(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«;ŽŸ‘±aŽ‘J«=‘Ç·Ž‘ÇÏthisŽ‘²Ï«;Ž¡‘±pŽ‘:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±aŽ‘I2:ÏshiftŽ‘}«(±pŽ‘:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ–Mþ«[0Ž›]±;‘ª¨pŽ‘²¨:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“«[1Ž˜]±;‘ª¨pŽ‘²¨:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“«[2Ž˜]);Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gަÂ479.‘ üV‘ÿ -«ector–ÕTaddition“with“assignmen®9t.ŽŸ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”Ž«+=ŽŽŽ‘^"Ê(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«);ŽŽŽŒ‹‚# Šn ý‘ì«130›­VECTOR–ÕXADDITION“WITH“ASSIGNMENT’¶,3DLDFPRÃŽG˜·x«480Ž €n ý•@PÂ480.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::Ž‘F&cÂopQÇeratorŽ‘q½«+=ŽŽŽ’KT(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)Ž¡‘ -·fŽ¡‘±pŽ‘:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÏshiftŽ‘(«(±pŽ‘:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ–Mþ«[0Ž›]±;‘ª¨pŽ‘²¨:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“«[1Ž˜]±;‘ª¨pŽ‘²¨:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“«[2Ž˜]);Ž¡‘ -·gŽŸÂ481.‘ üV‘ÿ -«ector‘ÕTsubtraction.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S·Ž‘\Mq«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)‘UUÂconstŽ‘*¢«;ŽŸÂ482.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::Ž‘L(ÂopQÇeratorŽ‘w®Ý·Ž‘uû«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘±pŽ‘:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±aŽ‘I2:ÏshiftŽ‘}«(·Ž‘DZpŽ‘ Ï:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ–Mþ«[0Ž›]±;‘ª¨·Ž‘ qƱpŽ‘yÆ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“«[1Ž˜]±;‘ª¨·Ž‘ qƱpŽ‘yÆ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“«[2Ž˜]);Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gŽŸÂ483.‘ üV‘ÿ -«ector–ÕTsubtraction“with“assignmen®9t.ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”Ž·«=ŽŽŽ‘^"Ê(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«);ŽŸÂ484.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::Ž‘F&cÂopQÇeratorŽ‘q½·«=ŽŽŽ’KT(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)Ž¡‘ -·fŽ¡‘±pŽ‘:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÏshiftŽ‘(«(·Ž‘DZpŽ‘ Ï:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ–Mþ«[0Ž›]±;‘ª¨·Ž‘ qƱpŽ‘yÆ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“«[1Ž˜]±;‘ª¨·Ž‘ qƱpŽ‘yÆ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“«[2Ž˜]);Ž¡‘ -·gŽŸÂ485.‘ üV‘ÿ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R¬.Ž¡‘ +In–ÿÅall“three“of“these“cases,›âthe“­ShapQÇesŽ‘)tÓ¬that“are“furthest“from“the“­F‘ÿ +«oQÇcusŽ‘"ôÖ¬are“output“ rst,˜so“that“they“canŽ¡bGe›UUco•¸ãv“ered,˜if˜necessary‘ÿ*ª,˜b“y˜­ShapQÇesŽ‘*ó¬that˜are˜closer.Ž¡°Ž‘ +¬If‘–­SortingŽ‘)pà¬::‘´NO_SORTŽ‘)Lí¬is––passed“to“­PictureŽ‘)¢§¬::‘±outputŽ‘D¬(‘ª®),‘V±elementsŽ‘-ç¬is“not“sorted,‘Vand“the“­ShapQÇesŽ‘)‚u¬are“outputŽ¡‘ +in–UUthe“order“in“whicš¸ãh“they“w˜ere“dra˜wn“or“ lled.ŽŽŽŒ‹‚ +—‡ Šn ý‘ì¬130›¯COMP‘ÿJªARE–ÕXMINIMUM“Z’ù=3DLDF-1.1.5.1˜°x¬498Ž €n ý•@P­498.‘ üCompare–ÕTminim®9um“z.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ +¬[²LDF‘T2003.05.16.¬]Ž‘Y;Added–UUthis“­classŽ‘àQ¬.ޤŸüÈ„`ÕÁGŽŽ¡°h›ª¨¬De ne–UUcomparison“classes‘@¯498˜°i‘Çަ‘ +­classŽ‘$àRCompareu½‰™šs4Ž–Ôwminim®9umu½‰™šs4Ž“zŽ’”Æý°fަ‘ +­publicŽ‘)=Ö¬:‘­in®9tŽ‘¤÷opQÇeratorŽ‘B;¬¬(‘ª®)(­constŽ‘*¢ShapQÇeŽ‘@l°Ž‘El±s1Ž‘P}µ;‘ª¨­constŽ‘ÕJShapQÇeŽ‘B¬°Ž‘G­±s2Ž‘R'½¬)‘UU­constŽŽ¦‘°fަ‘­returnŽ‘Aæ½±s1Ž‘J÷ÍŸµ~ŽŽ‘P÷αget‘‰ffŽ–®minimum‘‰ffŽ“zŽ’”U¦¬(›ª¨)–ǵ>“±s2Ž‘ Ø(Ÿµ~ŽŽ‘Ø)±get‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘U6¬(˜);ަ‘°gަ‘ +g¬;ޤ ¯See–ÕXalso“sections“499“and“500.Ž¡This–ÕXco“±s2Ž‘ Ø(Ÿµ~ŽŽ‘Ø)±get‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘VE¦¬(˜);ަ‘°gަ‘ +g¬;ŽŽŽŒ‹ƒ +©” Šn ý‘ì°x¬500›¯3DLDF-1.1.5.1’ %˜COMP‘ÿJªARE–ÕXMEAN“Z˜¬131Ž €n ý•@P­500.‘ üCompare–ÕTmean“z.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ +¬[²LDF‘T2002.09.17.¬]Ž‘Y;Added–UUthis“­classŽ‘àQ¬.ޤŸüÈ„`ÕÁGŽŽ¡°h›ª¨¬De ne–UUcomparison“classes‘@¯498˜°i‘Ǭ+°ަ‘ +­classŽ‘$àRCompareu½‰™šs4Ž–Ôwmeanu½‰™šs4Ž“zŽ’€u°fަ‘ +­publicŽ‘)=Ö¬:‘­in®9tŽ‘¤÷opQÇeratorŽ‘B;¬¬(‘ª®)(­constŽ‘*¢ShapQÇeŽ‘@l°Ž‘El±s1Ž‘P}µ;‘ª¨­constŽ‘ÕJShapQÇeŽ‘B¬°Ž‘G­±s2Ž‘R'½¬)‘UU­constŽŽ¦‘°fަ‘­returnŽ‘Dÿ¬(((±s1Ž‘ Ÿµ~ŽŽ‘±get‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘Rné¬(›ª¨)–õ´+“±s1Ž‘ ÄŸµ~ŽŽ‘űget‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘WtB¬(˜))µ=¬2Ž‘)‘+µ>ަ‘2¬((±s2Ž‘ Ÿµ~ŽŽ‘±get‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘Rné¬(›ª¨)–8à+“±s2Ž‘ IðŸµ~ŽŽ‘Iñ±get‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘U·n¬(˜))µ=¬2Ž‘));ަ‘°gަ‘ +g¬;ŽŸ­501.– üOutput.“¬[²LDF‘T2002.10.26.¬]Ž‘\V¼±outputŽ‘yeü¬(‘ª®)–#Ûis“a“pure“­virtualŽ‘,€4¬function“in“­ShapQÇeŽ‘$è¬.‘ ÝYAfter“the“­ShapQÇeŽŽ¦¬pGoinš¸ãters–¿on“the“­v®9ectorŽ‘'éÆPictureŽ‘N…׬::‘±shap‘ÿ}'esŽ‘"L¬ha˜v˜e“bGeen“extracted,‘RZ±outputŽ‘!aš¬(‘ª®)“is“called“for“eac˜h“of“the“­ShapQÇesŽŽ¦¬they–6¨pGoinš¸ãt“to“(except“for“the“ones,‘<Ëif“an˜y‘ÿ*ª,‘<Ëwhere“±pr–ÿ}'oje“ctŽ‘!­¶¬(›ª®)“failed).‘g±outputŽ‘!vͬ(˜)“writes“the“MET‘ÿ*ªAPOST‘6 coGde“toަ±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘/@œ¬.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.09.16.¬]Ž‘YAdded‘j!­F‘ÿ +«oQÇcusŽ‘#ÉŽ¬argumen•¸ãt‘j!µfŽ‘ c¬.‘°+I›jw“an“t–j!the“default“to“bGe“±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘;H¬,‘oTbut“I˜can't“put“it“inަthe–Þdeclaration,›Âas“I‘Énormally“do,˜bšGecause“±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘=麬hasn't“b˜een“de ned“y•¸ãet.‘WJI'v“e–Þput“it“in“the“de nition,ަand––¿it“seems“to“wš¸ãork.‘6Sometimes“it“doGesn't,‘§and“I‘–®don't“kno˜w“wh˜y‘ÿ*ª,‘§nor“do“I‘–®kno˜w“wh˜y“it“w˜orks“this“time.ަIf–·ÿI‘·ærun“inš¸ãto“problems,‘Щthis“ma˜y“bGe“the“reason.‘™ÅIf“necessary‘ÿ*ª,‘ЩI‘·æcan“mak˜e“a“dumm˜y“v˜ersion“of“this“functionަwith–UUno“argumenš¸ãt“that“calls“±this‘'v¬v˜ersion“with“±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘>ˆ¨¬as“its“argumen˜t.ަ‘ +[²LDF‘T2002.09.17.¬]Ž‘YèChanged–lthe“argumenš¸ãt“µfŽ‘ Ðê¬from“­F‘ÿ +«oQÇcusŽ‘#ÍP¬to“­constŽ‘!­QF‘ÿ +«oQÇcusŽ‘BŸ¬&Ž‘IÕ½.‘µÍRemo˜v˜ed“the“in˜v˜oGcations“ofަ±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(›ª®)–UUand“±pr–ÿ}'oje“ctŽ‘!Ìc¬(˜)“and“error“handling“coGde“to“±extr‘ÿ}'actŽ‘"Ĭ(˜).ަ‘ +[²LDF‘T2002.10.23.¬]Ž‘[hRemo•¸ãv“ed–µthe“argumenš¸ãt“µfŽ‘ ®¬.‘ ‘Since“±extr‘ÿ}'actŽ‘$w‰¬(‘ª®)“tak˜es“care“of“applying“±pr–ÿ}'oje“ctŽ‘$,(¬(‘ª®),‘M theަ±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘c:Ьare–„½already“set,‘Зso“all“±outputŽ‘!“ý¬(‘ª®)“needs“to“do“is“write“them“to“±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘8J¬with“theަpropGer–UUMET‘ÿ*ªAPOST“instructions.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙ±outputŽ‘@ ¬(‘ª®);ŽŽŽŒ‹„ +° Šn ý‘ì¬132–¯OUTPUT’4èš3DLDF-1.1.5.1“°x¬502Ž €n ý•@P­502.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::‘±outputŽ‘D¬(‘ª®)Ž¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Point::outŽ‘kÆÜput().\n"Ž’žTA°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(±do‘‰ffŽ‘®outputŽ‘-½K°‘DZfalseŽ‘v\¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"In® ´Point::output():Ž‘kÆÜ® ´do_output® ´==® ´false.Ž’ÔÆ ® ´Returning.\n"Ž’!“ö°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(±dr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘@á°‘Ç´DRAWDOTŽ‘( k¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"drawdot® ´"Ž‘7Íb¬;Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±dr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘@á°‘Ç´UNDRAWDOTŽ‘2e¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"drawdot® ´"Ž‘7Íb¬;Ž¡‘­elseŽ‘:Øâµ=°–ÿý¬DRA‘þãWDOT“°µ=Ž¡‘°fŽ¡‘±c‘ÿ}'errŽ‘6‘š°‘Ûñ´"WARNING!® ´Invalid® ´|dŽ‘nÛµrawdot_value|:® ´"Ž’É=Þ°‘Ûñ±dr‘ÿ}'awdot‘‰ffŽ‘®valueŽ‘I«°Ž¡‘2´".® ´Using® ´\"drawdot\"Ž’šÿÉ\n"Ž’® @°‘DZ ushŽ‘€¬;Ž¡#­ifŽ‘ ´ø¬0Ž‘$´úµ=°‘ÿý¬!!‘qÇDe ne–UUa“­classŽ‘5¦¬for“information“on“the“run“state.‘o°µ=Ž¡‘­ifŽ‘)´û¬(°:±R¾“un‘‰ffŽ‘®StateŽ‘-ò¦¬::Ž‘4€ä±non‘‰ffŽ‘®stopŽ‘[P„¬)‘±getcharŽ‘&%ü¬(‘ª®);Ž¡#­endifŽŽ¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘P·°‘Ç´"drawdot® ´"Ž‘7Íb¬;Ž¡‘°gŽ¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘HFÕ°‘7´"("Ž‘RͰ‘7±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘c¼J¬[0Ž‘]–7°“±me–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘]cB°“´",® ´"Ž‘’ʰŽ¡‘(±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ’†¶¬[1Ž‘]–ǰ“±me–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘Xå°“´")"Ž‘ w¬;Ž¡‘­ifŽ‘´ú¬(±dr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘?>¬°6¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withcolor® ´"Ž‘JTq°‘ÇŽ‘DZdr–ÿ}'awdot‘‰ffŽ‘®c“olorŽ‘D>­¬;Ž¡#­ifŽ‘ ´ø¬1ŽŽ¡‘­ifŽ‘´ú¬(±p‘ÿ}'enŽ–à˰6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withpen® ´"Ž‘?Ôw°‘DZp‘ÿ}'enŽ“¬;Ž¡#­endifŽŽ¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´";\n"Ž‘q¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Point::outpŽ‘kÆÜut().\n"Ž’™D°‘DZ ushŽ‘€¬;Ž¡‘ +°gޤ­503.‘ üLabQÇelling.Ž¡504.‘ üLabQÇel.ŽŽŽŒ‹… +½* Šn ý‘ì°x¬505–¯3DLDF-1.1.5.1’ö’ê­STRING‘ÕX¯ARÃŽGUMENT“¬133Ž €n ý•@P­505.– üstring‘ÕTargumen®9t.“¬[²LDF‘T2002.10.27.¬]Ž‘Zˆ6The‘UUargumen¸ãts:ޤ­stringŽ‘!%M±text‘‰ffŽ‘®strŽŽ‘l‘¬The–UUtext“for“the“labGel.Ž¡­stringŽ‘!%M±p‘ÿ}'osition‘‰ffŽ‘®strŽŽ‘l‘¬Indicates–ßÊthe“pšGosition“of“the“lab˜el“text“relativ¸ãe“to“the“­P•®9oin“tŽ‘z¬.‘J™The“same“­stringsŽ‘'ïä¬areޤ ‘l‘pGermitted–À'as“in“MET‘ÿ*ªAPOST.“They“are“written“unc•¸ãhec“k“ed–À'to“±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘3ì,‘ÚÛso“if“anŽ¡‘l‘inš¸ãv‘ÿqÇalid‘‹u­stringŽ‘"æâ¬is–‹uused,‘³Õit“w˜on't“cause“an“error“in“3DLDF,“but“it“will“in“MET‘ÿ*ªAPOST.Ž¡‘l‘The–ùüpGermitted“­stringsŽ‘,$H¬are:‘»´"top"Ž‘'{j¬(the“default),‘c%´"bot"Ž– )~¬,‘c%´"lft"Ž“¬,‘c%´"rt"Ž‘é¬,‘c%´"ulft"ŽŽ¡‘l‘¬(uppGer›_wleft),‘b´"llft"Ž‘&Çͬ(lo•¸ãw“er˜left),‘b´"urt"Ž‘!‡Ð¬(uppGer˜righ“t),‘b´"lrt"Ž‘!‡Ð¬(lo“w“er˜righ“t),‘band˜´""ŽŽ¡‘l‘¬for–€putting“the“labGel“righš¸ãt“on“top“of“the“­P•®9oin“tŽ‘¯È¬.‘²GThe“empt˜y“string“m˜ust“bGe“usedŽ¡‘l‘explicitly‘ÿ*ª,–UUbGecause“´"top"Ž‘!q¬is“the“default.Ž©­b•QÇo“olŽ‘¡f±dotŽŽ‘l‘¬If‘“g±trueŽ‘Wÿ¬,‘¢ìthen–“g­dotlabšQÇel“¬is“written“to“±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘6gj¬rather“than“­lab˜el¬.‘+þThis“argumen¸ãtŽ¡‘l‘is–UUmainly“for“use“bš¸ãy“the“function“±dotlab‘ÿ}'elŽ‘%UH¬(‘ª®),“whic˜h“calls“±lab‘ÿ}'elŽ‘Éí¬(‘ª®)“with“±dotŽ‘z°‘DZtrueŽ‘‹°¬.ަ­PictureŽ‘(ñb¬&Ž‘0¸€±pictur‘ÿ}'eŽŽ‘l‘¬Indicates–À}the“­PictureŽ‘/¬onš¸ãto“whic˜h“the“­LabQÇelŽ‘%Â]¬should“bGe“placed.‘³>The“default“isŽ¡‘l‘±curr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ’±‚­µ:ަ‘ +¬[²LDF‘T2003.01.15.¬]Ž‘Y;TO–UUDO:“Add“±p‘ÿ}'enŽ‘Ä]¬argumen¸ãt“to“±lab‘ÿ}'elŽ‘Éí¬(›ª®)“and“±dotlab‘ÿ}'elŽ‘%UH¬(˜)!!ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.05.14.¬]Ž‘Y·¡Changed‘»±text‘‰ffŽ‘®strŽ‘(к¬so–»that“it“is“no“longer“optional.‘úIt“doGesn't“makš¸ãe“an˜y“sense“to“prin˜tŽ¡emptš¸ãy–UUlabGels,“so“I'v˜e“made“it“a“required“argumen˜t.Ž¡‘ +[²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.07.09.¬]Ž‘Y;Made‘UU±text‘‰ffŽ‘®strŽ‘$™¬,‘UU±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘67™¬,–UUand“±dotŽ‘«·¬argumen¸ãts“­constŽ‘*¢¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘# ©±lab‘ÿ}'elŽ‘7A¬(­constŽ‘9rstringŽ‘?m±text‘‰ffŽ‘®strŽ‘`4Óµ;‘ª¨­constŽ‘ästringŽ‘A7±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘vÚC¬=‘ßÈ´"top"Ž‘¦!µ;‘ª¨­constŽ‘äb•QÇo“olŽ‘9”P±dotŽ‘Ku%¬=‘ßȱfalseŽ‘ µ;‘ª¨­PictureŽŽ¡‘¬&Ž‘%Ç!±pictur‘ÿ}'eŽ‘G—¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹† +ÇŒ Šn ý‘ì¬134–­STRING‘ÕX¯ARÃŽGUMENT’ö’ê3DLDF-1.1.5.1“°x¬506Ž €n ý•@P­506.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ÓžP•®9oin“tŽ‘?mê¬::‘±lab‘ÿ}'elŽ‘tœ¬(­constŽ‘gstringŽ‘>ûy±text‘‰ffŽ‘®strŽ‘_½µ;‘ª¨­constŽ‘«stringŽ‘@¦!±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘sˆeµ;‘ª¨­constŽ‘«b•QÇo“olŽ‘9":±dotŽ‘H#Gµ;‘ª¨­PictureŽ‘*qϬ&Ž‘28í±pictur‘ÿ}'eŽ‘QAì)Ž¡‘2­constŽ‘LÕR°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Point::labŽ‘kÆÜel()"Ž’‰TM°‘Ç´"\n"Ž‘Œ°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(­LabQÇelŽ‘Ag¬::Ž‘#Ï¥´DO_LABELSŽ‘V] +°‘DZfalseŽ‘v\¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Label::DO_LABELS® ´==Ž‘kÆÜ® ´false.® ´Returning."Ž’ÒÔ#°‘Ç´"\n"Ž‘Œ°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘H‘i¬;Ž¡‘°gŽ¡‘­ifŽ‘)´û¬(°Ž‘±thisŽ‘²Ï°‘Ç´INVALID_POINTŽ‘GY¬)‘°fŽ¡‘(±c‘ÿ}'errŽ‘=§f°‘ñ¼´"WARNING!® ´In® ´Point::Ž‘kñ€label():® ´"Ž’£é†°‘ñ¼´"*this® ´==® ´INVALID_POŽ‘kñ€INT.\nNot® ´doing® ´anytŽ’ÔñD\ŽŽ¡‘<hing.\n\n"Ž‘sÍh°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘H‘i¬;Ž¡‘°gަ‘­LabQÇelŽ‘=–»°Ž‘B–¼±lblŽ‘PŸ>¬=‘Ç­newŽ‘Ïœ¬(­LabQÇelŽ‘Ac¬);‘qDZlblŽ‘ ³1Ÿµ~ŽŽ‘³2±ptŽ‘ ^ç¬=‘DZcr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘5¬1µ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(0Ž‘);ަ‘°Ž‘#¬(±lblŽ‘ AjŸµ~ŽŽ‘Ak±ptŽ‘&¬)–Ç=“°Ž‘DZthisŽ‘²Ï¬;Ž¡‘­ifŽ‘)´û¬(±dotŽ‘È%°‘DZtrueŽ–‹°¬)‘±lblŽ‘AjŸµ~ŽŽ‘Ak±dotŽ‘& ¬=‘DZtrueŽ“¬;Ž¡‘±lblŽ‘'AmŸµ~ŽŽ‘-An±p‘ÿ}'ositionŽ‘SLݬ=‘DZp‘ÿ}'osition‘‰ffŽ‘®strŽ‘5©\¬;Ž¡‘­ifŽ‘)´û¬(±text‘‰ffŽ‘®strŽ–#Ž\°6¬=‘Ç´""Ž‘ Íz¬)‘±lblŽ‘AjŸµ~ŽŽ‘Ak±textŽ‘(`O¬=‘DZtext‘‰ffŽ‘®strŽ“¬;Ž¡‘­elseŽ‘5Øâ±lblŽ‘?LŸµ~ŽŽ‘EM±textŽ‘Y91¬=‘Ç´"Pt."Ž‘q¬;Ž¡‘±pictur‘ÿ}'eŽ‘?Ïñ¬+=ŽŽ‘R%E±lblŽ‘]f¯¬;‘µ=°‘ø»¬[²LDF‘T2002.10.27.¬]Ž‘Sù³The‘N­LabQÇelŽ‘"݉¬is–Npushed“on¸ãto“the“­v®9ectorŽ‘&Fn±lab‘ÿ}'elsŽ‘Aéq¬in“±pictur‘ÿ}'eŽ‘"Vé¬.‘°µ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Point::labeŽ‘kÆÜl()"Ž’„P°‘Ç´"\n"Ž‘Œ°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;‘qǰgŽŽŽŒ‹‡ +ÓÄ Šn ý‘ì°x¬507–¯3DLDF-1.1.5.1’üKË­SHOR‘ÿ +«T‘ÕX¯ARÃŽGUMENT“¬135Ž €n ý•@P­507.– üshort‘S½argumen®9t.“¬[²LDF‘T2003.04.01.¬]Ž‘Zö"TO‘Ã$DO:–ÃAMakš¸ãe“non-­constŽ‘˜Ž¬v˜ersion“of“this“function!‘»ŠTO‘Ã$DO:ޤ Mak¸ãe–b>it“pšGossible“to“use“´PROJ_VALUESŽ‘C +ìto“use“the“v‘ÿqÇalues“in“±pr–ÿ}'oje“ctive‘‰ffŽ‘®c“o“or“dinatesŽ‘gz¬for“the“lab˜el.‘˜This“willŽ¡require–UUadding“argumenš¸ãts“for“use“b˜y“±pr–ÿ}'oje“ctŽ‘!Ìc¬(‘ª®).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.04.01.¬]Ž‘Z^Changed–^xthis“function“so“that“it“tests“whether“±text‘‰ffŽ‘®shortŽ‘3œ_¬is“equal“to“´WORLD_VALUESŽ‘C伬,Ž¡´PROJ_VALUESŽ‘:FG¬,‘¶X´USER_VALUESŽ‘=üŸ¬,–¶Xor‘¢ñ´VIEW_VALUESŽ‘=é8¬,“whicš¸ãh–¢ñare“­publicŽ‘&ƒ·constŽ‘DûõstaticŽ‘d’j¬data“mem˜bGers“in“­P•®9oin“tŽ‘=9¬.‘Z›IfŽ¡±text‘‰ffŽ‘®shortŽ‘.ÏŒ¬is–ðequal“to“´WORLD_VALUESŽ‘Cva¬,‘ϰŽ‘ бthisŽ‘ò£¬is“copied“and“±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Jü¬(‘ª®)“is“called“on“the“cop¸ãy‘ÿ*ª.‘B This“isŽ¡necessary‘ÿ*ª,›Ÿ«bGecause–Íthis“function“is“­constŽ‘f¬.‘$0Then,˜the“upGdated“v‘ÿqÇalues“in“the“±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘T5˜¬v¸ãector“of“theŽ¡cop¸ãy–UUare“used“for“the“labGel.Ž¡‘ +[²LDF‘T2003.05.06.¬]Ž‘Y;Added–UUcomparison“of“±text‘‰ffŽ‘®shortŽ‘1Ьwith“´WORLD_VALUES_X_YŽ‘WÛ¬,“´PROJ_VALUES_X_YŽ‘R›¬,Ž¡´USER_VALUES_X_YŽ‘OF;¬,– êor‘‘Ì´VIEW_VALUES_X_YŽ‘Rج,“whic¸ãh–‘Ìare“used“for“suppressing“the“z-coGordinate,‘ êwhen“the“v‘ÿqÇaluesŽ¡from–dïone“of“the“sets“of“cošGordinates“are“used“for“the“lab˜el.‘ –Also,›¨Öno“longer“cop¸ãying“°Ž‘ dð±thisŽ‘P¦¬,˜since“±get‘‰ffŽ‘®xŽ‘óV¬(‘ª®),Ž¡±get‘‰ffŽ‘®yŽ‘t¬(›ª®),–UUand“±get‘‰ffŽ‘®zŽ‘]V¬(˜)“are“­constŽ‘!÷¬an•¸ãyw“a“y‘ÿ*ª.Ž¡‘ +[²LDF‘T2003.05.20.¬]Ž‘Y;Added–UU\´WORLD_VALUES_ZŽ‘J>¬"“case.Ž¡‘ +[²LDF‘T2003.05.22.¬]Ž‘Xæ:BUG‘3KFIX:–3TThe“\´WORLD_VALUES_ZŽ‘J>¬"“case“started“with“­ifŽ‘ÆK¬instead“of“­elseŽ‘?‡ifŽ‘!Ÿ*¬.‘fqThis“causedŽ¡µsŽ‘°:±strŽ‘ 7¬(‘ª¨)–µÒto“ha•¸ãv“e–µÒan“erroneous“ vš¸ãe-digit“in˜teger“follo˜wing“the“closing“paren˜thesis,‘ ðwhen“´WORLD_VALUESŽ‘Hñè¬orŽ¡´WORLD_VALUES_X_YŽ‘Wó ¬wš¸ãas–lÓused.‘¸@I‘lÍdon't“kno˜w“wh˜y“this“should“ha˜v˜e“bGeen“the“case,‘r²but“c˜hanging“­ifŽ‘9I¬to“­elseŽ‘²…ifŽŽ¡¬ xed–Úthe“problem.‘^ôIt“probably“had“something“to“do“with“the“fact“that“´WORLD_VALUES_ZŽ‘P?ò¬had“the“same“v‘ÿqÇalueŽ¡as‘UU´VIEW_VALUES_X_YŽ‘R›¬.‘qÇI'vš¸ãe–UU xed“this“abGo˜v˜e“toGda˜y‘ÿ*ª,“toGo.Ž¡‘ +[²LDF‘T2003.06.06.¬]Ž‘WëÉChanged–8ãthe“case,‘qÇwhere“±text‘‰ffŽ‘®shortŽ›/Q5¬=“´WORLD_VALUESŽ‘Cø +¬or“±text‘‰ffŽ‘®shortŽ˜¬=“´WORLD_VALUES_X_YŽ‘V¿¬:Ž¡The–?KcoGordinates“surrounded“bš¸ãy“paren˜theses“are“no˜w“prin˜ted“out“using“T‘þU>ŸÓVEŽ‘ãxXŽ‘Û¨'s“math“moGde,–C³i.e.,“\(µx;–ª¨y[Ù;“zp—¬)"‘?Kin-Ž¡stead–UUof“\(µx¬,“µy[Ù¬,“µzp—¬)".Ž¡‘ +[²LDF‘T2003.07.09.¬]Ž‘Y;Made‘UU±text‘‰ffŽ‘®shortŽ‘.4Ĭ,‘UU±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘67™¬,–UUand“±dotŽ‘«·¬argumen¸ãts“­constŽ‘*¢¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"Ö4±lab‘ÿ}'elŽ‘7J̬(­constŽ‘ýshortŽ‘;¥û±text‘‰ffŽ‘®shortŽ‘f…jµ;‘ª¨­constŽ‘­¥stringŽ‘@«M±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘vT©¬=‘Ç´"top"Ž‘qµ;‘ª¨­constŽ‘­¥b•QÇo“olŽ‘9'f±dotŽ‘J=‘DZfalseŽ‘v\µ;‘ª¨­PictureŽŽ¡‘¬&Ž‘%Ç!±pictur‘ÿ}'eŽ‘G—¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹ˆ +Üå Šn ý‘ì¬136–­SHOR‘ÿ +«T‘ÕX¯ARÃŽGUMENT’üKË3DLDF-1.1.5.1“°x¬508Ž €n ý•@P­508.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘#‰EP•®9oin“tŽ‘@#‘¬::‘±lab‘ÿ}'elŽ‘tœ¬(­constŽ‘¶shortŽ‘= ±text‘‰ffŽ‘®shortŽ‘g댵;‘ª¨­constŽ‘ `¶stringŽ‘Bo±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘tó³µ;‘ª¨­constŽ‘ `¶b•QÇo“olŽ‘:ˆ±dotŽ‘IŽ•µ;‘ª¨­PictureŽŽ¡‘2¬&Ž‘9Ç#±pictur‘ÿ}'eŽ‘XÏù¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­stringstreamŽ‘W,¹µsŽ‘[ܹ¬;ަ‘­ifŽ‘´ú¬(±text‘‰ffŽ‘®shortŽ‘-¦‡°‘Ç´WORLD_VALUESŽ‘D†<°_‘8à±text‘‰ffŽ‘®shortŽ‘/ßg°‘Ç´WORLD_VALUES_X_YŽ‘WMP¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"It's® ´WORLD_VALUES® ´oŽ‘kÆÜr® ´WORLD_VALUES_X_Y.\Ž’ÔÆ n"Ž’ßͬ;Ž¡‘µsŽ‘%w°‘Ç´"$("Ž›Œ°‘DZget‘‰ffŽ‘®xŽ‘U¬(‘ª¨)–ǰ“´",® ´"Ž˜°“±get‘‰ffŽ‘®yŽ‘;.¬(‘ª¨);Ž¡‘­ifŽ‘)´û¬(±text‘‰ffŽ‘®shortŽ‘-¦‡°‘Ç´WORLD_VALUESŽ‘BM\¬)‘µsŽ‘ w°‘Ç´",® ´"Ž‘Œ°‘DZget‘‰ffŽ‘®zŽ‘Ï¬(‘ª¨);Ž¡‘µsŽ‘%w°‘Ç´")$"Ž‘Mt¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±text‘‰ffŽ‘®shortŽ‘-¦‡°‘Ç´WORLD_VALUES_ZŽ‘LÍV¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"It's® ´WORLD_Z.\n"Ž‘\M¬;Ž¡‘µsŽ‘%w°‘DZget‘‰ffŽ‘®zŽ‘Ï¬(‘ª¨);Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±text‘‰ffŽ‘®shortŽ‘-¦‡°‘Ç´PROJ_VALUESŽ‘= _¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"It's® ´PROJ_VALUES\n"Ž‘lMD¬;Ž¡‘±c‘ÿ}'errŽ‘4Sº°‘ž´"WARNING!® ´In® ´Point::Ž‘lÕlabel():"Ž— 3°‘ž±end‘‚ØlŽ‘-ä°‘ž´"text_short® ´==® ´PROJ_Ž‘lÕVALUES.® ´"Ž“°Ž¡‘2´"Haven't® ´programmed® Ž’šÿÉ´this® ´case® ´yet.\n"Ž’÷°‘Ç´"Returning.\n\n"Ž‘Zh°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±text‘‰ffŽ‘®shortŽ‘-¦‡°‘Ç´USER_VALUESŽ‘= _¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"It's® ´USER_VALUES\n"Ž‘lMD¬;Ž¡‘±c‘ÿ}'errŽ‘4Sº°‘ž´"WARNING!® ´In® ´Point::Ž‘lÕlabel():"Ž— 3°‘ž±end‘‚ØlŽ‘-ä°‘ž´"text_short® ´==® ´USER_Ž‘lÕVALUES.® ´"Ž“°Ž¡‘2´"Haven't® ´programmed® Ž’šÿÉ´this® ´case® ´yet.\n"Ž’÷°‘Ç´"Returning.\n\n"Ž‘Zh°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±text‘‰ffŽ‘®shortŽ‘-¦‡°‘Ç´VIEW_VALUESŽ‘= _¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"It's® ´VIEW_VALUES\n"Ž‘lMD¬;Ž¡‘±c‘ÿ}'errŽ‘4Sº°‘ž´"WARNING!® ´In® ´Point::Ž‘lÕlabel():"Ž— 3°‘ž±end‘‚ØlŽ‘-ä°‘ž´"text_short® ´==® ´VIEW_Ž‘lÕVALUES.® ´"Ž“°Ž¡‘2´"Haven't® ´programmed® Ž’šÿÉ´this® ´case® ´yet.\n"Ž’÷°‘Ç´"Returning.\n\n"Ž‘Zh°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"It's® ´some® ´other® ´valŽ‘kÆÜue.\n"Ž’‹Í2¬;Ž¡‘µsŽ‘%w°‘DZtext‘‰ffŽ‘®shortŽ‘-¦‡¬;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"s.str()® ´==® ´"Ž‘JTq°‘ǵsŽ‘w:±strŽ‘ 7¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘±lab‘ÿ}'elŽ‘(tš¬(µsŽ‘°:±strŽ‘ 7¬(–ª¨)µ;“±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘4Œìµ;“±dotŽ‘«µµ;“±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­509.– üDotlabQÇel.“¬TO‘ÅŠDO:–ÅéAdd“an“optional“±p‘ÿ}'enŽ‘¥…¬argumen¸ãt.‘ÃIf“it's“used,‘"use“±dr‘ÿ}'awdotŽ‘(Yj¬(‘ª®)“with“the“±p‘ÿ}'enŽŽ¡¬argumen¸ãt,›ptogether–ò7with“±lab‘ÿ}'elŽ‘fϬ(‘ª®).‘HnWhen“I‘òdo“this,˜I‘òshould“also“add“­realŽ‘BG¬argumen¸ãts“(to“bGoth“±lab‘ÿ}'elŽ‘fϬ(‘ª®)“andŽ¡±dotlab‘ÿ}'elŽ‘!ÿó¬(‘ª®))–,Äfor“shifting“the“pGosition“of“the“text,‘4áand“a“vš¸ãersion“with“a“­P•®9oin“tŽ‘!óЬargumen˜t“for“the“same“purpGose.Ž¡This–UUis“so“that“the“dot“wš¸ãon't“co˜v˜er“the“text.‘qÇ[²LDF‘T2003.07.16.¬]ŽŽŽŽŒ‹‰ +ë% Šn ý‘ì°x¬510–¯3DLDF-1.1.5.1’ö’ê­STRING‘ÕX¯ARÃŽGUMENT“¬137Ž €n ý•@P­510.‘ üstring‘ÕTargumen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ +¬[²LDF‘T2003.07.09.¬]Ž‘Y;Made‘UU±text‘‰ffŽ‘®strŽ‘'qî¬and‘UU±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘9Œî¬argumen¸ãts‘UU­constŽ‘*¢¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘$ti±dotlab‘ÿ}'elŽ‘Ft\¬(­constŽ‘¡2stringŽ‘B=±text‘‰ffŽ‘®strŽ‘cSµ;‘ª¨­constŽ‘!KÚstringŽ‘Cç·±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘|V¬=‘7[´"top"Ž‘ý´µ;‘ª¨­PictureŽŽ¦‘¬&Ž‘%Ç!±pictur‘ÿ}'eŽ‘G—¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬)‘UU­constŽ‘*¢¬;ŽŸ­511.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::‘±dotlab‘ÿ}'elŽ‘"ÿ÷¬(­constŽ‘*¢stringŽ‘?Oï±text‘‰ffŽ‘®strŽ‘`3µ;‘ª¨­constŽ‘ÕJstringŽ‘@ú—±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘sÜÛµ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘Qkþ¬)‘UU­constŽŽ¦‘ +°fަ‘±lab‘ÿ}'elŽ‘(tš¬(±text‘‰ffŽ‘®strŽ‘ ÇDµ;‘ª¨±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘4Œìµ;‘ª¨±trueŽ‘o@µ;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);ަ‘ +°gŽŸ­512.‘ üshort‘ÕTargumen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2003.07.09.¬]Ž‘Y;Made‘UU±text‘‰ffŽ‘®shortŽ‘1Ьand‘UU±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘9Œî¬argumen¸ãts‘UU­constŽ‘*¢¬.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘$[)±dotlab‘ÿ}'elŽ‘F[¬(­constŽ‘‡òshortŽ‘>¯å±text‘‰ffŽ‘®shortŽ‘iTµ;‘ª¨­constŽ‘!2šstringŽ‘Cµ7±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘{¤À¬=‘ E´"top"Ž‘Óžµ;‘ª¨­PictureŽŽ¦‘¬&Ž‘%Ç!±pictur‘ÿ}'eŽ‘G—¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬)‘UU­constŽ‘*¢¬;ŽŸ­513.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::‘±dotlab‘ÿ}'elŽ‘"ÿ÷¬(­constŽ‘*¢shortŽ‘;õE±text‘‰ffŽ‘®shortŽ‘fÔ´µ;‘ª¨­constŽ‘ÕJstringŽ‘@ú—±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘sÜÛµ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘Qkþ¬)‘UU­constŽŽ¦‘ +°fަ‘±lab‘ÿ}'elŽ‘(tš¬(±text‘‰ffŽ‘®shortŽ‘*ßoµ;‘ª¨±p‘ÿ}'osition‘‰ffŽ‘®strŽ‘4Œìµ;‘ª¨±trueŽ‘o@µ;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);ަ‘ +°gŽŽŽŒ‹Š +ú Šn ý‘ì¬138–­SHOR‘ÿ +«T‘ÕX¯ARÃŽGUMENT’üKË3DLDF-1.1.5.1“°x¬514Ž €n ý•@P­514.‘ ü¬[²LDF‘T2002.09.06.¬]Ž‘[#¯Commenš¸ãted–ðÎout“°Ž‘ ·ì­LabQÇelŽ‘'ùO¬(‘ª¨).‘D3This“w˜as“the“cause“of“a“bug“that“caused“a“memoryޤ fault–ªµwhen“I‘ªŸtried“to“use“a“labGel“in“ gure“2“(±b–ÿ}'e“gin gŽ‘!¡¬(2Ž‘))“after“haš¸ãving“used“it“in“ gure“1“and“then“in˜v˜okingŽ¡±curr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘B%ǵ:±cle‘ÿ}'arŽ‘(Ù¬(‘ª¨)–UUin“bGet•¸ãw“een.Ž©°h–ª¨¬De ne‘UU­LabQÇelŽ‘"ì ¬functions‘@¯514“°i‘ÇŽ¡¬#­ifŽ‘ ´ø¬0ŽŽ¡‘ +­LabQÇelŽ‘'Ah¬::Ž‘-Ϧ°Ž‘5–Ä­LabQÇelŽ‘QØ'¬(‘ª¨)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±ptŽ‘ «µ°6¬=‘Ç0Ž‘Ç)‘­deleteŽ‘&ƺ±ptŽ‘0«W¬;Ž¡‘ +°gŽ¡¬#­endifŽŽ¤ ¯See–ÕXalso“sections“515“and“516.Ž¡This–ÕXco‘Ǭ(0Ž‘);ަ‘°Ž‘#¬(±lblŽ‘ AjŸµ~ŽŽ‘Ak±ptŽ‘&¬)–Ç=“°Ž‘DZptŽ‘«¶¬;Ž¡‘±lblŽ‘'AmŸµ~ŽŽ‘-An±dotŽ‘? “¬=‘DZdotŽ‘È%¬;Ž¡‘±lblŽ‘'AmŸµ~ŽŽ‘-An±textŽ‘A`R¬=‘DZtextŽ‘ä¬;Ž¡‘±lblŽ‘'AmŸµ~ŽŽ‘-An±p‘ÿ}'ositionŽ‘SLݬ=‘DZp‘ÿ}'ositionŽ‘& o¬;Ž¡‘­returnŽ‘Aæ½±lblŽ‘M('¬;‘qǰgŽŸ­516.– üOutput‘l@LabQÇels.“¬[²LDF‘T2002.10.23.¬]Ž‘[êDeclared–·-in“®pictures.web¬.‘—PMust“bšGe“de ned“here,‘£b˜ecauseŽ¡­P•®9oin“tŽ‘ï¬is–UUan“incomplete“t¸ãypGe“there.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.23.¬]Ž‘Y;Added–UUargumen¸ãts“±pr‘ÿ}'ojŽ‘žm¬and“±factorŽ‘Y3¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­LabQÇelŽ‘"ì ¬functions‘@¯514“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"æÿLabQÇelŽ‘@(f¬::‘±outputŽ‘D¬(­constŽ‘ÈF‘ÿ +«oQÇcusŽ‘>G¬&Ž‘F­µfŽ‘L“;‘ª¨­constŽ‘¾punsignedŽ‘OÞ¤shortŽ‘m’m±pr‘ÿ}'ojŽ’€†0µ;‘ª¨­realŽ‘Fü±factorŽ‘3JÚµ;‘ª¨­constŽ‘¾pT‘ÿ +«ransformŽ‘Wph¬&Ž‘_7†µtŽ‘bÓø¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(°:µtŽ‘œr:±is‘‰ffŽ‘®identityŽ‘-2¢¬(‘ª¨))‘°Ž‘ +±ptŽ‘«¶°¬=ŽŽ‘&9íµtŽ‘)Ö_¬;Ž¡‘±ptŽ‘䟟µ~ŽŽ‘!ä ±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘h¬(‘ª¨);Ž¡‘­ifŽ‘´ú¬(°:±ptŽ‘äŸµ~ŽŽ‘ äž±pr–ÿ}'oje“ctŽ‘,[¬¬(µfŽ‘øæ;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬))‘°fŽ¡‘±c‘ÿ}'errŽ‘3²ƒ°‘üÚ´"WARNING!® ´In® ´Label::Ž‘küžoutput():\n"Ž’®¼°‘üÚ´"Point® ´in® ´Label® ´cannŽ‘küžot® ´be® ´projected!® ´"Ž’Íÿª°Ž¡‘2´"Not® ´printing® ´Label\Ž’šÿÉn"Ž’¨ÍC°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(±dotŽ‘È%°‘DZtrueŽ‘‹°¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"dot"Ž‘q¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´"label"Ž‘( k¬;Ž¡‘­ifŽ‘´ú¬(±p‘ÿ}'ositionŽ–& o°6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"."Ž‘Ô°‘DZp‘ÿ}'ositionŽ“¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´"(btex® ´"Ž‘0€°‘DZtextŽ‘åü°‘Ç´"® ´etex,® ´("Ž‘:”z°‘DZptŽ‘ +«µŸµ~ŽŽ‘«¶±get‘‰ffŽ‘®xŽ‘':¬(´'p'Ž‘F_µ;Ž¡‘(±falseŽ‘<¯H¬)–ǰ“­P•®9oin“tŽ‘ad¬::Ž‘%me–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘| ް“´",® ´"Ž‘Œ°“±ptŽ‘ +«µŸµ~ŽŽ‘«¶±get‘‰ffŽ‘®yŽ‘'̬(´'p'Ž‘F_µ;Ž¡‘(±falseŽ‘<¯H¬)–ǰ“­P•®9oin“tŽ‘ad¬::Ž‘%me–ÿ}'asur“ement‘‰ffŽ‘®unitsŽ‘| ް“´"));\n"Ž‘( k¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gޤ­517.‘ üMatrix‘ÕTopQÇerations.Ž¡518.‘ üMultiplication–ÕTbš®9y“a“T‘ÿ +«ransform“with“assignmen˜t.ŽŽŽŒ‹‹ $ Šn ý‘ì°x¬518›¯3DLDF-1.1.5.1‘O=ÒMUL–ÿJªTIPLICA“TION–ÕXBY“A“­TRANSF®9ORM“¯WITH“ASSIGNMENT˜¬139Ž €n ý—‰Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.11.06.¬]Ž‘YeBUG‘_|FIX:–_This“function“noš¸ãw“returns“µtŽ‘ +[p¬instead“of“±tr‘ÿ}'ansformŽ‘/À¬.‘DThis“mak˜es“it“pGossible“toŽ¡c¸ãhain–UUexpressions“using“­opQÇeratorŽ‘.ì +°¬=ŽŽŽ‘;³)(‘ª¨).ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž© ‘ +­T‘ÿ +«ransformŽ‘AÈÓopQÇeratorŽ‘m_ˆ°¬=ŽŽŽ‘z&§(­constŽ‘*¢T‘ÿ +«ransformŽ‘Uót¬&Ž‘]º’µtŽ‘aW¬);ŽŸ­519.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::Ž‘dñ]­opQÇeratorŽ’ˆ°¬=ŽŽŽ’O1(­constŽ‘*¢T‘ÿ +«ransformŽ‘Uót¬&Ž‘]º’µtŽ‘aW¬)ަ‘ +°fަ‘­returnŽ‘7漬(±tr‘ÿ}'ansformŽ‘.zY°¬=ŽŽ‘>µtŽ‘A¥¬);ަ‘ +°gŽŸ­520.– üV‘ÿ +«ector‘uopQÇerations.“¬[²LDF‘T2002.10.27.¬]Ž‘Z²îNote–€ that“the“v¸ãector“opšGerations“don't“a ect“the“w“co˜ordi-ަnate.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.10.27.¬]Ž‘YwIn–R‘the“functions“­opQÇeratorŽ‘.éF¬+Ž‘6°d(–ª¨),­opQÇeratorŽ‘+–µ¬+=ŽŽŽ‘;$ñ(“),‘S­opQÇeratorŽ‘.éÔ°Ž‘6°ò¬(“),‘Sand‘R‘­opQÇeratorŽ‘.éF°¬=ŽŽŽ‘>w‚(“):‘peItަdoGesn't–3:seem“wš¸ãorth“it“to“write“non-­constŽ‘!‡¬v˜ersions,‘ê²although“I‘2}could.‘ uNo˜w“using“the“elemen˜ts“ofަ±p0Ž‘ Àµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Qñ +¬directly–Ý instead“of“using“±get‘‰ffŽ‘®xŽ‘ks¬(–ª®),‘>ù±get‘‰ffŽ‘®yŽ‘³¬(“),›>ùand‘Ý ±get‘‰ffŽ‘®zŽ‘å ¬(“).‘ ìThis–Ý is“safe,˜as“is“callingަ±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª®)–UUon“µpŽ‘]U¬,“and“sa•¸ãv“es–UUthe“cost“of“three“function“calls.Ž¡ŸüÈ„`ÕÁGŽŽŸ­521.‘ üV‘ÿ +«ector‘ÕTaddition.Ž¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­P•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S¬+Ž‘\Mq(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)‘UU­constŽ‘*¢¬;ŽŸ­522.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::Ž‘L(­opQÇeratorŽ‘w®Ý¬+Ž‘uû(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)‘UU­constŽŽ¦‘ +°fަ‘­P•®9oin“tŽ‘2aŽ‘88Ϭ;Ž¡‘µaŽ‘J¬=‘Ç°Ž‘Ç±thisŽ‘²Ï¬;ަ‘µpŽ‘:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘µaŽ‘I2:±shiftŽ‘}¬(µpŽ‘:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ–Mþ¬[0Ž›]µ;‘ª¨pŽ‘²¨:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“¬[1Ž˜]µ;‘ª¨pŽ‘²¨:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“¬[2Ž˜]);ަ‘­returnŽ‘7æ¼µaŽ‘=/ì¬;ަ‘ +°gŽŸ­523.‘ üV‘ÿ +«ector–ÕTaddition“with“assignmen®9t.Ž¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”ެ+=ŽŽŽ‘^"Ê(­P•®9oin“tŽ‘ïµpŽ‘#÷¬);ŽŽŽŒ‹Œ Õ Šn ý‘ì¬140›¯VECTOR–ÕXADDITION“WITH“ASSIGNMENT’­ª–3DLDF-1.1.5.1˜°x¬524Ž €n ý•@P­524.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::Ž‘F&c­opQÇeratorŽ‘q½¬+=ŽŽŽ’KT(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)Ž¡‘ +°fŽ¡‘µpŽ‘:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘±shiftŽ‘(¬(µpŽ‘:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ–Mþ¬[0Ž›]µ;‘ª¨pŽ‘²¨:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“¬[1Ž˜]µ;‘ª¨pŽ‘²¨:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“¬[2Ž˜]);Ž¡‘ +°gŽŸ­525.‘ üV‘ÿ +«ector‘ÕTsubtraction.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S°Ž‘\Mq¬(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)‘UU­constŽ‘*¢¬;ŽŸ­526.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::Ž‘L(­opQÇeratorŽ‘w®Ý°Ž‘uû¬(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2aŽ‘88Ϭ(°Ž‘±thisŽ‘ë·¬);ަ‘µpŽ‘:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘µaŽ‘I2:±shiftŽ‘}¬(°Ž‘ǵpŽ‘ Ï:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ–Mþ¬[0Ž›]µ;‘ª¨°Ž‘ qƵpŽ‘yÆ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“¬[1Ž˜]µ;‘ª¨°Ž‘ qƵpŽ‘yÆ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“¬[2Ž˜]);Ž¡‘­returnŽ‘7æ¼µaŽ‘=/ì¬;Ž¡‘ +°gŽŸ­527.‘ üV‘ÿ +«ector–ÕTsubtraction“with“assignmen®9t.ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”ް¬=ŽŽŽ‘^"Ê(­P•®9oin“tŽ‘ïµpŽ‘#÷¬);ŽŸ­528.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::Ž‘F&c­opQÇeratorŽ‘q½°¬=ŽŽŽ’KT(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)Ž¡‘ +°fŽ¡‘µpŽ‘:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘±shiftŽ‘(¬(°Ž‘ǵpŽ‘ Ï:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ–Mþ¬[0Ž›]µ;‘ª¨°Ž‘ qƵpŽ‘yÆ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“¬[1Ž˜]µ;‘ª¨°Ž‘ qƵpŽ‘yÆ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ“¬[2Ž˜]);Ž¡‘ +°gŽŸ­529.‘ üV‘ÿ «ector-scalar–ÕTmš®9ultipication“with“assignmen˜t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y;Made–UUargumen¸ãt“±rŽ‘ t¾ÂconstŽ‘&J «.‘qÇChanged“return“v‘ÿqÇalue“from“ÂP•®9oin“tŽ‘"Dò«&Ž‘-aeto“Âv®9oidŽ‘ýØ«.Ž¡‘ -[¬LDF‘T2003.05.14.«]Ž‘YQChanged–ž3return“v‘ÿqÇalue“from“Âv®9oidŽ‘äé«to“ÂrealŽ‘ü «.‘LaIt“noš¸ãw“returns“the“argumen˜t“±rŽ‘hG«.‘LaThis“mak˜esŽ¡it–UUpGossible“to“cš¸ãhain“in˜v˜oGcations“of“this“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/opQÇeratorŽ‘LIä·«=ŽŽŽ‘Y(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«);ŽŽŽŒ‹ƒ.Ÿ Šn ý‘ì·x«486‘­3DLDFPRÃŽG‘uñØVECTOR-SCALAR›ÕXMUL–ÿJªTIPICA“TION˜WITH˜ASSIGNMENT‘«131Ž €n ý•@PÂ486.‘ ü«??‘(I'm–‹ not“sure“whether“mš¸ãultiplication“with“a“scalar“is“comm˜utativ˜e“with“transformations.‘(I‘‹doubtޤ it.‘qÇTherefore,–UUI“apply“Ïtr‘ÿ}'ansformŽ‘2]ë«bGefore“m¸ãultiplying.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/P•®9oin“tŽ‘=M{«::Ž‘CÛ¹ÂopQÇeratorŽ‘orn·«=ŽŽŽ‘|9(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«)Ž¡‘ -·fŽ¡‘Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Zá«(‘ª®);Ž¡‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«3Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Rþ«[±iŽ‘qô«]‘Ç·«=ŽŽ‘UO±rŽ‘c«;Ž¡‘ÂreturnŽ‘7æ¼±rŽ‘<°Ð«;Ž¡‘ -·gޤÂ487.‘ üV‘ÿ -«ector-scalar‘ÕTm®9ultipication.Ž¡488.‘ üMem•®9bQÇer›ÕTv“ersion˜(P“oin“t˜ rst).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y;Made–UUthis“function“and“the“argumen¸ãt“±rŽ‘ t¾ÂconstŽ‘&J «.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S·Ž‘Y†T«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«)‘UUÂconstŽ‘*¢«;ŽŸÂ489.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::Ž‘L(ÂopQÇeratorŽ‘w®Ý·Ž‘|®Þ«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘±aŽ‘I2:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±aŽ‘J·«=ŽŽ‘+ž±rŽ‘0h•«;Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gŽŸÂ490.‘ üNon-mem•®9bQÇer›ÕTv“ersion˜(scalar˜ rst).ަ·h›ª¨«Declare–UUnon-mem¸ãbGer“functions“for“ÂP•®9oin“tsŽ‘'¸Ý­436˜·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S·Ž‘Y†T«(ÂconstŽ‘*¢realŽ‘1ˆ{±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒ±pŽ‘K”«);ŽŸÂ491.ަ·h›ª¨«De ne–UUnon-mem¸ãbGer“functions“for“ÂP•®9oin“tsŽ‘'¸Ý­437˜·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S·Ž‘Y†T«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒ±pŽ‘K”«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼±pŽ‘?'œ·‘8à±rŽ‘ô«;Ž¡‘ -·gŽŸÂ492.‘ üUnary‘ÕTmin®9us.ŽŸÀŸû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‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S·Ž‘\Mq«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹„9³ Šn ý‘ì«132–­UNAR‘ÿJªY‘ÕXMINUS’$ž:3DLDFPRÃŽG“·x«493Ž €n ý•@PÂ493.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::Ž‘L(ÂopQÇeratorŽ‘w®Ý·Ž‘uû«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘±aŽ‘I2:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±aŽ‘J·«=ŽŽ‘+ž·Ž‘3eŸ«1Ž‘8e ;Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gŽŸÂ494.› üV‘ÿ -«ector-scalar–.³division“with“assignmen®9t.˜«??‘ö¿I'm–¨not“sure“whether“division“with“a“scalar“isŽ¡comm•¸ãutativ“e–UUwith“transformations.›qÇI“doubt“it.˜Therefore,“I“apply“Ïtr‘ÿ}'ansformŽ‘2]ë«bGefore“dividing.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y;Made–UUthe“argumen¸ãt“±rŽ‘ t¾ÂconstŽ‘&J «.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”ޱ=«=ŽŽŽ‘[[­(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«);ŽŸÂ495.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%«::Ž‘F&cÂopQÇeratorŽ‘q½±=«=ŽŽŽ‘~„7(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«)Ž¡‘ -·fŽ¡‘Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Zá«(‘ª®);Ž¡‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«3Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Rþ«[±iŽ‘qô«]‘DZ=«=ŽŽ‘UO±rŽ‘c«;Ž¡‘ -·gŽŸÂ496.‘ üV‘ÿ +¬[²LDF‘T2002.10.27.¬]Ž‘Y;Made–UUargumen¸ãt“µrŽ‘ t¾­constŽ‘&J ¬.‘qÇChanged“return“v‘ÿqÇalue“from“­P•®9oin“tŽ‘"Dò¬&Ž‘-aeto“­v®9oidŽ‘ýج.Ž¡‘ +[²LDF‘T2003.05.14.¬]Ž‘YQChanged–ž3return“v‘ÿqÇalue“from“­v®9oidŽ‘äé¬to“­realŽ‘ü ¬.‘LaIt“noš¸ãw“returns“the“argumen˜t“µrŽ‘hG¬.‘LaThis“mak˜esŽ¡it–UUpGossible“to“cš¸ãhain“in˜v˜oGcations“of“this“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/opQÇeratorŽ‘LIä°¬=ŽŽŽ‘Y(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬);ŽŽŽŒ‹   Šn ý‘ì°x¬530‘¯3DLDF-1.1.5.1‘m~BVECTOR-SCALAR›ÕXMUL–ÿJªTIPICA“TION˜WITH˜ASSIGNMENT‘¬141Ž €n ý•@P­530.‘ ü¬??‘(I'm–‹ not“sure“whether“mš¸ãultiplication“with“a“scalar“is“comm˜utativ˜e“with“transformations.‘(I‘‹doubtޤ it.‘qÇTherefore,–UUI“apply“±tr‘ÿ}'ansformŽ‘2]ë¬bGefore“m¸ãultiplying.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/P•®9oin“tŽ‘=M{¬::Ž‘CÛ¹­opQÇeratorŽ‘orn°¬=ŽŽŽ‘|9(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬)Ž¡‘ +°fŽ¡‘±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Zá¬(‘ª®);Ž¡‘­forŽ‘%般(­in®9tŽ‘¤÷µiŽ‘Þ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ3Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Rþ¬[µiŽ‘qô¬]‘ǰ¬=ŽŽ‘UOµrŽ‘c¬;Ž¡‘­returnŽ‘7æ¼µrŽ‘<°Ð¬;Ž¡‘ +°gޤ­531.‘ üV‘ÿ +«ector-scalar‘ÕTm®9ultipication.Ž¡532.‘ üMem•®9bQÇer›ÕTv“ersion˜(P“oin“t˜ rst).ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Y;Made–UUthis“function“and“the“argumen¸ãt“µrŽ‘ t¾­constŽ‘&J ¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S°Ž‘Y†T¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬)‘UU­constŽ‘*¢¬;ŽŸ­533.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::Ž‘L(­opQÇeratorŽ‘w®Ý°Ž‘|®Þ¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2aŽ‘88Ϭ(°Ž‘±thisŽ‘ë·¬);ަ‘µaŽ‘I2:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘µaŽ‘J°¬=ŽŽ‘+žµrŽ‘0h•¬;Ž¡‘­returnŽ‘7æ¼µaŽ‘=/ì¬;Ž¡‘ +°gŽŸ­534.‘ üNon-mem•®9bQÇer›ÕTv“ersion˜(scalar˜ rst).ަ°h›ª¨¬Declare–UUnon-mem¸ãbGer“non-template“functions“for“­P•®9oin“tŽ‘#/¡¯480˜°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S°Ž‘Y†T¬(­constŽ‘*¢realŽ‘1ˆ{µ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒµpŽ‘K”¬);ŽŸ­535.ަ°h›ª¨¬De ne–UUnon-mem¸ãbGer“non-template“functions“for“­P•®9oin“tŽ‘#/¡¯481˜°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S°Ž‘Y†T¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒµpŽ‘K”¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼µpŽ‘?'œ°‘8àµrŽ‘ô¬;Ž¡‘ +°gŽŸ­536.‘ üUnary‘ÕTmin®9us.ŽŸÀŸû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‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S°Ž‘\Mq¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹Ž )" Šn ý‘ì¬142–¯UNAR‘ÿJªY‘ÕXMINUS’*¤3DLDF-1.1.5.1“°x¬537Ž €n ý•@P­537.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::Ž‘L(­opQÇeratorŽ‘w®Ý°Ž‘uû¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2aŽ‘88Ϭ(°Ž‘±thisŽ‘ë·¬);ަ‘µaŽ‘I2:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘µaŽ‘J°¬=ŽŽ‘+ž°Ž‘3eŸ¬1Ž‘8e ;Ž¡‘­returnŽ‘7æ¼µaŽ‘=/ì¬;Ž¡‘ +°gŽŸ­538.› üV‘ÿ +«ector-scalar–.³division“with“assignmen®9t.˜¬??‘ö¿I'm–¨not“sure“whether“division“with“a“scalar“isŽ¡comm•¸ãutativ“e–UUwith“transformations.›qÇI“doubt“it.˜Therefore,“I“apply“±tr‘ÿ}'ansformŽ‘2]ë¬bGefore“dividing.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Y;Made–UUthe“argumen¸ãt“µrŽ‘ t¾­constŽ‘&J ¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”޵=¬=ŽŽŽ‘[[­(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬);ŽŸ­539.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙP•®9oin“tŽ‘?˜%¬::Ž‘F&c­opQÇeratorŽ‘q½µ=¬=ŽŽŽ‘~„7(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬)Ž¡‘ +°fŽ¡‘±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Zá¬(‘ª®);Ž¡‘­forŽ‘%般(­in®9tŽ‘¤÷µiŽ‘Þ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ3Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Rþ¬[µiŽ‘qô¬]‘ǵ=¬=ŽŽ‘UOµrŽ‘c¬;Ž¡‘ +°gŽŸ­540.‘ üV‘ÿ «ector-scalar‘ÕTdivision.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y;Made–UUthis“function“and“the“argumen¸ãt“±rŽ‘ t¾ÂconstŽ‘&J «.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†S±=«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹…C° Šn ý‘ì·x«497–­3DLDFPRÃŽG’ìéfVECTOR-SCALAR‘ÕXDIVISION“«133Ž €n ý•@PÂ497.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::Ž‘L(ÂopQÇeratorŽ‘w®Ý±=«(ÂconstŽ‘*¢realŽ‘4ÝбrŽ‘9§ä«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘±aŽ‘I2:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±aŽ‘J=«=ŽŽ‘+ž±rŽ‘0h•«;Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gŽŸÂ498.‘ üDot‘ÕTproQÇduct.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Xô2Changed–ALthis“function“and“argumenš¸ãt“±pŽ‘ Š˜«to“ÂconstŽ‘™«.‘kNo˜w“using“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘S––«directlyŽ¡instead–UUof“Ïget‘‰ffŽ‘®xŽ‘㼫(›ª®),“Ïget‘‰ffŽ‘®yŽ‘Ék«(˜),“and“Ïget‘‰ffŽ‘®zŽ‘]V«(˜).Ž¡‘ -[¬LDF‘T2003.07.11.«]Ž‘Y;Changed,–UUso“that“if“the“dot“prošGduct“is“less“than“ÂP•®9oin“tŽ‘ï¡«::‘ÏepsilonŽ‘ o«(‘ª®),“0“will“b˜e“returned.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/Ïdot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘S3P«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)‘UUÂconstŽ‘*¢«;ŽŸÂ499.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/P•®9oin“tŽ‘=M{«::‘Ïdot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘3€%«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘±aŽ‘I2:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±pŽ‘:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘ÂrealŽ‘+Øõ±rŽ‘5S½«=‘°´((±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–ü¸·“±pŽ‘¸:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[0Ž‘])“+“(±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“·Ž¡‘(±pŽ‘-:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[1Ž‘])–8à+“(±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]“·“±pŽ‘@à:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]));ަ‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(±rŽ‘Ê«)–DZ<“ÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÏepsilonŽ‘E^¦«(‘ª¨))‘±rŽ‘ ‘,«=“0Ž‘Ç;Ž¡‘ÂreturnŽ‘7æ¼±rŽ‘<°Ð«;Ž¡‘ -·gŽŸÂ500.‘ üCross‘ÕTproQÇduct.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Xô2Changed–ALthis“function“and“argumenš¸ãt“±pŽ‘ Š˜«to“ÂconstŽ‘™«.‘kNo˜w“using“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘S––«directlyŽ¡instead–UUof“Ïget‘‰ffŽ‘®xŽ‘㼫(›ª®),“Ïget‘‰ffŽ‘®yŽ‘Ék«(˜),“and“Ïget‘‰ffŽ‘®zŽ‘]V«(˜).ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏcr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘c|‡«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹†K Šn ý‘ì«134›­CR•ÃŽOSS‘ÕXPR“ODUCT’-3DLDFPR“G˜·x«501Ž €n ý•@PÂ501.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::‘Ïcr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘;Œí«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘±aŽ‘I2:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±pŽ‘:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘ÂP•®9oin“tŽ‘2rŽ‘7¹³«;ަ‘±rŽ‘Ê:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–—=“(±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]–\F·“±pŽ‘dF:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘])“·“«(±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]“·Ž¡‘(±pŽ‘-:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘]);‘±=·‘ÿý«x.‘o·±=Ž¡‘rŽ‘Ê:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[1Ž‘]–—=“(±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘]–\F·“±pŽ‘dF:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[0Ž‘])“·“«(±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[0Ž‘]“·Ž¡‘(±pŽ‘-:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘]);‘±=·‘ÿý«y‘ÿ*ª.‘o·±=Ž¡‘rŽ‘Ê:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[2Ž‘]–—=“(±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[0Ž‘]–\F·“±pŽ‘dF:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘])“·“«(±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘]“·Ž¡‘(±pŽ‘-:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘]);‘±=·‘ÿý«z.‘o·±=Ž¡‘ÂreturnŽ‘7æ¼±rŽ‘<°Ð«;Ž¡‘ -·gŽŸÂ502.– üMagnitude.“«[¬LDF‘T2002.10.27.«]ŽŽ¤Ùš‘ -The–UUmagnitude“of“a“ÂP•®9oin“tŽ‘"Dò«is“its“distance“from“the“origin“and“is“equal“to“Ÿ÷s0óú±u +¬[²LDF‘T2002.10.27.¬]Ž‘Y;Made–UUthis“function“and“the“argumen¸ãt“µrŽ‘ t¾­constŽ‘&J ¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžopQÇeratorŽ‘T†Sµ=¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹ 39 Šn ý‘ì°x¬541–¯3DLDF-1.1.5.1’äuÐVECTOR-SCALAR‘ÕXDIVISION“¬143Ž €n ý•@P­541.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::Ž‘L(­opQÇeratorŽ‘w®Ýµ=¬(­constŽ‘*¢realŽ‘4ÝеrŽ‘9§ä¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2aŽ‘88Ϭ(°Ž‘±thisŽ‘ë·¬);ަ‘µaŽ‘I2:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘µaŽ‘J=¬=ŽŽ‘+žµrŽ‘0h•¬;Ž¡‘­returnŽ‘7æ¼µaŽ‘=/ì¬;Ž¡‘ +°gŽŸ­542.‘ üDot‘ÕTproQÇduct.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Xô2Changed–ALthis“function“and“argumenš¸ãt“µpŽ‘ Š˜¬to“­constŽ‘™¬.‘kNo˜w“using“±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘S––¬directlyŽ¡instead–UUof“±get‘‰ffŽ‘®xŽ‘㼬(›ª®),“±get‘‰ffŽ‘®yŽ‘Ék¬(˜),“and“±get‘‰ffŽ‘®zŽ‘]V¬(˜).Ž¡‘ +[²LDF‘T2003.07.11.¬]Ž‘Y;Changed,–UUso“that“if“the“dot“prošGduct“is“less“than“­P•®9oin“tŽ‘::‘±epsilonŽ‘ o¬(‘ª®),“0“will“b˜e“returned.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/±dot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘S3P¬(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)‘UU­constŽ‘*¢¬;ŽŸ­543.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/P•®9oin“tŽ‘=M{¬::‘±dot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘3€%¬(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2aŽ‘88Ϭ(°Ž‘±thisŽ‘ë·¬);ަ‘µaŽ‘I2:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘µpŽ‘:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘­realŽ‘+ØõµrŽ‘5S½¬=‘°´((µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–ü¸°“µpŽ‘¸:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[0Ž‘])“+“(µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“°Ž¡‘(µpŽ‘-:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[1Ž‘])–8à+“(µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]“°“µpŽ‘@à:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]));ަ‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(µrŽ‘Ê¬)–ǵ<“­P•®9oin“tŽ‘ad¬::Ž‘%epsilonŽ‘E^¦¬(‘ª¨))‘µrŽ‘ ‘,¬=“0Ž‘Ç;Ž¡‘­returnŽ‘7æ¼µrŽ‘<°Ð¬;Ž¡‘ +°gŽŸ­544.‘ üCross‘ÕTproQÇduct.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Xô2Changed–ALthis“function“and“argumenš¸ãt“µpŽ‘ Š˜¬to“­constŽ‘™¬.‘kNo˜w“using“±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘S––¬directlyŽ¡instead–UUof“±get‘‰ffŽ‘®xŽ‘㼬(›ª®),“±get‘‰ffŽ‘®yŽ‘Ék¬(˜),“and“±get‘‰ffŽ‘®zŽ‘]V¬(˜).ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïž±cr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘c|‡¬(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹ :œ Šn ý‘ì¬144›¯CR•ÃŽOSS‘ÕXPR“ODUCT’¹ˆ3DLDF-1.1.5.1˜°x¬545Ž €n ý•@P­545.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::‘±cr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘;Œí¬(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2aŽ‘88Ϭ(°Ž‘±thisŽ‘ë·¬);ަ‘µaŽ‘I2:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘µpŽ‘:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘­P•®9oin“tŽ‘2rŽ‘7¹³¬;ަ‘µrŽ‘Ê:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–—=“(µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]–\F°“µpŽ‘dF:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘])“°“¬(µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]“°Ž¡‘(µpŽ‘-:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘]);‘µ=°‘ÿý¬x.‘o°µ=Ž¡‘rŽ‘Ê:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[1Ž‘]–—=“(µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘]–\F°“µpŽ‘dF:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[0Ž‘])“°“¬(µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[0Ž‘]“°Ž¡‘(µpŽ‘-:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘]);‘µ=°‘ÿý¬y‘ÿ*ª.‘o°µ=Ž¡‘rŽ‘Ê:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[2Ž‘]–—=“(µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[0Ž‘]–\F°“µpŽ‘dF:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘])“°“¬(µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘]“°Ž¡‘(µpŽ‘-:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘]);‘µ=°‘ÿý¬z.‘o°µ=Ž¡‘­returnŽ‘7æ¼µrŽ‘<°Ð¬;Ž¡‘ +°gŽŸ­546.– üMagnitude.“¬[²LDF‘T2002.10.27.¬]ŽŽ¤Ùš‘ +The–UUmagnitude“of“a“­P•®9oin“tŽ‘"Dò¬is“its“distance“from“the“origin“and“is“equal“to“Ÿ÷s0ó ú±u -cmex10½pŽ‘ UVŸ÷s0‰fe=¿eŸŒÐ«(±xŸýr®2Ž‘µS«+–8à±y[ÙŸýr®2Ž‘,«+“±zp—Ÿýr®2Ž‘í -«)ŽŽŽ‘K».ަ‘ -Since‘»‡Ï o‘ÿ}'atsŽ‘Ëþ«are–»‡so“large“an•¸ãyw“a“y‘ÿ*ª,‘ÚJand–»‡since“I‘»acan“easily“rede ne“ÂrealŽ‘Ôç«to“use“ÂdoubleŽ›'kÿ«or“ÂdoubleŽ˜doubleŽ‘I`ð«,‘ÚJ(orŽ¡whatevš¸ãer–Ü]it's“called“LoGok“up!!),‘ôit's“not“really“necessary“to“use“an“algorithm“to“appro˜ximate“Ÿ÷s0½pŽ‘ Ü^Ÿ÷s0‰fe=¿eŸŒÐ«(±xŸýr®2Ž‘µS«+–8à±y[ÙŸýr®2Ž‘,«+“±zp—Ÿýr®2Ž‘í -«)ŽŽŽŽ¤ (viz.,›—\Pythagorean–òWaddition"“in“Kn¸ãuth,˜ÏMetafont:‘ºzThe‘$YPr–ÿ}'o“gr“am«.–HÌ(Get‘òWreference!!)“Ho•¸ãw“ev“er,˜it›òWmigh“t˜bGeŽ¡nice–UUto“use“it“an•¸ãyw“a“y‘ÿ*ª.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘ZMade–j6this“function“ÂconstŽ‘?ƒ«.‘°kNo¸ãw“using“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Uèj«directly“instead“of“Ïget‘‰ffŽ‘®xŽ‘ø«(‘ª®),Ž¡Ïget‘‰ffŽ‘®yŽ‘t«(›ª®),–UUand“Ïget‘‰ffŽ‘®zŽ‘]V«(˜).ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/ÏmagnitudeŽ‘Nð¡«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹‡VE Šn ý‘ì·x«503›­3DLDFPR•ÃŽG’+úXMA“GNITUDE˜«135Ž €n ý•@PÂ503.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ ³/P•®9oin“tŽ‘=M{«::‘ÏmagnitudeŽ‘/=v«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂrealŽ‘*³0±rŽ‘/}D«;Ž¡‘ÂrealŽ‘*³0ÏtempŽ‘A ¤«;Ž¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘±aŽ‘I2:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÂifŽ‘!™«((±aŽ›I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘]–íá±>“ÝMAX_REAL_SQRTŽ‘J´"«)–{—·_“«(±aŽ˜:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘]‘íá±>Ž¡‘2ÝMAX_REAL_SQRTŽ‘vÆF«)–8à·_“«(±aŽ‘I0:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘]–DZ>“ÝMAX_REAL_SQRTŽ‘GY«))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘9Ü·‘d3Ý"ERROR:È ÝInÈ ÝPoint::maŽ‘qc÷gnitude().\n"Ž’¾Žk·Ž¡‘2Ý"PointÈ ÝhasÈ ÝaÈ ÝcoordinŽ’šÿÉateÈ ÝtooÈ ÝlargeÈ ÝforÈ ÝsqŽ’ÿuaring!\n"Ž’;Ìï·‘ÇÝ"ReturningÈ ÝINVALID_RŽ‘kÆÜEAL.\n"Ž’‘ /«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_REALŽ’m«;Ž¡‘·gŽ¡‘±rŽ‘‘.«=‘DZaŽ‘H:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[0Ž‘]–8à·“±aŽ‘‚:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[0Ž‘];Ž¡‘ÏtempŽ‘-!Ž«=‘DZaŽ‘H:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[1Ž‘]–8à·“±aŽ‘‚:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[1Ž‘];Ž¡‘ÂifŽ‘´ú«(ÝMAX_REALŽ‘,¿0·‘8à±rŽ‘ Ê <‘ÇÏtempŽ‘!Œ«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"InÈ Ýmagnitude().\n"Ž‘g G«;Ž¡‘Ïc‘ÿ}'errŽ‘3ço·‘1ÆÝ"PointÈ ÝhasÈ ÝtooÈ ÝgreatŽ‘l1ŠÈ ÝaÈ Ýmagnitude!\n"Ž’À·Â«;‘±=·‘?ÿ«!!›1ÎThis‘•WÏshowŽ‘ V«(‘ª®)–•Woutputs“to“ÏstdoutŽ‘]{«.˜ItŽ¡‘2w¸ãould–UUbGe“nice“to“output“it“to“ÏstderrŽ‘!Ï=«instead.‘qÇMust“write“function“for“this.‘o·±=Ž¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"ReturningÈ ÝINVALID_RŽ‘kÆÜEAL.\n"Ž’‘ /«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_REALŽ’m«;Ž¡‘·gŽ¡‘±rŽ‘‘.«+=ŽŽ‘-æ‚ÏtempŽ‘D@ö«;Ž¡‘ÏtempŽ‘-!Ž«=‘DZaŽ‘H:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ«[2Ž‘]–8à·“±aŽ‘‚:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜«[2Ž‘];Ž¡‘ÂifŽ‘´ú«(ÝMAX_REALŽ‘,¿0·‘8à±rŽ‘ Ê <‘ÇÏtempŽ‘!Œ«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"InÈ Ýmagnitude().\n"Ž‘g G«;Ž¡‘Ïc‘ÿ}'errŽ‘3ço·‘1ÆÝ"PointÈ ÝhasÈ ÝtooÈ ÝgreatŽ‘l1ŠÈ ÝaÈ Ýmagnitude!\n"Ž’À·Â«;‘±=·‘?ÿ«!!›1ÎThis‘•WÏshowŽ‘ V«(‘ª®)–•Woutputs“to“ÏstdoutŽ‘]{«.˜ItŽ¡‘2w¸ãould–UUbGe“nice“to“output“it“to“ÏstderrŽ‘!Ï=«instead.‘qÇMust“write“function“for“this.‘o·±=Ž¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"ReturningÈ ÝINVALID_RŽ‘kÆÜEAL.\n"Ž’‘ /«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_REALŽ’m«;Ž¡‘·gŽ¡‘±rŽ‘‘.«+=ŽŽ‘-æ‚ÏtempŽ‘D@ö«;Ž¡‘ÂreturnŽ‘7æ¼ÏsqrtŽ‘I–µ«(±rŽ‘Ê«);Ž¡‘ -·gŽŸÂ504.‘ üAngle›ÕTbQÇet•®9w“een˜t“w“o˜v“ectors.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y;Made–UUthis“function“ÂconstŽ‘*¢«.Ž¡‘ -[¬LDF‘T2003.07.27.«]Ž‘Y;Made–UUthe“argumenš¸ãt“±pŽ‘ ²ª«a“ÂconstŽ‘!÷P•®9oin“tŽ‘@o”«&Ž‘H6².‘qÇNo“longer“cop˜ying“·Ž‘UVÏthisŽ‘A «.‘qÇNo˜w“usingŽ¡Ïdot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!«(‘ª®)–UUinstead“of“calculating“the“angle“\b¸ãy“hand".‘qÇSimpli ed“the“coGde“of“the“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/ÏangleŽ‘8s‚«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹ˆbN Šn ý‘ì«136‘­ANGLE–ÕXBETWEEN“TWšÃŽO“VECTORS’Ïí43DLDFPR˜G‘·x«505Ž €n ý•@PÂ505.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ ³/P•®9oin“tŽ‘=M{«::‘ÏangleŽ‘ÀW«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·–ÿý«true“·±=Ž¡‘ÂrealŽ‘*³0ÏmagŽ‘@Ã&«=‘ÇÏmagnitudeŽ‘1Š«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïp‘‰ffŽ‘®magŽ‘I©«=‘DZpŽ‘Ï:ÏmagnitudeŽ‘.=r«(‘ª¨);ަ‘ÂifŽ‘´ú«(ÏmagŽ‘ö·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"WARNING!È ÝInÈ Ýangle()Ž‘kÆÜ.È Ýmagnitude()È ÝfailedŽ’ÔÆ ."Ž’â”·‘ÇÝ"È ÝReturningÈ ÝINVALID_Ž‘kÆÜREAL.\n"Ž’–M,«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_REALŽ’m«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏmagŽ‘ö·‘Ç«0Ž‘Ç)‘·fŽ¡‘ÂifŽ‘*›2«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'errŽ‘ül·‘FÆÝ"WARNING!È ÝInÈ Ýangle()Ž‘mFŠ.\n"Ž’‡¬·‘FÆÝ"*thisÈ ÝhasÈ ÝmagnitudeŽ‘mFŠÈ Ý0.\n"Ž’‘“¦·Ž¡‘<Ý"ReturningÈ ÝINVALID_RŽ’¤ÿÊEAL.\n"Ž’ÊF«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_REALŽ’m«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïp‘‰ffŽ‘®magŽ‘Úy·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"WARNING!È ÝInÈ Ýangle()Ž‘kÆÜ.È Ýp.magnitude()È ÝfailŽ’ÔÆ ed."Ž’í·‘ÇÝ"È ÝReturningÈ ÝINVALID_Ž‘kÆÜREAL.\n"Ž’–M,«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_REALŽ’m«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïp‘‰ffŽ‘®magŽ‘Úy·‘Ç«0Ž‘Ç)‘·fŽ¡‘ÂifŽ‘*軫(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'errŽ‘}¦·‘ÈÝ"WARNING!È ÝInÈ Ýangle()Ž‘mÇÄ.\n"Ž’ˆ ·‘ÈÝ"pÈ ÝhasÈ ÝmagnitudeÈ Ý0.\Ž‘mÇÄn"Ž‘}–&·Ž¡‘<Ý"ReturningÈ ÝINVALID_RŽ’¤ÿÊEAL.\n"Ž’ÊF«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_REALŽ’m«;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáreturnŽ‘O¿›«(180ŽŽ‘±=ÝPIŽ‘ ?B·‘8àÏac‘ÿ}'osŽ‘ô9«(Ïdot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!«(±pŽ‘«)±=«(ÏmagŽ‘¾·‘8àÏp‘‰ffŽ‘®magŽ‘LA«)));Ž¡‘ -·gŽŸÂ506.‘ üUnit‘ÕTv®9ector.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y·ùAdded–a“second“vš¸ãersion.‘If“ÏassignŽ‘#åB«is“not“used,‘1Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘4Æx«(‘ª®)“can“bGe“ÂconstŽ‘Ú`«,‘1so“I‘æno˜wŽ¡ha•¸ãv“e–<ça“ÂconstŽ‘!O«vš¸ãersion“with“no“argumen˜t“and“a“non-ÂconstŽ‘4«one“for“assignmen˜t“that“should“bGe“called“with“theŽ¡argumen¸ãt‘UUÏtrueŽ‘í«.ަŸüÈ„`ÕÁGŽŽŸÂ507.– üWith‘zÖassignmen®9t.“«This–¤vš¸ãersion“should“only“ev˜er“bGe“called“with“ÏtrueŽ‘Ñà«as“its“argumen˜t.‘WŒUsing“ÏfalseŽŽ¡«will–UUwš¸ãork,“unless“·Ž‘UVÏthisŽ‘–a«is“ÂconstŽ‘*¢«,“in“whic˜h“case“it“will“cause“an“compilation“error.‘qÇ[¬LDF‘T2002.10.27.«]ŽŽ¡‘ -If–˜Óthe“optional“ÏsilentŽ‘身argumenš¸ãt“is“ÏtrueŽ‘]k«,‘¾‡w˜arning“messages“will“bšGe“suppressed,–¾‡otherwise,“they–˜Ówill“b˜e“issued.Ž¡The‘ýIÂconstŽ‘"Ïß«v•¸ãersion›ýIbGelo“w˜can't˜ha“v“e˜an˜optional˜ÏsilentŽ‘ ±¦«argumen“t,‘'EbGecause˜that˜w“ould˜mak“e˜a˜call˜to˜thisŽ¡function–UUwith“one“argumenš¸ãt“am˜biguous.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y;If‘UUÏmagnitudeŽ‘1’Ç«(›ª®)–UUfails,“Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘3êÊ«(˜)“no¸ãw“returns“ÝINVALID_POINTŽ‘Kpë«instead“of“ÏoriginŽ‘Kv«.Ž¡‘ -[¬LDF‘T2003.07.01.«]Ž‘XŽ'Added–ÛAthe“ÏsilentŽ‘m–«argumenš¸ãt“to“suppress“w˜arning“messages.‘II‘Û"k˜ept“getting“w˜arnings“whenŽ¡this–˜/function“wš¸ãas“called“from“in˜tersection“functions,‘¾in“cases“where“it“w˜asn't“a“problem,‘¾that“a“ÂP•®9oin“tŽ‘ ʦ«(v˜ector)Ž¡had–UU0“magnitude.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘Y…«(ÂconstŽ‘*¢b•QÇo“olŽ‘7ÌÏassignŽ‘S§$±;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°ÏsilentŽ‘TôÜ«=‘ÇÏfalseŽ‘v\«);ŽŽŽŒ‹‰o  Šn ý‘ì·x«508–­3DLDFPRÃŽG’ ¨tWITH‘ÕXASSIGNMENT“«137Ž €n ý•@PÂ508.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::‘Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘1•y«(ÂconstŽ‘*¢b•QÇo“olŽ‘7ÌÏassignŽ‘S§$±;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°ÏsilentŽ‘R-Ä«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÏassignŽ‘¢4·‘ÇÏfalseŽ‘v\«)‘·fŽ¡‘ÂifŽ‘)´û«(·:ÏsilentŽ‘·«)‘·fŽ¡‘(Ïc‘ÿ}'errŽ‘BNa·‘˜·Ý"WARNING!È ÝInÈ ÝPoint::Ž‘p˜{unit_vector():\n"Ž’Ñ÷g·Ž¡‘<Ý"Don'tÈ ÝcallÈ ÝthisÈ ÝfunŽ’¤ÿÊctionÈ ÝwithÈ ÝfalseÈ ÝasÈ Ž’ ÿŽÝitsÈ Ýargument.\n"Ž’hº·Ž¡‘<Ý"UseÈ Ýunit_vector()È ÝwŽ’¤ÿÊithoutÈ ÝanÈ ÝargumentÈ ÝiŽ’ ÿŽnstead.\n"Ž’Ik¼·Ž¡‘<Ý"CallingÈ Ýunit_vectorŽ’¤ÿÊ()È ÝwithoutÈ ÝanÈ ÝargumeŽ’ ÿŽnt.\n\n"Ž’;Lö·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂreturnŽ‘Aæ½Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘r|2«(‘ª®);Ž¡‘·gŽ¡‘Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Zá«(‘ª®);ަ‘ÂrealŽ‘*³0±mŽ‘6Aÿ«=‘ÇÏmagnitudeŽ‘1Š«(‘ª¨);ަ‘ÂifŽ‘´ú«(±mŽ‘ ŽÏ·‘Ç«0Ž‘Ç)Ž¡‘±=·‘ÿý«LDF–UU2002.04.10.‘qÇAdded“this“error“handling“coGde“for“the“case“where“*this“has“no“magnitude.‘o·±=Ž¡‘·fŽ¡‘ÂifŽ‘)´û«(·:ÏsilentŽ‘·«)‘·fŽ¡‘(Ïc‘ÿ}'errŽ‘BNa·‘˜·Ý"WARNING!È ÝInÈ ÝPoint::Ž‘p˜{unit_vector().\n"Ž’Ñ÷g·Ž¡‘<Ý"PointÈ Ý(vector)È ÝhasÈ Ž’¤ÿÊÝnoÈ Ýmagnitude.È ÝReturnŽ’ ÿŽingÈ ÝINVALID_POINT.\nŽ’vÿR\n"Ž’Š É·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gŽ¡‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«3Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Rþ«[±iŽ‘qô«]‘DZ=«=ŽŽ‘UO±mŽ‘«;Ž¡‘Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘a«[3Ž‘]–Ç=“1Ž‘Ç;‘±=·‘ÿý«[¬LDF‘T2002.10.27.«]Ž‘T7Setting–UUthe“w-cošGordinate“to“1,“just“to“b˜e“sure.‘o·±=Ž¡‘ÂreturnŽ‘7æ¼·Ž‘<æ½ÏthisŽ‘MÒs«;Ž¡‘ -·gŽŸÂ509.‘ üconst–ÕT(no“assignmen®9t).ަ·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘Y…«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ510.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::‘Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘1•y«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2aŽ‘88Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘ÂreturnŽ‘7æ¼±aŽ‘=/ì:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);Ž¡‘ -·gŽŸÂ511.‘ üMediation.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.12.09.«]Ž‘Y;Changed–UUfrom“a“non-memš¸ãbGer“to“a“ÂconstŽ‘!÷«mem˜bGer“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏme‘ÿ}'diateŽ‘K­«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±rŽ‘>¤«=‘DZ:«5ŽŽ‘ -Ž6)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹Š~ Šn ý‘ì«138–­MEDIA‘ÿJªTION’/Ð 3DLDFPRÃŽG“·x«512Ž €n ý•@PÂ512.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::‘Ïme‘ÿ}'diateŽ‘#½y«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±rŽ‘;RŒ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2tŽ‘6Œ«(·Ž‘ÏthisŽ‘ë·«);ަ‘±tŽ‘cŒ·«=ŽŽ‘)ñÃ(1Ž‘8á·‘8à±rŽ‘ô«);Ž¡‘±pŽ‘Ï·«=ŽŽ‘+]Q±rŽ‘0'e«;Ž¡‘ÂreturnŽ‘7漫(±tŽ‘ÕR«+‘8à±pŽ‘@à«);Ž¡‘ -·gŽŸÂ513.– üGet‘/normal.“Ïget‘‰ffŽ‘®normalŽ‘< -p«(‘ª®)–ĵm¸ãust“bšGe“de ned“in“Èpaths.web«,‘á¢b˜ecause“it“uses“a“ÂP®9athŽ‘Ϋin“its“de nition,Ž¡whicš¸ãh–UUis“an“incompletely“de ned“t˜ypGe“in“this“ le.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.11.«]Ž‘Y;Added–UUthis“declaration.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏget‘‰ffŽ‘®normalŽ‘Yz«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié];‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒ±qŽ‘K^¯«)‘UUÂconstŽ‘*¢«;ޤÂ514.‘ üComparison.Ž¡515.– üEqualit®9y‘ÿ -«.“«!!‘RˆI‘÷ma•¸ãy›÷™ha“v“e˜to˜adjust˜to˜v‘ÿqÇalue˜of˜ÏepsŽ‘[«.‘RˆIt˜w“ould˜b•Ge˜nice˜to˜b“e˜able˜to˜use˜ÏepsilonŽ‘"f«(‘ª®),‘ -Xbutޤ for– ,other“purpšGoses“ÏepsilonŽ‘"{0«(‘ª®)“m¸ãust“b˜e“smaller.‘YdT‘ÿ*ªransformations“seem“to“cause“fairly“large“inaccuracies“in“theŽ¡v‘ÿqÇalues–UUof“the“coGordinates,“so“I“need“greater“tolerance“in“the“functions“testing“for“equalitš¸ãy“and“inequalit˜y‘ÿ*ª.Ž¡‘ -This–1Øfunction“could“bGe“formš¸ãulated“more“succinctly‘ÿ*ª,‘8ñbut“I‘1Ïhad“some“trouble“getting“it“to“w˜ork“propGerly‘ÿ*ª,‘8ñsoŽ¡I'm–UUleaš¸ãving“it“in“its“more“v˜erbGose“form,“in“case“I“ha˜v˜e“to“debug“it“some“more.ŽŸÂ516.‘ üNon-const‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.27.«]Ž‘Y1ãRevised–~ýthis“function.›î¾No¸ãw“using“ÂP•®9oin“tŽ‘"˜B±aŽ‘+`o«and“ÂP•®9oin“tŽ‘"˜B±qŽ‘'jì«.˜Added“ÏfactorŽ‘"Ø«and“using“it“asŽ¡the–,Rargumen¸ãt“to“Ïcle‘ÿ}'anŽ‘mÔ«(‘ª®)“and“for“calculating“ÏepsŽ‘N«.‘dSince“this“function“is“an“opšGerator,‘4†it's“not“p˜ossible“to“passŽ¡ÏfactorŽ‘:[«as–6}an“argumenš¸ãt,‘nÇunfortunately‘ÿ*ª.‘?Using“Ïcle‘ÿ}'anŽ‘wÿ«(ÏfactorŽ‘Þ«)“mak˜es“it“pšGossible“to“compare“the“co˜ordinatesŽ¡with–¢0“directly“rather“than“using“ÏfabsŽ‘ÔÙ«(‘ª®)“and“ÏepsŽ‘ÃÉ«.‘WÝAlso,‘µ4ÂopQÇeratorŽ‘/Ké·Ž‘7«(‘ª¨)“no¸ãw“uses“Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘TX «directlyŽ¡rather–UUthan“Ïget‘‰ffŽ‘®xŽ‘㼫(›ª®),“Ïget‘‰ffŽ‘®yŽ‘Ék«(˜),“and“Ïget‘‰ffŽ‘®zŽ‘]V«(˜).Ž¡‘ -[¬LDF‘T2003.07.09.«]Ž‘Y;Made–UUthis“function“non-ÂconstŽ‘ÕM«,“and“added“ÂconstŽ‘!÷«vš¸ãersion“bGelo˜w.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8·Ž‘Vÿ:«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«);ŽŽŽŒ‹‹Š  Šn ý‘ì·x«517–­3DLDFPRÃŽG’úAÕNON-ÂCONST‘ÕX­VERSION“«139Ž €n ý•@PÂ517.ޤ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž© ‘ -Âb•QÇo“olŽ‘#¡gP•®9oin“tŽ‘@;³«::Ž‘FÉñÂopQÇeratorŽ‘r`¦·Ž‘z'Ä«(ÂP•®9oin“tŽ‘ï±pŽ‘#÷«)·f‘UUÂb•QÇo“olŽ‘ö»ÝDEBUGŽ‘:„,«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPoint::opeŽ‘kÆÜrator==()"Ž’£”>·‘ÇÝ"\n"Ž‘Œ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂunsignedŽ‘N7shortŽ‘l´ÏfactorŽ’‰Ìª«=‘Ç10ŽŽ‘ Ç;‘±=·‘ÿý«LDF‘UU2002.10.27.‘qÇAdded.‘o·±=Ž¡‘Ïcle‘ÿ}'anŽ‘5A…«(ÏfactorŽ‘Þ«);ަ‘±pŽ‘#:Ïcle‘ÿ}'anŽ‘A‚«(ÏfactorŽ‘Þ«);Ž¡‘ÂrealŽ‘4³1ÏepsŽ‘Fœ «=‘ÇÏepsilonŽ‘"6«(‘ª¨)–8à·“ÏfactorŽ‘<¾«;‘±=·‘ÿý«This–UUcurrenš¸ãtly“mak˜es“ÏepsŽ‘Ìl·‘DZ:«0001.‘o·±=ަ‘ÂrealŽ‘4³1Ït‘‰ffŽ‘®xŽ‘DÕ‚«=‘ÇÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ«[0Ž‘];ަ‘ÂrealŽ‘4³1Ït‘‰ffŽ‘®yŽ‘D»1«=‘ÇÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ«[1Ž‘];ަ‘ÂrealŽ‘4³1Ït‘‰ffŽ‘®zŽ‘DO«=‘ÇÏworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ«[2Ž‘];ަ‘ÂrealŽ‘4³1Ïp‘‰ffŽ‘®xŽ‘FŸw«=‘DZpŽ‘Ï:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];ަ‘ÂrealŽ‘4³1Ïp‘‰ffŽ‘®yŽ‘F…&«=‘DZpŽ‘Ï:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘];ަ‘ÂrealŽ‘4³1Ïp‘‰ffŽ‘®zŽ‘F«=‘DZpŽ‘Ï:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘];ŽŸÂ518.‘ üP•®9oin“tsŽ‘/À«are–™frequen¸ãtly“compared“to“ÝINVALID_POINTŽ‘HâÚ«,‘Njso“it's“bGest“to“suppress“debugging“output“forަthese–UUcomparisons,“bGecause“they're“probably“not“the“ones“wš¸ãe're“in˜terested“in.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂifŽ‘Û«(Ït‘‰ffŽ‘®xŽ‘aÊ·‘‘ÝINVALID_REALŽ–Dß·_‘RDÏt‘‰ffŽ‘®yŽ‘™½·‘‘ÝINVALID_REALŽ“·_‘RDÏt‘‰ffŽ‘®zŽ‘-¨·‘‘ÝINVALID_REALŽ“·_‘RDÏp‘‰ffŽ‘®xŽ‘~·‘‘ÝINVALID_REALŽ“·_‘RDÏp‘‰ffŽ‘®yŽ‘c²·ަ‘(ÝINVALID_REALŽ‘i¿(·_‘8àÏp‘‰ffŽ‘®zŽ‘žÀ·‘ÇÝINVALID_REALŽ‘BM\«)‘ÝDEBUGŽ‘"q«=‘ÇÏfalseŽ‘v\«;ŽŸÂ519.‘ ü«Debugging‘UUoutput.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"t_xÈ Ý==È Ý"Ž‘5T}·‘ÇÏt‘‰ffŽ‘®xŽ‘éi·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"t_yÈ Ý==È Ý"Ž‘5T}·‘ÇÏt‘‰ffŽ‘®yŽ‘Ï·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"t_zÈ Ý==È Ý"Ž‘5T}·‘ÇÏt‘‰ffŽ‘®zŽ‘c·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"p_xÈ Ý==È Ý"Ž‘5T}·‘ÇÏp‘‰ffŽ‘®xŽ‘³^·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"p_yÈ Ý==È Ý"Ž‘5T}·‘ÇÏp‘‰ffŽ‘®yŽ‘™ ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"p_zÈ Ý==È Ý"Ž‘5T}·‘ÇÏp‘‰ffŽ‘®zŽ‘,ø·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘ -·gŽŸÂ520.‘ ü«Chec¸ãk–UUwhether“the“cošGordinates“of“b˜oth“ÂP•®9oin“tsŽ‘&Î.«are“all“0.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.10.27.«]Ž‘XTNo¸ãw–¡6that“Ïcle‘ÿ}'anŽ‘⸫(10ŽŽ› -)“and“±pŽ‘©6:Ïcle‘ÿ}'anŽ‘A‚«(10ŽŽ˜)“are“called“abGo•¸ãv“e,‘Åi³«blo˜c¸ãks“where“calculations“are“p˜erformed“b˜elo¸ãw,Ž¡just–UUin“case“o•¸ãv“er o“w‘UUoGccurs.Ž¡‘ -!!‘>BUnder–D)Linš¸ãux,‘ÝbGoth“this“function“and“the“v˜ersion“of“Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘UÑ«(‘ª®)“using“traces“ha˜v˜e“failed“inŽ¡the–cksame“cases,‘fñwhicš¸ãh“in˜v˜olv˜ed“coplanar“lines“whic˜h“had“bšGeen“rotated“ab˜out“the“z-axis“or“the“y“and“z-axes.Ž¡I‘€¥suspGect–€òit“has“to“do“with“the“routines“for“sine“and“cosine,‘ËÙsince“I'v¸ãe“had“trouble“with“rotation“in“theŽ¡constructors–UUfor“ÂP®9olyhedraŽ‘6Ö±«.‘qÇ[¬LDF‘T2003.06.29.«]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.04.10.«]Ž‘Y;Added–UUthis“function.‘qÇIt“replaces“the“old“vš¸ãersion,“bGelo˜w.Ž¡‘ -[¬LDF‘T2002.04.12.«]Ž‘YòÈRemo•¸ãv“ed–?âthe“de nition“of“this“function“to“Èlines.web«,‘z…bGecause“it“requires“the“use“ofŽ¡ÂLinesŽ‘á¿«,–UUand“ÂLineŽ‘-«is“an“incomplete“t¸ãypGe“here.Ž¡‘ -[¬LDF‘T2003.06.29.«]Ž‘YÝStarted–Ì÷using“this“vš¸ãersion“again.‘Ø®Bug“ xes“I'v˜e“made“elsewhere“seem“to“ha˜v˜e“made“itŽ¡function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·ޤ ‘ -ÂstaticŽ‘(Þºb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘a5Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ’®³ «(ÂconstŽ‘À‚P•®9oin“tŽ‘ŸÓVEŽ‘ãxXŽ‘l/section“forŽ¡the–UUvš¸ãector“v˜ersion,“abGo˜v˜e,“for“more“information.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­284“·i‘Ç«+·Ž© ‘ -ÂstaticŽ‘)HÚb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘aðuÏinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ’¯‡K«(ÂP•®9oin“tŽ‘ïÏp0Ž‘+]±;‘ª¨ÂP•®9oin“tŽ‘ šEÏp1Ž‘,±±;‘ª¨ÂP•®9oin“tŽ‘ šEÏq0Ž–,.,±;‘ª¨ÂP•®9oin“tŽ‘ šEÏq1Ž“±;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°Ïtr–ÿ}'ac“eŽ‘OÁ«);ŽŸÂ530.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘BÑP•®9oin“tŽ‘_kL«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(ÂP•®9oin“tŽ‘Ïp0Ž‘+/Á±;‘ª¨ÂP•®9oin“tŽ‘ éÏp1Ž‘,Úi±;‘ª¨ÂP•®9oin“tŽ‘ éÏq0Ž–,W±;‘ª¨ÂP•®9oin“tŽ‘ éÏq1Ž“±;‘ª¨ÂconstŽ‘þ®b•QÇo“olŽ‘9ÉxÏtr–ÿ}'ac“eŽ‘Oà‰«)·fަ‘2Âb•QÇo“olŽ‘K¡kÝDEBUGŽ‘i.Ü«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fަ‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"EnteringÈ ÝPoint::intŽ‘kÆÜersection_point().\nŽ’ÔÆ "Ž’ÝT·‘ÇÏ ushŽ‘€«;ަ‘(Ïp0Ž‘4ı:ÏshowŽ‘Šÿ«(Ý"p0"Ž‘†\«);ަ‘(Ïp1Ž‘4ı:ÏshowŽ‘Šÿ«(Ý"p1"Ž‘†\«);ަ‘(Ïq0Ž‘3“ë±:ÏshowŽ‘Šÿ«(Ý"q0"Ž‘†\«);ަ‘(Ïq1Ž‘3“ë±:ÏshowŽ‘Šÿ«(Ý"q1"Ž‘†\«);ަ‘·gŽ¡‘Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘V§žÏbpŽ‘a‚«;‘±=·‘ÿý«Return‘UUv‘ÿqÇalue.‘o·±=Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý0.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;ŽŸÂ531.‘ ü«Apply–¦the“transformations,‘%–so“wš¸ãe“ha˜v˜e“the“correct“v‘ÿqÇalues“for“x,–%–y‘ÿ*ª,“and–¦z“in“eac˜h“of“the“ÂP•®9oin“tsŽ‘#=*«.‘]âThenަassign–UUthem“to“v‘ÿqÇariables.Ž¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -Ïp0Ž‘Á±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘ -Ïp1Ž‘Á±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘ -Ïq0Ž‘“è±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);ަ‘ -Ïq1Ž‘“è±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ -ÂrealŽ‘ ³/Ïp0‘‰ffŽ‘®xŽ‘7»å«=‘ÇÏp0Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïp0‘‰ffŽ‘®yŽ‘7¡”«=‘ÇÏp0Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïp0‘‰ffŽ‘®zŽ‘75«=‘ÇÏp0Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïp1‘‰ffŽ‘®xŽ‘7»å«=‘ÇÏp1Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïp1‘‰ffŽ‘®yŽ‘7¡”«=‘ÇÏp1Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïp1‘‰ffŽ‘®zŽ‘75«=‘ÇÏp1Ž‘ÝØ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïq0‘‰ffŽ‘®xŽ‘79 «=‘ÇÏq0Ž‘Zÿ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïq0‘‰ffŽ‘®yŽ‘7»«=‘ÇÏq0Ž‘Zÿ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïq0‘‰ffŽ‘®zŽ‘6²¦«=‘ÇÏq0Ž‘Zÿ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïq1‘‰ffŽ‘®xŽ‘79 «=‘ÇÏq1Ž‘Zÿ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïq1‘‰ffŽ‘®yŽ‘7»«=‘ÇÏq1Ž‘Zÿ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘];ަ‘ -ÂrealŽ‘ ³/Ïq1‘‰ffŽ‘®zŽ‘6²¦«=‘ÇÏq1Ž‘Zÿ±:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘];Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý1.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;ŽŽŽŒ‹ÚU Šn ý‘ì«144›­TRA•ÃŽCE‘ÕXVERSION’S†3DLDFPR“G˜·x«532Ž €n ý•@PÂ532.‘ ü«Get‘UUdeltas.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ ³/Ïdelta‘‰ffŽ–®x‘‰ffŽ“pŽ‘Jn«=‘ÇÏp1‘‰ffŽ‘®xŽ‘A–·‘8àÏp0‘‰ffŽ‘®xŽ‘z~«;Ž¡‘ -ÂrealŽ‘ ³/Ïdelta‘‰ffŽ–®y‘‰ffŽ“pŽ‘J¥|«=‘ÇÏp1‘‰ffŽ‘®yŽ‘'E·‘8àÏp0‘‰ffŽ‘®yŽ‘`-«;Ž¡‘ -ÂrealŽ‘ ³/Ïdelta‘‰ffŽ–®z‘‰ffŽ“pŽ‘Iá9«=‘ÇÏp1‘‰ffŽ‘®zŽ‘»0·‘8àÏp0‘‰ffŽ‘®zŽ‘ô«;Ž¡‘ -ÂrealŽ‘ ³/Ïdelta‘‰ffŽ–®x‘‰ffŽ“qŽ‘J,«=‘ÇÏq1‘‰ffŽ‘®xŽ‘¾½·‘8àÏq0‘‰ffŽ‘®xŽ‘÷¥«;Ž¡‘ -ÂrealŽ‘ ³/Ïdelta‘‰ffŽ–®y‘‰ffŽ“qŽ‘Jcˆ«=‘ÇÏq1‘‰ffŽ‘®yŽ‘¤l·‘8àÏq0‘‰ffŽ‘®yŽ‘ÝT«;Ž¡‘ -ÂrealŽ‘ ³/Ïdelta‘‰ffŽ–®z‘‰ffŽ“qŽ‘IŸE«=‘ÇÏq1‘‰ffŽ‘®zŽ‘8W·‘8àÏq0‘‰ffŽ‘®zŽ‘q?«;ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý2.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;ŽŸÂ533.‘ ü«SlopGes–UUfor“lineŸü±È“·ŽŽ‘ö<‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®1ŽŽŽŽŽ‘^;«.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘Sym«=–Ç(Ïdelta‘‰ffŽ–®x‘‰ffŽ“pŽ›)º×·6«=“0Ž‘Ç)“?“Ïdelta‘‰ffŽ–®y‘‰ffŽ“pŽ‘)òM±=Ïdelta‘‰ffŽ–®x‘‰ffŽ“pŽ˜«:“ÝINVALID_REALŽ‘BM\«;Ž¡‘ -ÂrealŽ‘ ³/Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘S X«=–Ç(Ïdelta‘‰ffŽ–®x‘‰ffŽ“pŽ›)º×·6«=“0Ž‘Ç)“?“Ïdelta‘‰ffŽ–®z‘‰ffŽ“pŽ‘). -±=Ïdelta‘‰ffŽ–®x‘‰ffŽ“pŽ˜«:“ÝINVALID_REALŽ‘BM\«;Ž¡‘ -ÂrealŽ‘ ³/Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘Rì «=–Ç(Ïdelta‘‰ffŽ–®z‘‰ffŽ“pŽ›). -·6«=“0Ž‘Ç)“?“Ïdelta‘‰ffŽ–®y‘‰ffŽ“pŽ‘)òM±=Ïdelta‘‰ffŽ–®z‘‰ffŽ“pŽ˜«:“ÝINVALID_REALŽ‘BM\«;ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý3.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;ŽŸÂ534.‘ ü«SlopGes–UUfor“lineŸü±È“·ŽŽ‘e ‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“±qŸÿ®0Ž‘|s±qŸÿ®1ŽŽŽŽŽ‘;Ý«.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/Ïslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘Rö”«=–Ç(Ïdelta‘‰ffŽ–®x‘‰ffŽ“qŽ›)xã·6«=“0Ž‘Ç)“?“Ïdelta‘‰ffŽ–®y‘‰ffŽ“qŽ‘)°Y±=Ïdelta‘‰ffŽ–®x‘‰ffŽ“qŽ˜«:“ÝINVALID_REALŽ‘BM\«;Ž¡‘ -ÂrealŽ‘ ³/Ïslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“zŽ‘RŠ«=–Ç(Ïdelta‘‰ffŽ–®x‘‰ffŽ“qŽ›)xã·6«=“0Ž‘Ç)“?“Ïdelta‘‰ffŽ–®z‘‰ffŽ“qŽ‘(ì±=Ïdelta‘‰ffŽ–®x‘‰ffŽ“qŽ˜«:“ÝINVALID_REALŽ‘BM\«;Ž¡‘ -ÂrealŽ‘ ³/Ïslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘RiÇ«=–Ç(Ïdelta‘‰ffŽ–®z‘‰ffŽ“qŽ›(ì·6«=“0Ž‘Ç)“?“Ïdelta‘‰ffŽ–®y‘‰ffŽ“qŽ‘)°Y±=Ïdelta‘‰ffŽ–®z‘‰ffŽ“qŽ˜«:“ÝINVALID_REALŽ‘BM\«;ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý4.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;ŽŸÂ535.‘ ü«The–½traces“on“the“x-y“plane.‘]?Ïx‘‰ffŽ‘®iŽ‘G£«,‘$Ïy‘‰ffŽ‘®iŽ‘Eé«,‘$Ïz‘‰ffŽ‘®iŽ‘¦«,‘$Ïy‘‰ffŽ–®int‘‰ffŽ“pŽ‘!ží«,‘$and“Ïy‘‰ffŽ–®int‘‰ffŽ“qŽ‘$hd«are“set“to“ÝINVALID_REALŽ‘Eµ¾«so“that“I‘®canŽ¡test–UUfor“whether“the“routines“bGelo¸ãw“succeed“in“setting“them“correctly‘ÿ*ª.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/Ïx‘‰ffŽ‘®iŽ‘0d««=‘ÇÝINVALID_REALŽ‘BM\«;‘±=·‘ÿý«x-cošGordinate–UUof“the“in¸ãtersection“p˜oin¸ãt.‘o·±=Ž¡‘ -ÂrealŽ‘ ³/Ïy‘‰ffŽ‘®iŽ‘0œ!«=‘ÇÝINVALID_REALŽ‘BM\«;‘±=·‘ÿý«y-cošGordinate–UUof“the“in¸ãtersection“p˜oin¸ãt.‘o·±=Ž¡‘ -ÂrealŽ‘ ³/Ïz‘‰ffŽ‘®iŽ‘/×Þ«=‘ÇÝINVALID_REALŽ‘BM\«;‘±=·‘ÿý«z-cošGordinate–UUof“the“in¸ãtersection“p˜oin¸ãt.‘o·±=Ž¡‘ -ÂrealŽ‘ ³/Ïy‘‰ffŽ–®int‘‰ffŽ“pŽ‘Aõ%«=‘ÇÝINVALID_REALŽ‘BM\«;‘±=·‘ÿý«y-in¸ãtercept–UUofŸü±È“·ŽŽ‘ö<‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®1ŽŽŽŽŽ‘^;«.‘o·±=Ž¡‘ -ÂrealŽ‘ ³/Ïy‘‰ffŽ–®int‘‰ffŽ“qŽ‘A³1«=‘ÇÝINVALID_REALŽ‘BM\«;‘±=·‘ÿý«y-in¸ãtercept–UUofŸü±È“·ŽŽ‘e ‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“±qŸÿ®0Ž‘|s±qŸÿ®1ŽŽŽŽŽ‘;Ý«.‘o·±=ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý5.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂifŽ‘´ù«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘2Æ>·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘±=·‘ÿý«±xŸÿ´pŽ‘fj·6«=‘Ç0.‘o·±=Ž¡‘ -·fŽ¡‘Ïy‘‰ffŽ–®int‘‰ffŽ“pŽ‘5Aø«=‘ÇÏp0‘‰ffŽ‘®yŽ‘'E·–8à«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘28·“Ïp0‘‰ffŽ‘®xŽ‘z~«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(Ïslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘2Ce·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘±=·‘ÿý«±xŸÿ´qŽ‘1­·6«=‘Ç0.‘o·±=Ž¡‘ -·fŽ¡‘Ïy‘‰ffŽ–®int‘‰ffŽ“qŽ‘5«=‘ÇÏq0‘‰ffŽ‘®yŽ‘¤l·–8à«(Ïslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘1µ-·“Ïq0‘‰ffŽ‘®xŽ‘÷¥«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý6.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;ŽŽŽŒ‹‘ê Šn ý‘ì·x«536›­3DLDFPR•ÃŽG’S†TRA“CE‘ÕXVERSION˜«145Ž €n ý•@PÂ536.ޤ ·Ž‘ -«If–vŒbGoth“of“the“traces“of‘‹±~Ž“pŽŽ‘ õ«and‘pU±~Ž“qŽŽ‘ ¿Â«in“the“x-y“plane“are“parallel“to“the“y-axis“(i.e.,›~Ù±x–þs«=“0),˜w¸ãe–vŒtest“whetherŽ¡‘ -±pŸÿ´xŽ‘9«=‘0±qŸÿ´xŽ‘ä«.›.ÔIf–”Ythey“are,‘¤then“w¸ãe“set“Ïx‘‰ffŽ‘®iŽ‘«to“that“v‘ÿqÇalue.˜If“they're“not,›¤the“lines“don't“in¸ãtersect,˜so“w¸ãe“returnŽ¡‘ -ÝINVALID_POINTŽ‘NÆB«.Ž¡·Ž‘ -«If–òOthe“trace“of‘ñ~Ž“pŽŽ‘ -ìž«or“the“trace“of‘ì±~Ž“qŽŽ‘ -·H«in“the“x-y“plane“is“parallel“to“the“y-axis,›w¸ãe“set“Ïx‘‰ffŽ‘®iŽ‘Ï«to“its“x-v‘ÿqÇalue,˜bGecauseŽ¡‘ -in–UUthis“case,“the“inš¸ãtersection“pGoin˜t“m˜ust“ha˜v˜e“this“x-v‘ÿqÇalue.Ž¡·Ž‘ -«If–UU±xŸÿ´pŽ‘fj·6«=›Ç0“and“±xŸÿ´qŽ‘1­·6«=˜0,“wš¸ãe“deriv˜e“Ïx‘‰ffŽ‘®iŽ‘•«using“the“slopGe“and“y-in˜tercept“of“the“lines.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïy‘‰ffŽ–®int‘‰ffŽ“pŽ‘!Aö·‘ÇÝINVALID_REALŽ‘D†<·^‘8àÏy‘‰ffŽ–®int‘‰ffŽ“qŽ‘#8â·‘ÇÝINVALID_REALŽ‘BM\«)Ž¡‘±=·‘q±~Ž‘ÿýpŸÿ´xzŽŽŽ‘Ç«and‘O±~Ž‘UUqŸÿ´xzŽŽŽ‘Eð«are–UUbGoth“parallel“to“the“z-axis.‘o·±=Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý7.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(Ïp0‘‰ffŽ‘®xŽ‘¶·‘ÇÏq0‘‰ffŽ‘®xŽ‘…Ý«)‘±=·‘ÿý«They›UUha•¸ãv“e˜the˜same˜v‘ÿqÇalue˜for˜±x«.‘o·±=Ž¡‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý8.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TracesÈ ÝonÈ Ýx-yÈ ÝplaneŽ‘kÆÜÈ ÝareÈ Ýcoincident.\n"Ž’ÒÔ#·‘ÇÏ ushŽ‘€«;Ž¡‘Ïx‘‰ffŽ‘®iŽ‘-±«=‘ÇÏp0‘‰ffŽ‘®xŽ‘¶«;ަ‘ÂrealŽ‘4³1Ïy‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘^S «=‘ÇÝINVALID_REALŽ‘BM\«;Ž¡‘ÂrealŽ‘4³1Ïy‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘]Ð4«=‘ÇÝINVALID_REALŽ‘BM\«;ަ‘ÂifŽ‘)´û«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘29q·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘Ïy‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘.ŸÜ«=‘ÇÏp0‘‰ffŽ‘®yŽ‘'E·‘8àÏslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘3ä·‘8àÏp0‘‰ffŽ‘®zŽ‘ô«;Ž¡‘ÂifŽ‘)´û«(Ïslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘1¶˜·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘Ïy‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘.«=‘ÇÏq0‘‰ffŽ‘®yŽ‘¤l·‘8àÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘3a@·‘8àÏq0‘‰ffŽ‘®zŽ‘q?«;Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý9.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘)´û«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘29q·‘ÇÝINVALID_REALŽ‘D†<·^‘8àÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘3ïx·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"BothÈ ÝtracesÈ ÝonÈ Ýz-yÈ Ž‘kÆÜÝplaneÈ ÝareÈ Ývertical\nŽ’ÔÆ "Ž’ÝT·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý10Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂifŽ‘3´ü«(Ïp0‘‰ffŽ‘®zŽ‘‚P·‘ÇÏq0‘‰ffŽ‘®zŽ‘ÿw«)‘Ïc‘ÿ}'errŽ‘|¾·‘ÇÝ"LinesÈ ÝareÈ ÝcoincidenŽ‘kÆÜt.\n"Ž’†5«;Ž¡‘(ÂelseŽ‘?ØãÏc‘ÿ}'errŽ‘UU¡·‘ÇÝ"LinesÈ ÝdoÈ ÝnotÈ ÝintersŽ‘kÆÜect.\n"Ž’‘ /«;Ž¡‘(Ïc‘ÿ}'errŽ‘=|·‘ÇÝ"ReturningÈ ÝINVALID_BŽ‘kÆÜOOL_POINT.\n\n"Ž’½Ô/·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂreturnŽ‘Kæ¾ÝINVALID_BOOL_POINTŽ’ªìð«;Ž¡‘·gŽ¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘29q·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TheÈ Ýp-traceÈ ÝisÈ ÝvertŽ‘kÆÜical\n"Ž’“ÔG·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý11Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïz‘‰ffŽ‘®iŽ‘7$³«=‘ÇÏp0‘‰ffŽ‘®zŽ‘‚P«;Ž¡‘(Ïy‘‰ffŽ‘®iŽ‘7èö«=‘ÇÏz‘‰ffŽ‘®iŽ‘]·‘8àÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘3a@«+‘8àÏy‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘(ŽË«;Ž¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"x_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏx‘‰ffŽ‘®iŽ‘x”·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"y_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏy‘‰ffŽ‘®iŽ‘° -·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"z_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏz‘‰ffŽ‘®iŽ‘ëÇ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"slope_q_z_yÈ Ý==È Ý"Ž‘_Te·‘ÇÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘4}°·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"y_int_q_zÈ Ý==È Ý"Ž‘TÔk·‘ÇÏy‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘+ä·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘(·gŽ¡‘gŽ¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(Ïslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘1¶˜·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TheÈ Ýq-traceÈ ÝisÈ ÝvertŽ‘kÆÜical\n"Ž’“ÔG·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý12Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïz‘‰ffŽ‘®iŽ‘7$³«=‘ÇÏq0‘‰ffŽ‘®zŽ‘ÿw«;Ž¡‘(Ïy‘‰ffŽ‘®iŽ‘7èö«=‘ÇÏz‘‰ffŽ‘®iŽ‘]·‘8àÏslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘3ä«+‘8àÏy‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘)¤«;Ž¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"x_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏx‘‰ffŽ‘®iŽ‘x”·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"y_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏy‘‰ffŽ‘®iŽ‘° -·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ŽŽŽŒ‹’ Šn ý‘ì«146›­TRA•ÃŽCE‘ÕXVERSION’S†3DLDFPR“G˜·x«536Ž €n ý•@P‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"z_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏz‘‰ffŽ‘®iŽ‘ëÇ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ޤ ‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"slope_p_z_yÈ Ý==È Ý"Ž‘_Te·‘ÇÏslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘5‰·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"y_int_p_zÈ Ý==È Ý"Ž‘TÔk·‘ÇÏy‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘,fô·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘(·gŽ¡‘gŽ¡‘ÂelseŽ‘5Øâ·fŽ¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"NeitherÈ ÝtraceÈ ÝisÈ ÝveŽ‘kÆÜrtical\n"Ž’žTA·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý13Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïz‘‰ffŽ‘®iŽ‘7$³«=‘Ç(Ïy‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘(ŽË·‘8àÏy‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘)¤«)±=«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘1«9·‘8àÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘1(`«);Ž¡‘(Ïy‘‰ffŽ‘®iŽ‘7èö«=‘ÇÏslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘4rQ·‘8àÏz‘‰ffŽ‘®iŽ‘ÏW«+‘8àÏy‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘)¤«;Ž¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"x_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏx‘‰ffŽ‘®iŽ‘x”·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"y_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏy‘‰ffŽ‘®iŽ‘° -·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"z_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏz‘‰ffŽ‘®iŽ‘ëÇ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"slope_p_z_yÈ Ý==È Ý"Ž‘_Te·‘ÇÏslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘5‰·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"y_int_p_zÈ Ý==È Ý"Ž‘TÔk·‘ÇÏy‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘,fô·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"slope_q_z_yÈ Ý==È Ý"Ž‘_Te·‘ÇÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘4}°·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"y_int_q_zÈ Ý==È Ý"Ž‘TÔk·‘ÇÏy‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘+ä·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘(·gŽ¡‘gŽ¡‘gŽ¡‘ÂelseŽ‘:Øâ±=·‘ÿý«They–UUdon't“ha•¸ãv“e–UUthe“same“v‘ÿqÇalue“for“±x«.‘o·±=Ž¡‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý14Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"LinesÈ ÝdoÈ ÝnotÈ ÝintersŽ‘kÆÜect:\n"Ž’‘ /«;Ž¡‘Ïc‘ÿ}'errŽ‘3þ ·‘HcÝ"("Ž‘×%·‘HcÏp0‘‰ffŽ‘®xŽ›Òd·‘HcÝ",È Ý"Ž–"·‘HcÏp0‘‰ffŽ‘®yŽ‘¸·‘HcÝ",È Ý"Ž“·‘HcÏp0‘‰ffŽ‘®zŽ‘Kþ·‘HcÝ")È Ý--È Ý("Ž‘1·‘HcÏp1‘‰ffŽ‘®xŽ˜·‘HcÝ",È Ý"Ž“·‘HcÏp1‘‰ffŽ‘®yŽ‘¸·Ž¡‘2Ý",È Ý"Ž‘JØ ·‘Q¨Ïp1‘‰ffŽ‘®zŽ‘^ˆ·‘Q¨Ý")\n("Ž‘&©¦·‘Q¨Ïq0‘‰ffŽ‘®xŽ›b·‘Q¨Ý",È Ý"Ž–)¬·‘Q¨Ïq0‘‰ffŽ‘®yŽ‘GÄ·‘Q¨Ý",È Ý"Ž“·‘Q¨Ïq0‘‰ffŽ‘®zŽ‘Û¯·‘Q¨Ý")È Ý--È Ý("Ž‘1) ·‘Q¨Ïq1‘‰ffŽ‘®xŽ˜·Ž¡‘2Ý",È Ý"Ž‘JMy·‘ÇÏq1‘‰ffŽ‘®yŽ‘2¤·‘ÇÝ",È Ý"Ž‘Œ·‘ÇÏq1‘‰ffŽ‘®zŽ‘Æ·‘ÇÝ")\nReturningÈ ÝINVALIŽ‘kÆÜD_BOOL_POINT.\n"Ž’Ã,·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_BOOL_POINTŽ’ ìï«;Ž¡‘·gŽ¡‘ +cmex10¸pŽ‘ UVŸ÷s0‰fe=¿eŸŒÐ¬(µxŸýr³2Ž‘µS¬+–8àµy[ÙŸýr³2Ž‘,¬+“µzp—Ÿýr³2Ž‘í +¬)ŽŽŽ‘K».ަ‘ +Since‘»‡± o‘ÿ}'atsŽ‘Ëþ¬are–»‡so“large“an•¸ãyw“a“y‘ÿ*ª,‘ÚJand–»‡since“I‘»acan“easily“rede ne“­realŽ‘Ôç¬to“use“­doubleŽ›'kÿ¬or“­doubleŽ˜doubleŽ‘I`ð¬,‘ÚJ(orŽ¡whatevš¸ãer–Ü]it's“called“LoGok“up!!),‘ôit's“not“really“necessary“to“use“an“algorithm“to“appro˜ximate“Ÿ÷s0¸pŽ‘ Ü^Ÿ÷s0‰fe=¿eŸŒÐ¬(µxŸýr³2Ž‘µS¬+–8àµy[ÙŸýr³2Ž‘,¬+“µzp—Ÿýr³2Ž‘í +¬)ŽŽŽŽ¤ (viz.,›—\Pythagorean–òWaddition"“in“Kn¸ãuth,˜±Metafont:‘ºzThe‘$YPr–ÿ}'o“gr“am¬.–HÌ(Get‘òWreference!!)“Ho•¸ãw“ev“er,˜it›òWmigh“t˜bGeŽ¡nice–UUto“use“it“an•¸ãyw“a“y‘ÿ*ª.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.27.¬]Ž‘ZMade–j6this“function“­constŽ‘?ƒ¬.‘°kNo¸ãw“using“±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Uèj¬directly“instead“of“±get‘‰ffŽ‘®xŽ‘ø¬(‘ª®),Ž¡±get‘‰ffŽ‘®yŽ‘t¬(›ª®),–UUand“±get‘‰ffŽ‘®zŽ‘]V¬(˜).ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/±magnitudeŽ‘Nð¡¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹‘ EÒ Šn ý‘ì°x¬547–¯3DLDF-1.1.5.1’#†ÂMAÃŽGNITUDE“¬145Ž €n ý•@P­547.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­realŽ‘ ³/P•®9oin“tŽ‘=M{¬::‘±magnitudeŽ‘/=v¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZtrueŽ‘‹°¬;‘µ=°‘ÿý±falseŽ‘¯>°µ=Ž¡‘­realŽ‘*³0µrŽ‘/}D¬;Ž¡‘­realŽ‘*³0±tempŽ‘A ¤¬;Ž¡‘­P•®9oin“tŽ‘2aŽ‘88Ϭ(°Ž‘±thisŽ‘ë·¬);ަ‘µaŽ‘I2:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘­ifŽ‘!™¬((µaŽ›I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘]–íáµ>“´MAX_REAL_SQRTŽ‘J´"¬)–{—°_“¬(µaŽ˜:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘]‘íáµ>Ž¡‘2´MAX_REAL_SQRTŽ‘vÆF¬)–8à°_“¬(µaŽ‘I0:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘]–ǵ>“´MAX_REAL_SQRTŽ‘GY¬))‘°fŽ¡‘±c‘ÿ}'errŽ‘9ܰ‘d3´"ERROR:® ´In® ´Point::maŽ‘qc÷gnitude().\n"Ž’¾Žk°Ž¡‘2´"Point® ´has® ´a® ´coordinŽ’šÿÉate® ´too® ´large® ´for® ´sqŽ’ÿuaring!\n"Ž’;Ìï°‘Ç´"Returning® ´INVALID_RŽ‘kÆÜEAL.\n"Ž’‘ /¬;Ž¡‘­returnŽ‘Aæ½´INVALID_REALŽ’m¬;Ž¡‘°gŽ¡‘µrŽ‘‘.¬=‘ǵaŽ‘H:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[0Ž‘]–8à°“µaŽ‘‚:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[0Ž‘];Ž¡‘±tempŽ‘-!ެ=‘ǵaŽ‘H:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[1Ž‘]–8à°“µaŽ‘‚:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[1Ž‘];Ž¡‘­ifŽ‘´ú¬(´MAX_REALŽ‘,¿0°‘8àµrŽ‘ Ê <‘DZtempŽ‘!Œ¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"In® ´magnitude().\n"Ž‘g G¬;Ž¡‘±c‘ÿ}'errŽ‘3ço°‘1Æ´"Point® ´has® ´too® ´greatŽ‘l1Š® ´a® ´magnitude!\n"Ž’À·Â¬;‘µ=°‘?ÿ¬!!›1ÎThis‘•W±showŽ‘ V¬(‘ª®)–•Woutputs“to“±stdoutŽ‘]{¬.˜ItŽ¡‘2w¸ãould–UUbGe“nice“to“output“it“to“±stderrŽ‘!Ï=¬instead.‘qÇMust“write“function“for“this.‘o°µ=Ž¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"Returning® ´INVALID_RŽ‘kÆÜEAL.\n"Ž’‘ /¬;Ž¡‘­returnŽ‘Aæ½´INVALID_REALŽ’m¬;Ž¡‘°gŽ¡‘µrŽ‘‘.¬+=ŽŽ‘-悱tempŽ‘D@ö¬;Ž¡‘±tempŽ‘-!ެ=‘ǵaŽ‘H:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ›Mþ¬[2Ž‘]–8à°“µaŽ‘‚:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ˜¬[2Ž‘];Ž¡‘­ifŽ‘´ú¬(´MAX_REALŽ‘,¿0°‘8àµrŽ‘ Ê <‘DZtempŽ‘!Œ¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"In® ´magnitude().\n"Ž‘g G¬;Ž¡‘±c‘ÿ}'errŽ‘3ço°‘1Æ´"Point® ´has® ´too® ´greatŽ‘l1Š® ´a® ´magnitude!\n"Ž’À·Â¬;‘µ=°‘?ÿ¬!!›1ÎThis‘•W±showŽ‘ V¬(‘ª®)–•Woutputs“to“±stdoutŽ‘]{¬.˜ItŽ¡‘2w¸ãould–UUbGe“nice“to“output“it“to“±stderrŽ‘!Ï=¬instead.‘qÇMust“write“function“for“this.‘o°µ=Ž¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"Returning® ´INVALID_RŽ‘kÆÜEAL.\n"Ž’‘ /¬;Ž¡‘­returnŽ‘Aæ½´INVALID_REALŽ’m¬;Ž¡‘°gŽ¡‘µrŽ‘‘.¬+=ŽŽ‘-悱tempŽ‘D@ö¬;Ž¡‘­returnŽ‘7æ¼±sqrtŽ‘I–µ¬(µrŽ‘Ê¬);Ž¡‘ +°gŽŸ­548.‘ üAngle›ÕTbQÇet•®9w“een˜t“w“o˜v“ectors.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Y;Made–UUthis“function“­constŽ‘*¢¬.Ž¡‘ +[²LDF‘T2003.07.27.¬]Ž‘Y;Made–UUthe“argumenš¸ãt“µpŽ‘ ²ª¬a“­constŽ‘!÷P•®9oin“tŽ‘@o”¬&Ž‘H6².‘qÇNo“longer“cop˜ying“°Ž‘UV±thisŽ‘A ¬.‘qÇNo˜w“usingŽ¡±dot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!¬(‘ª®)–UUinstead“of“calculating“the“angle“\b¸ãy“hand".‘qÇSimpli ed“the“coGde“of“the“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/±angleŽ‘8s‚¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹’ Qß Šn ý‘ì¬146›¯ANGLE–ÕXBETWEEN“TWÃŽO“VECTORS’Çyž3DLDF-1.1.5.1˜°x¬549Ž €n ý•@P­549.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­realŽ‘ ³/P•®9oin“tŽ‘=M{¬::‘±angleŽ‘ÀW¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°–ÿý¬true“°µ=Ž¡‘­realŽ‘*³0±magŽ‘@Ã&¬=‘DZmagnitudeŽ‘1Ь(‘ª¨);Ž¡‘­realŽ‘*³0±p‘‰ffŽ‘®magŽ‘I©¬=‘ǵpŽ‘Ï:±magnitudeŽ‘.=r¬(‘ª¨);ަ‘­ifŽ‘´ú¬(±magŽ‘ö°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"WARNING!® ´In® ´angle()Ž‘kÆÜ.® ´magnitude()® ´failedŽ’ÔÆ ."Ž’â”°‘Ç´"® ´Returning® ´INVALID_Ž‘kÆÜREAL.\n"Ž’–M,¬;Ž¡‘­returnŽ‘Aæ½´INVALID_REALŽ’m¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±magŽ‘ö°‘Ǭ0Ž‘Ç)‘°fŽ¡‘­ifŽ‘*›2¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'errŽ‘ül°‘FÆ´"WARNING!® ´In® ´angle()Ž‘mFŠ.\n"Ž’‡¬°‘FÆ´"*this® ´has® ´magnitudeŽ‘mFŠ® ´0.\n"Ž’‘“¦°Ž¡‘<´"Returning® ´INVALID_RŽ’¤ÿÊEAL.\n"Ž’ÊF¬;Ž¡‘­returnŽ‘Aæ½´INVALID_REALŽ’m¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±p‘‰ffŽ‘®magŽ‘Úy°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"WARNING!® ´In® ´angle()Ž‘kÆÜ.® ´p.magnitude()® ´failŽ’ÔÆ ed."Ž’í°‘Ç´"® ´Returning® ´INVALID_Ž‘kÆÜREAL.\n"Ž’–M,¬;Ž¡‘­returnŽ‘Aæ½´INVALID_REALŽ’m¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±p‘‰ffŽ‘®magŽ‘Úy°‘Ǭ0Ž‘Ç)‘°fŽ¡‘­ifŽ‘*軬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'errŽ‘}¦°‘È´"WARNING!® ´In® ´angle()Ž‘mÇÄ.\n"Ž’ˆ °‘È´"p® ´has® ´magnitude® ´0.\Ž‘mÇÄn"Ž‘}–&°Ž¡‘<´"Returning® ´INVALID_RŽ’¤ÿÊEAL.\n"Ž’ÊF¬;Ž¡‘­returnŽ‘Aæ½´INVALID_REALŽ’m¬;Ž¡‘°gŽ¡‘­elseŽ‘+ØáreturnŽ‘O¿›¬(180ŽŽ‘µ=´PIŽ‘ ?B°‘8à±ac‘ÿ}'osŽ‘ô9¬(±dot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!¬(µpŽ‘¬)µ=¬(±magŽ‘¾°‘8à±p‘‰ffŽ‘®magŽ‘LA¬)));Ž¡‘ +°gŽŸ­550.‘ üUnit‘ÕTv®9ector.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Y·ùAdded–a“second“vš¸ãersion.‘If“±assignŽ‘#åB¬is“not“used,‘1±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘4Æx¬(‘ª®)“can“bGe“­constŽ‘Ú`¬,‘1so“I‘æno˜wŽ¡ha•¸ãv“e–<ça“­constŽ‘!O¬vš¸ãersion“with“no“argumen˜t“and“a“non-­constŽ‘4¬one“for“assignmen˜t“that“should“bGe“called“with“theŽ¡argumen¸ãt‘UU±trueŽ‘í¬.ަŸüÈ„`ÕÁGŽŽŸ­551.– üWith‘zÖassignmen®9t.“¬This–¤vš¸ãersion“should“only“ev˜er“bGe“called“with“±trueŽ‘Ñà¬as“its“argumen˜t.‘WŒUsing“±falseŽŽ¡¬will–UUwš¸ãork,“unless“°Ž‘UV±thisŽ‘–a¬is“­constŽ‘*¢¬,“in“whic˜h“case“it“will“cause“an“compilation“error.‘qÇ[²LDF‘T2002.10.27.¬]ŽŽ¡‘ +If–˜Óthe“optional“±silentŽ‘躬argumenš¸ãt“is“±trueŽ‘]k¬,‘¾‡w˜arning“messages“will“bšGe“suppressed,–¾‡otherwise,“they–˜Ówill“b˜e“issued.Ž¡The‘ýI­constŽ‘"Ï߬v•¸ãersion›ýIbGelo“w˜can't˜ha“v“e˜an˜optional˜±silentŽ‘ ±¦¬argumen“t,‘'EbGecause˜that˜w“ould˜mak“e˜a˜call˜to˜thisŽ¡function–UUwith“one“argumenš¸ãt“am˜biguous.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Y;If‘UU±magnitudeŽ‘1’Ǭ(›ª®)–UUfails,“±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘3êʬ(˜)“no¸ãw“returns“´INVALID_POINTŽ‘Kpë¬instead“of“±originŽ‘Kv¬.Ž¡‘ +[²LDF‘T2003.07.01.¬]Ž‘XŽ'Added–ÛAthe“±silentŽ‘m–¬argumenš¸ãt“to“suppress“w˜arning“messages.‘II‘Û"k˜ept“getting“w˜arnings“whenŽ¡this–˜/function“wš¸ãas“called“from“in˜tersection“functions,‘¾in“cases“where“it“w˜asn't“a“problem,‘¾that“a“­P•®9oin“tŽ‘ ʦ¬(v˜ector)Ž¡had–UU0“magnitude.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïž±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘Y…¬(­constŽ‘*¢b•QÇo“olŽ‘7̱assignŽ‘S§$µ;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°±silentŽ‘Tôܬ=‘DZfalseŽ‘v\¬);ŽŽŽŒ‹“ _† Šn ý‘ì°x¬552–¯3DLDF-1.1.5.1’4ÞWITH‘ÕXASSIGNMENT“¬147Ž €n ý•@P­552.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::‘±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘1•y¬(­constŽ‘*¢b•QÇo“olŽ‘7̱assignŽ‘S§$µ;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°±silentŽ‘R-Ĭ)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±assignŽ‘¢4°‘DZfalseŽ‘v\¬)‘°fŽ¡‘­ifŽ‘)´û¬(°:±silentŽ‘·¬)‘°fŽ¡‘(±c‘ÿ}'errŽ‘BNa°‘˜·´"WARNING!® ´In® ´Point::Ž‘p˜{unit_vector():\n"Ž’Ñ÷g°Ž¡‘<´"Don't® ´call® ´this® ´funŽ’¤ÿÊction® ´with® ´false® ´as® Ž’ ÿŽ´its® ´argument.\n"Ž’hº°Ž¡‘<´"Use® ´unit_vector()® ´wŽ’¤ÿÊithout® ´an® ´argument® ´iŽ’ ÿŽnstead.\n"Ž’Ik¼°Ž¡‘<´"Calling® ´unit_vectorŽ’¤ÿÊ()® ´without® ´an® ´argumeŽ’ ÿŽnt.\n\n"Ž’;Lö°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­returnŽ‘Aæ½±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘r|2¬(‘ª®);Ž¡‘°gŽ¡‘±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Zá¬(‘ª®);ަ‘­realŽ‘*³0µmŽ‘6Aÿ¬=‘DZmagnitudeŽ‘1Ь(‘ª¨);ަ‘­ifŽ‘´ú¬(µmŽ‘ ŽÏ°‘Ǭ0Ž‘Ç)Ž¡‘µ=°‘ÿý¬LDF–UU2002.04.10.‘qÇAdded“this“error“handling“coGde“for“the“case“where“*this“has“no“magnitude.‘o°µ=Ž¡‘°fŽ¡‘­ifŽ‘)´û¬(°:±silentŽ‘·¬)‘°fŽ¡‘(±c‘ÿ}'errŽ‘BNa°‘˜·´"WARNING!® ´In® ´Point::Ž‘p˜{unit_vector().\n"Ž’Ñ÷g°Ž¡‘<´"Point® ´(vector)® ´has® Ž’¤ÿÊ´no® ´magnitude.® ´ReturnŽ’ ÿŽing® ´INVALID_POINT.\nŽ’vÿR\n"Ž’Рɰ‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­returnŽ‘Aæ½´INVALID_POINTŽ’†¬þ¬;Ž¡‘°gŽ¡‘­forŽ‘%般(­in®9tŽ‘¤÷µiŽ‘Þ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ3Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)‘±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Rþ¬[µiŽ‘qô¬]‘ǵ=¬=ŽŽ‘UOµmŽ‘¬;Ž¡‘±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘a¬[3Ž‘]–Ç=“1Ž‘Ç;‘µ=°‘ÿý¬[²LDF‘T2002.10.27.¬]Ž‘T7Setting–UUthe“w-cošGordinate“to“1,“just“to“b˜e“sure.‘o°µ=Ž¡‘­returnŽ‘7æ¼°Ž‘<æ½±thisŽ‘MÒs¬;Ž¡‘ +°gŽŸ­553.‘ üconst–ÕT(no“assignmen®9t).ަ°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïž±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘Y…¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŸ­554.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::‘±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘1•y¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2aŽ‘88Ϭ(°Ž‘±thisŽ‘ë·¬);ަ‘­returnŽ‘7æ¼µaŽ‘=/ì:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);Ž¡‘ +°gŽŸ­555.‘ üMediation.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.12.09.¬]Ž‘Y;Changed–UUfrom“a“non-memš¸ãbGer“to“a“­constŽ‘!÷¬mem˜bGer“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïž±me‘ÿ}'diateŽ‘K­¬(­P•®9oin“tŽ‘ïµpŽ‘#÷;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµrŽ‘>¤¬=‘ǵ:¬5ŽŽ‘ +Ž6)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹” n„ Šn ý‘ì¬148–¯MEDIA‘ÿJªTION’'\v3DLDF-1.1.5.1“°x¬556Ž €n ý•@P­556.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::‘±me‘ÿ}'diateŽ‘#½y¬(­P•®9oin“tŽ‘ïµpŽ‘#÷;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµrŽ‘;RŒ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2tŽ‘6Œ¬(°Ž‘±thisŽ‘ë·¬);ަ‘µtŽ‘cŒ°¬=ŽŽ‘)ñÃ(1Ž‘8á°‘8àµrŽ‘ô¬);Ž¡‘µpŽ‘Ï°¬=ŽŽ‘+]QµrŽ‘0'e¬;Ž¡‘­returnŽ‘7漬(µtŽ‘ÕR¬+‘8àµpŽ‘@à¬);Ž¡‘ +°gŽŸ­557.– üGet‘/normal.“±get‘‰ffŽ‘®normalŽ‘< +p¬(‘ª®)–ĵm¸ãust“bšGe“de ned“in“®paths.web¬,‘á¢b˜ecause“it“uses“a“­P®9athŽ‘άin“its“de nition,Ž¡whicš¸ãh–UUis“an“incompletely“de ned“t˜ypGe“in“this“ le.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.11.¬]Ž‘Y;Added–UUthis“declaration.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïž±get‘‰ffŽ‘®normalŽ‘Yz¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié];‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒµqŽ‘K^¯¬)‘UU­constŽ‘*¢¬;ޤ­558.‘ üComparison.Ž¡559.– üEqualit®9y‘ÿ +«.“¬!!‘RˆI‘÷ma•¸ãy›÷™ha“v“e˜to˜adjust˜to˜v‘ÿqÇalue˜of˜±epsŽ‘[¬.‘RˆIt˜w“ould˜b•Ge˜nice˜to˜b“e˜able˜to˜use˜±epsilonŽ‘"f¬(‘ª®),‘ +Xbutޤ for– ,other“purpšGoses“±epsilonŽ‘"{0¬(‘ª®)“m¸ãust“b˜e“smaller.‘YdT‘ÿ*ªransformations“seem“to“cause“fairly“large“inaccuracies“in“theŽ¡v‘ÿqÇalues–UUof“the“coGordinates,“so“I“need“greater“tolerance“in“the“functions“testing“for“equalitš¸ãy“and“inequalit˜y‘ÿ*ª.Ž¡‘ +This–1Øfunction“could“bGe“formš¸ãulated“more“succinctly‘ÿ*ª,‘8ñbut“I‘1Ïhad“some“trouble“getting“it“to“w˜ork“propGerly‘ÿ*ª,‘8ñsoŽ¡I'm–UUleaš¸ãving“it“in“its“more“v˜erbGose“form,“in“case“I“ha˜v˜e“to“debug“it“some“more.ŽŸ­560.‘ üNon-const‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.27.¬]Ž‘Y1ãRevised–~ýthis“function.›î¾No¸ãw“using“­P•®9oin“tŽ‘"˜BµaŽ‘+`o¬and“­P•®9oin“tŽ‘"˜BµqŽ‘'jì¬.˜Added“±factorŽ‘"جand“using“it“asŽ¡the–,Rargumen¸ãt“to“±cle‘ÿ}'anŽ‘mÔ¬(‘ª®)“and“for“calculating“±epsŽ‘N¬.‘dSince“this“function“is“an“opšGerator,‘4†it's“not“p˜ossible“to“passŽ¡±factorŽ‘:[¬as–6}an“argumenš¸ãt,‘nÇunfortunately‘ÿ*ª.‘?Using“±cle‘ÿ}'anŽ‘wÿ¬(±factorŽ‘Þ¬)“mak˜es“it“pšGossible“to“compare“the“co˜ordinatesŽ¡with–¢0“directly“rather“than“using“±fabsŽ‘ÔÙ¬(‘ª®)“and“±epsŽ‘Ãɬ.‘WÝAlso,‘µ4­opQÇeratorŽ‘/Ké°Ž‘7¬(‘ª¨)“no¸ãw“uses“±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘TX ¬directlyŽ¡rather–UUthan“±get‘‰ffŽ‘®xŽ‘㼬(›ª®),“±get‘‰ffŽ‘®yŽ‘Ék¬(˜),“and“±get‘‰ffŽ‘®zŽ‘]V¬(˜).Ž¡‘ +[²LDF‘T2003.07.09.¬]Ž‘Y;Made–UUthis“function“non-­constŽ‘ÕM¬,“and“added“­constŽ‘!÷¬vš¸ãersion“bGelo˜w.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8°Ž‘Vÿ:¬(­P•®9oin“tŽ‘ïµpŽ‘#÷¬);ŽŽŽŒ‹• yö Šn ý‘ì°x¬561–¯3DLDF-1.1.5.1’ñÎ?NON-­CONST‘ÕX¯VERSION“¬149Ž €n ý•@P­561.ޤ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž© ‘ +­b•QÇo“olŽ‘#¡gP•®9oin“tŽ‘@;³¬::Ž‘FÉñ­opQÇeratorŽ‘r`¦°Ž‘z'Ĭ(­P•®9oin“tŽ‘ïµpŽ‘#÷¬)°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Point::opeŽ‘kÆÜrator==()"Ž’£”>°‘Ç´"\n"Ž‘Œ°‘DZ ushŽ‘€¬;Ž¡‘­unsignedŽ‘N7shortŽ‘l´±factorŽ’‰Ìª¬=‘Ç10ŽŽ‘ Ç;‘µ=°‘ÿý¬LDF‘UU2002.10.27.‘qÇAdded.‘o°µ=Ž¡‘±cle‘ÿ}'anŽ‘5A…¬(±factorŽ‘Þ¬);ަ‘µpŽ‘#:±cle‘ÿ}'anŽ‘A‚¬(±factorŽ‘Þ¬);Ž¡‘­realŽ‘4³1±epsŽ‘Fœ ¬=‘DZepsilonŽ‘"6¬(‘ª¨)–8à°“±factorŽ‘<¾¬;‘µ=°‘ÿý¬This–UUcurrenš¸ãtly“mak˜es“±epsŽ‘Ìl°‘ǵ:¬0001.‘o°µ=ަ‘­realŽ‘4³1±t‘‰ffŽ‘®xŽ‘DÕ‚¬=‘DZworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ¬[0Ž‘];ަ‘­realŽ‘4³1±t‘‰ffŽ‘®yŽ‘D»1¬=‘DZworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ¬[1Ž‘];ަ‘­realŽ‘4³1±t‘‰ffŽ‘®zŽ‘DO¬=‘DZworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘OÛ¬[2Ž‘];ަ‘­realŽ‘4³1±p‘‰ffŽ‘®xŽ‘FŸw¬=‘ǵpŽ‘Ï:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];ަ‘­realŽ‘4³1±p‘‰ffŽ‘®yŽ‘F…&¬=‘ǵpŽ‘Ï:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘];ަ‘­realŽ‘4³1±p‘‰ffŽ‘®zŽ‘F¬=‘ǵpŽ‘Ï:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘];ŽŸ­562.‘ üP•®9oin“tsŽ‘/À¬are–™frequen¸ãtly“compared“to“´INVALID_POINTŽ‘HâÚ¬,‘Njso“it's“bGest“to“suppress“debugging“output“forަthese–UUcomparisons,“bGecause“they're“probably“not“the“ones“wš¸ãe're“in˜terested“in.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­ifŽ‘Û¬(±t‘‰ffŽ‘®xŽ‘aʰ‘‘´INVALID_REALŽ–Dß°_‘RD±t‘‰ffŽ‘®yŽ‘™½°‘‘´INVALID_REALŽ“°_‘RD±t‘‰ffŽ‘®zŽ‘-¨°‘‘´INVALID_REALŽ“°_‘RD±p‘‰ffŽ‘®xŽ‘~°‘‘´INVALID_REALŽ“°_‘RD±p‘‰ffŽ‘®yŽ‘c²°ަ‘(´INVALID_REALŽ‘i¿(°_‘8à±p‘‰ffŽ‘®zŽ‘žÀ°‘Ç´INVALID_REALŽ‘BM\¬)‘´DEBUGŽ‘"q¬=‘DZfalseŽ‘v\¬;ŽŸ­563.‘ ü¬Debugging‘UUoutput.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"t_x® ´==® ´"Ž‘5T}°‘DZt‘‰ffŽ‘®xŽ‘éi°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"t_y® ´==® ´"Ž‘5T}°‘DZt‘‰ffŽ‘®yŽ‘Ï°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"t_z® ´==® ´"Ž‘5T}°‘DZt‘‰ffŽ‘®zŽ‘c°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"p_x® ´==® ´"Ž‘5T}°‘DZp‘‰ffŽ‘®xŽ‘³^°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"p_y® ´==® ´"Ž‘5T}°‘DZp‘‰ffŽ‘®yŽ‘™ °‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"p_z® ´==® ´"Ž‘5T}°‘DZp‘‰ffŽ‘®zŽ‘,ø°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘ +°gŽŸ­564.‘ ü¬Chec¸ãk–UUwhether“the“cošGordinates“of“b˜oth“­P•®9oin“tsŽ‘&Î.¬are“all“0.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.10.27.¬]Ž‘XTNo¸ãw–¡6that“±cle‘ÿ}'anŽ‘⸬(10ŽŽ› +)“and“µpŽ‘©6:±cle‘ÿ}'anŽ‘A‚¬(10ŽŽ˜)“are“called“abGo•¸ãv“e,‘Åi³¬blo˜c¸ãks“where“calculations“are“p˜erformed“b˜elo¸ãw,Ž¡just–UUin“case“o•¸ãv“er o“w‘UUoGccurs.Ž¡‘ +!!‘>BUnder–D)Linš¸ãux,‘ÝbGoth“this“function“and“the“v˜ersion“of“±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘UѬ(‘ª®)“using“traces“ha˜v˜e“failed“inŽ¡the–cksame“cases,‘fñwhicš¸ãh“in˜v˜olv˜ed“coplanar“lines“whic˜h“had“bšGeen“rotated“ab˜out“the“z-axis“or“the“y“and“z-axes.Ž¡I‘€¥suspGect–€òit“has“to“do“with“the“routines“for“sine“and“cosine,‘ËÙsince“I'v¸ãe“had“trouble“with“rotation“in“theŽ¡constructors–UUfor“­P®9olyhedraŽ‘6Ö±¬.‘qÇ[²LDF‘T2003.06.29.¬]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.04.10.¬]Ž‘Y;Added–UUthis“function.‘qÇIt“replaces“the“old“vš¸ãersion,“bGelo˜w.Ž¡‘ +[²LDF‘T2002.04.12.¬]Ž‘YòÈRemo•¸ãv“ed–?âthe“de nition“of“this“function“to“®lines.web¬,‘z…bGecause“it“requires“the“use“ofŽ¡­LinesŽ‘Ῥ,–UUand“­LineŽ‘-¬is“an“incomplete“t¸ãypGe“here.Ž¡‘ +[²LDF‘T2003.06.29.¬]Ž‘YÝStarted–Ì÷using“this“vš¸ãersion“again.‘Ø®Bug“ xes“I'v˜e“made“elsewhere“seem“to“ha˜v˜e“made“itŽ¡function.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°ޤ ‘ +­staticŽ‘(Þºb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘a5±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ’®³ ¬(­constŽ‘À‚P•®9oin“tŽ‘ŸÓVEŽ‘ãxXŽ‘l/section“forŽ¡the–UUvš¸ãector“v˜ersion,“abGo˜v˜e,“for“more“information.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯329“°i‘Ǭ+°Ž© ‘ +­staticŽ‘)HÚb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘aðu±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ’¯‡K¬(­P•®9oin“tŽ‘ï±p0Ž‘+]µ;‘ª¨­P•®9oin“tŽ‘ šE±p1Ž‘,±µ;‘ª¨­P•®9oin“tŽ‘ šE±q0Ž–,.,µ;‘ª¨­P•®9oin“tŽ‘ šE±q1Ž“µ;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°±tr–ÿ}'ac“eŽ‘OÁ¬);ŽŸ­574.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘BÑP•®9oin“tŽ‘_kL¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(­P•®9oin“tŽ‘±p0Ž‘+/Áµ;‘ª¨­P•®9oin“tŽ‘ é±p1Ž‘,Úiµ;‘ª¨­P•®9oin“tŽ‘ é±q0Ž–,Wµ;‘ª¨­P•®9oin“tŽ‘ é±q1Ž“µ;‘ª¨­constŽ‘þ®b•QÇo“olŽ‘9Éx±tr–ÿ}'ac“eŽ‘Oà‰¬)°fަ‘2­b•QÇo“olŽ‘K¡k´DEBUGŽ‘i.ܬ=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fަ‘(±c‘ÿ}'outŽ‘> S°‘Ç´"Entering® ´Point::intŽ‘kÆÜersection_point().\nŽ’ÔÆ "Ž’ÝT°‘DZ ushŽ‘€¬;ަ‘(±p0Ž‘4ĵ:±showŽ‘Šÿ¬(´"p0"Ž‘†\¬);ަ‘(±p1Ž‘4ĵ:±showŽ‘Šÿ¬(´"p1"Ž‘†\¬);ަ‘(±q0Ž‘3“ëµ:±showŽ‘Šÿ¬(´"q0"Ž‘†\¬);ަ‘(±q1Ž‘3“ëµ:±showŽ‘Šÿ¬(´"q1"Ž‘†\¬);ަ‘°gŽ¡‘­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘V§ž±bpŽ‘a‚¬;‘µ=°‘ÿý¬Return‘UUv‘ÿqÇalue.‘o°µ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´0.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;ŽŸ­575.‘ ü¬Apply–¦the“transformations,‘%–so“wš¸ãe“ha˜v˜e“the“correct“v‘ÿqÇalues“for“x,–%–y‘ÿ*ª,“and–¦z“in“eac˜h“of“the“­P•®9oin“tsŽ‘#=*¬.‘]âThenަassign–UUthem“to“v‘ÿqÇariables.Ž¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +±p0Ž‘Áµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘ +±p1Ž‘Áµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘ +±q0Ž‘“èµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘ +±q1Ž‘“èµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘ +­realŽ‘ ³/±p0‘‰ffŽ‘®xŽ‘7»å¬=‘DZp0Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];ަ‘ +­realŽ‘ ³/±p0‘‰ffŽ‘®yŽ‘7¡”¬=‘DZp0Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘];ަ‘ +­realŽ‘ ³/±p0‘‰ffŽ‘®zŽ‘75¬=‘DZp0Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘];ަ‘ +­realŽ‘ ³/±p1‘‰ffŽ‘®xŽ‘7»å¬=‘DZp1Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];ަ‘ +­realŽ‘ ³/±p1‘‰ffŽ‘®yŽ‘7¡”¬=‘DZp1Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘];ަ‘ +­realŽ‘ ³/±p1‘‰ffŽ‘®zŽ‘75¬=‘DZp1Ž‘ÝØµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘];ަ‘ +­realŽ‘ ³/±q0‘‰ffŽ‘®xŽ‘79 ¬=‘DZq0Ž‘Zÿµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];ަ‘ +­realŽ‘ ³/±q0‘‰ffŽ‘®yŽ‘7»¬=‘DZq0Ž‘Zÿµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘];ަ‘ +­realŽ‘ ³/±q0‘‰ffŽ‘®zŽ‘6²¦¬=‘DZq0Ž‘Zÿµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘];ަ‘ +­realŽ‘ ³/±q1‘‰ffŽ‘®xŽ‘79 ¬=‘DZq1Ž‘Zÿµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];ަ‘ +­realŽ‘ ³/±q1‘‰ffŽ‘®yŽ‘7»¬=‘DZq1Ž‘Zÿµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘];ަ‘ +­realŽ‘ ³/±q1‘‰ffŽ‘®zŽ‘6²¦¬=‘DZq1Ž‘Zÿµ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘];Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´1.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;ŽŽŽŒ‹š ÊH Šn ý‘ì¬154–¯TRAÃŽCE‘ÕXVERSION’ßð3DLDF-1.1.5.1“°x¬576Ž €n ý•@P­576.‘ ü¬Get‘UUdeltas.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­realŽ‘ ³/±delta‘‰ffŽ–®x‘‰ffŽ“pŽ‘Jn¬=‘DZp1‘‰ffŽ‘®xŽ‘A–°‘8à±p0‘‰ffŽ‘®xŽ‘z~¬;Ž¡‘ +­realŽ‘ ³/±delta‘‰ffŽ–®y‘‰ffŽ“pŽ‘J¥|¬=‘DZp1‘‰ffŽ‘®yŽ‘'E°‘8à±p0‘‰ffŽ‘®yŽ‘`-¬;Ž¡‘ +­realŽ‘ ³/±delta‘‰ffŽ–®z‘‰ffŽ“pŽ‘Iá9¬=‘DZp1‘‰ffŽ‘®zŽ‘»0°‘8à±p0‘‰ffŽ‘®zŽ‘ô¬;Ž¡‘ +­realŽ‘ ³/±delta‘‰ffŽ–®x‘‰ffŽ“qŽ‘J,¬=‘DZq1‘‰ffŽ‘®xŽ‘¾½°‘8à±q0‘‰ffŽ‘®xŽ‘÷¥¬;Ž¡‘ +­realŽ‘ ³/±delta‘‰ffŽ–®y‘‰ffŽ“qŽ‘Jcˆ¬=‘DZq1‘‰ffŽ‘®yŽ‘¤l°‘8à±q0‘‰ffŽ‘®yŽ‘ÝT¬;Ž¡‘ +­realŽ‘ ³/±delta‘‰ffŽ–®z‘‰ffŽ“qŽ‘IŸE¬=‘DZq1‘‰ffŽ‘®zŽ‘8W°‘8à±q0‘‰ffŽ‘®zŽ‘q?¬;ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´2.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;ŽŸ­577.‘ ü¬SlopGes–UUfor“lineŸü±È“°ŽŽ‘ö<‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³1ŽŽŽŽŽ‘^;¬.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘Sym¬=–Ç(±delta‘‰ffŽ–®x‘‰ffŽ“pŽ›)º×°6¬=“0Ž‘Ç)“?“±delta‘‰ffŽ–®y‘‰ffŽ“pŽ‘)òMµ=±delta‘‰ffŽ–®x‘‰ffŽ“pŽ˜¬:“´INVALID_REALŽ‘BM\¬;Ž¡‘ +­realŽ‘ ³/±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘S X¬=–Ç(±delta‘‰ffŽ–®x‘‰ffŽ“pŽ›)º×°6¬=“0Ž‘Ç)“?“±delta‘‰ffŽ–®z‘‰ffŽ“pŽ‘). +µ=±delta‘‰ffŽ–®x‘‰ffŽ“pŽ˜¬:“´INVALID_REALŽ‘BM\¬;Ž¡‘ +­realŽ‘ ³/±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘Rì ¬=–Ç(±delta‘‰ffŽ–®z‘‰ffŽ“pŽ›). +°6¬=“0Ž‘Ç)“?“±delta‘‰ffŽ–®y‘‰ffŽ“pŽ‘)òMµ=±delta‘‰ffŽ–®z‘‰ffŽ“pŽ˜¬:“´INVALID_REALŽ‘BM\¬;ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´3.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;ŽŸ­578.‘ ü¬SlopGes–UUfor“lineŸü±È“°ŽŽ‘e ‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“µqŸÿ³0Ž‘|sµqŸÿ³1ŽŽŽŽŽ‘;ݬ.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘Rö”¬=–Ç(±delta‘‰ffŽ–®x‘‰ffŽ“qŽ›)xã°6¬=“0Ž‘Ç)“?“±delta‘‰ffŽ–®y‘‰ffŽ“qŽ‘)°Yµ=±delta‘‰ffŽ–®x‘‰ffŽ“qŽ˜¬:“´INVALID_REALŽ‘BM\¬;Ž¡‘ +­realŽ‘ ³/±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“zŽ‘RЬ=–Ç(±delta‘‰ffŽ–®x‘‰ffŽ“qŽ›)xã°6¬=“0Ž‘Ç)“?“±delta‘‰ffŽ–®z‘‰ffŽ“qŽ‘(ìµ=±delta‘‰ffŽ–®x‘‰ffŽ“qŽ˜¬:“´INVALID_REALŽ‘BM\¬;Ž¡‘ +­realŽ‘ ³/±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘RiǬ=–Ç(±delta‘‰ffŽ–®z‘‰ffŽ“qŽ›(ì°6¬=“0Ž‘Ç)“?“±delta‘‰ffŽ–®y‘‰ffŽ“qŽ‘)°Yµ=±delta‘‰ffŽ–®z‘‰ffŽ“qŽ˜¬:“´INVALID_REALŽ‘BM\¬;ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´4.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;ŽŸ­579.‘ ü¬The–½traces“on“the“x-y“plane.‘]?±x‘‰ffŽ‘®iŽ‘G£¬,‘$±y‘‰ffŽ‘®iŽ‘Eé¬,‘$±z‘‰ffŽ‘®iŽ‘¦¬,‘$±y‘‰ffŽ–®int‘‰ffŽ“pŽ‘!ží¬,‘$and“±y‘‰ffŽ–®int‘‰ffŽ“qŽ‘$hd¬are“set“to“´INVALID_REALŽ‘Eµ¾¬so“that“I‘®canŽ¡test–UUfor“whether“the“routines“bGelo¸ãw“succeed“in“setting“them“correctly‘ÿ*ª.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/±x‘‰ffŽ‘®iŽ‘0d«¬=‘Ç´INVALID_REALŽ‘BM\¬;‘µ=°‘ÿý¬x-cošGordinate–UUof“the“in¸ãtersection“p˜oin¸ãt.‘o°µ=Ž¡‘ +­realŽ‘ ³/±y‘‰ffŽ‘®iŽ‘0œ!¬=‘Ç´INVALID_REALŽ‘BM\¬;‘µ=°‘ÿý¬y-cošGordinate–UUof“the“in¸ãtersection“p˜oin¸ãt.‘o°µ=Ž¡‘ +­realŽ‘ ³/±z‘‰ffŽ‘®iŽ‘/×Þ¬=‘Ç´INVALID_REALŽ‘BM\¬;‘µ=°‘ÿý¬z-cošGordinate–UUof“the“in¸ãtersection“p˜oin¸ãt.‘o°µ=Ž¡‘ +­realŽ‘ ³/±y‘‰ffŽ–®int‘‰ffŽ“pŽ‘Aõ%¬=‘Ç´INVALID_REALŽ‘BM\¬;‘µ=°‘ÿý¬y-in¸ãtercept–UUofŸü±È“°ŽŽ‘ö<‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³1ŽŽŽŽŽ‘^;¬.‘o°µ=Ž¡‘ +­realŽ‘ ³/±y‘‰ffŽ–®int‘‰ffŽ“qŽ‘A³1¬=‘Ç´INVALID_REALŽ‘BM\¬;‘µ=°‘ÿý¬y-in¸ãtercept–UUofŸü±È“°ŽŽ‘e ‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“µqŸÿ³0Ž‘|sµqŸÿ³1ŽŽŽŽŽ‘;ݬ.‘o°µ=ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´5.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;Ž¡‘ +­ifŽ‘´ù¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘2Æ>°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘µ=°‘ÿý¬µxŸÿ·pŽ‘fj°6¬=‘Ç0.‘o°µ=Ž¡‘ +°fŽ¡‘±y‘‰ffŽ–®int‘‰ffŽ“pŽ‘5Aø¬=‘DZp0‘‰ffŽ‘®yŽ‘'E°–8à¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘28°“±p0‘‰ffŽ‘®xŽ‘z~¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘2Ce°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘µ=°‘ÿý¬µxŸÿ·qŽ‘1­°6¬=‘Ç0.‘o°µ=Ž¡‘ +°fŽ¡‘±y‘‰ffŽ–®int‘‰ffŽ“qŽ‘5¬=‘DZq0‘‰ffŽ‘®yŽ‘¤l°–8à¬(±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘1µ-°“±q0‘‰ffŽ‘®xŽ‘÷¥¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´6.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;ŽŽŽŒ‹› Úx Šn ý‘ì°x¬580–¯3DLDF-1.1.5.1’ßðTRAÃŽCE‘ÕXVERSION“¬155Ž €n ý•@P­580.ޤ °Ž‘ +¬If–vŒbGoth“of“the“traces“of‘‹µ~Ž“pŽŽ‘ õ¬and‘pUµ~Ž“qŽŽ‘ ¿Â¬in“the“x-y“plane“are“parallel“to“the“y-axis“(i.e.,›~Ùµx–þs¬=“0),˜w¸ãe–vŒtest“whetherŽ¡‘ +µpŸÿ·xŽ‘9¬=‘0µqŸÿ·xŽ‘ä¬.›.ÔIf–”Ythey“are,‘¤then“w¸ãe“set“±x‘‰ffŽ‘®iŽ‘¬to“that“v‘ÿqÇalue.˜If“they're“not,›¤the“lines“don't“in¸ãtersect,˜so“w¸ãe“returnŽ¡‘ +´INVALID_POINTŽ‘NÆB¬.Ž¡°Ž‘ +¬If–òOthe“trace“of‘õ~Ž“pŽŽ‘ +재or“the“trace“of‘ìµ~Ž“qŽŽ‘ +·H¬in“the“x-y“plane“is“parallel“to“the“y-axis,›w¸ãe“set“±x‘‰ffŽ‘®iŽ‘Ï¬to“its“x-v‘ÿqÇalue,˜bGecauseŽ¡‘ +in–UUthis“case,“the“inš¸ãtersection“pGoin˜t“m˜ust“ha˜v˜e“this“x-v‘ÿqÇalue.Ž¡°Ž‘ +¬If–UUµxŸÿ·pŽ‘fj°6¬=›Ç0“and“µxŸÿ·qŽ‘1­°6¬=˜0,“wš¸ãe“deriv˜e“±x‘‰ffŽ‘®iŽ‘•¬using“the“slopGe“and“y-in˜tercept“of“the“lines.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±y‘‰ffŽ–®int‘‰ffŽ“pŽ‘!Aö°‘Ç´INVALID_REALŽ‘D†<°^‘8à±y‘‰ffŽ–®int‘‰ffŽ“qŽ‘#8â°‘Ç´INVALID_REALŽ‘BM\¬)Ž¡‘µ=°‘qµ~Ž‘ÿýpŸÿ·xzŽŽŽ‘Ǭand‘Oµ~Ž‘UUqŸÿ·xzŽŽŽ‘Eð¬are–UUbGoth“parallel“to“the“z-axis.‘o°µ=Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´7.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(±p0‘‰ffŽ‘®xŽ‘¶°‘DZq0‘‰ffŽ‘®xŽ‘…ݬ)‘µ=°‘ÿý¬They›UUha•¸ãv“e˜the˜same˜v‘ÿqÇalue˜for˜µx¬.‘o°µ=Ž¡‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´8.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Traces® ´on® ´x-y® ´planeŽ‘kÆÜ® ´are® ´coincident.\n"Ž’ÒÔ#°‘DZ ushŽ‘€¬;Ž¡‘±x‘‰ffŽ‘®iŽ‘-±¬=‘DZp0‘‰ffŽ‘®xŽ‘¶¬;ަ‘­realŽ‘4³1±y‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘^S ¬=‘Ç´INVALID_REALŽ‘BM\¬;Ž¡‘­realŽ‘4³1±y‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘]Ð4¬=‘Ç´INVALID_REALŽ‘BM\¬;ަ‘­ifŽ‘)´û¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘29q°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘±y‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘.ŸÜ¬=‘DZp0‘‰ffŽ‘®yŽ‘'E°‘8à±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘3ä°‘8à±p0‘‰ffŽ‘®zŽ‘ô¬;Ž¡‘­ifŽ‘)´û¬(±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘1¶˜°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘±y‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘.¬=‘DZq0‘‰ffŽ‘®yŽ‘¤l°‘8à±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘3a@°‘8à±q0‘‰ffŽ‘®zŽ‘q?¬;Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´9.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘29q°‘Ç´INVALID_REALŽ‘D†<°^‘8à±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘3ïx°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Both® ´traces® ´on® ´z-y® Ž‘kÆÜ´plane® ´are® ´vertical\nŽ’ÔÆ "Ž’ÝT°‘DZ ushŽ‘€¬;Ž¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´10Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘(­ifŽ‘3´ü¬(±p0‘‰ffŽ‘®zŽ‘‚P°‘DZq0‘‰ffŽ‘®zŽ‘ÿw¬)‘±c‘ÿ}'errŽ‘|¾°‘Ç´"Lines® ´are® ´coincidenŽ‘kÆÜt.\n"Ž’†5¬;Ž¡‘(­elseŽ‘?Øã±c‘ÿ}'errŽ‘UU¡°‘Ç´"Lines® ´do® ´not® ´intersŽ‘kÆÜect.\n"Ž’‘ /¬;Ž¡‘(±c‘ÿ}'errŽ‘=|°‘Ç´"Returning® ´INVALID_BŽ‘kÆÜOOL_POINT.\n\n"Ž’½Ô/°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘Kæ¾´INVALID_BOOL_POINTŽ’ªìð¬;Ž¡‘°gŽ¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘29q°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"The® ´p-trace® ´is® ´vertŽ‘kÆÜical\n"Ž’“ÔG°‘DZ ushŽ‘€¬;Ž¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´11Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘(±z‘‰ffŽ‘®iŽ‘7$³¬=‘DZp0‘‰ffŽ‘®zŽ‘‚P¬;Ž¡‘(±y‘‰ffŽ‘®iŽ‘7èö¬=‘DZz‘‰ffŽ‘®iŽ‘]°‘8à±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘3a@¬+‘8à±y‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘(ŽË¬;Ž¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"x_i® ´==® ´"Ž‘5T}°‘DZx‘‰ffŽ‘®iŽ‘x”°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"y_i® ´==® ´"Ž‘5T}°‘DZy‘‰ffŽ‘®iŽ‘° +°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"z_i® ´==® ´"Ž‘5T}°‘DZz‘‰ffŽ‘®iŽ‘ëǰ‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"slope_q_z_y® ´==® ´"Ž‘_Te°‘DZslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘4}°°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"y_int_q_z® ´==® ´"Ž‘TÔk°‘DZy‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘+䰑DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘(°gŽ¡‘gŽ¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘1¶˜°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"The® ´q-trace® ´is® ´vertŽ‘kÆÜical\n"Ž’“ÔG°‘DZ ushŽ‘€¬;Ž¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´12Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘(±z‘‰ffŽ‘®iŽ‘7$³¬=‘DZq0‘‰ffŽ‘®zŽ‘ÿw¬;Ž¡‘(±y‘‰ffŽ‘®iŽ‘7èö¬=‘DZz‘‰ffŽ‘®iŽ‘]°‘8à±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘3ä¬+‘8à±y‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘)¤¬;Ž¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"x_i® ´==® ´"Ž‘5T}°‘DZx‘‰ffŽ‘®iŽ‘x”°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"y_i® ´==® ´"Ž‘5T}°‘DZy‘‰ffŽ‘®iŽ‘° +°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ŽŽŽŒ‹œ ñ Šn ý‘ì¬156–¯TRAÃŽCE‘ÕXVERSION’ßð3DLDF-1.1.5.1“°x¬580Ž €n ý•@P‘2±c‘ÿ}'outŽ‘H T°‘Ç´"z_i® ´==® ´"Ž‘5T}°‘DZz‘‰ffŽ‘®iŽ‘ëǰ‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ޤ ‘2±c‘ÿ}'outŽ‘H T°‘Ç´"slope_p_z_y® ´==® ´"Ž‘_Te°‘DZslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘5‰°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"y_int_p_z® ´==® ´"Ž‘TÔk°‘DZy‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘,fô°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘(°gŽ¡‘gŽ¡‘­elseŽ‘5Øâ°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Neither® ´trace® ´is® ´veŽ‘kÆÜrtical\n"Ž’žTA°‘DZ ushŽ‘€¬;Ž¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´13Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘(±z‘‰ffŽ‘®iŽ‘7$³¬=‘Ç(±y‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘(ŽË°‘8à±y‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘)¤¬)µ=¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘1«9°‘8à±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘1(`¬);Ž¡‘(±y‘‰ffŽ‘®iŽ‘7èö¬=‘DZslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘4rQ°‘8à±z‘‰ffŽ‘®iŽ‘ÏW¬+‘8à±y‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘)¤¬;Ž¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"x_i® ´==® ´"Ž‘5T}°‘DZx‘‰ffŽ‘®iŽ‘x”°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"y_i® ´==® ´"Ž‘5T}°‘DZy‘‰ffŽ‘®iŽ‘° +°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"z_i® ´==® ´"Ž‘5T}°‘DZz‘‰ffŽ‘®iŽ‘ëǰ‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"slope_p_z_y® ´==® ´"Ž‘_Te°‘DZslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“z‘‰ffŽ“yŽ‘5‰°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"y_int_p_z® ´==® ´"Ž‘TÔk°‘DZy‘‰ffŽ–®int‘‰ffŽ“p‘‰ffŽ“zŽ‘,fô°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"slope_q_z_y® ´==® ´"Ž‘_Te°‘DZslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“z‘‰ffŽ“yŽ‘4}°°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"y_int_q_z® ´==® ´"Ž‘TÔk°‘DZy‘‰ffŽ–®int‘‰ffŽ“q‘‰ffŽ“zŽ‘+䰑DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘(°gŽ¡‘gŽ¡‘gŽ¡‘­elseŽ‘:Øâµ=°‘ÿý¬They–UUdon't“ha•¸ãv“e–UUthe“same“v‘ÿqÇalue“for“µx¬.‘o°µ=Ž¡‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´14Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"Lines® ´do® ´not® ´intersŽ‘kÆÜect:\n"Ž’‘ /¬;Ž¡‘±c‘ÿ}'errŽ‘3þ °‘Hc´"("Ž‘×%°‘Hc±p0‘‰ffŽ‘®xŽ›Òd°‘Hc´",® ´"Ž–"°‘Hc±p0‘‰ffŽ‘®yŽ‘¸°‘Hc´",® ´"Ž“°‘Hc±p0‘‰ffŽ‘®zŽ‘Kþ°‘Hc´")® ´--® ´("Ž‘1°‘Hc±p1‘‰ffŽ‘®xŽ˜°‘Hc´",® ´"Ž“°‘Hc±p1‘‰ffŽ‘®yŽ‘¸°Ž¡‘2´",® ´"Ž‘JØ °‘Q¨±p1‘‰ffŽ‘®zŽ‘^ˆ°‘Q¨´")\n("Ž‘&©¦°‘Q¨±q0‘‰ffŽ‘®xŽ›b°‘Q¨´",® ´"Ž–)¬°‘Q¨±q0‘‰ffŽ‘®yŽ‘Gİ‘Q¨´",® ´"Ž“°‘Q¨±q0‘‰ffŽ‘®zŽ‘Û¯°‘Q¨´")® ´--® ´("Ž‘1) °‘Q¨±q1‘‰ffŽ‘®xŽ˜°Ž¡‘2´",® ´"Ž‘JMy°‘DZq1‘‰ffŽ‘®yŽ‘2¤°‘Ç´",® ´"Ž‘Œ°‘DZq1‘‰ffŽ‘®zŽ‘ư‘Ç´")\nReturning® ´INVALIŽ‘kÆÜD_BOOL_POINT.\n"Ž’Ã,°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_BOOL_POINTŽ’ ìï¬;Ž¡‘°gŽ¡‘ gŽ¡‘ -ÂelseŽ‘ .5ifŽ‘+ã-«(Ïy‘‰ffŽ–®int‘‰ffŽ“pŽ‘!Aö·‘ÇÝINVALID_REALŽ‘BM\«)‘±=·‘q±~Ž‘ÿýpŸÿ´xyŽŽŽ‘´½«is–UUparallel“to“the“y-axis.‘o·±=Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý15Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘Ïx‘‰ffŽ‘®iŽ‘#±~«=‘ÇÏp0‘‰ffŽ‘®xŽ‘¶«;Ž¡‘Ïy‘‰ffŽ‘®iŽ‘#èô«=‘ÇÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘4|E·‘8àÏx‘‰ffŽ‘®iŽ‘\$«+‘8àÏy‘‰ffŽ–®int‘‰ffŽ“qŽ‘ qÊ«;Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘ .5ifŽ‘+ã-«(Ïy‘‰ffŽ–®int‘‰ffŽ“qŽ‘!·‘ÇÝINVALID_REALŽ‘BM\«)‘±=·‘ùƱ~Ž‘ÿýqŸÿ´xyŽŽŽ‘#Ž«is–UUparallel“to“the“y-axis.‘o·±=Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý16Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘Ïx‘‰ffŽ‘®iŽ‘#±~«=‘ÇÏq0‘‰ffŽ‘®xŽ‘…Ý«;Ž¡‘Ïy‘‰ffŽ‘®iŽ‘#èô«=‘ÇÏslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘4ÿ·‘8àÏx‘‰ffŽ‘®iŽ‘\$«+‘8àÏy‘‰ffŽ–®int‘‰ffŽ“pŽ‘ ³¾«;Ž¡‘ -·gŽŽŽŒ‹“> Šn ý‘ì·x«537›­3DLDFPR•ÃŽG’S†TRA“CE‘ÕXVERSION˜«147Ž €n ý•@PÂ537.‘ ü«[¬LDF‘T2002.11.12.«]Ž‘ZBÇ!!‘Z¢BUG:–æOccurred“when“I‘Ôtried“to“ nd“an“inš¸ãtersection“of“t˜w˜o“lines“in“the“x-z“plane.ޤ This–¶ñcošGde“shouldn't“b˜e“reacš¸ãhed.‘<ûRotating“the“ob‘Ž8jects“90Ÿü^ÿºŽ‘OÕ«around“the“x-axis,‘Öžputting“them“in˜to“the“x-y“plane,Ž¡ xed–UUthe“problem.‘qÇOb¸ãviously›ÿ*ª,“the“case“that“the“ob‘Ž8jects“are“in“the“x-z“plane“already“isn't“handled“propGerly˜.Ž©·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂelseŽ‘0Øá±=·‘ÿý«Neither‘÷±~Ž‘UUqŸÿ´xyŽŽŽ–xæ«nor‘O±~Ž‘UUqŸÿ´xyŽŽŽ“«is–UUparallel“to“the“y-axis.‘o·±=Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘±=·‘ÿý«[¬LDF‘T2002.11.12.«]Ž‘T7Start–UUw¸ãorking“on“ nding“bug“here.‘o·±=Ž¡‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý17Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"slope_p_x_yÈ Ý==È Ý"Ž‘_Te·‘ÇÏslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘5V·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"slope_q_x_yÈ Ý==È Ý"Ž‘_Te·‘ÇÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘5 -}·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘2Æ>·6«=‘ÇÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘2Ce«)‘·fŽ¡‘Ïx‘‰ffŽ‘®iŽ‘-±«=‘Ç(Ïy‘‰ffŽ–®int‘‰ffŽ“qŽ‘ qÊ·‘8àÏy‘‰ffŽ–®int‘‰ffŽ“pŽ‘ ³¾«)±=«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘28·‘8àÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘1µ-«);Ž¡‘Ïy‘‰ffŽ‘®iŽ‘-èõ«=‘ÇÏslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘4ÿ·‘8àÏx‘‰ffŽ‘®iŽ‘\$«+‘8àÏy‘‰ffŽ–®int‘‰ffŽ“pŽ‘ ³¾«;Ž¡‘·gŽ¡‘ -gŽŸÂ538.‘ ü«The–|trace“on“the“x-z“plane.‘åËW‘ÿ*ªe“don't“need“to“do“this“if“w•¸ãe'v“e–|calculated“Ïz‘‰ffŽ‘®iŽ‘U™«abGo•¸ãv“e,‘…¬in–|the“case“thatŽ¡the–UUtraces“on“the“x-y“plane“are“coinciden¸ãt.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïz‘‰ffŽ‘®iŽ‘$¯·‘ÇÝINVALID_REALŽ‘BM\«)‘UU·fŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý18Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;ަ‘ -ÂrealŽ‘ ³/Ïz‘‰ffŽ–®int‘‰ffŽ“pŽ‘A0â«=‘ÇÝINVALID_REALŽ‘BM\«;‘±=·‘ÿý«z-in¸ãtercept–UUofŸü±È“·ŽŽ‘ö<‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®1ŽŽŽŽŽ‘^;«.‘o·±=Ž¡‘ -ÂrealŽ‘ ³/Ïz‘‰ffŽ–®int‘‰ffŽ“qŽ‘@îî«=‘ÇÝINVALID_REALŽ‘BM\«;‘±=·‘ÿý«z-in¸ãtercept–UUofŸü±È“·ŽŽ‘e ‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“±qŸÿ®0Ž‘|s±qŸÿ®1ŽŽŽŽŽ‘;Ý«.‘o·±=ަ‘ -ÂifŽ‘´ù«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘2Z)·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘±=·‘ÿý«±xŸÿ´pŽ‘fj·6«=‘Ç0.‘o·±=Ž¡‘ -·fŽ¡‘Ïz‘‰ffŽ–®int‘‰ffŽ“pŽ‘4}µ«=‘ÇÏp0‘‰ffŽ‘®zŽ‘»0·–8à«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘1Ëñ·“Ïp0‘‰ffŽ‘®xŽ‘z~«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(Ïslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“zŽ‘1×P·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘±=·‘ÿý«±xŸÿ´qŽ‘1­·6«=‘Ç0.‘o·±=Ž¡‘ -·fŽ¡‘Ïz‘‰ffŽ–®int‘‰ffŽ“qŽ‘4;Á«=‘ÇÏq0‘‰ffŽ‘®zŽ‘8W·–8à«(Ïslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“zŽ‘1I·“Ïq0‘‰ffŽ‘®xŽ‘÷¥«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"z_int_pÈ Ý==È Ý"Ž‘JTq·‘ÇÏz‘‰ffŽ–®int‘‰ffŽ“pŽ‘#DË·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"z_int_qÈ Ý==È Ý"Ž‘JTq·‘ÇÏz‘‰ffŽ–®int‘‰ffŽ“qŽ‘#×·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽŸÂ539.‘ ü«[¬LDF‘T2003.06.24.«]Ž‘Z‹”Ïx‘‰ffŽ‘®iŽ‘jΫ«will–X³bGe“equal“to“ÝINVALID_REALŽ‘BÞ÷«,‘Y‹if“the“traces“of“the“lines“on“the“x-y“plane“w¸ãereŽ¡colinear.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.24.«]Ž‘Y;Added–UUthis“conditional.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïx‘‰ffŽ‘®iŽ‘±|·‘ÇÝINVALID_REALŽ–D†<·^›8à:«(Ïz‘‰ffŽ–®int‘‰ffŽ“pŽ‘ }³·‘ÇÝINVALID_REALŽ“·_˜Ïz‘‰ffŽ–®int‘‰ffŽ“qŽ‘"tŸ·‘ÇÝINVALID_REALŽ‘BM\«))‘·fŽ¡‘Ïx‘‰ffŽ‘®iŽ‘#±~«=‘Ç(Ïz‘‰ffŽ–®int‘‰ffŽ“qŽ‘­‡·‘8àÏz‘‰ffŽ–®int‘‰ffŽ“pŽ‘ï{«)±=«(Ïslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘1Ëñ·‘8àÏslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“zŽ‘1I«);Ž¡‘Ïy‘‰ffŽ‘®iŽ‘#èô«=‘ÇÏp0‘‰ffŽ‘®yŽ‘îe«;Ž¡‘ -·gŽŽŽŒ‹”+ø Šn ý‘ì«148›­TRA•ÃŽCE‘ÕXVERSION’S†3DLDFPR“G˜·x«540Ž €n ý•@PÂ540.‘ ü«In–Ì“the“folloš¸ãwing“case,‘þÖ±~Ž‘êbpŸÿ´xzŽŽŽ‘ãj«and‘Æ\±~Ž“qŸÿ´xzŽŽŽ‘4l«are“bGoth“parallel“to“the“z-axis.‘×€They“ha˜v˜e“the“same“v‘ÿqÇalue“for“±x«.ޤ W‘ÿ*ªe'vš¸ãe–UUset“Ïx‘‰ffŽ‘®iŽ‘•«abGo˜v˜e,“so“there's“no“need“to“do“so“here“again.ŽŸ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïz‘‰ffŽ–®int‘‰ffŽ“pŽ‘ }³·‘ÇÝINVALID_REALŽ‘D†<·^‘8àÏz‘‰ffŽ–®int‘‰ffŽ“qŽ‘"tŸ·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý19Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(Ïp0‘‰ffŽ‘®xŽ‘¶·6«=‘ÇÏq0‘‰ffŽ‘®xŽ‘…Ý«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý20Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'errŽ‘4ûõ·‘FLÝ"LinesÈ ÝdoÈ ÝnotÈ ÝintersŽ‘mFect:\n"Ž’–Ò¯·‘FLÝ"("Ž‘Ò÷·‘FLÏp0‘‰ffŽ‘®xŽ‘Î6·‘FLÝ",È Ý"Ž–ô·‘FLÏp0‘‰ffŽ‘®zŽ‘Gз‘FLÝ",È Ý"Ž“·Ž¡‘2Ïp0‘‰ffŽ‘®zŽ‘I¿Ü·‘ŸÝ")È Ý--È Ý("Ž‘2Ž·‘ŸÏp1‘‰ffŽ‘®xŽ‘JÜ·‘ŸÝ",È Ý"Ž–š·‘ŸÏp1‘‰ffŽ‘®zŽ›Äv·‘ŸÝ",È Ý"Ž“·‘ŸÏp1‘‰ffŽ‘®zŽ˜·‘ŸÝ")\n("Ž‘(”·‘ŸÏq0‘‰ffŽ‘®xŽ‘È·Ž¡‘2Ý",È Ý"Ž‘KÊ ·‘C¿Ïq0‘‰ffŽ‘®zŽ–¿Ý·‘C¿Ý",È Ý"Ž› Ú·‘C¿Ïq0‘‰ffŽ‘®zŽ“·‘C¿Ý")È Ý--È Ý("Ž‘3 η‘C¿Ïq1‘‰ffŽ‘®xŽ‘FC·‘C¿Ý",È Ý"Ž˜·‘C¿Ïq1‘‰ffŽ‘®zŽ“·‘C¿Ïq1‘‰ffŽ‘®zŽ“·Ž¡‘2Ý")\nReturningÈ ÝINVALIŽ’šÿÉD_BOOL_POINT.\n"Ž’òM·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_BOOL_POINTŽ’ ìï«;Ž¡‘·gŽ¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(±y‘‰ffŽ–®int‘‰ffŽ“pŽ‘!Aö°‘Ç´INVALID_REALŽ‘BM\¬)‘µ=°‘qµ~Ž‘ÿýpŸÿ·xyŽŽŽ‘´½¬is–UUparallel“to“the“y-axis.‘o°µ=Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´15Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘±x‘‰ffŽ‘®iŽ‘#±~¬=‘DZp0‘‰ffŽ‘®xŽ‘¶¬;Ž¡‘±y‘‰ffŽ‘®iŽ‘#èô¬=‘DZslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘4|E°‘8à±x‘‰ffŽ‘®iŽ‘\$¬+‘8à±y‘‰ffŽ–®int‘‰ffŽ“qŽ‘ qʬ;Ž¡‘ +°gŽ¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(±y‘‰ffŽ–®int‘‰ffŽ“qŽ‘!°‘Ç´INVALID_REALŽ‘BM\¬)‘µ=°‘ùƵ~Ž‘ÿýqŸÿ·xyŽŽŽ‘#ެis–UUparallel“to“the“y-axis.‘o°µ=Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´16Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘±x‘‰ffŽ‘®iŽ‘#±~¬=‘DZq0‘‰ffŽ‘®xŽ‘…ݬ;Ž¡‘±y‘‰ffŽ‘®iŽ‘#èô¬=‘DZslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘4ÿ°‘8à±x‘‰ffŽ‘®iŽ‘\$¬+‘8à±y‘‰ffŽ–®int‘‰ffŽ“pŽ‘ ³¾¬;Ž¡‘ +°gŽŽŽŒ‹ = Šn ý‘ì°x¬581–¯3DLDF-1.1.5.1’ßðTRAÃŽCE‘ÕXVERSION“¬157Ž €n ý•@P­581.‘ ü¬[²LDF‘T2002.11.12.¬]Ž‘ZBÇ!!‘Z¢BUG:–æOccurred“when“I‘Ôtried“to“ nd“an“inš¸ãtersection“of“t˜w˜o“lines“in“the“x-z“plane.ޤ This–¶ñcošGde“shouldn't“b˜e“reacš¸ãhed.‘<ûRotating“the“ob‘Ž8jects“90Ÿü^ÿ¶Ž‘OÕ¬around“the“x-axis,‘Öžputting“them“in˜to“the“x-y“plane,Ž¡ xed–UUthe“problem.‘qÇOb¸ãviously›ÿ*ª,“the“case“that“the“ob‘Ž8jects“are“in“the“x-z“plane“already“isn't“handled“propGerly˜.Ž©°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­elseŽ‘0Øáµ=°‘ÿý¬Neither‘÷µ~Ž‘UUqŸÿ·xyŽŽŽ–xæ¬nor‘Oµ~Ž‘UUqŸÿ·xyŽŽŽ“¬is–UUparallel“to“the“y-axis.‘o°µ=Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘µ=°‘ÿý¬[²LDF‘T2002.11.12.¬]Ž‘T7Start–UUw¸ãorking“on“ nding“bug“here.‘o°µ=Ž¡‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Error® ´after® ´here® ´17Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"slope_p_x_y® ´==® ´"Ž‘_Te°‘DZslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘5V°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"slope_q_x_y® ´==® ´"Ž‘_Te°‘DZslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘5 +}°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘2Æ>°6¬=‘DZslop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘2Ce¬)‘°fŽ¡‘±x‘‰ffŽ‘®iŽ‘-±¬=‘Ç(±y‘‰ffŽ–®int‘‰ffŽ“qŽ‘ qʰ‘8à±y‘‰ffŽ–®int‘‰ffŽ“pŽ‘ ³¾¬)µ=¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘28°‘8à±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“yŽ‘1µ-¬);Ž¡‘±y‘‰ffŽ‘®iŽ‘-èõ¬=‘DZslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“yŽ‘4ÿ°‘8à±x‘‰ffŽ‘®iŽ‘\$¬+‘8à±y‘‰ffŽ–®int‘‰ffŽ“pŽ‘ ³¾¬;Ž¡‘°gŽ¡‘ +gŽŸ­582.‘ ü¬The–|trace“on“the“x-z“plane.‘åËW‘ÿ*ªe“don't“need“to“do“this“if“w•¸ãe'v“e–|calculated“±z‘‰ffŽ‘®iŽ‘U™¬abGo•¸ãv“e,‘…¬in–|the“case“thatŽ¡the–UUtraces“on“the“x-y“plane“are“coinciden¸ãt.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±z‘‰ffŽ‘®iŽ‘$¯°‘Ç´INVALID_REALŽ‘BM\¬)‘UU°fŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´18Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;ަ‘ +­realŽ‘ ³/±z‘‰ffŽ–®int‘‰ffŽ“pŽ‘A0â¬=‘Ç´INVALID_REALŽ‘BM\¬;‘µ=°‘ÿý¬z-in¸ãtercept–UUofŸü±È“°ŽŽ‘ö<‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³1ŽŽŽŽŽ‘^;¬.‘o°µ=Ž¡‘ +­realŽ‘ ³/±z‘‰ffŽ–®int‘‰ffŽ“qŽ‘@îî¬=‘Ç´INVALID_REALŽ‘BM\¬;‘µ=°‘ÿý¬z-in¸ãtercept–UUofŸü±È“°ŽŽ‘e ‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“µqŸÿ³0Ž‘|sµqŸÿ³1ŽŽŽŽŽ‘;ݬ.‘o°µ=ަ‘ +­ifŽ‘´ù¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘2Z)°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘µ=°‘ÿý¬µxŸÿ·pŽ‘fj°6¬=‘Ç0.‘o°µ=Ž¡‘ +°fŽ¡‘±z‘‰ffŽ–®int‘‰ffŽ“pŽ‘4}µ¬=‘DZp0‘‰ffŽ‘®zŽ‘»0°–8à¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘1Ëñ°“±p0‘‰ffŽ‘®xŽ‘z~¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“zŽ‘1×P°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘µ=°‘ÿý¬µxŸÿ·qŽ‘1­°6¬=‘Ç0.‘o°µ=Ž¡‘ +°fŽ¡‘±z‘‰ffŽ–®int‘‰ffŽ“qŽ‘4;Á¬=‘DZq0‘‰ffŽ‘®zŽ‘8W°–8à¬(±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“zŽ‘1I°“±q0‘‰ffŽ‘®xŽ‘÷¥¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"z_int_p® ´==® ´"Ž‘JTq°‘DZz‘‰ffŽ–®int‘‰ffŽ“pŽ‘#D˰‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"z_int_q® ´==® ´"Ž‘JTq°‘DZz‘‰ffŽ–®int‘‰ffŽ“qŽ‘#×°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽŸ­583.‘ ü¬[²LDF‘T2003.06.24.¬]Ž‘Z‹”±x‘‰ffŽ‘®iŽ‘jΫ¬will–X³bGe“equal“to“´INVALID_REALŽ‘BÞ÷¬,‘Y‹if“the“traces“of“the“lines“on“the“x-y“plane“w¸ãereŽ¡colinear.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.24.¬]Ž‘Y;Added–UUthis“conditional.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±x‘‰ffŽ‘®iŽ‘±|°‘Ç´INVALID_REALŽ–D†<°^›8à:¬(±z‘‰ffŽ–®int‘‰ffŽ“pŽ‘ }³°‘Ç´INVALID_REALŽ“°_˜±z‘‰ffŽ–®int‘‰ffŽ“qŽ‘"tŸ°‘Ç´INVALID_REALŽ‘BM\¬))‘°fŽ¡‘±x‘‰ffŽ‘®iŽ‘#±~¬=‘Ç(±z‘‰ffŽ–®int‘‰ffŽ“qŽ‘­‡°‘8à±z‘‰ffŽ–®int‘‰ffŽ“pŽ‘ï{¬)µ=¬(±slop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘1Ëñ°‘8à±slop‘ÿ}'e‘‰ffŽ–®q‘‰ffŽ“x‘‰ffŽ“zŽ‘1I¬);Ž¡‘±y‘‰ffŽ‘®iŽ‘#èô¬=‘DZp0‘‰ffŽ‘®yŽ‘îe¬;Ž¡‘ +°gŽŽŽŒ‹ž û Šn ý‘ì¬158–¯TRAÃŽCE‘ÕXVERSION’ßð3DLDF-1.1.5.1“°x¬584Ž €n ý•@P­584.‘ ü¬In–Ì“the“folloš¸ãwing“case,‘þÖµ~Ž‘êbpŸÿ·xzŽŽŽ‘ãj¬and‘Æ\µ~Ž“qŸÿ·xzŽŽŽ‘4l¬are“bGoth“parallel“to“the“z-axis.‘×€They“ha˜v˜e“the“same“v‘ÿqÇalue“for“µx¬.ޤ W‘ÿ*ªe'vš¸ãe–UUset“±x‘‰ffŽ‘®iŽ‘•¬abGo˜v˜e,“so“there's“no“need“to“do“so“here“again.ŽŸ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±z‘‰ffŽ–®int‘‰ffŽ“pŽ‘ }³°‘Ç´INVALID_REALŽ‘D†<°^‘8à±z‘‰ffŽ–®int‘‰ffŽ“qŽ‘"tŸ°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´19Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(±p0‘‰ffŽ‘®xŽ‘¶°6¬=‘DZq0‘‰ffŽ‘®xŽ‘…ݬ)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´20Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'errŽ‘4ûõ°‘FL´"Lines® ´do® ´not® ´intersŽ‘mFect:\n"Ž’–Ò¯°‘FL´"("Ž‘Ò÷°‘FL±p0‘‰ffŽ‘®xŽ‘Î6°‘FL´",® ´"Ž–ô°‘FL±p0‘‰ffŽ‘®zŽ‘Gа‘FL´",® ´"Ž“°Ž¡‘2±p0‘‰ffŽ‘®zŽ‘I¿Ü°‘Ÿ´")® ´--® ´("Ž‘2ް‘Ÿ±p1‘‰ffŽ‘®xŽ‘Jܰ‘Ÿ´",® ´"Ž–š°‘Ÿ±p1‘‰ffŽ‘®zŽ›Äv°‘Ÿ´",® ´"Ž“°‘Ÿ±p1‘‰ffŽ‘®zŽ˜°‘Ÿ´")\n("Ž‘(”°‘Ÿ±q0‘‰ffŽ‘®xŽ‘È°Ž¡‘2´",® ´"Ž‘KÊ °‘C¿±q0‘‰ffŽ‘®zŽ–¿Ý°‘C¿´",® ´"Ž› Ú°‘C¿±q0‘‰ffŽ‘®zŽ“°‘C¿´")® ´--® ´("Ž‘3 ΰ‘C¿±q1‘‰ffŽ‘®xŽ‘FC°‘C¿´",® ´"Ž˜°‘C¿±q1‘‰ffŽ‘®zŽ“°‘C¿±q1‘‰ffŽ‘®zŽ“°Ž¡‘2´")\nReturning® ´INVALIŽ’šÿÉD_BOOL_POINT.\n"Ž’òM°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_BOOL_POINTŽ’ ìï¬;Ž¡‘°gŽ¡‘ gŽ¡‘ -ÂelseŽ‘ .5ifŽ‘+ã-«(Ïz‘‰ffŽ–®int‘‰ffŽ“pŽ‘ }³·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý21Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘Ïz‘‰ffŽ‘®iŽ‘#$±«=‘ÇÏp0‘‰ffŽ‘®zŽ‘‚P«;Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘ .5ifŽ‘+ã-«(Ïz‘‰ffŽ–®int‘‰ffŽ“qŽ‘ ;¿·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý22Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘Ïz‘‰ffŽ‘®iŽ‘#$±«=‘ÇÏq0‘‰ffŽ‘®zŽ‘ÿw«;Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘!Øà·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý23Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘Ïz‘‰ffŽ‘®iŽ‘#$±«=‘ÇÏslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘4“ ·‘8àÏx‘‰ffŽ‘®iŽ‘\$«+‘8àÏz‘‰ffŽ–®int‘‰ffŽ“pŽ‘ï{«;Ž¡‘ -·gŽ¡‘ -gŽŽŽŒ‹•?‰ Šn ý‘ì·x«541›­3DLDFPR•ÃŽG’S†TRA“CE‘ÕXVERSION˜«149Ž €n ý•@PÂ541.‘ ü«[¬LDF‘T2002.10.27.«]Ž‘ZÅuIf‘’”Ïx‘‰ffŽ‘®iŽ‘|ø«,‘¡äÏy‘‰ffŽ‘®iŽ‘þ«,›¡äand‘’”Ïz‘‰ffŽ‘®iŽ‘‚¿«are–’”all“v‘ÿqÇalid,˜set“ÏbpŽ‘m ±:ÏptŽ‘ w1«using“those“v‘ÿqÇalues.‘)…Otherwise,˜set“it“toޤ ÝINVALID_POINTŽ‘DÆA«.‘mJIf–Gßthis“ÂP•®9oin“tŽ‘"*«is“on“bGoth“of“the“line“segmen¸ãtsŸü±È“·ŽŽ‘èÆ‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®1ŽŽŽŽŽ‘˜¤«andŸü±È“·ŽŽ‘W—‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“±qŸÿ®0Ž‘|s±qŸÿ®1ŽŽŽŽŽ‘.g«,›Jset“ÏbpŽ‘"X±:bŽ‘’‰«to“ÏtrueŽ‘ w«,˜otherwise“setŽ¡it–UUto“ÏfalseŽ‘™«.ŽŸ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"ErrorÈ ÝafterÈ ÝhereÈ Ý24Ž‘kÆÜ.\n"Ž’„P·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"x_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏx‘‰ffŽ‘®iŽ‘x”·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"y_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏy‘‰ffŽ‘®iŽ‘° -·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"z_iÈ Ý==È Ý"Ž‘5T}·‘ÇÏz‘‰ffŽ‘®iŽ‘ëÇ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(Ïx‘‰ffŽ‘®iŽ‘±|·‘ÇÝINVALID_REALŽ–D†<·_‘8àÏy‘‰ffŽ‘®iŽ‘!Ò·‘ÇÝINVALID_REALŽ“·_‘8àÏz‘‰ffŽ‘®iŽ‘]·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘ÂreturnŽ‘7æ¼ÝINVALID_BOOL_POINTŽ’–ìî«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ReturningÈ ÝINVALID_BŽ‘kÆÜOOL_POINT.\n"Ž’³T5·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘!Øà·fŽ¡‘ÏbpŽ‘Ú{±:ÏptŽ‘ ä±:ÏsetŽ‘ x„«(Ïx‘‰ffŽ‘®iŽ‘ êd±;‘ª¨Ïy‘‰ffŽ‘®iŽ‘Ì‚±;‘ª¨Ïz‘‰ffŽ‘®iŽ‘?«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘ÏbpŽ‘Úy±:ÏptŽ‘ ä±:ÏshowŽ‘Šÿ«(Ý"bp.pt"Ž‘%FS«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÏbpŽ‘ -Úy±:ÏptŽ– ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ›=5O«(Ïp0Ž‘ À±;‘ª¨Ïp1Ž‘ Áh«)±:Ï rstŽ‘|·‘ÇÏfalseŽ‘¯<·_‘8àÏbpŽ‘ Y±:ÏptŽ“±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ˜«(Ïq0Ž‘ “ç±;‘ª¨Ïq1Ž‘ >«)±:Ï rstŽ‘|·‘ÇÏfalseŽ–v\«)‘ÏbpŽ‘Úy±:bŽ‘«=‘ÇÏfalseŽ“«;Ž¡‘ -ÂelseŽ‘!ØàÏbpŽ‘,³Y±:bŽ‘«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"bp.bÈ Ý==È Ý"Ž‘:”z·‘ÇÏbpŽ‘ ¡‘±:bŽ‘·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"ExitingÈ ÝPoint::inteŽ‘kÆÜrsection_point().\n"Ž’Ø ·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂreturnŽ‘-æ»ÏbpŽ‘8Á4«;‘qÇ·gŽ©Â542.– üPicture‘Þmfunctions.“«These–ufunctions“m¸ãust“bšGe“de ned“here,‘‹½b˜ecause“they“use“t¸ãyp˜es“whic¸ãh“areŽ¡incompletely–UUde ned“in“Èpictures.web«.ަÂ543.– üAssignmen®9t‘ûøopQÇerator.“«!!›2ÇPOR‘ÿ*ªTING‘˜#[¬LDF‘T2002.12.05.«]Ž‘Pã[Mo•¸ãv“ed–˜Shere“from“Èpictures.web«.˜See“thatŽ¡ le–UUfor“explanation.Ž©·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙPictureŽ‘I™ê«::Ž‘P((ÂopQÇeratorŽ‘{¾Ý«=Ž’ƒ…û(ÂconstŽ‘*¢PictureŽ‘G«&Ž‘Nã"±pŽ‘Së"«)Ž¡‘ -·fŽ¡‘Ïcle‘ÿ}'arŽ‘*(Û«(‘ª®);Ž¡‘Ïtr‘ÿ}'ansformŽ‘Bz[«=‘DZpŽ‘Ï:Ïtr‘ÿ}'ansformŽ‘+³A«;Ž¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂShapQÇeŽ‘"Ab·Ž‘'Aci‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘DZpŽ–Ï:Ïshap‘ÿ}'esŽ›:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘ÿýÏiterŽ‘’·6«=‘DZpŽ“:Ïshap‘ÿ}'esŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘·fŽ¡‘Ïshap‘ÿ}'esŽ‘::Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«((·Ž‘ÏiterŽ‘Êÿ«)‘þŸ±~ŽŽ‘Ïget‘‰ffŽ‘®c‘ÿ}'opyŽ‘(õ«(‘ª¨));Ž¡‘·gަ‘ÂLabQÇelŽ‘3–º·Ž‘8–»ÏlblŽ‘CØ%«;ަ‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂLabQÇelŽ‘–¸·Ž‘$–¹i‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘DZpŽ–Ï:Ïlab‘ÿ}'elsŽ›Tð±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘ÿýÏiterŽ‘’·6«=‘DZpŽ“:Ïlab‘ÿ}'elsŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘·fŽ¡‘ÏlblŽ‘,…«=‘Ç(·Ž‘ÏiterŽ‘Êÿ«)‘þŸ±~ŽŽ‘Ïget‘‰ffŽ‘®c‘ÿ}'opyŽ‘(õ«(‘ª¨);Ž¡‘Ïlab‘ÿ}'elsŽ‘6Tó±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÏlblŽ‘ Aj«);Ž¡‘·gŽ¡‘ -gŽŸÂ544.– üCop®9y‘Oconstructor.“«!!›JÞPOR‘ÿ*ªTING‘à}[¬LDF‘T2002.12.05.«]Ž‘QsüMo•¸ãv“ed–àšhere“from“Èpictures.web«.˜See“that“ leŽ¡for‘UUexplanation.ަ·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·Ž¡‘ -ÂPictureŽ‘0œ«::‘ÂPictureŽ‘&œ«(ÂconstŽ‘*¢PictureŽ‘G«&Ž‘Nã"±pŽ‘Së"«)Ž¡‘ -:‘qÇÏdo‘‰ffŽ‘®lab‘ÿ}'elsŽ‘*­ª«(Ïtrueޑƫ)‘UU·fŽŽŽŒ‹–Jz Šn ý‘ì«150›­COPY‘ÕXCONSTR•ÃŽUCTOR’‡Z3DLDFPR“G˜·x«544Ž €n ý•@P‘·Ž‘ÏthisŽ‘,²Ñ«=‘DZpŽ‘Ï«;ޤ ‘ -·gŽ©Â545.– üCom®9bining‘ÕTPictures.“«[¬LDF‘T2002.04.17.«]Ž‘Zˆ6Added–UUthis“function.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.29.«]Ž‘Y;Made‘UU±pŽ‘ ²ªÂconstŽ‘)ÝL«and–UU xed“bugs“that“cš¸ãhanged“±pŽ‘ ²ª«(see“bGelo˜w).Ž¡‘ -[¬LDF‘T2002.10.29.«]Ž‘Yi‘BUG‘¶’FIX:–¶«Noš¸ãw,‘ϱpŽ‘×:Ïtr‘ÿ}'ansformŽ‘/iì«is“applied“to“·Ž‘¶¬«(Ïshap‘ÿ}'esŽ‘:Ïb‘ÿ}'ackŽ‘üë(‘ª¨)),‘Ïpreviously“it“w˜as“appliedŽ¡to‘UU·Ž‘UVŽ‘ UWÏiterŽ‘ U«,–UUwhicš¸ãh“w˜as“not“what“I“w˜an˜ted.Ž¡‘ -[¬LDF‘T2002.10.29.«]Ž‘X¤BUG‘ñFIX:–ñ"Noš¸ãw,‘,±pŽ‘ ,:Ïtr‘ÿ}'ansformŽ‘.¤c«is“applied“to“·Ž‘ñ#«(Ïlab‘ÿ}'elsŽ‘Tð±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨)‘þŸ±~ŽŽ‘ÏptŽ‘ äž«),‘,previously“it“w˜as“appliedŽ¡to‘UU·Ž‘UV«((·Ž‘ÏiterŽ‘Êÿ«)‘þŸ±~ŽŽ‘ÏptŽ‘ äž«),–UUwhicš¸ãh“is“not“what“I“w˜an˜ted.Ž¡‘ -[¬LDF‘T2002.10.29.«]Ž‘Y;BUG–UUFIX:“No¸ãw,“±pŽ‘]U:Ïtr‘ÿ}'ansformŽ‘+³A±:Ïr‘ÿ}'esetŽ‘Æ·«(‘ª¨)“is“no“longer“called.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙPictureŽ‘I™ê«::Ž‘P((ÂopQÇeratorŽ‘{¾Ý«+=ŽŽŽ’‹M(ÂconstŽ‘*¢PictureŽ‘G«&Ž‘Nã"±pŽ‘Së"«)Ž¡‘ -·fŽ¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂShapQÇeŽ‘"Ab·Ž‘'Aci‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘DZpŽ–Ï:Ïshap‘ÿ}'esŽ›:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘ÿýÏiterŽ‘’·6«=‘DZpŽ“:Ïshap‘ÿ}'esŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘·fŽ¡‘Ïshap‘ÿ}'esŽ‘::Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«((·Ž‘ÏiterŽ‘Êÿ«)‘þŸ±~ŽŽ‘Ïget‘‰ffŽ‘®c‘ÿ}'opyŽ‘(õ«(‘ª¨));Ž¡¡‘(±=·‘Ü<«[¬LDF‘T2002.10.29.«]Ž‘SÀµNormally‘ÿ*ª,‘8ºÏtr‘ÿ}'ansformŽ‘2«in–1”a“ÂPictureŽ‘+ÿ5«is“applied“to“its“ÂShapQÇesŽ‘)Øq«when“it's“output,Ž¡‘2ho•¸ãw“ev“er,‘›µit›¢m“ust˜bGe˜done˜no“w˜for˜the˜copies˜of˜the˜ÂShapQÇesŽ‘*«from˜ÂPictureŽ‘,·Q±pŽ‘5Ló«that˜are˜copiedŽ¡‘2onš¸ãto‘=î·Ž‘=ïÏthisŽ‘)¥«,‘BœbGecause‘=î±pŽ‘Eî:Ïtr‘ÿ}'ansformŽ‘.ñ/«is–=îonly“kno˜wn“within“±pŽ‘Eî«;‘iúthe“ÂShapQÇesŽ‘)ñ%«don't“\kno˜w"“abGout“it.‘¢·±=Ž¡‘·Ž‘#«(Ïshap‘ÿ}'esŽ‘:Ïb‘ÿ}'ackŽ‘üë(‘ª¨))‘Ç·«=ŽŽ‘UO±pŽ‘]O:Ïtr‘ÿ}'ansformŽ‘+³A«;Ž¡‘·gŽ¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂLabQÇelŽ‘–¸·Ž‘$–¹i‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘DZpŽ–Ï:Ïlab‘ÿ}'elsŽ›Tð±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘ÿýÏiterŽ‘’·6«=‘DZpŽ“:Ïlab‘ÿ}'elsŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘·fŽ¡‘Ïlab‘ÿ}'elsŽ‘6Tó±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«((·Ž‘ÏiterŽ‘Êÿ«)‘þŸ±~ŽŽ‘Ïget‘‰ffŽ‘®c‘ÿ}'opyŽ‘(õ«(‘ª¨));Ž¡¡‘·Ž‘#«(Ïlab‘ÿ}'elsŽ‘Tð±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨)‘þŸ±~ŽŽ‘ÏptŽ‘ äž«)‘Ç·«=ŽŽ‘UO±pŽ‘]O:Ïtr‘ÿ}'ansformŽ‘+³A«;Ž¡‘·gŽ¡‘ -gަÂ546.‘ üClear‘ÕTPicture.Ž©·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙPictureŽ‘I™ê«::‘Ïcle‘ÿ}'arŽ‘(Ý«(‘ª®)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPicture::cŽ‘kÆÜlear().\n"Ž’£”>·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(Ïshap‘ÿ}'esŽ‘:ÏsizeŽ›\«(‘ª¨)–Ç·“«0Ž‘ ÿù·^‘8àÏlab‘ÿ}'elsŽ‘б:ÏsizeŽ˜«(‘ª¨)“·“«0Ž‘Ç)‘ÂreturnŽ‘%‘e«;Ž¡‘Ïtr‘ÿ}'ansformŽ‘?³C±:Ïr‘ÿ}'esetŽ‘Æ·«(‘ª¨);Ž¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂShapQÇeŽ‘"Ab·Ž‘'Aci‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7iterŽ‘=+M«=‘ÇÏshap‘ÿ}'esŽ–µ¡±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏshap‘ÿ}'esŽ“±:ÏendŽ‘ಫ(˜);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘·fŽ¡‘«(·Ž‘ÏiterŽ‘Êÿ«)‘þŸ±~ŽŽ‘Ïcle‘ÿ}'arŽ‘(Ú«(‘ª¨);Ž¡‘ÂdeleteŽ‘?ƽ«(·Ž‘ÏiterŽ‘Êÿ«);Ž¡‘·gŽ¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂLabQÇelŽ‘–¸·Ž‘$–¹i‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7iterŽ‘=+M«=‘ÇÏlab‘ÿ}'elsŽ–±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏlab‘ÿ}'elsŽ“±:ÏendŽ‘ಫ(˜);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘·fŽ¡‘(±=·‘I«??›ɪI‘r™tried–r¡to“use“·Ž‘ 9¿ÂLabQÇelŽ‘'{"«(‘ª¨)“here,‘yôbut“it“didn't“w¸ãork.˜I‘r™got“run-time“errors“ha¸ãving“to“do“withŽ¡‘2\Unaligned–Žæaccess“pid=299273±:–ª¨:“:Ž‘ ª§«"“(didn't“understand).›yThis“w¸ãorks,‘Jthough.˜If“I‘Ž×c¸ãhange“theŽ¡‘2de nition–UUof“ÂLabQÇelŽ‘–¸«,“I'll“ha•¸ãv“e–UUto“makš¸ãe“correspGonding“c˜hanges“here.‘o·±=Ž¡‘ÂdeleteŽ‘?ƽ«(·Ž‘ÏiterŽ‘Êÿ«)‘þŸ±~ŽŽ‘ÏptŽ‘ äž«;Ž¡‘ÂdeleteŽ‘?ƽ«(·Ž‘ÏiterŽ‘Êÿ«);Ž¡‘·gŽ¡‘Ïshap‘ÿ}'esŽ‘0:Ïcle‘ÿ}'arŽ‘(Ù«(‘ª¨);ŽŽŽŒ‹—\V Šn ý‘ì·x«546–­3DLDFPRÃŽG’ †óCLEAR‘ÕXÂPICTURE“«151Ž €n ý•@P‘Ïlab‘ÿ}'elsŽ‘,Tò±:Ïcle‘ÿ}'arŽ‘(Ù«(‘ª¨);ޤ ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPicture::clŽ‘kÆÜear().\n"Ž’žTA·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ©Â547.– üOutput.“«The‘UUargumen¸ãts:Ž¡·Ž‘ -Ïsort‘‰ffŽ‘®valueŽ‘9 û«is–6àused“to“determine“ho¸ãw“to“sort“the“ÂShapQÇesŽ‘&¬)«.‘g The“v‘ÿqÇalues“to“bGe“used“are“found“in“ÂnamespaceŽŽ¡‘ -SortingŽ‘/jG«.‘S<ÂSortingŽ‘-½†«::‘ÝNO_SORTŽ‘*‘~«is–K'used,›ˆ›if“they“shouldn't“bGe“sorted,˜bGecause“wš¸ãe“will“ha˜v˜e“already“dra˜wnŽ¡‘ -them–Ùhin“the“order“wš¸ãe“w˜an˜t“them“rendered.‘þÂSortingŽ‘,hK«::‘ÝMAX_ZŽ‘ŸÅ«is“used“for“sorting“them“according“to“theirŽ¡‘ -maxim¸ãum–Oáz-coGordinate“for“\furthest- rst"“output.‘oöÂSortingŽ‘*Ú@«::‘ÝMIN_ZŽ‘>«is“used“for“sorting“them“according“toŽ¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(±z‘‰ffŽ–®int‘‰ffŽ“pŽ‘ }³°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´21Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘±z‘‰ffŽ‘®iŽ‘#$±¬=‘DZp0‘‰ffŽ‘®zŽ‘‚P¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(±z‘‰ffŽ–®int‘‰ffŽ“qŽ‘ ;¿°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´22Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘±z‘‰ffŽ‘®iŽ‘#$±¬=‘DZq0‘‰ffŽ‘®zŽ‘ÿw¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘!Øà°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Error® ´after® ´here® ´23Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘±z‘‰ffŽ‘®iŽ‘#$±¬=‘DZslop‘ÿ}'e‘‰ffŽ–®p‘‰ffŽ“x‘‰ffŽ“zŽ‘4“ °‘8à±x‘‰ffŽ‘®iŽ‘\$¬+‘8à±z‘‰ffŽ–®int‘‰ffŽ“pŽ‘ï{¬;Ž¡‘ +°gŽ¡‘ +gŽŽŽŒ‹Ÿ / Šn ý‘ì°x¬585–¯3DLDF-1.1.5.1’ßðTRAÃŽCE‘ÕXVERSION“¬159Ž €n ý•@P­585.‘ ü¬[²LDF‘T2002.10.27.¬]Ž‘ZÅuIf‘’”±x‘‰ffŽ‘®iŽ‘|ø¬,‘¡ä±y‘‰ffŽ‘®iŽ‘þ¬,›¡äand‘’”±z‘‰ffŽ‘®iŽ‘‚¿¬are–’”all“v‘ÿqÇalid,˜set“±bpŽ‘m µ:±ptŽ‘ w1¬using“those“v‘ÿqÇalues.‘)…Otherwise,˜set“it“toޤ ´INVALID_POINTŽ‘DÆA¬.‘mJIf–Gßthis“­P•®9oin“tŽ‘"*¬is“on“bGoth“of“the“line“segmen¸ãtsŸü±È“°ŽŽ‘èÆ‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³1ŽŽŽŽŽ‘˜¤¬andŸü±È“°ŽŽ‘W—‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“µqŸÿ³0Ž‘|sµqŸÿ³1ŽŽŽŽŽ‘.g¬,›Jset“±bpŽ‘"Xµ:bŽ‘’‰¬to“±trueŽ‘ w¬,˜otherwise“setŽ¡it–UUto“±falseŽ‘™¬.ŽŸ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"Error® ´after® ´here® ´24Ž‘kÆÜ.\n"Ž’„P°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"x_i® ´==® ´"Ž‘5T}°‘DZx‘‰ffŽ‘®iŽ‘x”°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"y_i® ´==® ´"Ž‘5T}°‘DZy‘‰ffŽ‘®iŽ‘° +°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"z_i® ´==® ´"Ž‘5T}°‘DZz‘‰ffŽ‘®iŽ‘ëǰ‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±x‘‰ffŽ‘®iŽ‘±|°‘Ç´INVALID_REALŽ–D†<°_‘8à±y‘‰ffŽ‘®iŽ‘!Ò°‘Ç´INVALID_REALŽ“°_‘8à±z‘‰ffŽ‘®iŽ‘]°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘­returnŽ‘7æ¼´INVALID_BOOL_POINTŽ’–ìî¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Returning® ´INVALID_BŽ‘kÆÜOOL_POINT.\n"Ž’³T5°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘!Øà°fŽ¡‘±bpŽ‘Ú{µ:±ptŽ‘ äµ:±setŽ‘ x„¬(±x‘‰ffŽ‘®iŽ‘ êdµ;‘ª¨±y‘‰ffŽ‘®iŽ‘Ì‚µ;‘ª¨±z‘‰ffŽ‘®iŽ‘?¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±bpŽ‘Úyµ:±ptŽ‘ äµ:±showŽ‘Šÿ¬(´"bp.pt"Ž‘%FS¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±bpŽ‘ +Úyµ:±ptŽ– äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ›=5O¬(±p0Ž‘ Àµ;‘ª¨±p1Ž‘ Áh¬)µ:± rstŽ‘|°‘DZfalseŽ‘¯<°_‘8à±bpŽ‘ Yµ:±ptŽ“µ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ˜¬(±q0Ž‘ “çµ;‘ª¨±q1Ž‘ >¬)µ:± rstŽ‘|°‘DZfalseŽ–v\¬)‘±bpŽ‘Úyµ:bŽ‘¬=‘DZfalseŽ“¬;Ž¡‘ +­elseŽ‘!Øà±bpŽ‘,³Yµ:bŽ‘¬=‘DZtrueŽ‘‹°¬;Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"bp.b® ´==® ´"Ž‘:”z°‘DZbpŽ‘ ¡‘µ:bŽ‘°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"Exiting® ´Point::inteŽ‘kÆÜrsection_point().\n"Ž’Ø °‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­returnŽ‘-æ»±bpŽ‘8Á4¬;‘qǰgŽ©­586.– üPicture‘Þmfunctions.“¬These–ufunctions“m¸ãust“bšGe“de ned“here,‘‹½b˜ecause“they“use“t¸ãyp˜es“whic¸ãh“areŽ¡incompletely–UUde ned“in“®pictures.web¬.ަ­587.– üAssignmen®9t‘ûøopQÇerator.“¬!!›2ÇPOR‘ÿ*ªTING‘˜#[²LDF‘T2002.12.05.¬]Ž‘Pã[Mo•¸ãv“ed–˜Shere“from“®pictures.web¬.˜See“thatŽ¡ le–UUfor“explanation.Ž©°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙPictureŽ‘I™ê¬::Ž‘P((­opQÇeratorŽ‘{¾Ý¬=Ž’ƒ…û(­constŽ‘*¢PictureŽ‘G¬&Ž‘Nã"µpŽ‘Së"¬)Ž¡‘ +°fŽ¡‘±cle‘ÿ}'arŽ‘*(Û¬(‘ª®);Ž¡‘±tr‘ÿ}'ansformŽ‘Bz[¬=‘ǵpŽ‘Ï:±tr‘ÿ}'ansformŽ‘+³A¬;Ž¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­ShapQÇeŽ‘"Ab°Ž‘'Aci‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘ǵpŽ–Ï:±shap‘ÿ}'esŽ›:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘ÿý±iterŽ‘’°6¬=‘ǵpŽ“:±shap‘ÿ}'esŽ˜µ:±endŽ‘ಬ(‘ª¨);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)‘°fŽ¡‘±shap‘ÿ}'esŽ‘::±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬((°Ž‘±iterŽ‘Êÿ¬)‘þŸµ~ŽŽ‘±get‘‰ffŽ‘®c‘ÿ}'opyŽ‘(õ¬(‘ª¨));Ž¡‘°gަ‘­LabQÇelŽ‘3–º°Ž‘8–»±lblŽ‘CØ%¬;ަ‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­LabQÇelŽ‘–¸°Ž‘$–¹i‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘ǵpŽ–Ï:±lab‘ÿ}'elsŽ›Tðµ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘ÿý±iterŽ‘’°6¬=‘ǵpŽ“:±lab‘ÿ}'elsŽ˜µ:±endŽ‘ಬ(‘ª¨);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)‘°fŽ¡‘±lblŽ‘,…¬=‘Ç(°Ž‘±iterŽ‘Êÿ¬)‘þŸµ~ŽŽ‘±get‘‰ffŽ‘®c‘ÿ}'opyŽ‘(õ¬(‘ª¨);Ž¡‘±lab‘ÿ}'elsŽ‘6Tóµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±lblŽ‘ Aj¬);Ž¡‘°gŽ¡‘ +gŽŸ­588.– üCop®9y‘Oconstructor.“¬!!›JÞPOR‘ÿ*ªTING‘à}[²LDF‘T2002.12.05.¬]Ž‘QsüMo•¸ãv“ed–àšhere“from“®pictures.web¬.˜See“that“ leŽ¡for‘UUexplanation.ަ°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°Ž¡‘ +­PictureŽ‘0œ¬::‘­PictureŽ‘&œ¬(­constŽ‘*¢PictureŽ‘G¬&Ž‘Nã"µpŽ‘Së"¬)Ž¡‘ +:‘qDZdo‘‰ffŽ‘®lab‘ÿ}'elsŽ‘*­ª¬(±trueŽ‘ʬ)‘UU°fŽŽŽŒ‹  :… Šn ý‘ì¬160–¯COPY‘ÕXCONSTRÃŽUCTOR’ûÄ3DLDF-1.1.5.1“°x¬588Ž €n ý•@P‘°Ž‘±thisŽ‘,²Ñ¬=‘ǵpŽ‘Ï¬;ޤ ‘ +°gŽ©­589.– üCom®9bining‘ÕTPictures.“¬[²LDF‘T2002.04.17.¬]Ž‘Zˆ6Added–UUthis“function.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.29.¬]Ž‘Y;Made‘UUµpŽ‘ ²ª­constŽ‘)ÝL¬and–UU xed“bugs“that“cš¸ãhanged“µpŽ‘ ²ª¬(see“bGelo˜w).Ž¡‘ +[²LDF‘T2002.10.29.¬]Ž‘Yi‘BUG‘¶’FIX:–¶«Noš¸ãw,‘ϵpŽ‘×:±tr‘ÿ}'ansformŽ‘/iì¬is“applied“to“°Ž‘¶¬¬(±shap‘ÿ}'esŽ‘:±b‘ÿ}'ackŽ‘üì(‘ª¨)),‘Ïpreviously“it“w˜as“appliedŽ¡to‘UU°Ž‘UVŽ‘ UW±iterŽ‘ U¬,–UUwhicš¸ãh“w˜as“not“what“I“w˜an˜ted.Ž¡‘ +[²LDF‘T2002.10.29.¬]Ž‘X¤BUG‘ñFIX:–ñ"Noš¸ãw,‘,µpŽ‘ ,:±tr‘ÿ}'ansformŽ‘.¤c¬is“applied“to“°Ž‘ñ#¬(±lab‘ÿ}'elsŽ‘Tðµ:±b‘ÿ}'ackŽ‘üì(‘ª¨)‘þŸµ~ŽŽ‘±ptŽ‘ 䞬),‘,previously“it“w˜as“appliedŽ¡to‘UU°Ž‘UV¬((°Ž‘±iterŽ‘Êÿ¬)‘þŸµ~ŽŽ‘±ptŽ‘ 䞬),–UUwhicš¸ãh“is“not“what“I“w˜an˜ted.Ž¡‘ +[²LDF‘T2002.10.29.¬]Ž‘Y;BUG–UUFIX:“No¸ãw,“µpŽ‘]U:±tr‘ÿ}'ansformŽ‘+³Aµ:±r‘ÿ}'esetŽ‘Æ·¬(‘ª¨)“is“no“longer“called.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙPictureŽ‘I™ê¬::Ž‘P((­opQÇeratorŽ‘{¾Ý¬+=ŽŽŽ’‹M(­constŽ‘*¢PictureŽ‘G¬&Ž‘Nã"µpŽ‘Së"¬)Ž¡‘ +°fŽ¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­ShapQÇeŽ‘"Ab°Ž‘'Aci‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘ǵpŽ–Ï:±shap‘ÿ}'esŽ›:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘ÿý±iterŽ‘’°6¬=‘ǵpŽ“:±shap‘ÿ}'esŽ˜µ:±endŽ‘ಬ(‘ª¨);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)‘°fŽ¡‘±shap‘ÿ}'esŽ‘::±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬((°Ž‘±iterŽ‘Êÿ¬)‘þŸµ~ŽŽ‘±get‘‰ffŽ‘®c‘ÿ}'opyŽ‘(õ¬(‘ª¨));Ž¡¡‘(µ=°‘Ü<¬[²LDF‘T2002.10.29.¬]Ž‘SÀµNormally‘ÿ*ª,‘8º±tr‘ÿ}'ansformŽ‘2¬in–1”a“­PictureŽ‘+ÿ5¬is“applied“to“its“­ShapQÇesŽ‘)Øq¬when“it's“output,Ž¡‘2ho•¸ãw“ev“er,‘›µit›¢m“ust˜bGe˜done˜no“w˜for˜the˜copies˜of˜the˜­ShapQÇesŽ‘*¬from˜­PictureŽ‘,·QµpŽ‘5Ló¬that˜are˜copiedŽ¡‘2onš¸ãto‘=î°Ž‘=ï±thisŽ‘)¥¬,‘BœbGecause‘=îµpŽ‘Eî:±tr‘ÿ}'ansformŽ‘.ñ/¬is–=îonly“kno˜wn“within“µpŽ‘Eî¬;‘iúthe“­ShapQÇesŽ‘)ñ%¬don't“\kno˜w"“abGout“it.‘¢°µ=Ž¡‘°Ž‘#¬(±shap‘ÿ}'esŽ‘:±b‘ÿ}'ackŽ‘üì(‘ª¨))‘ǰ¬=ŽŽ‘UOµpŽ‘]O:±tr‘ÿ}'ansformŽ‘+³A¬;Ž¡‘°gŽ¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­LabQÇelŽ‘–¸°Ž‘$–¹i‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘ǵpŽ–Ï:±lab‘ÿ}'elsŽ›Tðµ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘ÿý±iterŽ‘’°6¬=‘ǵpŽ“:±lab‘ÿ}'elsŽ˜µ:±endŽ‘ಬ(‘ª¨);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)‘°fŽ¡‘±lab‘ÿ}'elsŽ‘6Tóµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬((°Ž‘±iterŽ‘Êÿ¬)‘þŸµ~ŽŽ‘±get‘‰ffŽ‘®c‘ÿ}'opyŽ‘(õ¬(‘ª¨));Ž¡¡‘°Ž‘#¬(±lab‘ÿ}'elsŽ‘Tðµ:±b‘ÿ}'ackŽ‘üì(‘ª¨)‘þŸµ~ŽŽ‘±ptŽ‘ 䞬)‘ǰ¬=ŽŽ‘UOµpŽ‘]O:±tr‘ÿ}'ansformŽ‘+³A¬;Ž¡‘°gŽ¡‘ +gަ­590.‘ üClear‘ÕTPicture.Ž©°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙPictureŽ‘I™ê¬::‘±cle‘ÿ}'arŽ‘(ݬ(‘ª®)Ž¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Picture::cŽ‘kÆÜlear().\n"Ž’£”>°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(±shap‘ÿ}'esŽ‘:±sizeŽ›\¬(‘ª¨)–ǰ“¬0Ž‘ ÿù°^‘8à±lab‘ÿ}'elsŽ‘е:±sizeŽ˜¬(‘ª¨)“°“¬0Ž‘Ç)‘­returnŽ‘%‘e¬;Ž¡‘±tr‘ÿ}'ansformŽ‘?³Cµ:±r‘ÿ}'esetŽ‘Æ·¬(‘ª¨);Ž¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­ShapQÇeŽ‘"Ab°Ž‘'Aci‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7iterŽ‘=+M¬=‘DZshap‘ÿ}'esŽ–µ¡µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZshap‘ÿ}'esŽ“µ:±endŽ‘ಬ(˜);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)‘°fŽ¡‘¬(°Ž‘±iterŽ‘Êÿ¬)‘þŸµ~ŽŽ‘±cle‘ÿ}'arŽ‘(Ú¬(‘ª¨);Ž¡‘­deleteŽ‘?ƽ¬(°Ž‘±iterŽ‘Êÿ¬);Ž¡‘°gŽ¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­LabQÇelŽ‘–¸°Ž‘$–¹i‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7iterŽ‘=+M¬=‘DZlab‘ÿ}'elsŽ–µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZlab‘ÿ}'elsŽ“µ:±endŽ‘ಬ(˜);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)‘°fŽ¡‘(µ=°‘I¬??›ɪI‘r™tried–r¡to“use“°Ž‘ 9¿­LabQÇelŽ‘'{"¬(‘ª¨)“here,‘yôbut“it“didn't“w¸ãork.˜I‘r™got“run-time“errors“ha¸ãving“to“do“withŽ¡‘2\Unaligned–Žæaccess“pid=299273µ:–ª¨:“:Ž‘ ª§¬"“(didn't“understand).›yThis“w¸ãorks,‘Jthough.˜If“I‘Ž×c¸ãhange“theŽ¡‘2de nition–UUof“­LabQÇelŽ‘–¸¬,“I'll“ha•¸ãv“e–UUto“makš¸ãe“correspGonding“c˜hanges“here.‘o°µ=Ž¡‘­deleteŽ‘?ƽ¬(°Ž‘±iterŽ‘Êÿ¬)‘þŸµ~ŽŽ‘±ptŽ‘ 䞬;Ž¡‘­deleteŽ‘?ƽ¬(°Ž‘±iterŽ‘Êÿ¬);Ž¡‘°gŽ¡‘±shap‘ÿ}'esŽ‘0:±cle‘ÿ}'arŽ‘(Ù¬(‘ª¨);ŽŽŽŒ‹¡ Le Šn ý‘ì°x¬590–¯3DLDF-1.1.5.1’]CLEAR‘ÕX­PICTURE“¬161Ž €n ý•@P‘±lab‘ÿ}'elsŽ‘,Tòµ:±cle‘ÿ}'arŽ‘(Ù¬(‘ª¨);ޤ ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Picture::clŽ‘kÆÜear().\n"Ž’žTA°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ©­591.– üOutput.“¬The‘UUargumen¸ãts:Ž¡°Ž‘ +±sort‘‰ffŽ‘®valueŽ‘9 û¬is–6àused“to“determine“ho¸ãw“to“sort“the“­ShapQÇesŽ‘&¬)¬.‘g The“v‘ÿqÇalues“to“bGe“used“are“found“in“­namespaceŽŽ¡‘ +SortingŽ‘/jG¬.‘S<­SortingŽ‘-½†¬::‘´NO_SORTŽ‘*‘~¬is–K'used,›ˆ›if“they“shouldn't“bGe“sorted,˜bGecause“wš¸ãe“will“ha˜v˜e“already“dra˜wnŽ¡‘ +them–Ùhin“the“order“wš¸ãe“w˜an˜t“them“rendered.‘þ­SortingŽ‘,hK¬::‘´MAX_ZŽ‘ŸÅ¬is“used“for“sorting“them“according“to“theirŽ¡‘ +maxim¸ãum–Oáz-coGordinate“for“\furthest- rst"“output.‘oö­SortingŽ‘*Ú@¬::‘´MIN_ZŽ‘>¬is“used“for“sorting“them“according“toŽ¡‘ their–Õ›maximš¸ãum“z-coGordinate“for“\nearest-last"“output.‘G4So“far,‘ï'no“other“t˜ypGes“of“sorting“ha˜v˜e“bGeen“de ned.Ž¡‘ -The–1†simple“painš¸ãter's“algorithm“implemen˜ted“here“for“surface“hiding“fails“for“ÂShapQÇesŽ‘)ØU«where“one“ÂShapQÇeŽ‘%O«isŽ¡partly–çÒin“fron¸ãt“of“and“partly“bšGehind“another.‘)?F‘ÿ*ªor“these“cases,‘ qit“will“b˜e“necessary“to“ nd“the“in¸ãtersectionŽ¡pGoinš¸ãts–u8and“divide“the“ÂShapQÇesŽ‘*_¹«in˜to“parts.‘ÑqTO‘u0DO:“Implemen˜t“a“routine“for“dividing“up“ÂShapQÇesŽ‘&ê«.‘ÑqThis“willŽ¡not–UUbšGe“done“so˜on!Ž¡‘ -Ïdo‘‰ffŽ‘®warningsŽ‘@4ë:‘¬¢Sometimes–òÂwš¸ãe'll“w˜an˜t“use“the“Ïmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘3Ä«,‘Ïmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘4û«,–etc.,“argumen˜ts–òÂto“cut“o “parts“ofŽ¡the–Bÿimage,‘Fªor“wš¸ãe'll“delibGerately“place“the“ÂF‘ÿ -«oQÇcusŽ‘#{J«where“it“w˜on't“bGe“able“to“\see"“part“of“the“image.‘kªIn“theseŽ¡cases,–UUit“will“bGe“annoš¸ãying“to“see“the“w˜arnings.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.21.«]Ž‘Y;Added–UUthe“argumen¸ãts“Ïdo‘‰ffŽ‘®sortŽ‘&Äo«and“Ïdo‘‰ffŽ‘®warningsŽ‘9Š«.Ž¡‘ -[¬LDF‘T2003.05.16.«]Ž‘XCChanged‘e]Âb•QÇo“olŽ‘ËÏdo‘‰ffŽ‘®sortŽ‘=•í«to‘e]ÂconstŽ‘ unsignedŽ‘NçshortŽ‘kÁÈÏsort‘‰ffŽ‘®valueŽ’—«â«.‘!ÊAbGout–e]to“add“ÂnamespaceŽŽ¡SortingŽ‘(¿›«with–UUconstanš¸ãts“for“di eren˜t“w˜a˜ys“of“sorting,“i.e.,“\no“sort",“\nearest-last",“or“\furthest- rst".ޤŸüÈ„`ÕÁGŽŽ¦Â548.‘ üF‘ÿ -«oQÇcus‘ÕTargumen®9t.Ž¡·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘#ð9PictureŽ‘JŒJ«::‘ÏoutputŽ‘D«(ÂconstŽ‘F‘ÿ -«oQÇcusŽ‘@Z«&Ž‘H!!±fŽ‘N;‘ª¨ÂconstŽ‘ ǪunsignedŽ‘QñshortŽ‘p®Ïpr‘ÿ}'ojŽ’ƒ¡Þ±;‘ª¨ÂrealŽ‘P6ÏfactorŽ‘4T±;‘ª¨ÂconstŽŽ¡‘2unsignedŽ‘b“ÙshortŽ’€»BÏsort‘‰ffŽ‘®valueŽ’¬¥\±;‘ª¨ÂconstŽ‘ 2b•QÇo“olŽ‘:0<Ïdo‘‰ffŽ‘®warningsŽ‘pdþ±;‘ª¨ÂconstŽ‘ 2realŽ‘7BÏmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘gR±;‘ª¨ÂconstŽ‘ 2realŽŽ¡‘2Ïmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘bàø±;‘ª¨ÂconstŽ‘×vrealŽ‘6ŒÐÏmin‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘f•”±;‘ª¨ÂconstŽ‘×vrealŽ‘6ŒÐÏmax‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘g¥9±;‘ª¨ÂconstŽ‘×vrealŽ‘6ŒÐÏmin‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘eÑQ±;‘ª¨ÂconstŽ‘×vrealŽŽ¡‘2Ïmax‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘bT+«)·f‘UUÂb•QÇo“olŽ‘ö»ÝDEBUGŽ‘:„,«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=Ž¡‘ÂusingŽ‘ S·‘ÇÝ"EnteringÈ ÝPicture::oŽ‘kÆÜutput(constÈ ÝFocus&È Ý.Ž’ÔÆ ..).\n"Ž’üÔ ·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"min_x_projÈ Ý==È Ý"Ž‘Zh·‘ÇÏmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘5_~·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"max_x_projÈ Ý==È Ý"Ž‘Zh·‘ÇÏmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘6o#·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"min_y_projÈ Ý==È Ý"Ž‘Zh·‘ÇÏmin‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘5–ô·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"max_y_projÈ Ý==È Ý"Ž‘Zh·‘ÇÏmax‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘6¦™·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·g‘±=·‘ÿý«Checš¸ãk–UUwhether“the“Âv®9ectorŽ‘&TòÏshap‘ÿ}'esŽ‘F˜Ð«has“an˜ything“in“it.‘qÇIf“it“doGesn't,“return.‘o·±=Ž¡‘ÂifŽ‘)´û«(Ïshap‘ÿ}'esŽ‘:ÏsizeŽ›\«(‘ª¨)–Ç·“«0Ž‘ ÿù·^‘8àÏlab‘ÿ}'elsŽ‘б:ÏsizeŽ˜«(‘ª¨)“·“«0Ž‘Ç)‘·fŽ¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"PictureÈ ÝisÈ Ýempty.È ÝRŽ‘kÆÜeturning.\n"Ž’®8·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂreturnŽ‘H‘i«;Ž¡‘·gŽŽŽŒ‹˜nè Šn ý‘ì«152›ÂF®9OCUS‘ÕX­AR•ÃŽGUMENT’XE3DLDFPR“G˜·x«549Ž €n ý•@PÂ549.‘ ü«[¬LDF‘T2002.09.17.«]Ž‘ZF1Some‘PÂShapQÇesŽ‘)›é«maš¸ãy–Pconsist“of“other“ÂShapQÇesŽ‘&ˆ™«,‘ „and“not“ha˜v˜e“an“ÏoutputŽ‘ "«(‘ª®)“function“ofޤ their–Mªoš¸ãwn,‘O3so“w˜e“m˜ust“extract“their“con˜ten˜ts“recursiv˜ely“un˜til“w˜e“get“to“ÂShapQÇesŽ‘*«that“ha˜v˜e“one.‘o9So“far,‘O3onlyŽ¡ÂP•®9oin“tŽ‘šH«,‘UUÂP®9athŽ‘湫,–UUand“ÂSolidŽ‘ («ha•¸ãv“e‘UUÏoutputŽ‘ d•«(‘ª®)–UUfunctions,“and“all“other“ÂShapQÇesŽ‘*ó«reduce“to“ÂP®9athsŽ‘#ÅJ«or“ÂSolidsŽ‘!\h«.Ž¡‘ -[¬LDF‘T2002.09.17.«]Ž‘Y5~Ïextr‘ÿ}'actŽ‘w÷í«(‘ª®)›‚˜c•¸ãhec“ks˜that˜all˜of˜the˜ÂP•®9oin“tsŽ‘'(´«con“tained˜in˜the˜ÂShapQÇeŽ‘%ñ=«can˜bGe˜pro‘Ž8jected˜withŽ¡the‘ÆïÂF‘ÿ -«oQÇcusŽ‘"ƒ*«that–Æïis“bšGeing“used.‘BPIf“an¸ãy“of“them“cannot“b˜e,‘ãjthen“Ïextr‘ÿ}'actŽ‘!‰^«(‘ª®)“returns“an“empt¸ãy“Âv®9ectorŽ‘%8&«of“ÂShapQÇesŽ‘&<8«.Ž¡This– )means“that“anš¸ãy“ÂShapQÇeŽ‘$þ_«m˜ust“bGe“en˜tirely“pro‘Ž8jectable;‘"partial“ÂShapQÇesŽ‘)‡›«will“not“bšGe“output.‘Xcproblem,‘eto˜o.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.01.05.«]Ž‘Y;MošGdi ed–UUthe“T‘þU>ŸÓVEŽ‘ãxXŽ‘Gtext“ab˜o•¸ãv“e–UUto“accounš¸ãt“for“the“fact“that“I'v˜e“added“ÂSolidŽ‘Ó,«.Ž¡‘ -[¬LDF‘T2003.01.05.«]Ž‘Z_ BUG‘¬aFIX:›¬ºMo•¸ãv“ed˜the˜co•Gde˜that˜causes˜Ïtr‘ÿ}'ansformŽ‘5 µ«to˜b“e˜applied˜to˜the˜elemen¸ãts˜ofŽ¡Ïshap‘ÿ}'esŽ‘.›œõThis–cºis“no¸ãw“done“Ïb–ÿ}'efor“e‘$«the‘cºÏextr“emesŽ‘-Ø«are–cºset.˜The“w•¸ãa“y–cºit“wš¸ãas“bGefore“didn't“w˜ork“prop•Gerly‘ÿ*ª,‘gSb“ecauseŽ¡Ïextr‘ÿ}'actŽ‘Âo«(‘ª®)–W -used“the“unš¸ãtransformed“v‘ÿqÇalues“to“decide“whether“a“ÂShapQÇeŽ‘%š!«w˜as“pro‘Ž8jectable.‘våIn“order“to“do“this,‘WwIŽ¡had–UUto“mak¸ãe“Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Iu4«(‘ª®)“a“ÂShapQÇeŽ‘%–·«function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·ޤ ‘ -Âv®9ectorŽ‘)ªI·hÂShapQÇeŽ‘"Ab·Ž‘'Aci‘UU±vޑЫ;Ž¡‘ -Âv®9ectorŽ‘)ªI·hÂShapQÇeŽ‘"Ab·Ž‘'Aci‘UUÏelementsŽ‘*;P«;ޤ‘ -Âv®9ectorŽ‘)ªI·hÂShapQÇeŽ‘"Ab·Ž‘'Aci‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7iterŽ‘:d5«;Ž¡‘ -Âb•QÇo“olŽ‘#¡gÏdo‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘`³«=‘Ç·:Ïtr‘ÿ}'ansformŽ‘+³A±:Ïis‘‰ffŽ‘®identityŽ‘-2¢«(‘ª¨);Ž¡‘ -ÝDEBUGŽ‘'r«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ޤ ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘ÂifŽ‘´ú«(Ïdo‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘9š4«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ApplyingÈ Ýtransform.Ž‘kÆÜ\n"Ž‘| ;«;Ž¡‘Ïtr‘ÿ}'ansformŽ‘I³D±:ÏshowŽ‘Šÿ«(Ý"transform:"Ž‘?†D«);Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏc‘ÿ}'outŽ‘Aù0·‘ÇÝ"NotÈ ÝapplyingÈ ÝtransfŽ‘kÆÜorm.\n"Ž’‘ /«;Ž¡‘ -·gŽ¡‘ -ÂforŽ‘臫(ÏiterŽ‘’«=‘ÇÏshap‘ÿ}'esŽ–µ¡±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏshap‘ÿ}'esŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘·fŽ¡‘ÂifŽ‘´ú«(Ïdo‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘9š4«)‘·fŽ¡‘«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)‘Ç·«=ŽŽ‘UOÏtr‘ÿ}'ansformŽ‘>«;Ž¡‘·gŽ¡‘±vŽ‘û׫=‘Ç(·Ž‘ÏiterŽ‘Êÿ«)‘þŸ±~ŽŽ‘Ïextr‘ÿ}'actŽ‘"Âp«(±fŽ‘øæ;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÿ9·^‘8à±vŽ‘m:ÏsizeŽ‘\«(‘ª¨)–Ç·“«0Ž‘Ç)Ž¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"WARNING!È ÝInÈ ÝPictureŽ‘kÆÜ::output():\n"Ž’¸”2·‘ÇÝ"extract()È ÝreturnedÈ Ž‘kÆÜÝanÈ ÝemptyÈ Ývector.È Ý"Ž’Í”&·Ž¡‘2Ý"Continuing.\n"Ž’„ X·‘ÇÏ ushŽ‘€«;Ž¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂShapQÇeŽ‘"Ab·Ž‘'Aci‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7±iŽ‘/ÒC«=‘DZvŽ–ûÕ:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿý±iŽ‘ 9 ·6«=‘DZvŽ“:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘G±iŽ‘¹«)‘·fŽ¡‘ÏelementsŽ‘Dåþ±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(·Ž‘±iŽ‘qõ«);Ž¡‘·gŽ¡‘ +The–1†simple“painš¸ãter's“algorithm“implemen˜ted“here“for“surface“hiding“fails“for“­ShapQÇesŽ‘)ØU¬where“one“­ShapQÇeŽ‘%O¬isŽ¡partly–çÒin“fron¸ãt“of“and“partly“bšGehind“another.‘)?F‘ÿ*ªor“these“cases,‘ qit“will“b˜e“necessary“to“ nd“the“in¸ãtersectionŽ¡pGoinš¸ãts–u8and“divide“the“­ShapQÇesŽ‘*_¹¬in˜to“parts.‘ÑqTO‘u0DO:“Implemen˜t“a“routine“for“dividing“up“­ShapQÇesŽ‘&ê¬.‘ÑqThis“willŽ¡not–UUbšGe“done“so˜on!Ž¡‘ +±do‘‰ffŽ‘®warningsŽ‘@4ì:‘¬¢Sometimes–òÂwš¸ãe'll“w˜an˜t“use“the“±min‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘3Ĭ,‘±max‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘4û¬,–etc.,“argumen˜ts–òÂto“cut“o “parts“ofŽ¡the–Bÿimage,‘Fªor“wš¸ãe'll“delibGerately“place“the“­F‘ÿ +«oQÇcusŽ‘#{J¬where“it“w˜on't“bGe“able“to“\see"“part“of“the“image.‘kªIn“theseŽ¡cases,–UUit“will“bGe“annoš¸ãying“to“see“the“w˜arnings.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.09.21.¬]Ž‘Y;Added–UUthe“argumen¸ãts“±do‘‰ffŽ‘®sortŽ‘&Äo¬and“±do‘‰ffŽ‘®warningsŽ‘9Ь.Ž¡‘ +[²LDF‘T2003.05.16.¬]Ž‘XCChanged‘e]­b•QÇo“olŽ‘˱do‘‰ffŽ‘®sortŽ‘=•í¬to‘e]­constŽ‘ unsignedŽ‘NçshortŽ‘kÁȱsort‘‰ffŽ‘®valueŽ’—«â¬.‘!ÊAbGout–e]to“add“­namespaceŽŽ¡SortingŽ‘(¿›¬with–UUconstanš¸ãts“for“di eren˜t“w˜a˜ys“of“sorting,“i.e.,“\no“sort",“\nearest-last",“or“\furthest- rst".ޤŸüÈ„`ÕÁGŽŽ¦­592.‘ üF‘ÿ +«oQÇcus‘ÕTargumen®9t.Ž¡°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘#ð9PictureŽ‘JŒJ¬::‘±outputŽ‘D¬(­constŽ‘F‘ÿ +«oQÇcusŽ‘@Z¬&Ž‘H!!µfŽ‘N;‘ª¨­constŽ‘ ǪunsignedŽ‘QñshortŽ‘p®±pr‘ÿ}'ojŽ’ƒ¡Þµ;‘ª¨­realŽ‘P6±factorŽ‘4Tµ;‘ª¨­constŽŽ¡‘2unsignedŽ‘b“ÙshortŽ’€»B±sort‘‰ffŽ‘®valueŽ’¬¥\µ;‘ª¨­constŽ‘ 2b•QÇo“olŽ‘:0<±do‘‰ffŽ‘®warningsŽ‘pdþµ;‘ª¨­constŽ‘ 2realŽ‘7B±min‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘gRµ;‘ª¨­constŽ‘ 2realŽŽ¡‘2±max‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘bàøµ;‘ª¨­constŽ‘×vrealŽ‘6ŒÐ±min‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘f•”µ;‘ª¨­constŽ‘×vrealŽ‘6ŒÐ±max‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘g¥9µ;‘ª¨­constŽ‘×vrealŽ‘6ŒÐ±min‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘eÑQµ;‘ª¨­constŽ‘×vrealŽŽ¡‘2±max‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘bT+¬)°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž¡‘­usingŽ‘ S°‘Ç´"Entering® ´Picture::oŽ‘kÆÜutput(const® ´Focus&® ´.Ž’ÔÆ ..).\n"Ž’üÔ °‘DZ ushŽ‘€¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"min_x_proj® ´==® ´"Ž‘Zh°‘DZmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘5_~°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"max_x_proj® ´==® ´"Ž‘Zh°‘DZmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘6o#°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"min_y_proj® ´==® ´"Ž‘Zh°‘DZmin‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘5–ô°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"max_y_proj® ´==® ´"Ž‘Zh°‘DZmax‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘6¦™°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘°g‘µ=°‘ÿý¬Checš¸ãk–UUwhether“the“­v®9ectorŽ‘&Tò±shap‘ÿ}'esŽ‘F˜Ð¬has“an˜ything“in“it.‘qÇIf“it“doGesn't,“return.‘o°µ=Ž¡‘­ifŽ‘)´û¬(±shap‘ÿ}'esŽ‘:±sizeŽ›\¬(‘ª¨)–ǰ“¬0Ž‘ ÿù°^‘8à±lab‘ÿ}'elsŽ‘е:±sizeŽ˜¬(‘ª¨)“°“¬0Ž‘Ç)‘°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Picture® ´is® ´empty.® ´RŽ‘kÆÜeturning.\n"Ž’®8°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘H‘i¬;Ž¡‘°gŽŽŽŒ‹¢ ^û Šn ý‘ì¬162–­F®9OCUS‘ÕX¯ARÃŽGUMENT’üä¯3DLDF-1.1.5.1“°x¬593Ž €n ý•@P­593.‘ ü¬[²LDF‘T2002.09.17.¬]Ž‘ZF1Some‘P­ShapQÇesŽ‘)›é¬maš¸ãy–Pconsist“of“other“­ShapQÇesŽ‘&ˆ™¬,‘ „and“not“ha˜v˜e“an“±outputŽ‘ "¬(‘ª®)“function“ofޤ their–Mªoš¸ãwn,‘O3so“w˜e“m˜ust“extract“their“con˜ten˜ts“recursiv˜ely“un˜til“w˜e“get“to“­ShapQÇesŽ‘*¬that“ha˜v˜e“one.‘o9So“far,‘O3onlyŽ¡­P•®9oin“tŽ‘šH¬,‘UU­P®9athŽ‘湬,–UUand“­SolidŽ‘ (¬ha•¸ãv“e‘UU±outputŽ‘ d•¬(‘ª®)–UUfunctions,“and“all“other“­ShapQÇesŽ‘*ó¬reduce“to“­P®9athsŽ‘#ÅJ¬or“­SolidsŽ‘!\h¬.Ž¡‘ +[²LDF‘T2002.09.17.¬]Ž‘Y5~±extr‘ÿ}'actŽ‘w÷í¬(‘ª®)›‚˜c•¸ãhec“ks˜that˜all˜of˜the˜­P•®9oin“tsŽ‘'(´¬con“tained˜in˜the˜­ShapQÇeŽ‘%ñ=¬can˜bGe˜pro‘Ž8jected˜withŽ¡the‘Æï­F‘ÿ +«oQÇcusŽ‘"ƒ*¬that–Æïis“bšGeing“used.‘BPIf“an¸ãy“of“them“cannot“b˜e,‘ãjthen“±extr‘ÿ}'actŽ‘!‰^¬(‘ª®)“returns“an“empt¸ãy“­v®9ectorŽ‘%8&¬of“­ShapQÇesŽ‘&<8¬.Ž¡This– )means“that“anš¸ãy“­ShapQÇeŽ‘$þ_¬m˜ust“bGe“en˜tirely“pro‘Ž8jectable;‘"partial“­ShapQÇesŽ‘)‡›¬will“not“bšGe“output.‘Xcproblem,‘eto˜o.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.01.05.¬]Ž‘Y;MošGdi ed–UUthe“T‘þU>ŸÓVEŽ‘ãxXŽ‘Gtext“ab˜o•¸ãv“e–UUto“accounš¸ãt“for“the“fact“that“I'v˜e“added“­SolidŽ‘Ó,¬.Ž¡‘ +[²LDF‘T2003.01.05.¬]Ž‘Z_ BUG‘¬aFIX:›¬ºMo•¸ãv“ed˜the˜co•Gde˜that˜causes˜±tr‘ÿ}'ansformŽ‘5 µ¬to˜b“e˜applied˜to˜the˜elemen¸ãts˜ofŽ¡±shap‘ÿ}'esŽ‘.›œõThis–cºis“no¸ãw“done“±b–ÿ}'efor“e‘$¬the‘cº±extr“emesŽ‘-جare–cºset.˜The“w•¸ãa“y–cºit“wš¸ãas“bGefore“didn't“w˜ork“prop•Gerly‘ÿ*ª,‘gSb“ecauseŽ¡±extr‘ÿ}'actŽ‘Âo¬(‘ª®)–W +used“the“unš¸ãtransformed“v‘ÿqÇalues“to“decide“whether“a“­ShapQÇeŽ‘%š!¬w˜as“pro‘Ž8jectable.‘våIn“order“to“do“this,‘WwIŽ¡had–UUto“mak¸ãe“±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Iu4¬(‘ª®)“a“­ShapQÇeŽ‘%–·¬function.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°ޤ ‘ +­v®9ectorŽ‘)ªI°h­ShapQÇeŽ‘"Ab°Ž‘'Aci‘UUµvޑЬ;Ž¡‘ +­v®9ectorŽ‘)ªI°h­ShapQÇeŽ‘"Ab°Ž‘'Aci‘UU±elementsŽ‘*;P¬;ޤ‘ +­v®9ectorŽ‘)ªI°h­ShapQÇeŽ‘"Ab°Ž‘'Aci‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7iterŽ‘:d5¬;Ž¡‘ +­b•QÇo“olŽ‘#¡g±do‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘`³¬=‘ǰ:±tr‘ÿ}'ansformŽ‘+³Aµ:±is‘‰ffŽ‘®identityŽ‘-2¢¬(‘ª¨);Ž¡‘ +´DEBUGŽ‘'r¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ޤ ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘­ifŽ‘´ú¬(±do‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘9š4¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Applying® ´transform.Ž‘kÆÜ\n"Ž‘| ;¬;Ž¡‘±tr‘ÿ}'ansformŽ‘I³Dµ:±showŽ‘Šÿ¬(´"transform:"Ž‘?†D¬);Ž¡‘°gŽ¡‘­elseŽ‘+Øá±c‘ÿ}'outŽ‘Aù0°‘Ç´"Not® ´applying® ´transfŽ‘kÆÜorm.\n"Ž’‘ /¬;Ž¡‘ +°gŽ¡‘ +­forŽ‘臬(±iterŽ‘’¬=‘DZshap‘ÿ}'esŽ–µ¡µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZshap‘ÿ}'esŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘G±iterŽ‘"¬)‘°fŽ¡‘­ifŽ‘´ú¬(±do‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘9š4¬)‘°fŽ¡‘¬(°Ž‘Ž‘ +±iterŽ‘ˬ)‘ǰ¬=ŽŽ‘UO±tr‘ÿ}'ansformŽ‘>¬;Ž¡‘°gŽ¡‘µvŽ‘û׬=‘Ç(°Ž‘±iterŽ‘Êÿ¬)‘þŸµ~ŽŽ‘±extr‘ÿ}'actŽ‘"Âp¬(µfŽ‘øæ;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÿ9°^‘8àµvŽ‘m:±sizeŽ‘\¬(‘ª¨)–ǰ“¬0Ž‘Ç)Ž¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"WARNING!® ´In® ´PictureŽ‘kÆÜ::output():\n"Ž’¸”2°‘Ç´"extract()® ´returned® Ž‘kÆÜ´an® ´empty® ´vector.® ´"Ž’Í”&°Ž¡‘2´"Continuing.\n"Ž’„ X°‘DZ ushŽ‘€¬;Ž¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­ShapQÇeŽ‘"Ab°Ž‘'Aci‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7µiŽ‘/ÒC¬=‘ǵvŽ–ûÕ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿýµiŽ‘ 9 °6¬=‘ǵvŽ“:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘GµiŽ‘¹¬)‘°fŽ¡‘±elementsŽ‘Dåþµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(°Ž‘µiŽ‘qõ¬);Ž¡‘°gŽ¡‘ gŽ¡‘ -ÝDEBUGŽ‘'r«=‘ÇÏfalseŽ‘v\«;ŽŽŽŒ‹™¡ Šn ý‘ì·x«550›­3DLDFPR•ÃŽG’XEÂF®9OCUS‘ÕX­AR“GUMENT˜«153Ž €n ý•@PÂ550.‘ ü«Set–UUthe“extremes“for“the“ÂShapQÇeŽ‘%–·«and“handle“the“error“if“it“returns“ÏfalseŽ‘™«.‘qÇ(LDF“Undated)ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.09.18.«]Ž‘Y·–Ç«(Ïextr‘ÿ}'emesŽ‘'¤«[0Ž‘]“±<“Ïmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘2˜f«)“·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"extremes[1]È Ý>È Ýmax_xŽ‘kÆÜ_projÈ Ý==È Ý"Ž’£”>·–Ç«(Ïextr‘ÿ}'emesŽ‘'¤«[1Ž‘]“±>“Ïmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘3¨ «)“·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"extremes[2]È Ý<È Ýmin_yŽ‘kÆÜ_projÈ Ý==È Ý"Ž’£”>·–Ç«(Ïextr‘ÿ}'emesŽ‘'¤«[2Ž‘]“±<“Ïmin‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘2ÏÜ«)“·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"extremes[3]È Ý>È Ýmax_yŽ‘kÆÜ_projÈ Ý==È Ý"Ž’£”>·–Ç«(Ïextr‘ÿ}'emesŽ‘'¤«[3Ž‘]“±>“Ïmax‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘3ß«)“·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;ަ‘ -·gަ‘ -ÂifŽ‘íî«(Ïextr‘ÿ}'emesŽ‘'¤«[0Ž›]–&±<“Ïmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘5V-·_‘^ÙÏextr‘ÿ}'emesŽ‘)o}«[1Ž˜]“±>“Ïmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘6eÒ·_‘^ÙÏextr‘ÿ}'emesŽ‘)o}«[2Ž˜]“±<“Ïmin‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘5£·_‘^ÙÏextr‘ÿ}'emesŽ‘)o}«[3Ž˜]“±>ަ‘(Ïmax‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘Ym«)‘·fަ‘ÂifŽ‘´ú«(Ïdo‘‰ffŽ‘®warningsŽ‘8ûÚ·‘ÇÏtrueŽ‘‹°«)‘·fަ‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"WARNING!È ÝInÈ ÝPictureŽ‘kÆÜ::output():\n"Ž’¸”2·‘ÇÝ"ShapeÈ ÝliesÈ ÝoutsideÈ Ž‘kÆÜÝtheÈ ÝlimitsÈ ÝforÈ ÝthisÈ Ž’ÔÆ Ý\ŽŽ¦‘2invocationÈ ÝofÈ ÝoutputŽ’šÿÉ().\n"Ž’½Í7·‘ÇÝ"SuppressingÈ ÝoutputÈ Ž‘kÆÜÝforÈ ÝthisÈ ÝShape*.\n"Ž’ÒÔ#·‘ÇÏ ushŽ‘€«;ަ‘·gަ‘«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïsuppr‘ÿ}'ess‘‰ffŽ‘®outputŽ‘Dæ‚«(‘ª¨);ަ‘ -·gަ‘ -g‘±=·‘ÿýÂforŽ‘“+·±=ަ‘ -·g‘±=·‘ÿý«End–UUof“group.‘o·±=ŽŽŽŒ‹š½ Šn ý‘ì«154›ÂF®9OCUS‘ÕX­AR•ÃŽGUMENT’XE3DLDFPR“G˜·x«552Ž €n ý•@PÂ552.‘ ü«[¬LDF‘T2003.05.16.«]Ž‘Z œSorting–í»can“bšGe“p˜erformed“in“di erenš¸ãt“w˜a˜ys,‘tdepGending“on“the“Ïsort‘‰ffŽ‘®valueŽ‘1Å«argumen˜t.ޤ This–UUis“explained“in“·h›ª¨«De ne“comparison“classes‘@­454˜·i«.Ž¡‘ -[¬LDF‘T2002.09.18.«]Ž‘Y,{It's–y•necessary“to“makš¸ãe“sure“that“sorting“is“only“pGerformed“if“ÏelementsŽ‘-Ù%«is“non-empt˜y‘ÿ*ª.‘Þ‡ItŽ¡could–¸±bGe“emptš¸ãy“no˜w,‘Øif“the“error“handling“cošGde“ab˜o•¸ãv“e–¸±has“remo•¸ãv“ed–¸±all“of“the“elemen¸ãts“b˜ecause“Ïset‘‰ffŽ‘®extr‘ÿ}'emesŽ‘9z:«(‘ª®)Ž¡returned‘UUÏfalseŽ‘Yî«for–UUall“of“them.‘qÇW‘ÿ*ªe“can't“just“return,“bšGecause“there“migh¸ãt“still“b˜e“ÂLabQÇelsŽ‘'uI«on“the“ÂPictureŽ‘(ñb«.Ž©·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÏelementsŽ‘&åû±:ÏsizeŽ‘\«(‘ª¨)–DZ>“«0Ž‘Ç)‘·fŽ¡‘ÂifŽ‘´ú«(Ïsort‘‰ffŽ‘®valueŽ‘.±2·‘ÇÝMIN_ZŽ‘q«)‘ÏsortŽ‘2Ò«(ÏelementsŽ‘&åû±:Ïb–ÿ}'e“ginŽ‘¾¨«(–ª¨)±;“ÏelementsŽ‘(£±:ÏendŽ‘ಫ(“)±;“ÂCompareu½‰™šs4Ž–Ôwminim®9umu½‰™šs4Ž“zŽ‘n;þ«(“));Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïsort‘‰ffŽ‘®valueŽ‘.±2·‘ÇÝMAX_ZŽ‘q«)‘ÏsortŽ‘2Ò«(ÏelementsŽ‘&åû±:Ïb–ÿ}'e“ginŽ‘¾¨«(–ª¨)±;“ÏelementsŽ‘(£±:ÏendŽ‘ಫ(“)±;“ÂCompareu½‰™šs4Ž–Ôwmaxim®9umu½‰™šs4Ž“zŽ‘pOŠ«(“));Ž¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïsort‘‰ffŽ‘®valueŽ‘.±2·‘ÇÝMEAN_ZŽ‘"Ín«)‘ÏsortŽ‘2Ò«(ÏelementsŽ‘&åû±:Ïb–ÿ}'e“ginŽ‘¾¨«(–ª¨)±;“ÏelementsŽ‘(£±:ÏendŽ‘ಫ(“)±;“ÂCompareu½‰™šs4Ž–Ôwmeanu½‰™šs4Ž“zŽ‘Yxv«(“));Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘ÂifŽ‘)´û«(Ïsort‘‰ffŽ‘®valueŽ‘.±2·‘ÇÝMIN_ZŽ‘q«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"È Ý***È ÝMIN_ZÈ Ýsort.È Ý**Ž‘kÆÜ*\n"Ž’M8«;Ž¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(Ïsort‘‰ffŽ‘®valueŽ‘.±2·‘ÇÝMAX_ZŽ‘q«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"È Ý***È ÝMAX_ZÈ Ýsort.È Ý**Ž‘kÆÜ*\n"Ž’M8«;Ž¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(Ïsort‘‰ffŽ‘®valueŽ‘.±2·‘ÇÝMEAN_ZŽ‘"Ín«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"È Ý***È ÝMEAN_ZÈ Ýsort.È Ý*Ž‘kÆÜ**\n"Ž’†5«;Ž¡‘ÂforŽ‘/艫(ÏiterŽ‘’«=‘ÇÏelementsŽ–)­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏelementsŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘@yï·‘ ´Ý"MinÈ Ýz:È Ý"Ž›:µ·– ´«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘C]Ø«(‘ª¨)“·“Ïend‘‚ØlŽ‘3*·“Ý"MaxÈ Ýz:È Ý"Ž˜·Ž¡‘<«(·Ž‘Ž‘ -ÏiterŽ›Ë«)±:Ïget‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘Dm}«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ý"MeanÈ Ýz:È Ý"Ž‘:”z·“«(·Ž‘Ž‘ -ÏiterŽ˜«)±:Ïget‘‰ffŽ–®me‘ÿ}'an‘‰ffŽ“zŽ‘0¶ -«(‘ª¨)“·“Ïend‘‚ØlŽ‘ò·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘·gŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"****È ÝEndÈ ÝofÈ ÝresultÈ Ž‘kÆÜÝofÈ Ýsort:\n\n"Ž’³T5·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂforŽ‘%舫(ÏiterŽ‘’«=‘ÇÏelementsŽ–)­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏelementsŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘·fŽ¡‘«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:ÏoutputŽ‘@«(‘ª¨);Ž¡‘(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïunsuppr‘ÿ}'ess‘‰ffŽ‘®outputŽ‘O㦫(‘ª¨);‘±=·‘ë[¬LDF‘T2002.09.18.«]Ž‘T+ÃWith–ga“di erenš¸ãt“ÂF‘ÿ -«oQÇcusŽ‘#«or“di eren˜t“limitingŽ¡‘2v‘ÿqÇalues–cAfor“the“pro›Ž8jection,‘f¼this“ÂShapQÇeŽ‘%²«migh¸ãt“bGe“pro˜jectable,‘f¼so“w¸ãe“reset“Ïdo‘‰ffŽ‘®outputŽ‘1¼µ«to“ÏtrueŽ‘'Ù«.‘›ŒIf“itŽ¡‘2can't–UUbšGe“pro‘Ž8jected“the“next“time,“Ïsuppr‘ÿ}'ess‘‰ffŽ‘®outputŽ‘H;׫(‘ª®)“will“b˜e“in•¸ãv“ok“ed‘UUagain.‘o·±=Ž¡‘·gŽ¡‘ -gŽŸÂ553.‘ ü«Output–ª^the“labšGels.–pãLDF‘ªUndated.“It–ª^is“necessary“to“output“the“lab˜els“last“b˜ecause“they“migh¸ãtŽ¡otherwise–UUbGe“draš¸ãwn“o˜v˜er“b˜y“Ï l‘‚ØlŽ‘H«(›ª®)“or“Ï l‘‚Øldr‘ÿ}'awŽ‘$¼À«(˜)“commands.Ž¡‘ -[¬LDF‘T2002.09.17.«]Ž‘Y¶I'm–^Ðnot“bšGothering“to“sort“the“lab˜els“so“that“the“ones“b˜ehind“can“b˜e“hidden“b¸ãy“the“onesŽ¡in–í7fron¸ãt.‘OLabšGels“should“all“b˜e“visible“and“are“not“put“in¸ãto“p˜ersp˜ectivš¸ãe,‘ +´DEBUGŽ‘'r¬=‘DZfalseŽ‘v\¬;ŽŽŽŒ‹£ q¶ Šn ý‘ì°x¬594–¯3DLDF-1.1.5.1’ü䯭F®9OCUS‘ÕX¯ARÃŽGUMENT“¬163Ž €n ý•@P­594.‘ ü¬Set–UUthe“extremes“for“the“­ShapQÇeŽ‘%–·¬and“handle“the“error“if“it“returns“±falseŽ‘™¬.‘qÇ(LDF“Undated)ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.09.18.¬]Ž‘Y°–Ǭ(±extr‘ÿ}'emesŽ‘'¤¬[0Ž‘]“µ<“±min‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘2˜f¬)“°“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"extremes[1]® ´>® ´max_xŽ‘kÆÜ_proj® ´==® ´"Ž’£”>°–Ǭ(±extr‘ÿ}'emesŽ‘'¤¬[1Ž‘]“µ>“±max‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘3¨ ¬)“°“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"extremes[2]® ´<® ´min_yŽ‘kÆÜ_proj® ´==® ´"Ž’£”>°–Ǭ(±extr‘ÿ}'emesŽ‘'¤¬[2Ž‘]“µ<“±min‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘2Ïܬ)“°“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"extremes[3]® ´>® ´max_yŽ‘kÆÜ_proj® ´==® ´"Ž’£”>°–Ǭ(±extr‘ÿ}'emesŽ‘'¤¬[3Ž‘]“µ>“±max‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘3߬)“°“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;ަ‘ +°gަ‘ +­ifŽ‘íî¬(±extr‘ÿ}'emesŽ‘'¤¬[0Ž›]–&µ<“±min‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘5V-°_‘^Ù±extr‘ÿ}'emesŽ‘)o}¬[1Ž˜]“µ>“±max‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘6eÒ°_‘^Ù±extr‘ÿ}'emesŽ‘)o}¬[2Ž˜]“µ<“±min‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘5£°_‘^Ù±extr‘ÿ}'emesŽ‘)o}¬[3Ž˜]“µ>ަ‘(±max‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘Ym¬)‘°fަ‘­ifŽ‘´ú¬(±do‘‰ffŽ‘®warningsŽ‘8ûÚ°‘DZtrueŽ‘‹°¬)‘°fަ‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"WARNING!® ´In® ´PictureŽ‘kÆÜ::output():\n"Ž’¸”2°‘Ç´"Shape® ´lies® ´outside® Ž‘kÆÜ´the® ´limits® ´for® ´this® Ž’ÔÆ ´\ŽŽ¦‘2invocation® ´of® ´outputŽ’šÿÉ().\n"Ž’½Í7°‘Ç´"Suppressing® ´output® Ž‘kÆÜ´for® ´this® ´Shape*.\n"Ž’ÒÔ#°‘DZ ushŽ‘€¬;ަ‘°gަ‘¬(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±suppr‘ÿ}'ess‘‰ffŽ‘®outputŽ‘D悬(‘ª¨);ަ‘ +°gަ‘ +g‘µ=°‘ÿý­forŽ‘“+°µ=ަ‘ +°g‘µ=°‘ÿý¬End–UUof“group.‘o°µ=ŽŽŽŒ‹¤ €Ö Šn ý‘ì¬164–­F®9OCUS‘ÕX¯ARÃŽGUMENT’üä¯3DLDF-1.1.5.1“°x¬596Ž €n ý•@P­596.‘ ü¬[²LDF‘T2003.05.16.¬]Ž‘Z œSorting–í»can“bšGe“p˜erformed“in“di erenš¸ãt“w˜a˜ys,‘tdepGending“on“the“±sort‘‰ffŽ‘®valueŽ‘1Ŭargumen˜t.ޤ This–UUis“explained“in“°h›ª¨¬De ne“comparison“classes‘@¯498˜°i¬.Ž¡‘ +[²LDF‘T2002.09.18.¬]Ž‘Y,{It's–y•necessary“to“makš¸ãe“sure“that“sorting“is“only“pGerformed“if“±elementsŽ‘-Ù%¬is“non-empt˜y‘ÿ*ª.‘Þ‡ItŽ¡could–¸±bGe“emptš¸ãy“no˜w,‘Øif“the“error“handling“cošGde“ab˜o•¸ãv“e–¸±has“remo•¸ãv“ed–¸±all“of“the“elemen¸ãts“b˜ecause“±set‘‰ffŽ‘®extr‘ÿ}'emesŽ‘9z:¬(‘ª®)Ž¡returned‘UU±falseŽ‘Yî¬for–UUall“of“them.‘qÇW‘ÿ*ªe“can't“just“return,“bšGecause“there“migh¸ãt“still“b˜e“­LabQÇelsŽ‘'uI¬on“the“­PictureŽ‘(ñb¬.Ž©°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±elementsŽ‘&åûµ:±sizeŽ‘\¬(‘ª¨)–ǵ>“¬0Ž‘Ç)‘°fŽ¡‘­ifŽ‘´ú¬(±sort‘‰ffŽ‘®valueŽ‘.±2°‘Ç´MIN_ZŽ‘q¬)‘±sortŽ‘2Ò¬(±elementsŽ‘&åûµ:±b–ÿ}'e“ginŽ‘¾¨¬(–ª¨)µ;“±elementsŽ‘(£µ:±endŽ‘ಬ(“)µ;“­Compareu½‰™šs4Ž–Ôwminim®9umu½‰™šs4Ž“zŽ‘n;þ¬(“));Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±sort‘‰ffŽ‘®valueŽ‘.±2°‘Ç´MAX_ZŽ‘q¬)‘±sortŽ‘2Ò¬(±elementsŽ‘&åûµ:±b–ÿ}'e“ginŽ‘¾¨¬(–ª¨)µ;“±elementsŽ‘(£µ:±endŽ‘ಬ(“)µ;“­Compareu½‰™šs4Ž–Ôwmaxim®9umu½‰™šs4Ž“zŽ‘pOЬ(“));Ž¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±sort‘‰ffŽ‘®valueŽ‘.±2°‘Ç´MEAN_ZŽ‘"Ín¬)‘±sortŽ‘2Ò¬(±elementsŽ‘&åûµ:±b–ÿ}'e“ginŽ‘¾¨¬(–ª¨)µ;“±elementsŽ‘(£µ:±endŽ‘ಬ(“)µ;“­Compareu½‰™šs4Ž–Ôwmeanu½‰™šs4Ž“zŽ‘Yxv¬(“));Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘­ifŽ‘)´û¬(±sort‘‰ffŽ‘®valueŽ‘.±2°‘Ç´MIN_ZŽ‘q¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"® ´***® ´MIN_Z® ´sort.® ´**Ž‘kÆÜ*\n"Ž’M8¬;Ž¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±sort‘‰ffŽ‘®valueŽ‘.±2°‘Ç´MAX_ZŽ‘q¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"® ´***® ´MAX_Z® ´sort.® ´**Ž‘kÆÜ*\n"Ž’M8¬;Ž¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±sort‘‰ffŽ‘®valueŽ‘.±2°‘Ç´MEAN_ZŽ‘"Ín¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"® ´***® ´MEAN_Z® ´sort.® ´*Ž‘kÆÜ**\n"Ž’†5¬;Ž¡‘­forŽ‘/艬(±iterŽ‘’¬=‘DZelementsŽ–)­µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZelementsŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘G±iterŽ‘"¬)‘°fŽ¡‘(±c‘ÿ}'outŽ‘@yï°‘ ´´"Min® ´z:® ´"Ž›:µ°– ´¬(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘C]ج(‘ª¨)“°“±end‘‚ØlŽ‘3*°“´"Max® ´z:® ´"Ž˜°Ž¡‘<¬(°Ž‘Ž‘ +±iterŽ›ˬ)µ:±get‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘Dm}¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“´"Mean® ´z:® ´"Ž‘:”z°“¬(°Ž‘Ž‘ +±iterŽ˜¬)µ:±get‘‰ffŽ–®me‘ÿ}'an‘‰ffŽ“zŽ‘0¶ +¬(‘ª¨)“°“±end‘‚ØlŽ‘ò°“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘°gŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"****® ´End® ´of® ´result® Ž‘kÆÜ´of® ´sort:\n\n"Ž’³T5°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­forŽ‘%般(±iterŽ‘’¬=‘DZelementsŽ–)­µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZelementsŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘G±iterŽ‘"¬)‘°fŽ¡‘¬(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±outputŽ‘@¬(‘ª¨);Ž¡‘(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±unsuppr‘ÿ}'ess‘‰ffŽ‘®outputŽ‘O㦬(‘ª¨);‘µ=°‘ì[²LDF‘T2002.09.18.¬]Ž‘T+ÃWith–ga“di erenš¸ãt“­F‘ÿ +«oQÇcusŽ‘#¬or“di eren˜t“limitingŽ¡‘2v‘ÿqÇalues–cAfor“the“pro›Ž8jection,‘f¼this“­ShapQÇeŽ‘%²¬migh¸ãt“bGe“pro˜jectable,‘f¼so“w¸ãe“reset“±do‘‰ffŽ‘®outputŽ‘1¼µ¬to“±trueŽ‘'Ù¬.‘›ŒIf“itŽ¡‘2can't–UUbšGe“pro‘Ž8jected“the“next“time,“±suppr‘ÿ}'ess‘‰ffŽ‘®outputŽ‘H;׬(‘ª®)“will“b˜e“in•¸ãv“ok“ed‘UUagain.‘o°µ=Ž¡‘°gŽ¡‘ +gŽŸ­597.‘ ü¬Output–ª^the“labšGels.–pãLDF‘ªUndated.“It–ª^is“necessary“to“output“the“lab˜els“last“b˜ecause“they“migh¸ãtŽ¡otherwise–UUbGe“draš¸ãwn“o˜v˜er“b˜y“± l‘‚ØlŽ‘H¬(›ª®)“or“± l‘‚Øldr‘ÿ}'awŽ‘$¼À¬(˜)“commands.Ž¡‘ +[²LDF‘T2002.09.17.¬]Ž‘Y¶I'm–^Ðnot“bšGothering“to“sort“the“lab˜els“so“that“the“ones“b˜ehind“can“b˜e“hidden“b¸ãy“the“onesŽ¡in–í7fron¸ãt.‘OLabšGels“should“all“b˜e“visible“and“are“not“put“in¸ãto“p˜ersp˜ectivš¸ãe,‘ so“they“shouldn't“o˜v˜erla˜y“one“another.Ž¡‘ -[¬LDF‘T2002.04.25.«]Ž‘X,Added–kFfolloš¸ãwing“conditional.‘#ÂSometimes“it's“irritating“to“ha˜v˜e“the“labGels“when“a“ÂPictureŽŽ¡«is–UUcopied“and“transformed,“and“bGoth“the“original“and“the“transformed“v¸ãersions“are“output.ަ·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïdo‘‰ffŽ‘®lab‘ÿ}'elsŽ‘)û·‘ÇÏtrueŽ‘‹°«)‘·fŽ¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂLabQÇelŽ‘–¸·Ž‘$–¹i‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7±iŽ‘/ÒC«=‘ÇÏlab‘ÿ}'elsŽ–±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿý±iŽ‘ 9 ·6«=‘ÇÏlab‘ÿ}'elsŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘G±iŽ‘¹«)‘·fŽ¡‘(±=·‘-{«[¬LDF‘T2002.09.17.«]Ž‘Tc3Simpli ed–‚Óthe“folloš¸ãwing“coGde.‘úAF–ÿ*ªormerly“,‘Ž2there–‚Ów˜as“a“conditional“here“thatŽ¡‘2c•¸ãhose›JÛwhic“h˜v“ersion˜of˜ÂLabQÇelŽ‘ ŒB«::‘ÏoutputŽ‘D«(‘ª®)˜to˜call.‘nII'v“e˜remo“v“ed˜the˜v“ersion˜without˜a˜ÂT‘ÿ -«ransformŽŽ¡‘2«argumenš¸ãt–´and“in˜v˜ok˜e“ÂT‘ÿ -«ransformŽ‘9'«::‘Ïis‘‰ffŽ‘®identityŽ‘.2¦«(‘ª®)“in“ÂLabQÇelŽ‘ õƒ«::‘ÏoutputŽ‘D«(ÂconstŽ‘‰iF‘ÿ -«oQÇcusŽ‘?2Ñ«&Ž‘Fùï±;‘ª¨ÂconstŽŽ¡‘2T‘ÿ -«ransformŽ‘iÈ׫&Ž‘qõ).‘qÇ[¬LDF‘T2002.04.25.«]Ž‘SzThis–UUapplies“Ïtr‘ÿ}'ansformŽ‘2]ë«to“the“ÂP•®9oin“tŽ‘"DòLabQÇelŽ‘?†Y«::‘ÏptŽ‘ -ä¡«.‘o·±=Ž¡‘«(·Ž‘Ž‘ -±iŽ‘ qö«)±:ÏoutputŽ‘@«(±fŽ‘øæ;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†±;‘ª¨Ïtr‘ÿ}'ansformŽ‘-]é«);Ž¡‘·gŽ¡‘ -g‘±=·‘Ы[¬LDF‘T2002.04.25.«]Ž‘T'ÝAdded–e(follo¸ãwing“line.›¡@This“ xes“a“bug.˜If“I‘e$don't“reset“Ïtr‘ÿ}'ansformŽ‘2}‘«to“iden•¸ãtit“y‘ÿ*ª,Ž¡‘(it–UUwill“bGe“applied“again“eacš¸ãh“time“I“output“a“ÂPictureŽ‘(ñb«,“whic˜h“is“not“what“I“w˜an˜t.‘o·±=Ž¡‘ -Ïtr‘ÿ}'ansformŽ‘5³B±:Ïr‘ÿ}'esetŽ‘Æ·«(‘ª¨);Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPicture::ouŽ‘kÆÜtput(constÈ ÝFocus&È Ý..Ž’ÔÆ .).\n"Ž’÷”·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽŽŽŒ‹›¤¬ Šn ý‘ì·x«554‘­3DLDFPRšÃŽG’õˆ‘NO–ÕXÂF®9OCUS“­AR˜GUMENT‘«155Ž €n ý•@PÂ554.‘ üNo–ÕTF‘ÿ -«oQÇcus“argumen®9t.Ž©·h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘#úUPictureŽ‘J–f«::‘ÏoutputŽ‘D«(ÂconstŽ‘'unsignedŽ‘PZ¨shortŽ‘o!ÇÏpr‘ÿ}'ojŽ’‚б;‘ª¨ÂrealŽ‘ZRÏfactorŽ‘4^0±;‘ª¨ÂconstŽ‘ ÑÆunsignedŽ‘RPshortŽŽ¡‘2Ïsort‘‰ffŽ‘®valueŽ‘]ê±;‘ª¨ÂconstŽ‘ 3b•QÇo“olŽ‘:‚Ïdo‘‰ffŽ‘®warningsŽ‘p=D±;‘ª¨ÂconstŽ‘ 3realŽ‘7JÏmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘f똱;‘ª¨ÂconstŽ‘ 3realŽ‘7JÏmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘gû=±;‘ª¨ÂconstŽŽ¡‘2realŽ‘H³3Ïmin‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘x»÷±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏmax‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘g á±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏmin‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘eÌù±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏmax‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘fÜž«)Ž¡‘ -·fŽ¡‘ÏoutputŽ‘1B«(Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘7Ýþ±;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†±;‘ª¨Ïsort‘‰ffŽ‘®valueŽ‘-”±;‘ª¨Ïdo‘‰ffŽ‘®warningsŽ‘7ßj±;‘ª¨Ïmin‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘1{ö±;‘ª¨Ïmax‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘2‹›±;‘ª¨Ïmin‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘1³l±;Ž¡‘(Ïmax‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘Ym±;‘ª¨Ïmin‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘0ï)±;‘ª¨Ïmax‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘1þΫ);Ž¡‘ -·gޤÂ555.‘ üF‘ÿ -«oQÇcus.Ž¡556.› üF‘ÿ -«oQÇcus–ôvclass“de nition.˜«[¬LDF‘T2002.09.18.«]Ž‘YĬMade‘‘ËÂF‘ÿ -«oQÇcusŽ‘"â«a‘‘ËÂclassŽ‘®’«(it–‘Ëw¸ãas“formerly“a“ÂstructŽ‘ Üm«).‘0™Addedޤ Âc®9harŽ‘¬ËÏaxisŽ‘/j«data–—×memš¸ãbGer.‘9MIt“indicates“the“axis“to“whic˜h“Ïp‘ÿ}'ositionŽ‘*t«should“bGe“transformed“to“when“it's“put“inŽ¡standard–Ü’pGosition.‘~This“determines“whicš¸ãh“plane“the“image“is“pro‘Ž8jected“on˜to.‘~If“ÏaxisŽ‘Á×·‘¨}Ý'z'Ž‘Ën«(the“default),Ž¡the–UUimage“is“pro‘Ž8jected“on¸ãto“the“x-y“plane,“if“ÏaxisŽ‘Y5·‘ÇÝ'x'Ž‘ w«,“the“z-y“plane,“if“Ý'y'Ž‘›´«,“the“x-z“plane.Ž¡‘ -A¸ãt–nthis“time,›´JI'm“not“adding“the“routines“that“will“do“this,˜whicš¸ãh“will“en˜tail“c˜hanging“Ïtr‘ÿ}'ansformŽ‘4s«andŽ¡pGossibly‘z¨Ïp‘ÿ}'erspŽ‘<í«,‘ƒýI'm–z¨just“adding“ÏaxisŽ‘·p«.‘áÀI‘zžmš¸ãust“also“add“a“function“for“c˜hanging“axis“without“c˜hanging“an˜y“ofŽ¡the–UUother“data“mem¸ãbGers.‘qÇTO“DO:“Add“these“routines!!Ž¡‘ -[¬LDF‘T2002.09.14.«]Ž‘Y;Added‘UUÂT‘ÿ -«ransformŽ‘;'Ïp‘ÿ}'erspŽ‘Ràl«.‘qÇIt's–UUneeded“bGecause“I“need“to“get“the“±zŽ‘ ÁÈ«v‘ÿqÇalue“of“theŽ¡Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘R e«after–øgthe“transformation“that“puts“the“ÂF‘ÿ -«oQÇcusŽ‘&æ«in¸ãto“standard“pšGosition,‘a+but“b˜efore“theŽ¡p•Gersp“ectiv¸ãe–Úütransformation“is“pšGerformed.‘¼This“±zŽ‘ Í«v‘ÿqÇalue“can“b˜e“used“in“an“algorithm“for“surfaces“hiding.‘¼IfŽ¡this–GHwš¸ãere“not“the“case,‘JI‘GDcould“com˜bine“the“transformations,‘JbGecause“matrix“m˜ultiplication“is“assoGciativ˜e“(itŽ¡is–UUnot,“ho•¸ãw“ev“er,›UUcomm“utativ“e,˜except˜with˜spGecial˜matrices).Ž¡‘ -[¬LDF‘T2002.09.11.«]Ž‘YÅzAdded‘”ÂclassŽ‘°$F‘ÿ -«oQÇcusŽ‘@¸«and–”the“follo¸ãwing“constructors:‘ìDThe“default“constructor“with“noŽ¡argumenš¸ãts,‘»’the–•!one“with“t˜w˜o“ÂP•®9oin“tŽ‘ ÄŠ«argumen˜ts“and“a“ÂrealŽ‘ˆÏar‘ÿ}'gumentŽ‘B&«,‘»’and“the“one“with“sev˜en“ÂrealŽ‘ˆ«argumen˜ts.ަ‘ -ÂformatŽ‘3c(ÏF‘ÿ;¼o‘ÿ}'cusŽ‘UxintŽŽ¦·h–ª¨«De ne‘UUÂclassŽ‘5¦F‘ÿ -«oQÇcusŽ‘?jö­556“·i‘ÇŽ¡‘ -ÂclassŽ‘$àRF‘ÿ -«oQÇcusŽ‘E*ó·fŽ¡‘ÂP•®9oin“tŽ‘2ïŸÏp‘ÿ}'ositionŽ‘V3ö«;Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏdir–ÿ}'e“ctionŽ‘Yè«;Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏupŽ‘>Ž]«;Ž¡‘ÂrealŽ‘*³0Ïdistanc‘ÿ}'eŽ‘Nù-«;Ž¡‘ÂrealŽ‘*³0ÏangleŽ‘Bsƒ«;Ž¡‘Âc®9harŽ‘-jKÏaxisŽ‘?§«;Ž¡‘ÂT‘ÿ -«ransformŽ‘KÈÔÏtr‘ÿ}'ansformŽ‘w|«;Ž¡‘ÂT‘ÿ -«ransformŽ‘KÈÔÏp‘ÿ}'erspŽ‘c‹«;ަ‘ -ÂpublicŽ‘)=Ö«:‘·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·iŽ¡‘ -g«;ŽŸ ­This–ÕXcoÈ ÝtoÈ ÝcŽ‘kÆÜontinue.\n\n"Ž’³T5·‘ÇÏ ushŽ‘€«;Ž¡‘·gަ‘ÂT‘ÿ -«ransformŽ‘KÜ/Ïunalign‘‰ffŽ‘®upŽ‘~«=‘çZÏtr‘ÿ}'ansformŽ‘.š›±:ÏinverseŽ‘ ‡«(‘ª¨);‘ª¯±=·‘X«Use–h°the“pGositiv¸ãe“y-axis“for“the“\up"“direction,Ž¡‘(if‘UUÏaxisŽ›Y5·‘ÇÝ'x'Ž‘bÌ«or‘UUÝ'z'Ž‘›´«,–UUand“the“pGositiv¸ãe“x-axis“if“ÏaxisŽ˜·‘ÇÝ'y'Ž‘ w«.‘o·±=ަ‘ÂifŽ‘´ú«(ÏaxisŽ‘à·‘ÇÝ'z'Ž‘FW·_‘8àÏaxisŽ‘<À·‘ÇÝ'x'Ž‘ w«)‘ÏupŽ‘ž¾±:ÏsetŽ‘ x„«(0Ž‘±;‘ª¨«1Ž–ª©±;‘ª¨«0Ž“);Ž¡‘ÂelseŽ‘+ØáÏupŽ‘7wŸ±:ÏsetŽ‘ x„«(1Ž‘±;‘ª¨«0Ž–ª©±;‘ª¨«0Ž“);Ž¡‘ÂifŽ‘´ú«(ÏangleŽ‘‡k·6«=‘Ç0Ž‘Ç)‘·fŽ¡‘ÂifŽ‘)´û«(ÏaxisŽ‘à·‘ÇÝ'z'Ž‘ w«)‘ÏupŽ‘eÖ·«=ŽŽ‘"ô Ïtr‘ÿ}'ansformŽ‘N§N±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆÏangleŽ‘!2«);Ž¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(ÏaxisŽ‘à·‘ÇÝ'x'Ž‘ w«)‘ÏupŽ‘eÖ·«=ŽŽ‘"ô Ïtr‘ÿ}'ansformŽ‘N§N±:Ïr‘ÿ}'otateŽ‘o>«(·Ž‘ÇÏangleŽ‘‡q«);Ž¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(ÏaxisŽ‘à·‘ÇÝ'y'Ž‘ w«)‘ÏupŽ‘eÖ·«=ŽŽ‘"ô Ïtr‘ÿ}'ansformŽ‘N§N±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨·Ž‘ qÆÏangleŽ‘!2«);Ž¡‘ÂelseŽ‘5Øâ·fŽ¡‘(Ïc‘ÿ}'errŽ‘@hú·‘³PÝ"ERROR!È ÝInÈ ÝFocus::FoŽ‘n³cus():\n"Ž’¤,±·‘³PÝ"ThisÈ Ýcan'tÈ Ýhappen!È Ž‘n³Ý\ŽŽ¡‘<È ÝaxisÈ ÝhasÈ ÝinvalidÈ ÝvaŽ’¤ÿÊlue:È Ý"Ž’È­·‘ŠÏaxisŽ‘Qâ·‘ŠÏend‘‚Ølޑܷ‘ŠÝ"RotatingÈ ÝaroundÈ Ýz-aŽ‘lŠQxis.\n"Ž’•[1·Ž¡‘<Ý"EnterÈ ÝÈ ÝtoÈ ÝtŽ’¤ÿÊryÈ ÝtoÈ Ýcontinue.\n"Ž’Í·‘ÇÏ ushŽ‘€«;Ž¡‘(ÏupŽ‘6eÚ·«=ŽŽ‘EôÏtr‘ÿ}'ansformŽ‘q§R±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆÏangleŽ‘!2«);Ž¡‘·gŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘ÏupŽ‘ž¾±:ÏshowŽ‘Šÿ«(Ý"upÈ ÝafterÈ Ýrotation"Ž‘dF/«);Ž¡‘·gŽ¡‘ÏupŽ‘"eØ·«=ŽŽ‘1ôÏunalign‘‰ffŽ‘®upŽ‘a2›«;Ž¡‘ÏupŽ‘žÀ±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘Ïtr‘ÿ}'ansformŽ‘?³C±:ÏshiftŽ‘}«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆÏdistanc‘ÿ}'eŽ‘-·Ã«);Ž¡‘Ïp‘ÿ}'erspŽ‘+ÂG±:Ïset‘‰ffŽ‘®elementŽ‘2 ×«(2Ž‘±;‘ª¨«2Ž–ª©±;‘ª¨«0Ž“);Ž¡‘Ïp‘ÿ}'erspŽ‘+ÂG±:Ïset‘‰ffŽ‘®elementŽ‘2 ×«(2Ž‘±;‘ª¨«3Ž–ª©±;‘ª¨«1Ž“±=Ïdistanc‘ÿ}'eŽ‘$Eý«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝFocus()È Ý(7È Ž‘kÆÜÝrealÈ Ýarguments).\n"Ž’ÒÔ#·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽŸ ­See–ÕXalso“sections“563,“566,“568,“570,“572,“574,“582,“and“585.ŽŽŽŒ‹žÝ3 Šn ý‘ì«158›­CONSTR•ÃŽUCTOR’Bz3DLDFPR“G˜·x«561Ž €n ý•@P­This–ÕXcoÄç«&Ž‘FŒÏdirŽ‘T‡a±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏdistŽ‘G”å±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangŽ‘J -6«=‘Ç0±:«0ŽŽ‘Ž7±;‘ª¨Âc®9harŽ‘ñÏaxŽ‘)S$«=‘ÇÝ'z'Ž‘ w«);Ž¡Â566.ަ·h–ª¨«De ne‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­561“·i‘Ç«+·ޤ ‘ -ÂF‘ÿ -«oQÇcusŽ‘'õQ«::‘ÂF‘ÿ -«oQÇcusŽ‘õP«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp‘ÿ}'osŽ‘T±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏdirŽ‘T‡a±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏdistŽ‘G”å±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangŽ‘GC±;‘ª¨Âc®9harŽ‘ñÏaxŽ‘&Œ «)Ž¡‘ -·fŽ¡‘ÂF‘ÿ -«oQÇcusŽ‘4J£±fŽ‘:C‰«(Ïp‘ÿ}'osŽ‘!±:Ïget‘‰ffŽ‘®xŽ‘Žg«(–ª¨)±;“Ïp‘ÿ}'osŽ›Ìj±:Ïget‘‰ffŽ‘®yŽ‘t«(“)±;“Ïp‘ÿ}'osŽ˜±:Ïget‘‰ffŽ‘®zŽ‘«(“)±;“ÏdirŽ›¦±:Ïget‘‰ffŽ‘®xŽ‘Žg«(“)±;“ÏdirŽ˜±:Ïget‘‰ffŽ‘®yŽ‘t«(“)±;“ÏdirŽ˜±:Ïget‘‰ffŽ‘®zŽ‘«(“)±;“ÏdistŽ‘·±;“ÏangŽ‘eN±;“ÏaxŽ‘ !ë);ަ‘·Ž‘ÏthisŽ‘,²Ñ«=‘DZfŽ‘¿þ«;Ž¡‘ -·gŽŸÂ567.– üSetting‘ÕTfunction.“«[¬LDF‘T2002.09.17.«]Ž‘Zˆ6Added–UUthis“function.ަ·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"¬«ÏsetŽ‘0%/«(ÂconstŽ‘ÙtP•®9oin“tŽ‘"‹«&Ž‘Eé©ÏdirŽ‘Så±;‘ª¨ÂconstŽ‘„realŽ‘5æÏdistŽ‘Fò‰±;‘ª¨ÂconstŽ‘„realŽ‘5æÏangŽ‘IgÚ«=‘Ç0±:«0ŽŽ‘Ž7±;‘ª¨Âc®9harŽ‘ÃÃÏaxŽ‘)ö«=‘ÇÝ'z'Ž‘ w«);ŽŸÂ568.ަ·h–ª¨«De ne‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­561“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙF‘ÿ -«oQÇcusŽ‘@ó)«::‘ÏsetŽ‘xˆ«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp‘ÿ}'osŽ‘T±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏdirŽ‘T‡a±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏdistŽ‘G”å±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangŽ‘GC±;‘ª¨Âc®9harŽ‘ñÏaxŽ‘&Œ «)Ž¡‘ -·fŽ¡‘ÂF‘ÿ -«oQÇcusŽ‘4J£±fŽ‘:C‰«(Ïp‘ÿ}'osŽ‘!±:Ïget‘‰ffŽ‘®xŽ‘Žg«(–ª¨)±;“Ïp‘ÿ}'osŽ›Ìj±:Ïget‘‰ffŽ‘®yŽ‘t«(“)±;“Ïp‘ÿ}'osŽ˜±:Ïget‘‰ffŽ‘®zŽ‘«(“)±;“ÏdirŽ›¦±:Ïget‘‰ffŽ‘®xŽ‘Žg«(“)±;“ÏdirŽ˜±:Ïget‘‰ffŽ‘®yŽ‘t«(“)±;“ÏdirŽ˜±:Ïget‘‰ffŽ‘®zŽ‘«(“)±;“ÏdistŽ‘·±;“ÏangŽ‘eN±;“ÏaxŽ‘ !ë);ަ‘·Ž‘ÏthisŽ‘,²Ñ«=‘DZfŽ‘¿þ«;Ž¡‘ -·gŽŸÂ569.– üAssignmen®9t.“«[¬LDF‘T2002.10.13.«]Ž‘Z­ŸAdded–z¾this“function.‘âNo¸ãw“using“it“in“all“but“the“ rst“of“the“non-Ž¡default–ãžconstructors.‘¢This“sa•¸ãv“es–ãžon“duplicating“coGde“and“reduces“the“probabilitš¸ãy“of“bugs“that“migh˜t“ariseŽ¡from–UUinconsistencies“among“the“constructors“and“setting“functions.ަ·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·Ž¡‘ -ÂconstŽ‘(*£F‘ÿ -«oQÇcusŽ‘HuD«&Ž‘PuC«&Ž‘FuC«&Ž‘F«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆÏangleŽ‘!2«);Ž¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(ÏaxisŽ‘à·‘ÇÝ'x'Ž‘ w«)‘ÏupŽ‘eÖ·«=ŽŽ‘"ô Ïtr‘ÿ}'ansformŽ‘N§N±:Ïr‘ÿ}'otateŽ‘o>«(·Ž‘ÇÏangleŽ‘‡q«);Ž¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(ÏaxisŽ‘à·‘ÇÝ'y'Ž‘ w«)‘ÏupŽ‘eÖ·«=ŽŽ‘"ô Ïtr‘ÿ}'ansformŽ‘N§N±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨·Ž‘ qÆÏangleŽ‘!2«);Ž¡‘ÂelseŽ‘5Øâ·fŽ¡‘(Ïc‘ÿ}'errŽ‘@hú·‘³PÝ"ERROR!È ÝInÈ ÝFocus::FoŽ‘n³cus():\n"Ž’¤,±·‘³PÝ"ThisÈ Ýcan'tÈ Ýhappen!È Ž‘n³Ý\ŽŽ¡‘<È ÝaxisÈ ÝhasÈ ÝinvalidÈ ÝvaŽ’¤ÿÊlue:È Ý"Ž’È­·‘ŠÏaxisŽ‘Qâ·‘ŠÏend‘‚Ølޑܷ‘ŠÝ"RotatingÈ ÝaroundÈ Ýz-aŽ‘lŠQxis.\n"Ž’•[1·Ž¡‘<Ý"EnterÈ ÝÈ ÝtoÈ ÝtŽ’¤ÿÊryÈ ÝtoÈ Ýcontinue.\n"Ž’Í·‘ÇÏ ushŽ‘€«;Ž¡‘(ÏupŽ‘6eÚ·«=ŽŽ‘EôÏtr‘ÿ}'ansformŽ‘q§R±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆÏangleŽ‘!2«);Ž¡‘·gŽ¡‘gŽ¡‘ÏupŽ‘"eØ·«=ŽŽ‘1ôÏunalign‘‰ffŽ‘®upŽ‘a2›«;Ž¡‘ÏupŽ‘žÀ±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘Ïtr‘ÿ}'ansformŽ‘?³C±:ÏshiftŽ‘}«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆÏdistanc‘ÿ}'eŽ‘-·Ã«);Ž¡‘Ïp‘ÿ}'erspŽ‘+ÂG±:Ïset‘‰ffŽ‘®elementŽ‘2 ×«(2Ž‘±;‘ª¨«2Ž–ª©±;‘ª¨«0Ž“);Ž¡‘Ïp‘ÿ}'erspŽ‘+ÂG±:Ïset‘‰ffŽ‘®elementŽ‘2 ×«(2Ž‘±;‘ª¨«3Ž–ª©±;‘ª¨«1Ž“±=Ïdistanc‘ÿ}'eŽ‘$Eý«);Ž¡‘ -·gŽŸÂ573.‘ üSho®9w.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.17.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.07.09.«]Ž‘Y;Made–UUthe“argumen¸ãts“ÂconstŽ‘*¢«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏshowŽ‘9ˆØ«(ÂconstŽ‘*¢stringŽ‘?OïÏtext‘‰ffŽ‘®strŽ‘bÞK«=‘ÇÝ"Focus:"Ž‘-Mh±;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°Ïshow‘‰ffŽ‘®tr‘ÿ}'ansformsŽ’„¸2«=‘ÇÏfalseŽ‘v\«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹¡¹ Šn ý‘ì·x«574›­3DLDFPR•ÃŽG’H’FSHO“W˜«161Ž €n ý•@PÂ574.ŽŸ·h–ª¨«De ne‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­561“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙF‘ÿ -«oQÇcusŽ‘@ó)«::‘ÏshowŽ‘‹«(ÂconstŽ‘*¢stringŽ‘?OïÏtext‘‰ffŽ‘®strŽ‘`3±;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°Ïshow‘‰ffŽ‘®tr‘ÿ}'ansformsŽ’ñ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÏtext‘‰ffŽ‘®strŽ‘&Ut·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïp‘ÿ}'ositionŽ‘7DY±:ÏshowŽ‘Šÿ«(Ý"position:"Ž‘:FG«);Ž¡‘Ïdir–ÿ}'e“ctionŽ‘:øó±:ÏshowŽ‘Šÿ«(Ý"direction:"Ž‘?†D«);Ž¡‘ÏupŽ‘žÀ±:ÏshowŽ‘Šÿ«(Ý"up:"Ž‘ÆY«);Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"distanceÈ Ý==È Ý"Ž‘O”n·‘ÇÏdistanc‘ÿ}'eŽ‘)Ô-·‘ÇÝ".È Ý"Ž‘Œ·‘ÇÝ"axisÈ Ý==È Ý"Ž‘:”z·‘ÇÏaxisŽ‘Êø·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"angleÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏangleŽ‘Nƒ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(Ïshow‘‰ffŽ‘®tr‘ÿ}'ansformsŽ‘KA‚·‘ÇÏtrueŽ‘‹°«)‘·fŽ¡‘Ïtr‘ÿ}'ansformŽ‘I³D±:ÏshowŽ‘Šÿ«(Ý"transform:"Ž‘?†D«);Ž¡‘Ïp‘ÿ}'erspŽ‘5ÂH±:ÏshowŽ‘Šÿ«(Ý"persp:"Ž‘*†P«);Ž¡‘·gŽ¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽ©Â575.› üReturning–Ö•elemen®9ts“and“information.˜«[¬LDF‘T2002.09.18.«]Ž‘Z‰MAdded–Vlthis“section.‘u The“functions“inŽ¡this–Ensection“are“noš¸ãw“necessary‘ÿ*ª,‘tsince“I'v˜e“made“ÂF‘ÿ -«oQÇcusŽ‘%€(«a“ÂclassŽ‘ Ø«(it“w˜as“formerly“a“ÂstructŽ‘"«),‘tand“the“dataŽ¡mem¸ãbGers‘UUÂpriv‘ÿ\rateŽ‘&ýÓ«.ަÂ576.‘ üGet‘ÕTpQÇosition.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.18.«]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·ޤ ‘ -ÂinlineŽ‘)ŠIconstŽ‘G´ëP•®9oin“tŽ‘f¤ˆ«&Ž‘nk¦Ïget‘‰ffŽ‘®p‘ÿ}'ositionŽ’¡ã¹«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïp‘ÿ}'ositionŽ‘[+«;Ž¡‘ -·gަÂ577.‘ üGet‘ÕTdirection.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.09.«]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·ޤ ‘ -ÂinlineŽ‘)ŠIconstŽ‘G´ëP•®9oin“tŽ‘f¤ˆ«&Ž‘nk¦Ïget‘‰ffŽ‘®dir–ÿ}'e“ctionŽ’¥˜S«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïdir–ÿ}'e“ctionŽ‘^ß­«;Ž¡‘ -·gަÂ578.– üGet‘ÕTdistance.“«[¬LDF‘T2002.09.18.«]Ž‘Zˆ6Added–UUthis“function.ŽŸ·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIconstŽ‘G´ërealŽ‘^h«&Ž‘f/7Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ’š¨ð«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïdistanc‘ÿ}'eŽ‘\,¹«;Ž¡‘ -·gަÂ579.– üGet‘ÕTup.“«[¬LDF‘T2002.09.18.«]Ž‘Zˆ6Added–UUthis“function.ŽŽŽŒ‹¢ Šn ý‘ì«162–­GET‘ÕXUP’A1ä3DLDFPRÃŽG“·x«579Ž €n ý•@P·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·ޤ ‘ -ÂinlineŽ‘)ŠIconstŽ‘G´ëP•®9oin“tŽ‘f¤ˆ«&Ž‘nk¦Ïget‘‰ffŽ‘®upŽ’Š> «(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼ÏupŽ‘C…z«;Ž¡‘ -·gŽ©Â580.‘ üGet‘ÕTtransform.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.18.«]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·ޤ ‘ -ÂinlineŽ‘)ŠIconstŽ‘G´ëT‘ÿ -«ransformŽ‘}½«&Ž’‡DÛÏget‘‰ffŽ‘®tr‘ÿ}'ansformŽ’Ã+Ø«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý«;Ž¡‘ -·gަÂ581.‘ üGet–ÕTtransform“elemen®9t.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.18.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.07.04.«]Ž‘Y;Made–UUnon-inline.‘qÇIt“no¸ãw“calls“ÂT‘ÿ -«ransformŽ‘8ÈÖ«::‘Ïget‘‰ffŽ‘®elementŽ‘4#²«(‘ª®)“instead“of“accessingŽ¡Ïtr‘ÿ}'ansformŽ‘+³A±:ÏmatrixŽ‘!”ð«directly‘ÿ*ª.‘qÇThis–UUis“no“longer“pšGossible,“b˜ecause“ÂF‘ÿ -«oQÇcusŽ‘#Ÿö«is“no“longer“a“ÂfriendŽ‘$¼«of“ÂT‘ÿ -«ransformŽ‘7ÈÒ«.Ž¡‘ -[¬LDF‘T2003.07.09.«]Ž‘Y;Changed–UUthe“ÂconstŽ‘!÷unsignedŽ‘Q·in®9tŽ‘c[ü«argumen¸ãts“to“ÂconstŽ‘!÷unsignedŽ‘Q·shortŽ‘l,S«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·ŽŸ ‘ -ÂrealŽ‘ ³/Ïget‘‰ffŽ–®tr‘ÿ}'ansform‘‰ffŽ“elementŽ’ðô«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,SÏr‘ÿ}'owŽ‘}8¾±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏc‘ÿ}'olumnŽ’Ž -B«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹£ Šn ý‘ì·x«582‘­3DLDFPR•ÃŽG’çÄ GET›ÕXTRANSF“ORM˜ELEMENT‘«163Ž €n ý•@PÂ582.Ž©·h–ª¨«De ne‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­561“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ l¦F‘ÿ -«oQÇcusŽ‘>aö«::‘Ïget‘‰ffŽ–®tr‘ÿ}'ansform‘‰ffŽ“elementŽ‘b=É«(ÂconstŽ‘äunsignedŽ‘MÔžshortŽ‘kX¸Ïr‘ÿ}'owŽ‘|e#±;‘ª¨ÂconstŽ‘ŽÁunsignedŽ‘OFshortŽ‘m`Ïc‘ÿ}'olumnŽ’6§«)‘ÌÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïtr‘ÿ}'ansformŽ‘c™ý±:Ïget‘‰ffŽ‘®elementŽ‘3#®«(Ïr‘ÿ}'owŽ‘ k±;‘ª¨Ïc‘ÿ}'olumnŽ‘!Ýï«);Ž¡‘ -·gŽŸÂ583.‘ üGet‘ÕTpQÇersp.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.18.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIconstŽ‘G´ëT‘ÿ -«ransformŽ‘}½«&Ž’‡DÛÏget‘‰ffŽ‘®p‘ÿ}'erspŽ’¯:Ü«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïp‘ÿ}'erspŽ‘O©«;Ž¡‘ -·gŽŸÂ584.‘ üGet–ÕTpQÇersp“elemen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.09.18.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.07.04.«]Ž‘Y;Made–UUnon-inline.‘qÇIt“no¸ãw“calls“ÂT‘ÿ -«ransformŽ‘8ÈÖ«::‘Ïget‘‰ffŽ‘®elementŽ‘4#²«(‘ª®)“instead“of“accessingŽ¡Ïtr‘ÿ}'ansformŽ‘+³A±:ÏmatrixŽ‘!”ð«directly‘ÿ*ª.‘qÇThis–UUis“no“longer“pšGossible,“b˜ecause“ÂF‘ÿ -«oQÇcusŽ‘#Ÿö«is“no“longer“a“ÂfriendŽ‘$¼«of“ÂT‘ÿ -«ransformŽ‘7ÈÒ«.Ž¡‘ -[¬LDF‘T2003.07.09.«]Ž‘Y;Changed–UUthe“ÂconstŽ‘!÷unsignedŽ‘Q·in®9tŽ‘c[ü«argumen¸ãts“to“ÂconstŽ‘!÷unsignedŽ‘Q·shortŽ‘l,S«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­558“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/Ïget‘‰ffŽ–®p‘ÿ}'ersp‘‰ffŽ“elementŽ‘n"ë(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,SÏr‘ÿ}'owŽ‘}8¾±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏc‘ÿ}'olumnŽ’Ž -B«)‘UUÂconstŽ‘*¢«;ŽŸÂ585.ަ·h–ª¨«De ne‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­561“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/F‘ÿ -«oQÇcusŽ‘>¨«::‘Ïget‘‰ffŽ–®p‘ÿ}'ersp‘‰ffŽ“elementŽ‘No˜«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,SÏr‘ÿ}'owŽ‘}8¾±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏc‘ÿ}'olumnŽ’Ž -B«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïp‘ÿ}'erspŽ‘O©±:Ïget‘‰ffŽ‘®elementŽ‘3#®«(Ïr‘ÿ}'owŽ‘ k±;‘ª¨Ïc‘ÿ}'olumnŽ‘!Ýï«);Ž¡‘ -·gŽŸÂ586.– üGlobal‘+àv‘ÿ\rariables.“«[¬LDF‘T2002.12.08.«]Ž‘ZÓx!!‘SBUG.– —Commenš¸ãted-out,‘³hbGecause“of“a“bug“in˜v˜olving“trans-Ž¡formations.Ž¡‘ -Default–UUv‘ÿqÇalue.‘qÇCan“bGe“c¸ãhanged.ަ·h–ª¨«Global‘UUv‘ÿqÇariables‘@­15“·i‘Ç«+·Ž¡‘ -ÂF‘ÿ -«oQÇcusŽ‘*J¢Ïdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ‘b( «(0Ž‘±;‘ª¨«10ŽŽ– ªª±;‘ª¨·Ž‘ qÆ«10ŽŽ‘qȱ;‘ª¨«0Ž›ª©±;‘ª¨«10ŽŽ“±;‘ª¨«0Ž˜±;‘ª¨«10ŽŽ“);ŽŸÂ587.ަ·h›ª¨«Declarations–UUfor“the“header“ le‘@­18˜·i‘Ç«+·Ž¡‘ -ÂexternŽ‘.×F‘ÿ -«oQÇcusŽ‘NhxÏdefault‘‰ffŽ‘®fo‘ÿ}'cusŽ’†Fv«;ŽŸÂ588.‘ üPutting›ÕTP•®9oin“t˜and˜F‘ÿ -«oQÇcus˜together.ŽŽŽŒ‹¤%g Šn ý‘ì«164›­PUTTING–ÕXÂPOINT“­AND“ÂF®9OCUS“­TOGETHER’œýi3DLDFPRÃŽG˜·x«589Ž €n ý•@PÂ589.‘ ü«This–UUis“what's“compiled.ŽŸ‘ -·h–ª¨«Include‘UU les‘@­11“·iޤ ‘ -h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·iŽ¡‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦P•®9oin“tŽ‘>ò­264“·iŽ¡‘ -h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«constructors‘@­280“·iŽ¡‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦F‘ÿ -«oQÇcusŽ‘?jö­556“·iŽ¡‘ -h›ª¨«De ne–UUcomparison“classes‘@­454˜·iŽ¡‘ -h–ª¨«De ne‘UUÂstaticŽ‘"ž.P•®9oin“tŽ‘AË«data‘UUmem¸ãbGers‘@­265“·iŽ¡‘ -h–ª¨«T¸ãypGe‘UUde nitions‘@­12“·iŽ¡‘ -h–ª¨«Global‘UUconstan¸ãts‘@­19“·iŽ¡‘ -h–ª¨«Global‘UUv‘ÿqÇariables‘@­15“·iŽ¡‘ -h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·iŽ¡‘ -h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·iŽ¡‘ -h›ª¨«De ne–UUnon-mem¸ãbGer“functions“for“ÂP•®9oin“tsŽ‘'¸Ý­437˜·iŽ¡‘ -h–ª¨«De ne‘UUÂb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘;üð«functions‘@­269“·iŽ¡‘ -h–ª¨«De ne‘UUÂb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜quadrupleŽ‘s<«functions‘@­271“·iŽ¡‘ -h–ª¨«De ne‘UUÂb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Sœ «functions‘@­273“·iŽ¡‘ -h–ª¨«De ne‘UUÂF‘ÿ -«oQÇcusŽ‘#Ÿö«functions‘@­561“·iŽ¡‘ -h–ª¨«De ne‘UUÂLabQÇelŽ‘"ì «functions‘@­470“·iŽ¡‘ -h–ª¨«De ne‘UUÂPictureŽ‘,F·«functions‘@­219“·iŽŽŽŒ‹¥14 Šn ý‘ì·x«590›­3DLDFPRÃŽG’œýiPUTTING–ÕXÂPOINT“­AND“ÂF®9OCUS“­TOGETHER˜«165Ž €n ý•@PÂ590.‘ ü«This–UUis“what's“written“to“Èpoints.h«.Ž©ð*·h‘ª¨Ýpoints.hŽ‘5°ù­590‘ª¨·i‘Çޤ ‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦P•®9oin“tŽ‘>ò­264“·iŽ¡‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦F‘ÿ -«oQÇcusŽ‘?jö­556“·iŽ¡‘ -h›ª¨«De ne–UUcomparison“classes‘@­454˜·iŽ¡‘ -h›ª¨«Declare–UUnon-mem¸ãbGer“functions“for“ÂP•®9oin“tsŽ‘'¸Ý­436˜·iŽ¡‘ -h–ª¨«T¸ãypGe‘UUde nitions‘@­12“·iŽ¡‘ -h›ª¨«Declarations–UUfor“the“header“ le‘@­18˜·iŽŸÂ591.– üLine“(Èlines.webÂ).‘@`«[¬LDF‘T2002.10.29.«]Ž‘mHšÂLinesŽ’‹®«are–UUnot“ÂShapQÇesŽ‘&Êž«.‘qÇThey“are“used“for“pGerformingŽ¡vš¸ãector–QýopGerations.‘pªA‘QüÂLineŽ‘ü|«is“de ned“b˜y“a“ÂP•®9oin“tŽ‘">B«represen˜ting“a“pGosition“v˜ector“and“a“ÂP•®9oin“tŽ‘">B«represen˜ting“aŽ¡direction‘UUv¸ãector.Ž¡‘ -[¬LDF‘T2003.06.03.«]Ž‘Y;TO–UUDO:“Add“setting“functions.ŽŸ.ŒŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.04.08.«]Ž‘YðÛAdded–=õthis“section.‘+¦[¬LDF‘T2002.04.12.«]Ž‘W€Created“this“ le.‘+¦Remo•¸ãv“ed–=õthe“coGde“for“ÂLineŽŽ¡«from–UUÈpoints.web“«and“put“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.Ž¡‘ -[¬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:È Ýlines.web,vÈ Ý1.Ž‘kÆÜ2È Ý2003/12/10È Ý15:40:4Ž’ÔÆ 8È Ýlfinsto1È ÝExpÈ Ý$"Ž’.ŒÕ«;ŽŸÂ592.‘ ü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"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"points.h"ŽŽŸÂ593.‘ üLine–ÕTstruct“de nition.ަ‘ -formatŽ‘3c(ÏLineŽ‘P‹NPointŽŽ¦·h–ª¨«De ne‘UUÂstructŽ‘$õLLineŽ‘?Ó­593“·i‘ÇŽ¡‘ -ÂstructŽ‘+ŸøLineŽ‘EMзfŽ¡‘ -ÂpublicŽ‘)=Ö«:‘ÂP•®9oin“tŽ‘#ïÏp‘ÿ}'ositionŽ‘G3ô«;Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏdir–ÿ}'e“ctionŽ‘Yè«;ަ‘·h–ª¨«Declare‘UUÂLineŽ‘-«constructors‘@­595“·iŽ¡‘h–ª¨«Declare‘UUÂLineŽ‘-«functions‘@­599“·iŽ¡‘ -g«;ŽŸ ð*­This–ÕXcoÄç«&Ž‘FŒÏdirŽ‘WNy«=‘ÇÏoriginŽ“«);ޤ ­See–ÕXalso“section“597.Ž¡This–ÕXcoÄç«&Ž‘FŒÏdirŽ‘T‡a«)Ž¡‘ -:‘qÇÏp‘ÿ}'ositionŽ‘'¶«(Ïp‘ÿ}'osŽ‘!«)±;‘ÿýÏdir–ÿ}'e“ctionŽ‘+øî«(ÏdirŽ‘ û\«)‘UU·fŽ¡‘Ïp‘ÿ}'ositionŽ‘7DY±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘Ïdir–ÿ}'e“ctionŽ‘:øó±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ -·gޤ ­See–ÕXalso“section“598.Ž¡This–ÕXco¼«or“±lŽ˜:Ïdir–ÿ}'e“ctionŽ‘&øñ±:Ïtr‘ÿ}'ansformŽ‘+³A«,‘™so“I'mŽ¡doing–UUit“just“to“bGe“sure.ަ·h–ª¨«Declare‘UUÂLineŽ‘-«constructors‘@­595“·i‘Ç«+·Ž¡‘ -ÂLineŽ‘ X„«(ÂconstŽ‘*¢LineŽ‘7Øz«&Ž‘?Ÿ˜±lŽ‘BÍÒ«);ŽŸÂ598.ަ·h–ª¨«De ne‘UUÂLineŽ‘-«constructors‘@­596“·i‘Ç«+·Ž¡‘ -ÂLineŽ‘!Xˆ«::‘ÂLineŽ‘X‡«(ÂconstŽ‘*¢LineŽ‘7Øz«&Ž‘?Ÿ˜±lŽ‘BÍÒ«)Ž¡‘ -:‘qÇÏp‘ÿ}'ositionŽ‘'¶«(±lŽ–.::Ïp‘ÿ}'ositionŽ‘#DW«)±;‘ÿýÏdir–ÿ}'e“ctionŽ‘+øî«(±lŽ“:Ïdir–ÿ}'e“ctionŽ‘&øñ«)‘UU·fŽ¡‘Ïp‘ÿ}'ositionŽ‘7DY±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘Ïdir–ÿ}'e“ctionŽ‘:øó±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ -·gŽŸÂ599.‘ üAssignmen®9t.ަ·h–ª¨«Declare‘UUÂLineŽ‘-«functions‘@­599“·i‘ÇŽ¡‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”Ž«=Ž‘V[¬(ÂconstŽ‘*¢LineŽ‘7Øz«&Ž‘?Ÿ˜±lŽ‘BÍÒ«);ޤ ­See–ÕXalso“sections“602,“604,“and“608.Ž¡This–ÕXco‹Û«&Ž‘FRùÏpp0Ž‘W†)±;‘ª¨ÂconstŽ‘ ŽP•®9oin“tŽ‘@6ƒ«&Ž‘Gý¡Ïpp1Ž‘Y0ѱ;‘ª¨ÂconstŽ‘ ŽP•®9oin“tŽŽ¡‘2«&Ž‘9Ç#Ïqq0Ž‘Iô¡±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏqq1Ž‘V¹ƒ«)Ž¡‘ -·f‘±=·‘ÿý«ST–ÿ*ªAR“T–UUHERE.“DEBUGGING.“[¬LDF‘T2003.06.24.«]Ž‘P²â·±=Ž¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ޤ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPoint::intŽ‘kÆÜersection_point()\n"Ž’ÕM«;Ž¡‘ÂLineŽ‘-­ÚÏl‘‰ffŽ‘®pŽ‘<ò«=‘ÇÏpp0Ž‘úH±:Ïget‘‰ffŽ‘®lineŽ‘!O«(Ïpp1Ž‘30«);Ž© ‘ÂLineŽ‘-­ÚÏl‘‰ffŽ‘®qŽ‘<°+«=‘ÇÏqq0Ž‘ô–±:Ïget‘‰ffŽ‘®lineŽ‘!O«(Ïqq1Ž‘-~«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fަ‘Ïpp0Ž‘/33±:ÏshowŽ‘Šÿ«(Ý"pp0"Ž‘ÆY«);ަ‘Ïpp1Ž‘/33±:ÏshowŽ‘Šÿ«(Ý"pp1"Ž‘ÆY«);ަ‘Ïqq0Ž‘.-±:ÏshowŽ‘Šÿ«(Ý"qq0"Ž‘ÆY«);ަ‘Ïqq1Ž‘.-±:ÏshowŽ‘Šÿ«(Ý"qq1"Ž‘ÆY«);ަ‘Ïl‘‰ffŽ‘®pŽ‘*}0±:ÏshowŽ‘Šÿ«(Ý"l_p"Ž‘ÆY«);ަ‘Ïl‘‰ffŽ‘®qŽ‘*;<±:ÏshowŽ‘Šÿ«(Ý"l_q"Ž‘ÆY«);ަ‘·gŽ¡‘Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘dF¸ÏbrpŽ‘v¾«=‘ÇÏl‘‰ffŽ‘®pŽ‘DE±:Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹«(Ïl‘‰ffŽ‘®qŽ‘ ;9«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fަ‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"brp.bÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏbrpŽ‘Ù±:bŽ‘·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"brp.rÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏbrpŽ‘Ù±:rŽ‘‘,·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘ÏbrpŽ‘-ñ±:ÏptŽ‘ ä±:ÏshowŽ‘Šÿ«(Ý"brp.pt"Ž‘*†P«);ަ‘·gަ‘ÂifŽ‘´ú«(ÏbrpŽ‘î±:rŽ‘‘,·6«=‘Ç0Ž‘ ÿù·_‘8àÏbrpŽ–Jα:bŽ‘·‘ÇÏfalseŽ‘¯<·_‘8àÏbrpŽ“±:ÏptŽ‘ «µ·‘ÇÝINVALID_POINTŽ‘GY«)‘ÂreturnŽ‘(æºÝINVALID_BOOL_POINTŽ’‡ìì«;Ž¡‘Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§ÏbpŽ‘W‚«;Ž¡‘ÏbpŽ‘Ú{±:ÏptŽ‘ «µ«=‘ÇÏbrpŽ‘Ù±:ÏptŽ‘ ä«;Ž¡‘Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘E@ƒÏbr‘‰ffŽ‘®pŽ‘ZÇœ«=‘ÇÏbrpŽ‘Ù±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïpp0Ž‘30±;‘ª¨Ïpp1Ž‘ÝØ«);ަ‘Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘E@ƒÏbr‘‰ffŽ‘®qŽ‘Z…¨«=‘ÇÏbrpŽ‘Ù±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïqq0Ž‘-~±;‘ª¨Ïqq1Ž‘Ø&«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fަ‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"br_p.firstÈ Ý==È Ý"Ž‘Zh·‘ÇÏbr‘‰ffŽ‘®pŽ‘‡±:Ï rstŽ‘|·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"br_p.secondÈ Ý==È Ý"Ž‘_Te·‘ÇÏbr‘‰ffŽ‘®pŽ‘‡±:Ïse–ÿ}'c“ondŽ‘ nß·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"br_q.firstÈ Ý==È Ý"Ž‘Zh·‘ÇÏbr‘‰ffŽ‘®qŽ‘E%±:Ï rstŽ‘|·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"br_q.secondÈ Ý==È Ý"Ž‘_Te·‘ÇÏbr‘‰ffŽ‘®qŽ‘E%±:Ïse–ÿ}'c“ondŽ‘ nß·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘·gަ‘ÏbpŽ‘Ú{±:bŽ‘«=‘Ç(Ïbr‘‰ffŽ‘®pŽ‘À±:Ï rstŽ‘^‘8àÏbr‘‰ffŽ‘®qŽ‘¶í±:Ï rstŽ‘µª«);ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPoint::inteŽ‘kÆÜrsection_point()\n"Ž’Ð «;ަ‘ÂreturnŽ‘7æ¼ÏbpŽ‘BÁ5«;ަ‘ -·gަ«#ÂendifŽŽŸ604.– üGet‘ÓOdistance.“«[¬LDF‘T2002.04.22.«]Ž‘Z†uRenamed–S”this“Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘7ÍM«(›ª®)“from“Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘Pêj«(˜).‘q1The“oldަvš¸ãersion–äÅof“ÂP•®9oin“tŽ‘!«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(‘ª®),‘H whic˜h“I‘ä^am“curren˜tly“using“again,‘H since“the“new“v˜ersion“w˜asn'tަw¸ãorking,›Ãreturns–Fa“Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘8ጫ,˜whicš¸ãh“is“sensible.‘›If“I‘7start“using“the“commen˜ted-out“v˜ersion“abGo˜v˜e“again,ަI‘;Øshould›;ßha•¸ãv“e˜it˜return˜a˜Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘;Ê«toGo,‘@öinstead˜of˜a˜Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘P-@«.‘iJThis˜will˜mak“e˜it˜easier˜to˜switc“hަbacš¸ãk–UUto“the“old“v˜ersion,“if“I“ha˜v˜e“problems“again.ަ‘ -[¬LDF‘T2003.06.11.«]Ž‘XÔ"ST–ÿ*ªAR“T–!/HERE.›!«::‘Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½«(ÂconstŽ‘*¢LineŽ‘7Øz«&Ž‘?Ÿ˜±lŽ‘BÍÒ«)‘UUÂconstŽ‘*¢·f‘UUÂb•QÇo“olŽ‘ö»ÝDEBUGŽ‘:„,«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝLine::get_Ž‘kÆÜdistance()\n"Ž’°«;Ž¡‘Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘nF¹ÏbrpŽ‘}X§«;ަ‘ÂP•®9oin“tŽ‘<ï ÏnormalŽ‘` p«=‘ÇÏdir–ÿ}'e“ctionŽ‘)À ±:Ïcr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé«(±lŽ‘.::Ïdir–ÿ}'e“ctionŽ‘&øñ«);Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘ÏnormalŽ‘%V¸±:ÏshowŽ‘Šÿ«(Ý"normalÈ ÝafterÈ ÝcrossÈ Ž‘hÿÄÝproduct."Ž’˜Æ«);Ž¡‘ÂP•®9oin“tŽ‘<ï Ïnormal‘‰ffŽ‘®unitŽ‘u«=‘ÇÏnormalŽ‘#б:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(‘ª¨);Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïnormal‘‰ffŽ‘®unitŽ‘:Oɱ:ÏshowŽ‘Šÿ«(Ý"normal_unit."Ž‘J>«);ަ‘ÂifŽ‘)´û«(Ïnormal‘‰ffŽ‘®unitŽ‘8á·‘ÇÏoriginŽ‘½9«)‘·fަ‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"LinesÈ ÝareÈ Ýparallel.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;ަ‘(ÏbrpŽ‘7ò±:bŽ‘«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿý«No‘UUin¸ãtersection.‘o·±=ަ‘(ÏbrpŽ‘7ò±:ÏptŽ‘ «µ«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘(ÂP•®9oin“tŽ‘Fï¡Ïtemp‘‰ffŽ‘®ptŽ‘i¸S«(±lŽ‘.::Ïp‘ÿ}'ositionŽ‘#DW«);Ž¡‘(Ïtemp‘‰ffŽ‘®ptŽ‘Mη«=ŽŽ‘_å"Ïp‘ÿ}'ositionŽ’ƒ)y«;ަ‘(Ïtemp‘‰ffŽ‘®ptŽ‘MΫ=‘ÇÏtemp‘‰ffŽ‘®ptŽ‘%ʱ:Ïcr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé«(Ïdir–ÿ}'e“ctionŽ‘&øñ«);ަ‘(ÏbrpŽ‘7ò±:rŽ‘‘,«=‘ÇÏtemp‘‰ffŽ‘®ptŽ‘%ʱ:ÏmagnitudeŽ–.=r«(›ª¨)±=Ïdir–ÿ}'e“ctionŽ‘&øñ±:ÏmagnitudeŽ“«(˜);‘±=·‘ÿý«[¬LDF‘T2002.10.29.«]Ž‘T7Distance.‘o·±=ަ‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘·fަ‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"distanceÈ Ý==È Ý"Ž‘O”n·‘ÇÏbrpŽ‘Ù±:rŽ‘‘,·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘(·gަ‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝLine::get_dŽ‘kÆÜistance()\n"Ž’«M «;ަ‘(ÂreturnŽ‘Kæ¾ÏbrpŽ‘Zø¬«;ަ‘·gަ‘ÂelseŽ‘4.7·fަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"LinesÈ ÝareÈ ÝnotÈ ÝparalŽ‘kÆÜlel.\n"Ž’“ÔG·‘ÇÏ ushŽ‘€«;ަ‘ÏbrpŽ‘-ñ±:rŽ‘‘,«=‘ÇÏfabsŽ‘ùê«((±lŽ‘.::Ïp‘ÿ}'ositionŽ–%}7·‘8àÏp‘ÿ}'ositionŽ“«)±:Ïdot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!«(Ïnormal‘‰ffŽ‘®unitŽ‘5OÉ«));ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"distanceÈ Ý==È Ý"Ž‘O”n·‘ÇÏbrpŽ‘Ù±:rŽ‘‘,·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ŽŽŽŒ‹ªp‘ Šn ý‘ì«170–­GET‘ÕXDIST‘ÿJªANCE’ üp3DLDFPRÃŽG“·x«606Ž €n ý•@PÂ606.‘ ü«Lines›UUha•¸ãv“e˜an˜in“tersection.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2003.08.27.«]Ž‘X¥ëCommen¸ãted-out–óthe“declarations“of“Ïv‘‰ffŽ‘®xŽ‘•Z«,‘®Ïv‘‰ffŽ‘®yŽ‘޲«,›®and“Ïv‘‰ffŽ‘®zŽ‘ô«,˜since“they“are“not“used.‘QI‘òìha•¸ãv“en'tŽ¡deleted–UUthem,“in“case“I“need“them“someda¸ãy‘ÿ*ª.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂLineŽ‘-«functions‘@­600“·i‘Ç«+·ޤ ‘ -ÂifŽ‘´ù«(ÏbrpŽ‘î±:rŽ‘‘,<‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÏepsilonŽ‘E^¦«(‘ª¨))‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"LinesÈ ÝhaveÈ ÝanÈ ÝinterŽ‘kÆÜsection.\n"Ž’¨Ô;·‘ÇÏ ushŽ‘€«;Ž¡‘ÏbrpŽ‘#ð±:rŽ‘‘,«=‘Ç0Ž‘Ç;Ž¡‘ÏbrpŽ‘#ð±:bŽ‘«=‘ÇÏtrueŽ‘‹°«;Ž©‘ÂrealŽ‘*³0Ïa‘‰ffŽ‘®xŽ‘<Ÿv«=‘ÇÏp‘ÿ}'ositionŽ‘& o±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïa‘‰ffŽ‘®yŽ‘<…%«=‘ÇÏp‘ÿ}'ositionŽ‘& o±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïa‘‰ffŽ‘®zŽ‘<«=‘ÇÏp‘ÿ}'ositionŽ‘& o±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïb‘‰ffŽ‘®xŽ‘<«=‘DZlŽ‘õR:Ïp‘ÿ}'ositionŽ‘#DW±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïb‘‰ffŽ‘®yŽ‘<L«=‘DZlŽ‘õR:Ïp‘ÿ}'ositionŽ‘#DW±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïb‘‰ffŽ‘®zŽ‘;–7«=‘DZlŽ‘õR:Ïp‘ÿ}'ositionŽ‘#DW±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡#ÂifŽ‘ ´ø«0ŽŽ¡‘ÂrealŽ‘*³0Ïv‘‰ffŽ‘®xŽ‘<«=‘ÇÏdir–ÿ}'e“ctionŽ‘)À ±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïv‘‰ffŽ‘®yŽ‘<L«=‘ÇÏdir–ÿ}'e“ctionŽ‘)À ±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïv‘‰ffŽ‘®zŽ‘;–7«=‘ÇÏdir–ÿ}'e“ctionŽ‘)À ±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡#ÂendifŽŽ¡‘realŽ‘*³0Ïw‘‰ffŽ‘®xŽ‘>'þ«=‘DZlŽ‘õR:Ïdir–ÿ}'e“ctionŽ‘&øñ±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïw‘‰ffŽ‘®yŽ‘> ­«=‘DZlŽ‘õR:Ïdir–ÿ}'e“ctionŽ‘&øñ±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïw‘‰ffŽ‘®zŽ‘=¡˜«=‘DZlŽ‘õR:Ïdir–ÿ}'e“ctionŽ‘&øñ±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïu‘‰ffŽ‘®xŽ‘<àâ«=‘ÇÏnormalŽ‘#б:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïu‘‰ffŽ‘®yŽ‘<Æ‘«=‘ÇÏnormalŽ‘#б:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);Ž¡‘ÂrealŽ‘*³0Ïu‘‰ffŽ‘®zŽ‘aZ«&Ž‘F(x±pŽ‘K0x«);ŽŽŽŒ‹®¥) Šn ý‘ì«174›­COPY‘ÕXCONSTR•ÃŽUCTOR’‡Z3DLDFPR“G˜·x«622Ž €n ý•@PÂ622.Ž©·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·ޤ ‘ -ÂPlaneŽ‘'áh«::‘ÂPlaneŽ‘ág«(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(x±pŽ‘K0x«)Ž¡‘ -·fŽ¡‘Ž‘ÏthisŽ‘,²Ñ«=‘DZpŽ‘Ï«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ623.‘ üP•®9oin“t‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.03.«]Ž‘Y_¾Changed–¬Øthis“function.‘xPBUG‘¬ÁFIX:“Ïdistanc‘ÿ}'eŽ‘+Ÿ­«is“no¸ãw“calculated,‘¸instead“of“bGeing“passedŽ¡as–UUan“argumenš¸ãt.‘qÇÏnormalŽ‘(Ô«is“no˜w“made“a“unit“v˜ector.Ž¡‘ -[¬LDF‘T2003.06.06.«]Ž‘YpCChanged,›×_so–½]that“if“Ïp‘ÿ}'ointŽ‘©F«or“ÏnormalŽ‘'Ñr«is“equal“to“ÝINVALID_POINTŽ‘Hƒž«,˜the“other“one“is“alsoŽ¡set–UUto“ÝINVALID_POINTŽ‘H–«,“and“Ïdistanc‘ÿ}'eŽ‘*ð§«is“set“to“ÝINVALID_REALŽ‘BÛ™«.Ž¡‘ -[¬LDF‘T2003.06.06.«]Ž‘Y Argumenš¸ãts–a%are“no“longer“optional.‘•8I'v˜e“made“this“c˜hange,‘dbGecause“I'v˜e“added“a“defaultŽ¡constructor.Ž¡‘ -[¬LDF‘T2003.06.06.«]Ž‘XùÁAdded–FÛconditional“to“test“for“case“that“Ïp‘ÿ}'ointŽ‘ug·Ž‘"<…ÏnormalŽ‘B“=«.‘lôIn“this“case,‘IÀa“w¸ãarning“messageŽ¡is–UUprin¸ãted“to“standard“error,“they“are“bGoth“set“to“ÝINVALID_POINTŽ‘H–«,“and“Ïdistanc‘ÿ}'eŽ‘*ð§«is“set“to“ÝINVALID_REALŽ‘BÛ™«.Ž¡‘ -[¬LDF‘T2003.06.24.«]Ž‘Y^^BUG‘«bFIX:›«xF–ÿ*ªormerly“,‘ÁÝINVALID_PLANEŽ‘L2º«w¸ãas˜returned,‘Áif˜Ïp‘ÿ}'ointŽ‘0¬·‘V¨ÏnormalŽ‘#­`«.‘t1This˜has˜bGeenŽ¡c¸ãhanged,›so–„Pthat“ÝINVALID_PLANEŽ‘KÎá«is“returned,˜if“ÏnormalŽ‘&ðl·‘dÏoriginŽ‘ …«.‘þ·There“is,˜of“course,˜no“reason“wh¸ãy“Ïp‘ÿ}'ointŽŽ¡«shouldn't–UUbGe“equal“to“ÏnormalŽ‘#¬ «.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPlaneŽ‘#Œ «functions‘@­619“·i‘Ç«+·Ž¡‘ -ÂPlaneŽ‘&ád«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié];‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒ±nŽ‘LŒŸ«);ŽŽŽŒ‹¯©½ Šn ý‘ì·x«624›­3DLDFPR•ÃŽG’ÛÎÂPOINT‘ÕX­AR“GUMENTS˜«175Ž €n ý•@PÂ624.Ž©·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·ޤ ‘ -ÂPlaneŽ‘'áh«::‘ÂPlaneŽ‘ág«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié];‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒ±nŽ‘LŒŸ«)Ž¡‘ -:‘qÇÏnormalŽ‘$È«(±nŽ‘š«)±;‘ÿýÏp‘ÿ}'ointŽ‘.‰«(±pŽ‘«)‘UU·fŽ¡‘Ïp‘ÿ}'ointŽ‘+.ޱ:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÏnormalŽ‘4Vº±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÂifŽ‘´ú«(Ïp‘ÿ}'ointŽ‘õ¤·‘ÇÝINVALID_POINTŽ‘GY«)‘·fŽ¡‘ÏnormalŽ‘AÓ«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘Ïdistanc‘ÿ}'eŽ‘E «=‘ÇÝINVALID_REALŽ‘BM\«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏnormalŽ‘#з‘ÇÝINVALID_POINTŽ‘GY«)‘·fŽ¡‘Ïp‘ÿ}'ointŽ‘7õ§«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘Ïdistanc‘ÿ}'eŽ‘E «=‘ÇÝINVALID_REALŽ‘BM\«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏnormalŽ‘#з‘ÇÏoriginŽ‘½9«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3‘¼·‘ÜÝ"WARNING!È ÝInÈ ÝPlane()Ž‘kÛ×:\nnormalÈ Ý==È Ýorigin.Ž’ÔÛ›È Ý"Ž’â¾·‘ÜÝ"PlaneÈ ÝisÈ ÝINVALID_PLŽ‘kÛ×ANE.\n\n"Ž’ž~7·Ž¡‘2Ï ushŽ‘G¹«;Ž¡‘Ïp‘ÿ}'ointŽ‘7õ§«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘Ïdistanc‘ÿ}'eŽ‘E «=‘ÇÝINVALID_REALŽ‘BM\«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÏnormalŽ‘4Vº±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);Ž¡‘Ïdistanc‘ÿ}'eŽ‘; «=‘Ç·Ž‘ -Ž6Ïp‘ÿ}'ointŽ‘!¼Â±:Ïdot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!«(ÏnormalŽ‘ V¸«);Ž¡‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(Ïdistanc‘ÿ}'eŽ‘$Eý«)–DZ<“ÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÏepsilonŽ‘E^¦«(‘ª¨))‘Ïdistanc‘ÿ}'eŽ‘, «=“0Ž‘Ç;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ625.‘ üAssignmen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.06.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPlaneŽ‘#Œ «functions‘@­619“·i‘Ç«+·Ž¡‘ -ÂconstŽ‘(*£PlaneŽ‘Ha[«&Ž‘P(yÂopQÇeratorŽ‘{¿.«=Ž’ƒ†L(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(x±pŽ‘K0x«);ŽŽŽŒ‹°±E Šn ý‘ì«176–­ASSIGNMENT’(ÉD3DLDFPRÃŽG“·x«626Ž €n ý•@PÂ626.Ž©·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·ޤ ‘ -ÂconstŽ‘(*£PlaneŽ‘Ha[«&Ž‘P(yÂPlaneŽ‘n à«::Ž‘t˜ÂopQÇeratorŽ’ .Ó«=Ž’§õñ(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(x±pŽ‘K0x«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÏthisŽ‘²Î·‘Ç«&Ž‘ -Ž6±pŽ‘–6«)‘±=·‘ÿý«Makš¸ãe–UUsure“it's“not“self-assignmen˜t.‘qÇ[¬LDF‘T2003.06.06.«]Ž‘U$©·±=Ž¡‘ÂreturnŽ‘Aæ½·Ž‘Fæ¾ÏthisŽ‘WÒt«;Ž¡‘Ïp‘ÿ}'ointŽ‘-õ¦«=‘DZpŽ‘Ï:Ïp‘ÿ}'ointŽ‘.Œ«;Ž¡‘ÏnormalŽ‘7Ò«=‘DZpŽ‘Ï:ÏnormalŽ‘ V¸«;Ž¡‘Ïdistanc‘ÿ}'eŽ‘; «=‘DZpŽ‘Ï:Ïdistanc‘ÿ}'eŽ‘$Eý«;Ž¡‘ÂreturnŽ‘7æ¼±pŽ‘<;Ž¡‘ -·gŽŸÂ627.‘ üComparing‘ÕTPlanes.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.06.«]Ž‘Y;Added–UUthis“section.ަŸüÈ„`ÕÁGŽŽŸÂ628.‘ üEqualit®9y‘ÿ +[²LDF‘T2002.04.25.¬]Ž‘X,Added–kFfolloš¸ãwing“conditional.‘#ÂSometimes“it's“irritating“to“ha˜v˜e“the“labGels“when“a“­PictureŽŽ¡¬is–UUcopied“and“transformed,“and“bGoth“the“original“and“the“transformed“v¸ãersions“are“output.ަ°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±do‘‰ffŽ‘®lab‘ÿ}'elsŽ‘)û°‘DZtrueŽ‘‹°¬)‘°fŽ¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­LabQÇelŽ‘–¸°Ž‘$–¹i‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7µiŽ‘/ÒC¬=‘DZlab‘ÿ}'elsŽ–µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿýµiŽ‘ 9 °6¬=‘DZlab‘ÿ}'elsŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘GµiŽ‘¹¬)‘°fŽ¡‘(µ=°‘-{¬[²LDF‘T2002.09.17.¬]Ž‘Tc3Simpli ed–‚Óthe“folloš¸ãwing“coGde.‘úAF–ÿ*ªormerly“,‘Ž2there–‚Ów˜as“a“conditional“here“thatŽ¡‘2c•¸ãhose›JÛwhic“h˜v“ersion˜of˜­LabQÇelŽ‘ ŒB¬::‘±outputŽ‘D¬(‘ª®)˜to˜call.‘nII'v“e˜remo“v“ed˜the˜v“ersion˜without˜a˜­T‘ÿ +«ransformŽŽ¡‘2¬argumenš¸ãt–´and“in˜v˜ok˜e“­T‘ÿ +«ransformŽ‘9'¬::‘±is‘‰ffŽ‘®identityŽ‘.2¦¬(‘ª®)“in“­LabQÇelŽ‘ õƒ¬::‘±outputŽ‘D¬(­constŽ‘‰iF‘ÿ +«oQÇcusŽ‘?2Ѭ&Ž‘Fùïµ;‘ª¨­constŽŽ¡‘2T‘ÿ +«ransformŽ‘iÈ׬&Ž‘qõ).‘qÇ[²LDF‘T2002.04.25.¬]Ž‘SzThis–UUapplies“±tr‘ÿ}'ansformŽ‘2]ë¬to“the“­P•®9oin“tŽ‘"DòLabQÇelŽ‘?†Y¬::‘±ptŽ‘ +䡬.‘o°µ=Ž¡‘¬(°Ž‘Ž‘ +µiŽ‘ qö¬)µ:±outputŽ‘@¬(µfŽ‘øæ;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†µ;‘ª¨±tr‘ÿ}'ansformŽ‘-]é¬);Ž¡‘°gŽ¡‘ +g‘µ=°‘Ь[²LDF‘T2002.04.25.¬]Ž‘T'ÝAdded–e(follo¸ãwing“line.›¡@This“ xes“a“bug.˜If“I‘e$don't“reset“±tr‘ÿ}'ansformŽ‘2}‘¬to“iden•¸ãtit“y‘ÿ*ª,Ž¡‘(it–UUwill“bGe“applied“again“eacš¸ãh“time“I“output“a“­PictureŽ‘(ñb¬,“whic˜h“is“not“what“I“w˜an˜t.‘o°µ=Ž¡‘ +±tr‘ÿ}'ansformŽ‘5³Bµ:±r‘ÿ}'esetŽ‘Æ·¬(‘ª¨);Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Picture::ouŽ‘kÆÜtput(const® ´Focus&® ´..Ž’ÔÆ .).\n"Ž’÷”°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽŽŽŒ‹¥ ”É Šn ý‘ì°x¬598›¯3DLDF-1.1.5.1’íûNO–ÕX­F®9OCUS“¯ARÃŽGUMENT˜¬165Ž €n ý•@P­598.‘ üNo–ÕTF‘ÿ +«oQÇcus“argumen®9t.Ž©°h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘#úUPictureŽ‘J–f¬::‘±outputŽ‘D¬(­constŽ‘'unsignedŽ‘PZ¨shortŽ‘o!DZpr‘ÿ}'ojŽ’‚е;‘ª¨­realŽ‘ZR±factorŽ‘4^0µ;‘ª¨­constŽ‘ ÑÆunsignedŽ‘RPshortŽŽ¡‘2±sort‘‰ffŽ‘®valueŽ‘]êµ;‘ª¨­constŽ‘ 3b•QÇo“olŽ‘:‚±do‘‰ffŽ‘®warningsŽ‘p=Dµ;‘ª¨­constŽ‘ 3realŽ‘7J±min‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘f똵;‘ª¨­constŽ‘ 3realŽ‘7J±max‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘gû=µ;‘ª¨­constŽŽ¡‘2realŽ‘H³3±min‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘x»÷µ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±max‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘g áµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±min‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘eÌùµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±max‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘fÜž¬)Ž¡‘ +°fŽ¡‘±outputŽ‘1B¬(±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘7Ýþµ;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†µ;‘ª¨±sort‘‰ffŽ‘®valueŽ‘-”µ;‘ª¨±do‘‰ffŽ‘®warningsŽ‘7ßjµ;‘ª¨±min‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘1{öµ;‘ª¨±max‘‰ffŽ–®x‘‰ffŽ“pr‘ÿ}'ojŽ‘2‹›µ;‘ª¨±min‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘1³lµ;Ž¡‘(±max‘‰ffŽ–®y‘‰ffŽ“pr‘ÿ}'ojŽ‘Ymµ;‘ª¨±min‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘0ï)µ;‘ª¨±max‘‰ffŽ–®z‘‰ffŽ“pr‘ÿ}'ojŽ‘1þά);Ž¡‘ +°gޤ­599.‘ üF‘ÿ +«oQÇcus.Ž¡600.› üF‘ÿ +«oQÇcus–ôvclass“de nition.˜¬[²LDF‘T2002.09.18.¬]Ž‘YĬMade‘‘Ë­F‘ÿ +«oQÇcusŽ‘"â¬a‘‘Ë­classŽ‘®’¬(it–‘Ëw¸ãas“formerly“a“­structŽ‘ Üm¬).‘0™Addedޤ ­c®9harŽ‘¬Ë±axisŽ‘/j¬data–—×memš¸ãbGer.‘9MIt“indicates“the“axis“to“whic˜h“±p‘ÿ}'ositionŽ‘*t¬should“bGe“transformed“to“when“it's“put“inŽ¡standard–Ü’pGosition.‘~This“determines“whicš¸ãh“plane“the“image“is“pro‘Ž8jected“on˜to.‘~If“±axisŽ‘Á×°‘¨}´'z'Ž‘Ën¬(the“default),Ž¡the–UUimage“is“pro‘Ž8jected“on¸ãto“the“x-y“plane,“if“±axisŽ‘Y5°‘Ç´'x'Ž‘ w¬,“the“z-y“plane,“if“´'y'Ž‘›´¬,“the“x-z“plane.Ž¡‘ +A¸ãt–nthis“time,›´JI'm“not“adding“the“routines“that“will“do“this,˜whicš¸ãh“will“en˜tail“c˜hanging“±tr‘ÿ}'ansformŽ‘4s¬andŽ¡pGossibly‘z¨±p‘ÿ}'erspŽ‘<í¬,‘ƒýI'm–z¨just“adding“±axisŽ‘·p¬.‘áÀI‘zžmš¸ãust“also“add“a“function“for“c˜hanging“axis“without“c˜hanging“an˜y“ofŽ¡the–UUother“data“mem¸ãbGers.‘qÇTO“DO:“Add“these“routines!!Ž¡‘ +[²LDF‘T2002.09.14.¬]Ž‘Y;Added‘UU­T‘ÿ +«ransformŽ‘;'±p‘ÿ}'erspŽ‘Ràl¬.‘qÇIt's–UUneeded“bGecause“I“need“to“get“the“µzŽ‘ ÁȬv‘ÿqÇalue“of“theŽ¡±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘R e¬after–øgthe“transformation“that“puts“the“­F‘ÿ +«oQÇcusŽ‘&æ¬in¸ãto“standard“pšGosition,‘a+but“b˜efore“theŽ¡p•Gersp“ectiv¸ãe–Úütransformation“is“pšGerformed.‘¼This“µzŽ‘ ͬv‘ÿqÇalue“can“b˜e“used“in“an“algorithm“for“surfaces“hiding.‘¼IfŽ¡this–GHwš¸ãere“not“the“case,‘JI‘GDcould“com˜bine“the“transformations,‘JbGecause“matrix“m˜ultiplication“is“assoGciativ˜e“(itŽ¡is–UUnot,“ho•¸ãw“ev“er,›UUcomm“utativ“e,˜except˜with˜spGecial˜matrices).Ž¡‘ +[²LDF‘T2002.09.11.¬]Ž‘YÅzAdded‘”­classŽ‘°$F‘ÿ +«oQÇcusŽ‘@¸¬and–”the“follo¸ãwing“constructors:‘ìDThe“default“constructor“with“noŽ¡argumenš¸ãts,‘»’the–•!one“with“t˜w˜o“­P•®9oin“tŽ‘ ÄŠ¬argumen˜ts“and“a“­realŽ‘ˆ±ar‘ÿ}'gumentŽ‘B&¬,‘»’and“the“one“with“sev˜en“­realŽ‘ˆ¬argumen˜ts.ަ‘ +­formatŽ‘3c(±F‘ÿ;¼o‘ÿ}'cusŽ‘UxintŽŽ¦°h–ª¨¬De ne‘UU­classŽ‘5¦F‘ÿ +«oQÇcusŽ‘?jö¯600“°i‘ÇŽ¡‘ +­classŽ‘$àRF‘ÿ +«oQÇcusŽ‘E*ó°fŽ¡‘­P•®9oin“tŽ‘2p‘ÿ}'ositionŽ‘V3ö¬;Ž¡‘­P•®9oin“tŽ‘2dir–ÿ}'e“ctionŽ‘Yè¬;Ž¡‘­P•®9oin“tŽ‘2upŽ‘>Ž]¬;Ž¡‘­realŽ‘*³0±distanc‘ÿ}'eŽ‘Nù-¬;Ž¡‘­realŽ‘*³0±angleŽ‘Bsƒ¬;Ž¡‘­c®9harŽ‘-jK±axisŽ‘?§¬;Ž¡‘­T‘ÿ +«ransformŽ‘KÈÔ±tr‘ÿ}'ansformŽ‘w|¬;Ž¡‘­T‘ÿ +«ransformŽ‘KÈÔ±p‘ÿ}'erspŽ‘c‹¬;ަ‘ +­publicŽ‘)=Ö¬:‘°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°iŽ¡‘ +g¬;ŽŸ ¯This–ÕXco® ´to® ´cŽ‘kÆÜontinue.\n\n"Ž’³T5°‘DZ ushŽ‘€¬;Ž¡‘°gަ‘­T‘ÿ +«ransformŽ‘KÜ/±unalign‘‰ffŽ‘®upŽ‘~¬=‘çZ±tr‘ÿ}'ansformŽ‘.š›µ:±inverseŽ‘ ‡¬(‘ª¨);‘ª¯µ=°‘X¬Use–h°the“pGositiv¸ãe“y-axis“for“the“\up"“direction,Ž¡‘(if‘UU±axisŽ›Y5°‘Ç´'x'Ž‘b̬or‘UU´'z'Ž‘›´¬,–UUand“the“pGositiv¸ãe“x-axis“if“±axisŽ˜°‘Ç´'y'Ž‘ w¬.‘o°µ=ަ‘­ifŽ‘´ú¬(±axisŽ‘à°‘Ç´'z'Ž‘FW°_‘8à±axisŽ‘<À°‘Ç´'x'Ž‘ w¬)‘±upŽ‘ž¾µ:±setŽ‘ x„¬(0Ž‘µ;‘ª¨¬1Ž–ª©µ;‘ª¨¬0Ž“);Ž¡‘­elseŽ‘+Øá±upŽ‘7wŸµ:±setŽ‘ x„¬(1Ž‘µ;‘ª¨¬0Ž–ª©µ;‘ª¨¬0Ž“);Ž¡‘­ifŽ‘´ú¬(±angleŽ‘‡k°6¬=‘Ç0Ž‘Ç)‘°fŽ¡‘­ifŽ‘)´û¬(±axisŽ‘à°‘Ç´'z'Ž‘ w¬)‘±upŽ‘eÖ°¬=ŽŽ‘"ô ±tr‘ÿ}'ansformŽ‘N§Nµ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱangleŽ‘!2¬);Ž¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±axisŽ‘à°‘Ç´'x'Ž‘ w¬)‘±upŽ‘eÖ°¬=ŽŽ‘"ô ±tr‘ÿ}'ansformŽ‘N§Nµ:±r‘ÿ}'otateŽ‘o>¬(°Ž‘DZangleŽ‘‡q¬);Ž¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±axisŽ‘à°‘Ç´'y'Ž‘ w¬)‘±upŽ‘eÖ°¬=ŽŽ‘"ô ±tr‘ÿ}'ansformŽ‘N§Nµ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨°Ž‘ qƱangleŽ‘!2¬);Ž¡‘­elseŽ‘5Øâ°fŽ¡‘(±c‘ÿ}'errŽ‘@hú°‘³P´"ERROR!® ´In® ´Focus::FoŽ‘n³cus():\n"Ž’¤,±°‘³P´"This® ´can't® ´happen!® Ž‘n³´\ŽŽ¡‘<® ´axis® ´has® ´invalid® ´vaŽ’¤ÿÊlue:® ´"Ž’È­°‘бaxisŽ‘Qâ°‘бend‘‚ØlŽ‘ܰ‘Š´"Rotating® ´around® ´z-aŽ‘lŠQxis.\n"Ž’•[1°Ž¡‘<´"Enter® ´® ´to® ´tŽ’¤ÿÊry® ´to® ´continue.\n"Ž’Í°‘DZ ushŽ‘€¬;Ž¡‘(±upŽ‘6eÚ°¬=ŽŽ‘Eô±tr‘ÿ}'ansformŽ‘q§Rµ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱangleŽ‘!2¬);Ž¡‘°gŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±upŽ‘ž¾µ:±showŽ‘Šÿ¬(´"up® ´after® ´rotation"Ž‘dF/¬);Ž¡‘°gŽ¡‘±upŽ‘"eذ¬=ŽŽ‘1ô±unalign‘‰ffŽ‘®upŽ‘a2›¬;Ž¡‘±upŽ‘žÀµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘±tr‘ÿ}'ansformŽ‘?³Cµ:±shiftŽ‘}¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱdistanc‘ÿ}'eŽ‘-·Ã¬);Ž¡‘±p‘ÿ}'erspŽ‘+ÂGµ:±set‘‰ffŽ‘®elementŽ‘2 ×¬(2Ž‘µ;‘ª¨¬2Ž–ª©µ;‘ª¨¬0Ž“);Ž¡‘±p‘ÿ}'erspŽ‘+ÂGµ:±set‘‰ffŽ‘®elementŽ‘2 ×¬(2Ž‘µ;‘ª¨¬3Ž–ª©µ;‘ª¨¬1Ž“µ=±distanc‘ÿ}'eŽ‘$Eý¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Focus()® ´(7® Ž‘kÆÜ´real® ´arguments).\n"Ž’ÒÔ#°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽŸ ¯See–ÕXalso“sections“607,“610,“612,“614,“616,“618,“626,“and“629.ŽŽŽŒ‹¨ ÍV Šn ý‘ì¬168–¯CONSTRÃŽUCTOR’Îä3DLDF-1.1.5.1“°x¬605Ž €n ý•@P¯This–ÕXcoÄç¬&Ž‘FŒ±dirŽ‘T‡aµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±distŽ‘G”åµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angŽ‘J +6¬=‘Ç0µ:¬0ŽŽ‘Ž7µ;‘ª¨­c®9harŽ‘ñ±axŽ‘)S$¬=‘Ç´'z'Ž‘ w¬);Ž¡­610.ަ°h–ª¨¬De ne‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯605“°i‘Ǭ+°ޤ ‘ +­F‘ÿ +«oQÇcusŽ‘'õQ¬::‘­F‘ÿ +«oQÇcusŽ‘õP¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p‘ÿ}'osŽ‘Tµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±dirŽ‘T‡aµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±distŽ‘G”åµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angŽ‘GCµ;‘ª¨­c®9harŽ‘ñ±axŽ‘&Œ ¬)Ž¡‘ +°fŽ¡‘­F‘ÿ +«oQÇcusŽ‘4J£µfŽ‘:C‰¬(±p‘ÿ}'osŽ‘!µ:±get‘‰ffŽ‘®xŽ‘Žg¬(–ª¨)µ;“±p‘ÿ}'osŽ›Ìjµ:±get‘‰ffŽ‘®yŽ‘t¬(“)µ;“±p‘ÿ}'osŽ˜µ:±get‘‰ffŽ‘®zŽ‘¬(“)µ;“±dirŽ›¦µ:±get‘‰ffŽ‘®xŽ‘Žg¬(“)µ;“±dirŽ˜µ:±get‘‰ffŽ‘®yŽ‘t¬(“)µ;“±dirŽ˜µ:±get‘‰ffŽ‘®zŽ‘¬(“)µ;“±distŽ‘·µ;“±angŽ‘eNµ;“±axŽ‘ !ì);ަ‘°Ž‘±thisŽ‘,²Ñ¬=‘ǵfŽ‘¿þ¬;Ž¡‘ +°gŽŸ­611.– üSetting‘ÕTfunction.“¬[²LDF‘T2002.09.17.¬]Ž‘Zˆ6Added–UUthis“function.ަ°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"¬«±setŽ‘0%/¬(­constŽ‘ÙtP•®9oin“tŽ‘"‹¬&Ž‘E驱dirŽ‘Såµ;‘ª¨­constŽ‘„realŽ‘5æ±distŽ‘Fò‰µ;‘ª¨­constŽ‘„realŽ‘5æ±angŽ‘IgÚ¬=‘Ç0µ:¬0ŽŽ‘Ž7µ;‘ª¨­c®9harŽ‘ÃñaxŽ‘)ö¬=‘Ç´'z'Ž‘ w¬);ŽŸ­612.ަ°h–ª¨¬De ne‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯605“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙF‘ÿ +«oQÇcusŽ‘@ó)¬::‘±setŽ‘xˆ¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p‘ÿ}'osŽ‘Tµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±dirŽ‘T‡aµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±distŽ‘G”åµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angŽ‘GCµ;‘ª¨­c®9harŽ‘ñ±axŽ‘&Œ ¬)Ž¡‘ +°fŽ¡‘­F‘ÿ +«oQÇcusŽ‘4J£µfŽ‘:C‰¬(±p‘ÿ}'osŽ‘!µ:±get‘‰ffŽ‘®xŽ‘Žg¬(–ª¨)µ;“±p‘ÿ}'osŽ›Ìjµ:±get‘‰ffŽ‘®yŽ‘t¬(“)µ;“±p‘ÿ}'osŽ˜µ:±get‘‰ffŽ‘®zŽ‘¬(“)µ;“±dirŽ›¦µ:±get‘‰ffŽ‘®xŽ‘Žg¬(“)µ;“±dirŽ˜µ:±get‘‰ffŽ‘®yŽ‘t¬(“)µ;“±dirŽ˜µ:±get‘‰ffŽ‘®zŽ‘¬(“)µ;“±distŽ‘·µ;“±angŽ‘eNµ;“±axŽ‘ !ì);ަ‘°Ž‘±thisŽ‘,²Ñ¬=‘ǵfŽ‘¿þ¬;Ž¡‘ +°gŽŸ­613.– üAssignmen®9t.“¬[²LDF‘T2002.10.13.¬]Ž‘Z­ŸAdded–z¾this“function.‘âNo¸ãw“using“it“in“all“but“the“ rst“of“the“non-Ž¡default–ãžconstructors.‘¢This“sa•¸ãv“es–ãžon“duplicating“coGde“and“reduces“the“probabilitš¸ãy“of“bugs“that“migh˜t“ariseŽ¡from–UUinconsistencies“among“the“constructors“and“setting“functions.ަ°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°Ž¡‘ +­constŽ‘(*£F‘ÿ +«oQÇcusŽ‘HuD¬&Ž‘PuC¬&Ž‘FuC¬&Ž‘F¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱangleŽ‘!2¬);Ž¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±axisŽ‘à°‘Ç´'x'Ž‘ w¬)‘±upŽ‘eÖ°¬=ŽŽ‘"ô ±tr‘ÿ}'ansformŽ‘N§Nµ:±r‘ÿ}'otateŽ‘o>¬(°Ž‘DZangleŽ‘‡q¬);Ž¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±axisŽ‘à°‘Ç´'y'Ž‘ w¬)‘±upŽ‘eÖ°¬=ŽŽ‘"ô ±tr‘ÿ}'ansformŽ‘N§Nµ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨°Ž‘ qƱangleŽ‘!2¬);Ž¡‘­elseŽ‘5Øâ°fŽ¡‘(±c‘ÿ}'errŽ‘@hú°‘³P´"ERROR!® ´In® ´Focus::FoŽ‘n³cus():\n"Ž’¤,±°‘³P´"This® ´can't® ´happen!® Ž‘n³´\ŽŽ¡‘<® ´axis® ´has® ´invalid® ´vaŽ’¤ÿÊlue:® ´"Ž’È­°‘бaxisŽ‘Qâ°‘бend‘‚ØlŽ‘ܰ‘Š´"Rotating® ´around® ´z-aŽ‘lŠQxis.\n"Ž’•[1°Ž¡‘<´"Enter® ´® ´to® ´tŽ’¤ÿÊry® ´to® ´continue.\n"Ž’Í°‘DZ ushŽ‘€¬;Ž¡‘(±upŽ‘6eÚ°¬=ŽŽ‘Eô±tr‘ÿ}'ansformŽ‘q§Rµ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱangleŽ‘!2¬);Ž¡‘°gŽ¡‘gŽ¡‘±upŽ‘"eذ¬=ŽŽ‘1ô±unalign‘‰ffŽ‘®upŽ‘a2›¬;Ž¡‘±upŽ‘žÀµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘±tr‘ÿ}'ansformŽ‘?³Cµ:±shiftŽ‘}¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱdistanc‘ÿ}'eŽ‘-·Ã¬);Ž¡‘±p‘ÿ}'erspŽ‘+ÂGµ:±set‘‰ffŽ‘®elementŽ‘2 ×¬(2Ž‘µ;‘ª¨¬2Ž–ª©µ;‘ª¨¬0Ž“);Ž¡‘±p‘ÿ}'erspŽ‘+ÂGµ:±set‘‰ffŽ‘®elementŽ‘2 ×¬(2Ž‘µ;‘ª¨¬3Ž–ª©µ;‘ª¨¬1Ž“µ=±distanc‘ÿ}'eŽ‘$Eý¬);Ž¡‘ +°gŽŸ­617.‘ üSho®9w.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.09.17.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2003.07.09.¬]Ž‘Y;Made–UUthe“argumen¸ãts“­constŽ‘*¢¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±showŽ‘9ˆØ¬(­constŽ‘*¢stringŽ‘?Oï±text‘‰ffŽ‘®strŽ‘bÞK¬=‘Ç´"Focus:"Ž‘-Mhµ;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°±show‘‰ffŽ‘®tr‘ÿ}'ansformsŽ’„¸2¬=‘DZfalseŽ‘v\¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹« ÷æ Šn ý‘ì°x¬618–¯3DLDF-1.1.5.1’@°SHOÃŽW“¬171Ž €n ý•@P­618.ŽŸ°h–ª¨¬De ne‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯605“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙF‘ÿ +«oQÇcusŽ‘@ó)¬::‘±showŽ‘‹¬(­constŽ‘*¢stringŽ‘?Oï±text‘‰ffŽ‘®strŽ‘`3µ;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°±show‘‰ffŽ‘®tr‘ÿ}'ansformsŽ’ñ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘DZtext‘‰ffŽ‘®strŽ‘&Ut°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±p‘ÿ}'ositionŽ‘7DYµ:±showŽ‘Šÿ¬(´"position:"Ž‘:FG¬);Ž¡‘±dir–ÿ}'e“ctionŽ‘:øóµ:±showŽ‘Šÿ¬(´"direction:"Ž‘?†D¬);Ž¡‘±upŽ‘žÀµ:±showŽ‘Šÿ¬(´"up:"Ž‘ÆY¬);Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"distance® ´==® ´"Ž‘O”n°‘DZdistanc‘ÿ}'eŽ‘)Ô-°‘Ç´".® ´"Ž‘Œ°‘Ç´"axis® ´==® ´"Ž‘:”z°‘DZaxisŽ‘Êø°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"angle® ´==® ´"Ž‘?Ôw°‘DZangleŽ‘Nƒ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(±show‘‰ffŽ‘®tr‘ÿ}'ansformsŽ‘KA‚°‘DZtrueŽ‘‹°¬)‘°fŽ¡‘±tr‘ÿ}'ansformŽ‘I³Dµ:±showŽ‘Šÿ¬(´"transform:"Ž‘?†D¬);Ž¡‘±p‘ÿ}'erspŽ‘5ÂHµ:±showŽ‘Šÿ¬(´"persp:"Ž‘*†P¬);Ž¡‘°gŽ¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽ©­619.› üReturning–Ö•elemen®9ts“and“information.˜¬[²LDF‘T2002.09.18.¬]Ž‘Z‰MAdded–Vlthis“section.‘u The“functions“inŽ¡this–Ensection“are“noš¸ãw“necessary‘ÿ*ª,‘tsince“I'v˜e“made“­F‘ÿ +«oQÇcusŽ‘%€(¬a“­classŽ‘ ج(it“w˜as“formerly“a“­structŽ‘"¬),‘tand“the“dataŽ¡mem¸ãbGers‘UU­priv‘ÿ\rateŽ‘&ýÓ¬.ަ­620.‘ üGet‘ÕTpQÇosition.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.09.18.¬]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°ޤ ‘ +­inlineŽ‘)ŠIconstŽ‘G´ëP•®9oin“tŽ‘f¤ˆ¬&Ž‘nk¦±get‘‰ffŽ‘®p‘ÿ}'ositionŽ’¡ã¹¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±p‘ÿ}'ositionŽ‘[+¬;Ž¡‘ +°gަ­621.‘ üGet‘ÕTdirection.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.09.¬]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°ޤ ‘ +­inlineŽ‘)ŠIconstŽ‘G´ëP•®9oin“tŽ‘f¤ˆ¬&Ž‘nk¦±get‘‰ffŽ‘®dir–ÿ}'e“ctionŽ’¥˜S¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±dir–ÿ}'e“ctionŽ‘^ß­¬;Ž¡‘ +°gަ­622.– üGet‘ÕTdistance.“¬[²LDF‘T2002.09.18.¬]Ž‘Zˆ6Added–UUthis“function.ŽŸ°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIconstŽ‘G´ërealŽ‘^h¬&Ž‘f/7±get‘‰ffŽ‘®distanc‘ÿ}'eŽ’š¨ð¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±distanc‘ÿ}'eŽ‘\,¹¬;Ž¡‘ +°gަ­623.– üGet‘ÕTup.“¬[²LDF‘T2002.09.18.¬]Ž‘Zˆ6Added–UUthis“function.ŽŽŽŒ‹¬ @ Šn ý‘ì¬172–¯GET‘ÕXUP’8¾N3DLDF-1.1.5.1“°x¬623Ž €n ý•@P°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°ޤ ‘ +­inlineŽ‘)ŠIconstŽ‘G´ëP•®9oin“tŽ‘f¤ˆ¬&Ž‘nk¦±get‘‰ffŽ‘®upŽ’Š> ¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±upŽ‘C…z¬;Ž¡‘ +°gŽ©­624.‘ üGet‘ÕTtransform.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.09.18.¬]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°ޤ ‘ +­inlineŽ‘)ŠIconstŽ‘G´ëT‘ÿ +«ransformŽ‘}½¬&Ž’‡DÛ±get‘‰ffŽ‘®tr‘ÿ}'ansformŽ’Ã+ج(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ý¬;Ž¡‘ +°gަ­625.‘ üGet–ÕTtransform“elemen®9t.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.09.18.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2003.07.04.¬]Ž‘Y;Made–UUnon-inline.‘qÇIt“no¸ãw“calls“­T‘ÿ +«ransformŽ‘8ÈÖ¬::‘±get‘‰ffŽ‘®elementŽ‘4#²¬(‘ª®)“instead“of“accessingŽ¡±tr‘ÿ}'ansformŽ‘+³Aµ:±matrixŽ‘!”ð¬directly‘ÿ*ª.‘qÇThis–UUis“no“longer“pšGossible,“b˜ecause“­F‘ÿ +«oQÇcusŽ‘#Ÿö¬is“no“longer“a“­friendŽ‘$¼¬of“­T‘ÿ +«ransformŽ‘7ÈÒ¬.Ž¡‘ +[²LDF‘T2003.07.09.¬]Ž‘Y;Changed–UUthe“­constŽ‘!÷unsignedŽ‘Q·in®9tŽ‘c[ü¬argumen¸ãts“to“­constŽ‘!÷unsignedŽ‘Q·shortŽ‘l,S¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°ŽŸ ‘ +­realŽ‘ ³/±get‘‰ffŽ–®tr‘ÿ}'ansform‘‰ffŽ“elementŽ’ðô¬(­constŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S±r‘ÿ}'owŽ‘}8¾µ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±c‘ÿ}'olumnŽ’Ž +B¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹­ õ Šn ý‘ì°x¬626›¯3DLDF-1.1.5.1’ßPvGET–ÕXTRANSFÃŽORM“ELEMENT˜¬173Ž €n ý•@P­626.Ž©°h–ª¨¬De ne‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯605“°i‘Ǭ+°ޤ ‘ +­realŽ‘ l¦F‘ÿ +«oQÇcusŽ‘>aö¬::‘±get‘‰ffŽ–®tr‘ÿ}'ansform‘‰ffŽ“elementŽ‘b=ɬ(­constŽ‘äunsignedŽ‘MÔžshortŽ‘kX¸±r‘ÿ}'owŽ‘|e#µ;‘ª¨­constŽ‘ŽÁunsignedŽ‘OFshortŽ‘m`±c‘ÿ}'olumnŽ’6§¬)‘Ì­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±tr‘ÿ}'ansformŽ‘c™ýµ:±get‘‰ffŽ‘®elementŽ‘3#®¬(±r‘ÿ}'owŽ‘ kµ;‘ª¨±c‘ÿ}'olumnŽ‘!Ýï¬);Ž¡‘ +°gŽŸ­627.‘ üGet‘ÕTpQÇersp.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.09.18.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIconstŽ‘G´ëT‘ÿ +«ransformŽ‘}½¬&Ž’‡DÛ±get‘‰ffŽ‘®p‘ÿ}'erspŽ’¯:ܬ(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±p‘ÿ}'erspŽ‘O©¬;Ž¡‘ +°gŽŸ­628.‘ üGet–ÕTpQÇersp“elemen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.09.18.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2003.07.04.¬]Ž‘Y;Made–UUnon-inline.‘qÇIt“no¸ãw“calls“­T‘ÿ +«ransformŽ‘8ÈÖ¬::‘±get‘‰ffŽ‘®elementŽ‘4#²¬(‘ª®)“instead“of“accessingŽ¡±tr‘ÿ}'ansformŽ‘+³Aµ:±matrixŽ‘!”ð¬directly‘ÿ*ª.‘qÇThis–UUis“no“longer“pšGossible,“b˜ecause“­F‘ÿ +«oQÇcusŽ‘#Ÿö¬is“no“longer“a“­friendŽ‘$¼¬of“­T‘ÿ +«ransformŽ‘7ÈÒ¬.Ž¡‘ +[²LDF‘T2003.07.09.¬]Ž‘Y;Changed–UUthe“­constŽ‘!÷unsignedŽ‘Q·in®9tŽ‘c[ü¬argumen¸ãts“to“­constŽ‘!÷unsignedŽ‘Q·shortŽ‘l,S¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯602“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/±get‘‰ffŽ–®p‘ÿ}'ersp‘‰ffŽ“elementŽ‘n"ì(­constŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S±r‘ÿ}'owŽ‘}8¾µ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±c‘ÿ}'olumnŽ’Ž +B¬)‘UU­constŽ‘*¢¬;ŽŸ­629.ަ°h–ª¨¬De ne‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯605“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/F‘ÿ +«oQÇcusŽ‘>¨¬::‘±get‘‰ffŽ–®p‘ÿ}'ersp‘‰ffŽ“elementŽ‘No˜¬(­constŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S±r‘ÿ}'owŽ‘}8¾µ;‘ª¨­constŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖû±c‘ÿ}'olumnŽ’Ž +B¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±p‘ÿ}'erspŽ‘O©µ:±get‘‰ffŽ‘®elementŽ‘3#®¬(±r‘ÿ}'owŽ‘ kµ;‘ª¨±c‘ÿ}'olumnŽ‘!Ýï¬);Ž¡‘ +°gŽŸ­630.– üGlobal‘+àv‘ÿ\rariables.“¬[²LDF‘T2002.12.08.¬]Ž‘ZÓx!!‘SBUG.– —Commenš¸ãted-out,‘³hbGecause“of“a“bug“in˜v˜olving“trans-Ž¡formations.Ž¡‘ +Default–UUv‘ÿqÇalue.‘qÇCan“bGe“c¸ãhanged.ަ°h–ª¨¬Global‘UUv‘ÿqÇariables‘@¯18“°i‘Ǭ+°Ž¡‘ +­F‘ÿ +«oQÇcusŽ‘*J¢±default‘‰ffŽ‘®fo‘ÿ}'cusŽ‘b( ¬(0Ž‘µ;‘ª¨¬10ŽŽ– ªªµ;‘ª¨°Ž‘ qƬ10ŽŽ‘qȵ;‘ª¨¬0Ž›ª©µ;‘ª¨¬10ŽŽ“µ;‘ª¨¬0Ž˜µ;‘ª¨¬10ŽŽ“);ŽŽŽŒ‹® œ Šn ý‘ì¬174–¯GLOBAL‘ÕXV‘ÿ8ARIABLES’æ¢3DLDF-1.1.5.1“°x¬631Ž €n ý•@P­631.Ž©}°h›ª¨¬Declarations–UUfor“the“header“ le‘@¯21˜°i‘Ǭ+°ŽŸ ‘ +­externŽ‘.×F‘ÿ +«oQÇcusŽ‘Nhx±default‘‰ffŽ‘®fo‘ÿ}'cusŽ’†Fv¬;ޤ­632.‘ üPutting›ÕTP•®9oin“t˜and˜F‘ÿ +«oQÇcus˜together.Ž¡633.‘ üThis–ÕTis“what's“compiled.ަ‘ +°h–ª¨¬Include‘UU les‘@¯6“°iޤ ‘ +h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°iŽ¡‘ +h–ª¨¬De ne‘UU­classŽ‘5¦P•®9oin“tŽ‘>ò¯309“°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­P•®9oin“tŽ‘#/¡¯336˜°iŽ¡‘ +h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬constructors‘@¯325“°iŽ¡‘ +h–ª¨¬De ne‘UU­classŽ‘5¦F‘ÿ +«oQÇcusŽ‘?jö¯600“°iŽ¡‘ +h›ª¨¬De ne–UUcomparison“classes‘@¯498˜°iŽ¡‘ +h–ª¨¬De ne‘UU­staticŽ‘"ž.P•®9oin“tŽ‘Aˬdata‘UUmem¸ãbGers‘@¯310“°iŽ¡‘ +h–ª¨¬T¸ãypGe‘UUde nitions‘@¯15“°iŽ¡‘ +h–ª¨¬Global‘UUconstan¸ãts‘@¯22“°iŽ¡‘ +h–ª¨¬Global‘UUv‘ÿqÇariables‘@¯18“°iŽ¡‘ +h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°iŽ¡‘ +h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°iŽ¡‘ +h›ª¨¬De ne–UUnon-mem¸ãbGer“non-template“functions“for“­P•®9oin“tŽ‘#/¡¯481˜°iŽ¡‘ +h–ª¨¬De ne‘UU­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘;üð¬functions‘@¯314“°iŽ¡‘ +h–ª¨¬De ne‘UU­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜quadrupleŽ‘s<¬functions‘@¯316“°iŽ¡‘ +h–ª¨¬De ne‘UU­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Sœ ¬functions‘@¯318“°iŽ¡‘ +h–ª¨¬De ne‘UU­F‘ÿ +«oQÇcusŽ‘#Ÿö¬functions‘@¯605“°iŽ¡‘ +h–ª¨¬De ne‘UU­LabQÇelŽ‘"ì ¬functions‘@¯514“°iŽ¡‘ +h–ª¨¬De ne‘UU­PictureŽ‘,F·¬functions‘@¯264“°iŽŸ­634.‘ üThis–ÕTis“what's“written“to“®points.h­.ަ°h‘ª¨´points.hŽ‘5°ù¯634‘ª¨°i‘ÇŽ¡‘ +h–ª¨¬De ne‘UU­classŽ‘5¦P•®9oin“tŽ‘>ò¯309“°iŽ¡‘ +h–ª¨¬De ne‘UU­classŽ‘5¦F‘ÿ +«oQÇcusŽ‘?jö¯600“°iŽ¡‘ +h›ª¨¬De ne–UUcomparison“classes‘@¯498˜°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­P•®9oin“tŽ‘#/¡¯336˜°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“non-template“functions“for“­P•®9oin“tŽ‘#/¡¯480˜°iŽ¡‘ +h–ª¨¬T¸ãypGe‘UUde nitions‘@¯15“°iŽ¡‘ +h›ª¨¬Declarations–UUfor“the“header“ le‘@¯21˜°iŽŸ­635.– üLine“(®lines.web­).‘@`¬[²LDF‘T2002.10.29.¬]Ž‘mHš­LinesŽ’‹®¬are–UUnot“­ShapQÇesŽ‘&Êž¬.‘qÇThey“are“used“for“pGerformingŽ¡vš¸ãector–QýopGerations.‘pªA‘Qü­LineŽ‘ü|¬is“de ned“b˜y“a“­P•®9oin“tŽ‘">B¬represen˜ting“a“pGosition“v˜ector“and“a“­P•®9oin“tŽ‘">B¬represen˜ting“aŽ¡direction‘UUv¸ãector.Ž¡‘ +[²LDF‘T2003.06.03.¬]Ž‘Y;TO–UUDO:“Add“setting“functions.ŽŸHiŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.04.08.¬]Ž‘YðÛAdded–=õthis“section.‘+¦[²LDF‘T2002.04.12.¬]Ž‘W€Created“this“ le.‘+¦Remo•¸ãv“ed–=õthe“coGde“for“­LineŽŽ¡¬from–UU®points.web“¬and“put“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.Ž¡‘ +[²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ŽŽŽŽŒ‹¯  Šn ý‘ì°x¬635–¯3DLDF-1.1.5.1’oLINE‘€(®LINES.WEB¯)“¬175Ž €n ý•@P°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘Ǭ+°ޤ ‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´lines.web,v® ´1.Ž‘kÆÜ4® ´2004/01/12® ´21:30:2Ž’ÔÆ 0® ´lfinsto1® ´Exp® ´$"Ž’.ŒÕ¬;Ž©­636.‘ ü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"ŽŽ¡¬#­includeŽ‘'Ø~´"pictures.h"ŽŽ¡¬#­includeŽ‘'Ø~´"points.h"ŽŽ¦­637.‘ üLine–ÕTstruct“de nition.ޤ‘ +formatŽ‘3c(±LineŽ‘P‹NPointŽŽ¡°h–ª¨¬De ne‘UU­structŽ‘$õLLineŽ‘?Ó¯637“°i‘Çޤ ‘ +­structŽ‘+ŸøLineŽ‘EMаfŽ¡‘ +­publicŽ‘)=Ö¬:‘­P•®9oin“tŽ‘#ï±p‘ÿ}'ositionŽ‘G3ô¬;Ž¡‘­P•®9oin“tŽ‘2dir–ÿ}'e“ctionŽ‘Yè¬;ŽŸ‘°h–ª¨¬Declare‘UU­LineŽ‘-¬constructors‘@¯639“°iŽ¡‘h–ª¨¬Declare‘UU­LineŽ‘-¬functions‘@¯643“°iŽ¡‘ +g¬;ŽŸ ¯This–ÕXcoÄç¬&Ž‘FŒ±dirŽ‘WNy¬=‘DZoriginŽ“¬);ޤ ¯See–ÕXalso“section“641.Ž¡This–ÕXcoÄç¬&Ž‘FŒ±dirŽ‘T‡a¬)Ž¡‘ +:‘qDZp‘ÿ}'ositionŽ‘'¶¬(±p‘ÿ}'osŽ‘!¬)µ;‘ÿý±dir–ÿ}'e“ctionŽ‘+øî¬(±dirŽ‘ û\¬)‘UU°fŽ¡‘±p‘ÿ}'ositionŽ‘7DYµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘±dir–ÿ}'e“ctionŽ‘:øóµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘ +°gޤ ¯See–ÕXalso“section“642.Ž¡This–ÕXco¼¬or“µlŽ˜:±dir–ÿ}'e“ctionŽ‘&øñµ:±tr‘ÿ}'ansformŽ‘+³A¬,‘™so“I'mŽ¡doing–UUit“just“to“bGe“sure.ަ°h–ª¨¬Declare‘UU­LineŽ‘-¬constructors‘@¯639“°i‘Ǭ+°Ž¡‘ +­LineŽ‘ X„¬(­constŽ‘*¢LineŽ‘7Øz¬&Ž‘?Ÿ˜µlŽ‘BÍÒ¬);ŽŸ­642.ަ°h–ª¨¬De ne‘UU­LineŽ‘-¬constructors‘@¯640“°i‘Ǭ+°Ž¡‘ +­LineŽ‘!Xˆ¬::‘­LineŽ‘X‡¬(­constŽ‘*¢LineŽ‘7Øz¬&Ž‘?Ÿ˜µlŽ‘BÍÒ¬)Ž¡‘ +:‘qDZp‘ÿ}'ositionŽ‘'¶¬(µlŽ–.::±p‘ÿ}'ositionŽ‘#DW¬)µ;‘ÿý±dir–ÿ}'e“ctionŽ‘+øî¬(µlŽ“:±dir–ÿ}'e“ctionŽ‘&øñ¬)‘UU°fŽ¡‘±p‘ÿ}'ositionŽ‘7DYµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘±dir–ÿ}'e“ctionŽ‘:øóµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘ +°gŽŸ­643.‘ üAssignmen®9t.ަ°h–ª¨¬Declare‘UU­LineŽ‘-¬functions‘@¯643“°i‘ÇŽ¡‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”ެ=Ž‘V[¬(­constŽ‘*¢LineŽ‘7Øz¬&Ž‘?Ÿ˜µlŽ‘BÍÒ¬);ޤ ¯See–ÕXalso“sections“646,“648,“and“652.Ž¡This–ÕXco‹Û¬&Ž‘FRù±pp0Ž‘W†)µ;‘ª¨­constŽ‘ ŽP•®9oin“tŽ‘@6ƒ¬&Ž‘Gý¡±pp1Ž‘Y0ѵ;‘ª¨­constŽ‘ ŽP•®9oin“tŽŽ¡‘2¬&Ž‘9Ç#±qq0Ž‘Iô¡µ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±qq1Ž‘V¹ƒ¬)Ž¡‘ +°f‘µ=°‘ÿý¬ST–ÿ*ªAR“T–UUHERE.“DEBUGGING.“[²LDF‘T2003.06.24.¬]Ž‘P²â°µ=Ž¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ޤ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Point::intŽ‘kÆÜersection_point()\n"Ž’ÕM¬;Ž¡‘­LineŽ‘-­Ú±l‘‰ffŽ‘®pŽ‘<ò¬=‘DZpp0Ž‘úHµ:±get‘‰ffŽ‘®lineŽ‘!O¬(±pp1Ž‘30¬);Ž© ‘­LineŽ‘-­Ú±l‘‰ffŽ‘®qŽ‘<°+¬=‘DZqq0Ž‘ô–µ:±get‘‰ffŽ‘®lineŽ‘!O¬(±qq1Ž‘-~¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fަ‘±pp0Ž‘/33µ:±showŽ‘Šÿ¬(´"pp0"Ž‘ÆY¬);ަ‘±pp1Ž‘/33µ:±showŽ‘Šÿ¬(´"pp1"Ž‘ÆY¬);ަ‘±qq0Ž‘.-µ:±showŽ‘Šÿ¬(´"qq0"Ž‘ÆY¬);ަ‘±qq1Ž‘.-µ:±showŽ‘Šÿ¬(´"qq1"Ž‘ÆY¬);ަ‘±l‘‰ffŽ‘®pŽ‘*}0µ:±showŽ‘Šÿ¬(´"l_p"Ž‘ÆY¬);ަ‘±l‘‰ffŽ‘®qŽ‘*;<µ:±showŽ‘Šÿ¬(´"l_q"Ž‘ÆY¬);ަ‘°gŽ¡‘­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘dF¸±brpŽ‘v¾¬=‘DZl‘‰ffŽ‘®pŽ‘DEµ:±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹¬(±l‘‰ffŽ‘®qŽ‘ ;9¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fަ‘±c‘ÿ}'outŽ‘4 R°‘Ç´"brp.b® ´==® ´"Ž‘?Ôw°‘DZbrpŽ‘Ùµ:bŽ‘°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘4 R°‘Ç´"brp.r® ´==® ´"Ž‘?Ôw°‘DZbrpŽ‘Ùµ:rŽ‘‘,°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±brpŽ‘-ñµ:±ptŽ‘ äµ:±showŽ‘Šÿ¬(´"brp.pt"Ž‘*†P¬);ަ‘°gަ‘­ifŽ‘´ú¬(±brpŽ‘îµ:rŽ‘‘,°6¬=‘Ç0Ž‘ ÿù°_‘8à±brpŽ–Jε:bŽ‘°‘DZfalseŽ‘¯<°_‘8à±brpŽ“µ:±ptŽ‘ «µ°‘Ç´INVALID_POINTŽ‘GY¬)‘­returnŽ‘(溴INVALID_BOOL_POINTŽ’‡ìì¬;Ž¡‘­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§±bpŽ‘W‚¬;Ž¡‘±bpŽ‘Ú{µ:±ptŽ‘ «µ¬=‘DZbrpŽ‘Ùµ:±ptŽ‘ ä¬;Ž¡‘­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘E@ƒ±br‘‰ffŽ‘®pŽ‘ZÇœ¬=‘DZbrpŽ‘Ùµ:±ptŽ‘ äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±pp0Ž‘30µ;‘ª¨±pp1Ž‘ÝØ¬);ަ‘­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘E@ƒ±br‘‰ffŽ‘®qŽ‘Z…¨¬=‘DZbrpŽ‘Ùµ:±ptŽ‘ äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±qq0Ž‘-~µ;‘ª¨±qq1Ž‘Ø&¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fަ‘±c‘ÿ}'outŽ‘4 R°‘Ç´"br_p.first® ´==® ´"Ž‘Zh°‘DZbr‘‰ffŽ‘®pŽ‘‡µ:± rstŽ‘|°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘4 R°‘Ç´"br_p.second® ´==® ´"Ž‘_Te°‘DZbr‘‰ffŽ‘®pŽ‘‡µ:±se–ÿ}'c“ondŽ‘ nß°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘4 R°‘Ç´"br_q.first® ´==® ´"Ž‘Zh°‘DZbr‘‰ffŽ‘®qŽ‘E%µ:± rstŽ‘|°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘4 R°‘Ç´"br_q.second® ´==® ´"Ž‘_Te°‘DZbr‘‰ffŽ‘®qŽ‘E%µ:±se–ÿ}'c“ondŽ‘ nß°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘°gަ‘±bpŽ‘Ú{µ:bŽ‘¬=‘Ç(±br‘‰ffŽ‘®pŽ‘Àµ:± rstŽ‘^‘8à±br‘‰ffŽ‘®qŽ‘¶íµ:± rstŽ‘µª¬);ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Point::inteŽ‘kÆÜrsection_point()\n"Ž’Ð ¬;ަ‘­returnŽ‘7æ¼±bpŽ‘BÁ5¬;ަ‘ +°gަ¬#­endifŽŽŸ648.– üGet‘ÓOdistance.“¬[²LDF‘T2002.04.22.¬]Ž‘Z†uRenamed–S”this“±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘7ÍM¬(›ª®)“from“±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘Pêj¬(˜).‘q1The“oldަvš¸ãersion–äÅof“­P•®9oin“tŽ‘!¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(‘ª®),‘H whic˜h“I‘ä^am“curren˜tly“using“again,‘H since“the“new“v˜ersion“w˜asn'tަw¸ãorking,›Ãreturns–Fa“­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘8ጬ,˜whicš¸ãh“is“sensible.‘›If“I‘7start“using“the“commen˜ted-out“v˜ersion“abGo˜v˜e“again,ަI‘;Øshould›;ßha•¸ãv“e˜it˜return˜a˜­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘;ʬtoGo,‘@öinstead˜of˜a˜­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘P-@¬.‘iJThis˜will˜mak“e˜it˜easier˜to˜switc“hަbacš¸ãk–UUto“the“old“v˜ersion,“if“I“ha˜v˜e“problems“again.ަ‘ +[²LDF‘T2003.06.11.¬]Ž‘XÔ"ST–ÿ*ªAR“T–!/HERE.›!¬::‘±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½¬(­constŽ‘*¢LineŽ‘7Øz¬&Ž‘?Ÿ˜µlŽ‘BÍÒ¬)‘UU­constŽ‘*¢°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Line::get_Ž‘kÆÜdistance()\n"Ž’°¬;Ž¡‘­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘nF¹±brpŽ‘}X§¬;ަ‘­P•®9oin“tŽ‘<ï ±normalŽ‘` p¬=‘DZdir–ÿ}'e“ctionŽ‘)À µ:±cr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé¬(µlŽ‘.::±dir–ÿ}'e“ctionŽ‘&øñ¬);Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±normalŽ‘%V¸µ:±showŽ‘Šÿ¬(´"normal® ´after® ´cross® Ž‘hÿÄ´product."Ž’˜Æ¬);Ž¡‘­P•®9oin“tŽ‘<ï ±normal‘‰ffŽ‘®unitŽ‘u¬=‘DZnormalŽ‘#е:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(‘ª¨);Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±normal‘‰ffŽ‘®unitŽ‘:Oɵ:±showŽ‘Šÿ¬(´"normal_unit."Ž‘J>¬);ަ‘­ifŽ‘)´û¬(±normal‘‰ffŽ‘®unitŽ‘8ᰑDZoriginŽ‘½9¬)‘°fަ‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Lines® ´are® ´parallel.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;ަ‘(±brpŽ‘7òµ:bŽ‘¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý¬No‘UUin¸ãtersection.‘o°µ=ަ‘(±brpŽ‘7òµ:±ptŽ‘ «µ¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘(­P•®9oin“tŽ‘Ftemp‘‰ffŽ‘®ptŽ‘i¸S¬(µlŽ‘.::±p‘ÿ}'ositionŽ‘#DW¬);Ž¡‘(±temp‘‰ffŽ‘®ptŽ‘Mΰ¬=ŽŽ‘_å"±p‘ÿ}'ositionŽ’ƒ)y¬;ަ‘(±temp‘‰ffŽ‘®ptŽ‘Mά=‘DZtemp‘‰ffŽ‘®ptŽ‘%ʵ:±cr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé¬(±dir–ÿ}'e“ctionŽ‘&øñ¬);ަ‘(±brpŽ‘7òµ:rŽ‘‘,¬=‘DZtemp‘‰ffŽ‘®ptŽ‘%ʵ:±magnitudeŽ–.=r¬(›ª¨)µ=±dir–ÿ}'e“ctionŽ‘&øñµ:±magnitudeŽ“¬(˜);‘µ=°‘ÿý¬[²LDF‘T2002.10.29.¬]Ž‘T7Distance.‘o°µ=ަ‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘°fަ‘2±c‘ÿ}'outŽ‘H T°‘Ç´"distance® ´==® ´"Ž‘O”n°‘DZbrpŽ‘Ùµ:rŽ‘‘,°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘(°gަ‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Line::get_dŽ‘kÆÜistance()\n"Ž’«M ¬;ަ‘(­returnŽ‘Kæ¾±brpŽ‘Zø¬¬;ަ‘°gަ‘­elseŽ‘4.7°fަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Lines® ´are® ´not® ´paralŽ‘kÆÜlel.\n"Ž’“ÔG°‘DZ ushŽ‘€¬;ަ‘±brpŽ‘-ñµ:rŽ‘‘,¬=‘DZfabsŽ‘ùê¬((µlŽ‘.::±p‘ÿ}'ositionŽ–%}7°‘8à±p‘ÿ}'ositionŽ“¬)µ:±dot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!¬(±normal‘‰ffŽ‘®unitŽ‘5Oɬ));ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"distance® ´==® ´"Ž‘O”n°‘DZbrpŽ‘Ùµ:rŽ‘‘,°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ŽŽŽŒ‹´ aƒ Šn ý‘ì¬180–¯GET‘ÕXDIST‘ÿJªANCE’ˆÚ3DLDF-1.1.5.1“°x¬650Ž €n ý•@P­650.‘ ü¬Lines›UUha•¸ãv“e˜an˜in“tersection.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2003.08.27.¬]Ž‘X¥ëCommen¸ãted-out–óthe“declarations“of“±v‘‰ffŽ‘®xŽ‘•Z¬,‘®±v‘‰ffŽ‘®yŽ‘޲¬,›®and“±v‘‰ffŽ‘®zŽ‘ô¬,˜since“they“are“not“used.‘QI‘òìha•¸ãv“en'tŽ¡deleted–UUthem,“in“case“I“need“them“someda¸ãy‘ÿ*ª.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­LineŽ‘-¬functions‘@¯644“°i‘Ǭ+°ޤ ‘ +­ifŽ‘´ù¬(±brpŽ‘îµ:rŽ‘‘,<‘Ç­P•®9oin“tŽ‘ad¬::Ž‘%epsilonŽ‘E^¦¬(‘ª¨))‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Lines® ´have® ´an® ´interŽ‘kÆÜsection.\n"Ž’¨Ô;°‘DZ ushŽ‘€¬;Ž¡‘±brpŽ‘#ðµ:rŽ‘‘,¬=‘Ç0Ž‘Ç;Ž¡‘±brpŽ‘#ðµ:bŽ‘¬=‘DZtrueŽ‘‹°¬;Ž©‘­realŽ‘*³0±a‘‰ffŽ‘®xŽ‘<Ÿv¬=‘DZp‘ÿ}'ositionŽ‘& oµ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨);Ž¡‘­realŽ‘*³0±a‘‰ffŽ‘®yŽ‘<…%¬=‘DZp‘ÿ}'ositionŽ‘& oµ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨);Ž¡‘­realŽ‘*³0±a‘‰ffŽ‘®zŽ‘<¬=‘DZp‘ÿ}'ositionŽ‘& oµ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨);Ž¡‘­realŽ‘*³0±b‘‰ffŽ‘®xŽ‘<¬=‘ǵlŽ‘õR:±p‘ÿ}'ositionŽ‘#DWµ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨);Ž¡‘­realŽ‘*³0±b‘‰ffŽ‘®yŽ‘<L¬=‘ǵlŽ‘õR:±p‘ÿ}'ositionŽ‘#DWµ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨);Ž¡‘­realŽ‘*³0±b‘‰ffŽ‘®zŽ‘;–7¬=‘ǵlŽ‘õR:±p‘ÿ}'ositionŽ‘#DWµ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨);Ž¡#­ifŽ‘ ´ø¬0ŽŽ¡‘­realŽ‘*³0±v‘‰ffŽ‘®xŽ‘<¬=‘DZdir–ÿ}'e“ctionŽ‘)À µ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨);Ž¡‘­realŽ‘*³0±v‘‰ffŽ‘®yŽ‘<L¬=‘DZdir–ÿ}'e“ctionŽ‘)À µ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨);Ž¡‘­realŽ‘*³0±v‘‰ffŽ‘®zŽ‘;–7¬=‘DZdir–ÿ}'e“ctionŽ‘)À µ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨);Ž¡#­endifŽŽ¡‘realŽ‘*³0±w‘‰ffŽ‘®xŽ‘>'þ¬=‘ǵlŽ‘õR:±dir–ÿ}'e“ctionŽ‘&øñµ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨);Ž¡‘­realŽ‘*³0±w‘‰ffŽ‘®yŽ‘> ­¬=‘ǵlŽ‘õR:±dir–ÿ}'e“ctionŽ‘&øñµ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨);Ž¡‘­realŽ‘*³0±w‘‰ffŽ‘®zŽ‘=¡˜¬=‘ǵlŽ‘õR:±dir–ÿ}'e“ctionŽ‘&øñµ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨);Ž¡‘­realŽ‘*³0±u‘‰ffŽ‘®xŽ‘<àâ¬=‘DZnormalŽ‘#е:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨);Ž¡‘­realŽ‘*³0±u‘‰ffŽ‘®yŽ‘<Æ‘¬=‘DZnormalŽ‘#е:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨);Ž¡‘­realŽ‘*³0±u‘‰ffŽ‘®zŽ‘aZ¬&Ž‘F(xµpŽ‘K0x¬);ŽŽŽŒ‹¸ – Šn ý‘ì¬184–¯COPY‘ÕXCONSTRÃŽUCTOR’ûÄ3DLDF-1.1.5.1“°x¬666Ž €n ý•@P­666.Ž©°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°ޤ ‘ +­PlaneŽ‘'áh¬::‘­PlaneŽ‘ág¬(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(xµpŽ‘K0x¬)Ž¡‘ +°fŽ¡‘Ž‘±thisŽ‘,²Ñ¬=‘ǵpŽ‘Ï¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­667.‘ üP•®9oin“t‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.03.¬]Ž‘Y_¾Changed–¬Øthis“function.‘xPBUG‘¬ÁFIX:“±distanc‘ÿ}'eŽ‘+Ÿ­¬is“no¸ãw“calculated,‘¸instead“of“bGeing“passedŽ¡as–UUan“argumenš¸ãt.‘qDZnormalŽ‘(Ô¬is“no˜w“made“a“unit“v˜ector.Ž¡‘ +[²LDF‘T2003.06.06.¬]Ž‘YpCChanged,›×_so–½]that“if“±p‘ÿ}'ointŽ‘©F¬or“±normalŽ‘'Ñr¬is“equal“to“´INVALID_POINTŽ‘Hƒž¬,˜the“other“one“is“alsoŽ¡set–UUto“´INVALID_POINTŽ‘H–¬,“and“±distanc‘ÿ}'eŽ‘*ð§¬is“set“to“´INVALID_REALŽ‘BÛ™¬.Ž¡‘ +[²LDF‘T2003.06.06.¬]Ž‘Y Argumenš¸ãts–a%are“no“longer“optional.‘•8I'v˜e“made“this“c˜hange,‘dbGecause“I'v˜e“added“a“defaultŽ¡constructor.Ž¡‘ +[²LDF‘T2003.06.06.¬]Ž‘XùÁAdded–FÛconditional“to“test“for“case“that“±p‘ÿ}'ointŽ‘ug°Ž‘"<…±normalŽ‘B“=¬.‘lôIn“this“case,‘IÀa“w¸ãarning“messageŽ¡is–UUprin¸ãted“to“standard“error,“they“are“bGoth“set“to“´INVALID_POINTŽ‘H–¬,“and“±distanc‘ÿ}'eŽ‘*ð§¬is“set“to“´INVALID_REALŽ‘BÛ™¬.Ž¡‘ +[²LDF‘T2003.06.24.¬]Ž‘Y^^BUG‘«bFIX:›«xF–ÿ*ªormerly“,‘Á´INVALID_PLANEŽ‘L2º¬w¸ãas˜returned,‘Áif˜±p‘ÿ}'ointŽ‘0¬°‘V¨±normalŽ‘#­`¬.‘t1This˜has˜bGeenŽ¡c¸ãhanged,›so–„Pthat“´INVALID_PLANEŽ‘KÎá¬is“returned,˜if“±normalŽ‘&ðl°‘d±originŽ‘ …¬.‘þ·There“is,˜of“course,˜no“reason“wh¸ãy“±p‘ÿ}'ointŽŽ¡¬shouldn't–UUbGe“equal“to“±normalŽ‘#¬ ¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PlaneŽ‘#Œ ¬functions‘@¯663“°i‘Ǭ+°Ž¡‘ +­PlaneŽ‘&ád¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié];‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒµnŽ‘LŒŸ¬);ŽŽŽŒ‹¹ š· Šn ý‘ì°x¬668–¯3DLDF-1.1.5.1’ùh8­POINT‘ÕX¯ARÃŽGUMENTS“¬185Ž €n ý•@P­668.Ž©°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°ޤ ‘ +­PlaneŽ‘'áh¬::‘­PlaneŽ‘ág¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié];‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒµnŽ‘LŒŸ¬)Ž¡‘ +:‘qDZnormalŽ‘$Ȭ(µnŽ‘š¬)µ;‘ÿý±p‘ÿ}'ointŽ‘.‰¬(µpŽ‘¬)‘UU°fŽ¡‘±p‘ÿ}'ointŽ‘+.޵:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘±normalŽ‘4Vºµ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘­ifŽ‘´ú¬(±p‘ÿ}'ointŽ‘õ¤°‘Ç´INVALID_POINTŽ‘GY¬)‘°fŽ¡‘±normalŽ‘AÓ¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘±distanc‘ÿ}'eŽ‘E ¬=‘Ç´INVALID_REALŽ‘BM\¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±normalŽ‘#а‘Ç´INVALID_POINTŽ‘GY¬)‘°fŽ¡‘±p‘ÿ}'ointŽ‘7õ§¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘±distanc‘ÿ}'eŽ‘E ¬=‘Ç´INVALID_REALŽ‘BM\¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±normalŽ‘#а‘DZoriginŽ‘½9¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘3‘¼°‘Ü´"WARNING!® ´In® ´Plane()Ž‘kÛ×:\nnormal® ´==® ´origin.Ž’ÔÛ›® ´"Ž’â¾°‘Ü´"Plane® ´is® ´INVALID_PLŽ‘kÛ×ANE.\n\n"Ž’ž~7°Ž¡‘2± ushŽ‘G¹¬;Ž¡‘±p‘ÿ}'ointŽ‘7õ§¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘±distanc‘ÿ}'eŽ‘E ¬=‘Ç´INVALID_REALŽ‘BM\¬;Ž¡‘­returnŽ‘>‘h¬;Ž¡‘°gŽ¡‘±normalŽ‘4Vºµ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);Ž¡‘±distanc‘ÿ}'eŽ‘; ¬=‘Ç°Ž‘ +Ž6±p‘ÿ}'ointŽ‘!¼Âµ:±dot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!¬(±normalŽ‘ V¸¬);Ž¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±distanc‘ÿ}'eŽ‘$Eý¬)–ǵ<“­P•®9oin“tŽ‘ad¬::Ž‘%epsilonŽ‘E^¦¬(‘ª¨))‘±distanc‘ÿ}'eŽ‘, ¬=“0Ž‘Ç;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­669.‘ üAssignmen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.06.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PlaneŽ‘#Œ ¬functions‘@¯663“°i‘Ǭ+°Ž¡‘ +­constŽ‘(*£PlaneŽ‘Ha[¬&Ž‘P(y­opQÇeratorŽ‘{¿.¬=Ž’ƒ†L(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(xµpŽ‘K0x¬);ŽŽŽŒ‹º ¢C Šn ý‘ì¬186–¯ASSIGNMENT’ U®3DLDF-1.1.5.1“°x¬670Ž €n ý•@P­670.Ž©°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°ޤ ‘ +­constŽ‘(*£PlaneŽ‘Ha[¬&Ž‘P(y­PlaneŽ‘n à¬::Ž‘t˜­opQÇeratorŽ’ .Ó¬=Ž’§õñ(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(xµpŽ‘K0x¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±thisŽ‘²Î°‘Ǭ&Ž‘ +Ž6µpŽ‘–6¬)‘µ=°‘ÿý¬Makš¸ãe–UUsure“it's“not“self-assignmen˜t.‘qÇ[²LDF‘T2003.06.06.¬]Ž‘U$©°µ=Ž¡‘­returnŽ‘Aæ½°Ž‘Fæ¾±thisŽ‘WÒt¬;Ž¡‘±p‘ÿ}'ointŽ‘-õ¦¬=‘ǵpŽ‘Ï:±p‘ÿ}'ointŽ‘.Œ¬;Ž¡‘±normalŽ‘7Ò¬=‘ǵpŽ‘Ï:±normalŽ‘ V¸¬;Ž¡‘±distanc‘ÿ}'eŽ‘; ¬=‘ǵpŽ‘Ï:±distanc‘ÿ}'eŽ‘$Eý¬;Ž¡‘­returnŽ‘7æ¼µpŽ‘<;Ž¡‘ +°gŽŸ­671.‘ üComparing‘ÕTPlanes.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.06.¬]Ž‘Y;Added–UUthis“section.ަŸüÈ„`ÕÁGŽŽŸ­672.‘ üEqualit®9y‘ÿ «.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.06.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPlaneŽ‘#Œ «functions‘@­619“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8·Ž‘Vÿ:«(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(x±pŽ‘K0x«)‘UUÂconstŽ‘*¢«;ŽŸÂ629.ަ·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gPlaneŽ‘A‚Ϋ::Ž‘H ÂopQÇeratorŽ‘s§Á·Ž‘{nß«(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(x±pŽ‘K0x«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7漫((Ïp‘ÿ}'ointŽ‘õ¤·‘DZpŽ›Ï:Ïp‘ÿ}'ointŽ‘.Œ«)–8à·^“«(ÏnormalŽ‘#з‘DZpŽ˜:ÏnormalŽ‘ V¸«)“·^“«(Ïdistanc‘ÿ}'eŽ‘' ·‘DZpŽ˜:Ïdistanc‘ÿ}'eŽ‘$Eý«));Ž¡‘ -·gŽŸÂ630.‘ üInequalit®9y‘ÿ +¬[²LDF‘T2003.06.06.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PlaneŽ‘#Œ ¬functions‘@¯663“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8°Ž‘Vÿ:¬(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(xµpŽ‘K0x¬)‘UU­constŽ‘*¢¬;ŽŸ­673.ަ°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡gPlaneŽ‘A‚ά::Ž‘H ­opQÇeratorŽ‘s§Á°Ž‘{n߬(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(xµpŽ‘K0x¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7漬((±p‘ÿ}'ointŽ‘õ¤°‘ǵpŽ›Ï:±p‘ÿ}'ointŽ‘.Œ¬)–8à°^“¬(±normalŽ‘#а‘ǵpŽ˜:±normalŽ‘ V¸¬)“°^“¬(±distanc‘ÿ}'eŽ‘' °‘ǵpŽ˜:±distanc‘ÿ}'eŽ‘$Eý¬));Ž¡‘ +°gŽŸ­674.‘ üInequalit®9y‘ÿ «.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.06.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPlaneŽ‘#Œ «functions‘@­619“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8·6«=Ž‘Vÿ:(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(x±pŽ‘K0x«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹±¹@ Šn ý‘ì·x«631–­3DLDFPRÃŽG’+U¸INEQUALITY“«177Ž €n ý•@PÂ631.Ž©·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olŽ‘#¡gPlaneŽ‘A‚Ϋ::Ž‘H ÂopQÇeratorŽ‘s§Á·6«=Ž‘{nß(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(x±pŽ‘K0x«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼·:«(ÂopQÇeratorŽ‘+–µ·Ž‘3]Ó«(±pŽ‘«));Ž¡‘ -·gޤÂ632.‘ üGet‘ÕTdistance.Ž¡633.› üP•®9oin“t‘6Ôargumen“t.˜«[¬LDF‘T2003.06.03.«]Ž‘[»šThis–ˆ¹function“returns“a“Ârealu½‰™šs4Ž‘ÔwshortŽ‘;%Û±rŽ‘?ïï«,‘Õ’where“±rŽ‘ RÍ:Ï rstŽ‘>c«is“theޤ distance–>ÿof“the“ÂP•®9oin“tŽ‘"F«from“the“ÂPlaneŽ‘ b«.‘jU±rŽ› 4i:Ï rstŽ‘ô©«is“alw•¸ãa“ys‘>ÿpGositiv“e.‘jU±rŽ˜:Ïse–ÿ}'c“ondŽ‘ æÆ«can›>ÿtak“e˜on˜the˜follo“wing˜v‘ÿqÇalues:Ž¡0Ž‘ -If–UUthe“ÂP•®9oin“tŽ‘"Dò«lies“in“the“ÂPlaneŽ‘ 6¸«.Ž¡1Ž‘ -If–,éit“lies“on“the“side“of“the“ÂPlaneŽ‘#;5«pGoinš¸ãted“at“b˜y“the“normal“to“the“ÂPlaneŽ‘ L«,‘4ÿconsidered“to“bGe“the“\outside".Ž¡‘üª«-1Ž‘ -If–Ÿ1it“lies“on“the“side“of“the“ÂPlaneŽ‘"ÅÏnot‘’ «pGoinš¸ãted“at“b˜y“the“normal“to“the“ÂPlaneŽ‘€”«,‘Þconsidered“to“bGe“the“\inside".ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.03.«]Ž‘Xô¹Changed–AÓthe“de nition“of“this“function.›kFThe“old“de nition“w¸ãas“incorrect.˜Also“c¸ãhangedŽ¡return–UUt¸ãypGe“from“ÂrealŽ‘ƒ«to“Ârealu½‰™šs4Ž‘ÔwshortŽ‘5i¾«.Ž¡‘ -[¬LDF‘T2003.06.04.«]Ž‘X1{BUG‘~^FIX:–~•In“the“case“that“Ïr‘‰ffŽ‘®fabsŽ‘^±<‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÏepsilonŽ‘E^¦«(‘ª¨),‘©ˆno¸ãw“Ïr‘‰ffŽ‘®fabsŽ‘„«is“set“to“0.‘*2Previously‘ÿ*ª,Ž¡±rŽ‘Ü>«w•¸ãas,‘A_whic“h›*w“as˜wrong,–A_bGecause˜Ïr‘‰ffŽ‘®fabsŽ‘"<®«is˜returned,“not˜±rŽ‘Ü>«.‘¨FAlso,“I‘ùno¸ãw˜set˜Ïr‘‰ffŽ‘®fabsŽ‘"<®«and˜±sŽ‘ ÔT«to˜0˜separately‘ÿ*ª,Ž¡bGecause–ªthey“are“of“di erenš¸ãt“t˜ypšGes.‘oÛI‘©ðdon't“b˜elievš¸ãe“an˜y“compiler“w˜ould“ha˜v˜e“trouble“with“this,‘¿2but“I‘©ðthinkŽ¡it's–UUcleaner“if“they“are“assigned“to“separately‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPlaneŽ‘#Œ «functions‘@­619“·i‘Ç«+·Ž¡‘ -Ârealu½‰™šs4Ž‘ÔwshortŽ‘?i¿Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘sãx«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«)‘UUÂconstŽ‘*¢«;ŽŸÂ634.ަ·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·Ž¡‘ -Ârealu½‰™šs4Ž‘ÔwshortŽ‘?i¿PlaneŽ‘]K&«::‘Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂrealŽ‘*³0±rŽ‘2D\«=‘Ç(±pŽ‘@à·‘8àÏp‘ÿ}'ointŽ‘gl«)±:Ïdot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!«(ÏnormalŽ‘ V¸«);Ž¡‘ÂrealŽ‘*³0Ïr‘‰ffŽ‘®fabsŽ‘G’¢«=‘ÇÏfabsŽ‘ùê«(±rŽ‘Ê«);Ž¡‘ÂsignedŽ‘7oøshortŽ‘U:›±sŽ‘Yꛫ;ަ‘ÂifŽ‘´ú«(Ïr‘‰ffŽ‘®fabsŽ‘ßr±<‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÏepsilonŽ‘E^¦«(‘ª¨))‘·fŽ¡‘Ïr‘‰ffŽ‘®fabsŽ‘:ßu«=‘Ç0Ž‘Ç;Ž¡‘±sŽ‘%w«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá±sŽ‘3Où«=‘ÇÂstaticu½‰™šs4Ž‘ÔwcastŽ‘7Dº·hÂsignedŽ‘#oöshortŽ‘=åD·i«(±rŽ‘Ê=Ïr‘‰ffŽ‘®fabsŽ‘Z«);Ž¡‘ÂreturnŽ‘7æ¼realu½‰™šs4Ž‘ÔwshortŽ‘iû%«(Ïr‘‰ffŽ‘®fabsŽ‘Z±;‘ª¨sŽ‘Z¨«);Ž¡‘ -·gŽŸÂ635.– üNo‘D]argumen®9t.“«[¬LDF‘T2003.06.03.«]Ž‘Z -'This–×Fvš¸ãersion“of“Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘7Pÿ«(‘ª®)“returns“the“data“mem˜bGer“Ïdistanc‘ÿ}'eŽŽ¡«and–JÁits“sign,–LÞi.e.,“the–JÁdistance“of“ÏoriginŽ‘!‹£«to“the“ÂPlaneŽ‘ ,$«,‘LÞand“whic¸ãh“side“of“the“ÂPlaneŽ‘#vå«it“lies“on.‘n@I'm“not“usingŽ¡ÏoriginŽ‘³T«as–½3the“default“for“an“optional“ÂP•®9oin“tŽ‘!®«argumenš¸ãt,‘Û bGecause“of“problems“that“ma˜y“arise,‘Û when“I‘½ implemen˜tŽ¡Ïuser‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘K v«and‘UUÏview‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘K¯«.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.03.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPlaneŽ‘#Œ «functions‘@­619“·i‘Ç«+·Ž¡‘ -Ârealu½‰™šs4Ž‘ÔwshortŽ‘?i¿Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘sãx«(Âv®9oidŽ‘¨ƒ«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹²ÀÓ Šn ý‘ì«178›­NO‘ÕXAR•ÃŽGUMENT’v¾3DLDFPR“G˜·x«636Ž €n ý•@PÂ636.Ž©·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·ޤ ‘ -Ârealu½‰™šs4Ž‘ÔwshortŽ‘?i¿PlaneŽ‘]K&«::‘Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½«(Âv®9oidŽ‘¨ƒ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂrealŽ‘*³0±fŽ‘3s.«=‘ÇÏfabsŽ‘ùê«(Ïdistanc‘ÿ}'eŽ‘$Eý«);Ž¡‘ÂsignedŽ‘7oøshortŽ‘U:›±sŽ‘\±³«=‘ÇÂstaticu½‰™šs4Ž‘ÔwcastŽ‘7Dº·hÂsignedŽ‘#oöshortŽ‘=åD·i«(Ïdistanc‘ÿ}'eŽ‘$Eý±=fŽ‘øæ«);ަ‘ÂreturnŽ‘7æ¼realu½‰™šs4Ž‘ÔwshortŽ‘iû%«(±fŽ‘øæ;‘ª¨sŽ‘Z¨«);Ž¡‘ -·gŽŸÂ637.› üP•®9oin“t–ðlis“on“Plane.˜«[¬LDF‘T2003.06.04.«]Ž‘ZŸÅThis–läfunction“returns“ÏtrueŽ‘1|«,‘rÈif“the“ÂP•®9oin“tŽ‘"t«lies“on“the“ÂPlaneŽŽ¡±pŽ‘«,‘Y‹otherwise‘X³ÏfalseŽ‘÷«.›{âDeclared–X³in“Èpoints.web«.˜Must“bšGe“de ned“here,‘Y‹b˜ecause“ÂPlaneŽ‘#’É«is“an“incomplete“t¸ãyp˜e“inŽ¡that‘UU le.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.04.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gP•®9oin“tŽ‘@;³«::‘Ïis‘‰ffŽ–®on‘‰ffŽ“planeŽ‘2‚Þ«(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(x±pŽ‘K0x«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(±pŽ‘:Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹«(·Ž‘ÏthisŽ‘ë·«)±:Ïse–ÿ}'c“ondŽ‘ nß·‘Ç«0Ž‘Ç)‘ÂreturnŽ‘(æºÏtrueŽ‘;«R«;Ž¡‘ÂelseŽ‘+ØáreturnŽ‘O¿›ÏfalseŽ‘dnß«;Ž¡‘ -·gޤÂ638.‘ üIn®9tersection.Ž¡639.‘ üIn®9tersection–ÕTwith“a“line.Ž¡640.‘ üP•®9oin“t‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2003.06.03.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPlaneŽ‘#Œ «functions‘@­619“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œÏinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ’>r«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹³Ðå Šn ý‘ì·x«641›­3DLDFPR•ÃŽG’ÛÎÂPOINT‘ÕX­AR“GUMENTS˜«179Ž €n ý•@PÂ641.Ž©·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œPlaneŽ‘`‰«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§ÏbpŽ‘W‚«;Ž¡‘ÂrealŽ‘*³0ÏdenominatorŽ‘f#«=‘Ç(Ïp0Ž–O ·‘8àÏp1Ž“«)±:Ïdot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!«(ÏnormalŽ‘ V¸«);ަ‘ÂifŽ‘Ý9«(ÏdenominatorŽ‘;²ú·‘ -,«0Ž‘ --)‘±=·‘(<«!!‘ê…TO‘}ŠDO:–}”Handle“cases:‘ÂEÂP®9athŽ‘ Ñ=«is“in“ÂPlaneŽ‘ ^÷«,‘‡¤and“ÂP®9athŽ‘ŒŒ«is“in“a“parallelŽ¡‘(ÂPlaneŽ‘Dág«.‘qÇ[¬LDF‘T2003.06.03.«]Ž‘U$©·±=Ž¡‘·fŽ¡‘Ïc‘ÿ}'errŽ‘4†4·‘ЋÝ"ERROR!È ÝInÈ ÝPlane::inŽ‘lÐOtersection_point(conŽ’ÕÐstÈ ÝPoint&,È ÝconstÈ ÝPoiŽ’>Ï×nt&,):"Ž’gæµ·Ž¡‘2Ý"denominatorÈ ÝisÈ Ý0.È Ž’šÿÉÝCan'tÈ Ýdivide.È Ý"Ž’í, ·‘æœÝ"PathÈ ÝisÈ ÝeitherÈ ÝinÈ ÝPŽ‘kæ`lane,È ÝorÈ ÝparallelÈ ÝtoŽ’Ôæ$\ŽŽ¡‘2È ÝPlane."Ž‘ar«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày«)‘UUÂconstŽ‘*¢«;ŽŸÂ643.‘ üInš®9tersection–ÕTof“t˜w˜o“Planes.‘ ü«[¬LDF‘T2002.10.29.«]Ž‘Zˆ6TO–UUDO:“LoGok“up“and“explain!ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.04.«]Ž‘Y;Changed–UUto“ÂconstŽ‘*¢«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂPlaneŽ‘#Œ «functions‘@­619“·i‘Ç«+·Ž¡‘ -ÂLineŽ‘#­ÙÏinterse‘ÿ}'ction‘‰ffŽ‘®lineŽ‘k1«(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(xÏplŽ‘O^ƒ«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹´ØÔ Šn ý‘ì«180‘­INTERSECTION–ÕXOF“TWšÃŽO“ÂPLANES’È^­3DLDFPR˜G‘·x«644Ž €n ý•@PÂ644.Ž©·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·ޤ ‘ -ÂLineŽ‘#­ÙPlaneŽ‘A@«::‘Ïinterse‘ÿ}'ction‘‰ffŽ‘®lineŽ‘Hƒª«(ÂconstŽ‘*¢PlaneŽ‘>aZ«&Ž‘F(xÏplŽ‘O^ƒ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPlane::intŽ‘kÆÜersection_line()\n"Ž’Ð «;ަ‘ÂP•®9oin“tŽ‘2ïŸÏpl‘‰ffŽ‘®normalŽ‘^Ÿ«(ÏplŽ‘ 6 ±:ÏnormalŽ‘ V¸«);Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘z1«=‘ÇÏnormalŽ‘#б:Ïcr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé«(Ïpl‘‰ffŽ‘®normalŽ‘+¯s«);‘±=·‘ÿý«[¬LDF‘T2002.10.29.«]Ž‘T7Needed??‘o·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘Iæz±:ÏshowŽ‘Šÿ«(Ý"direction_vector"Ž‘_2«);Ž¡‘ÂifŽ‘´ú«(Ïdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘G­’·‘ÇÏoriginŽ‘½9«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"InÈ ÝPlane::intersectŽ‘kÆÜion_line().\n"Ž’¸”2·‘ÇÝ"PlanesÈ ÝareÈ ÝparallelŽ‘kÆÜ\n"Ž‘| ;«;Ž¡‘ÂifŽ‘)´û«(Ïdistanc‘ÿ}'eŽ‘' ·‘ÇÏplŽ‘ ý#±:Ïdistanc‘ÿ}'eŽ‘$Eý«)‘·fŽ¡‘2±=·‘fÂEllipseŽ‘'÷C«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã«(ÂEllipseŽ‘%L—«&Ž‘-µ)–c¾calls“this“function“to“ nd“out“whether“t•¸ãw“o‘c¾ÂPlanesŽŽ¡‘<«are–†Écoincidenš¸ãt,‘“%so“sometimes“w˜e“don't“w˜an˜t“to“see“these“messages.‘"I‘†¼ma˜y“decide“to“add“anŽ¡‘<argumen¸ãt‘UUÂb•QÇo“olŽ‘ö»ÏsilentŽ‘9$«to–UUthis“function.–qÇ??“Add‘UUÂb•QÇo“olŽ‘ö»ÏsilentŽ‘5­Ï«??‘o·±=Ž¡‘(Ïc‘ÿ}'errŽ‘=”Ü·‘ß2Ý"PlanesÈ ÝareÈ ÝcoincideŽ‘kÞönt.\n"Ž’ŽÄ~·‘ß2Ý"ReturningÈ ÝLineÈ ÝwithŽ‘kÞöÈ ÝoriginÈ ÝasÈ ÝpositionÈ Ž’ÔÞºÝ\n"Ž’èK·Ž¡‘<Ý"andÈ ÝINVALID_POINTÈ ÝaŽ’¤ÿÊsÈ Ýdirection.\n\n"Ž’·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂreturnŽ‘Kæ¾ÝINVALID_LINEŽ’‹m«;Ž¡‘·gŽ¡‘ÂelseŽ‘5Øâ·fŽ¡‘(Ïc‘ÿ}'errŽ‘=|·‘ÇÝ"PlanesÈ ÝareÈ ÝnotÈ ÝcoinŽ‘kÆÜcident.\n"Ž’£”>·‘ÇÝ"ReturningÈ ÝINVALID_LŽ‘kÆÜINE.\n\n"Ž’žTA·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂreturnŽ‘Kæ¾ÝINVALID_LINEŽ’‹m«;Ž¡‘·gŽ¡‘g‘±=·‘ÿý«Outer‘UUÂifŽ‘ ´ø«.‘o·±=Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"PlanesÈ ÝareÈ ÝnotÈ ÝparaŽ‘kÆÜllel\n"Ž’“ÔG·‘ÇÏ ushŽ‘€«;Ž¡‘(±=·‘ u«Aš¸ãt–bÍleast“one“of“the“x,–f+y‘ÿ*ª,“or–bÍz“compGonen˜ts“of“Ïdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘K¬«m˜ust“bGe“non-zero,–f+otherwise,“thisŽ¡‘2function–UUwš¸ãould“ha˜v˜e“exited“b˜y“no˜w.‘o·±=ަ‘ÂrealŽ‘*³0±xŽ‘0jL;‘ÿýyŽ‘ +¬[²LDF‘T2003.06.06.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PlaneŽ‘#Œ ¬functions‘@¯663“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡gopQÇeratorŽ‘O8°6¬=Ž‘Vÿ:(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(xµpŽ‘K0x¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹» ªB Šn ý‘ì°x¬675–¯3DLDF-1.1.5.1’"â"INEQUALITY“¬187Ž €n ý•@P­675.Ž©°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olŽ‘#¡gPlaneŽ‘A‚ά::Ž‘H ­opQÇeratorŽ‘s§Á°6¬=Ž‘{nß(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(xµpŽ‘K0x¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼°:¬(­opQÇeratorŽ‘+–µ°Ž‘3]Ó¬(µpŽ‘¬));Ž¡‘ +°gޤ­676.‘ üGet‘ÕTdistance.Ž¡677.› üP•®9oin“t‘6Ôargumen“t.˜¬[²LDF‘T2003.06.03.¬]Ž‘[»šThis–ˆ¹function“returns“a“­realu½‰™šs4Ž‘ÔwshortŽ‘;%ÛµrŽ‘?ïï¬,‘Õ’where“µrŽ‘ RÍ:± rstŽ‘>c¬is“theޤ distance–>ÿof“the“­P•®9oin“tŽ‘"F¬from“the“­PlaneŽ‘ b¬.‘jUµrŽ› 4i:± rstŽ‘ô©¬is“alw•¸ãa“ys‘>ÿpGositiv“e.‘jUµrŽ˜:±se–ÿ}'c“ondŽ‘ æÆ¬can›>ÿtak“e˜on˜the˜follo“wing˜v‘ÿqÇalues:Ž¡0Ž‘ +If–UUthe“­P•®9oin“tŽ‘"Dò¬lies“in“the“­PlaneŽ‘ 6¸¬.Ž¡1Ž‘ +If–,éit“lies“on“the“side“of“the“­PlaneŽ‘#;5¬pGoinš¸ãted“at“b˜y“the“normal“to“the“­PlaneŽ‘ L¬,‘4ÿconsidered“to“bGe“the“\outside".Ž¡‘üª«-1Ž‘ +If–Ÿ1it“lies“on“the“side“of“the“­PlaneŽ‘"űnot‘’ ¬pGoinš¸ãted“at“b˜y“the“normal“to“the“­PlaneŽ‘€”¬,‘Þconsidered“to“bGe“the“\inside".ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.03.¬]Ž‘Xô¹Changed–AÓthe“de nition“of“this“function.›kFThe“old“de nition“w¸ãas“incorrect.˜Also“c¸ãhangedŽ¡return–UUt¸ãypGe“from“­realŽ‘ƒ¬to“­realu½‰™šs4Ž‘ÔwshortŽ‘5i¾¬.Ž¡‘ +[²LDF‘T2003.06.04.¬]Ž‘X1{BUG‘~^FIX:–~•In“the“case“that“±r‘‰ffŽ‘®fabsŽ‘^µ<‘Ç­P•®9oin“tŽ‘ad¬::Ž‘%epsilonŽ‘E^¦¬(‘ª¨),‘©ˆno¸ãw“±r‘‰ffŽ‘®fabsŽ‘„¬is“set“to“0.‘*2Previously‘ÿ*ª,Ž¡µrŽ‘Ü>¬w•¸ãas,‘A_whic“h›*w“as˜wrong,–A_bGecause˜±r‘‰ffŽ‘®fabsŽ‘"<®¬is˜returned,“not˜µrŽ‘Ü>¬.‘¨FAlso,“I‘ùno¸ãw˜set˜±r‘‰ffŽ‘®fabsŽ‘"<®¬and˜µsŽ‘ ÔT¬to˜0˜separately‘ÿ*ª,Ž¡bGecause–ªthey“are“of“di erenš¸ãt“t˜ypšGes.‘oÛI‘©ðdon't“b˜elievš¸ãe“an˜y“compiler“w˜ould“ha˜v˜e“trouble“with“this,‘¿2but“I‘©ðthinkŽ¡it's–UUcleaner“if“they“are“assigned“to“separately‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PlaneŽ‘#Œ ¬functions‘@¯663“°i‘Ǭ+°Ž¡‘ +­realu½‰™šs4Ž‘ÔwshortŽ‘?i¿±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘sãx¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬)‘UU­constŽ‘*¢¬;ŽŸ­678.ަ°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°Ž¡‘ +­realu½‰™šs4Ž‘ÔwshortŽ‘?i¿PlaneŽ‘]K&¬::‘±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­realŽ‘*³0µrŽ‘2D\¬=‘Ç(µpŽ‘@à°‘8à±p‘ÿ}'ointŽ‘gl¬)µ:±dot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!¬(±normalŽ‘ V¸¬);Ž¡‘­realŽ‘*³0±r‘‰ffŽ‘®fabsŽ‘G’¢¬=‘DZfabsŽ‘ùê¬(µrŽ‘Ê¬);Ž¡‘­signedŽ‘7oøshortŽ‘U:›µsŽ‘Yꛬ;ަ‘­ifŽ‘´ú¬(±r‘‰ffŽ‘®fabsŽ‘ßrµ<‘Ç­P•®9oin“tŽ‘ad¬::Ž‘%epsilonŽ‘E^¦¬(‘ª¨))‘°fŽ¡‘±r‘‰ffŽ‘®fabsŽ‘:ßu¬=‘Ç0Ž‘Ç;Ž¡‘µsŽ‘%w¬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­elseŽ‘+ØáµsŽ‘3Où¬=‘Ç­staticu½‰™šs4Ž‘ÔwcastŽ‘7Dº°h­signedŽ‘#oöshortŽ‘=åD°i¬(µrŽ‘Ê=±r‘‰ffŽ‘®fabsŽ‘Z¬);Ž¡‘­returnŽ‘7æ¼realu½‰™šs4Ž‘ÔwshortŽ‘iû%¬(±r‘‰ffŽ‘®fabsŽ‘Zµ;‘ª¨sŽ‘Z¨¬);Ž¡‘ +°gŽŸ­679.– üNo‘D]argumen®9t.“¬[²LDF‘T2003.06.03.¬]Ž‘Z +'This–×Fvš¸ãersion“of“±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘7Pÿ¬(‘ª®)“returns“the“data“mem˜bGer“±distanc‘ÿ}'eŽŽ¡¬and–JÁits“sign,–LÞi.e.,“the–JÁdistance“of“±originŽ‘!‹£¬to“the“­PlaneŽ‘ ,$¬,‘LÞand“whic¸ãh“side“of“the“­PlaneŽ‘#vå¬it“lies“on.‘n@I'm“not“usingŽ¡±originŽ‘³T¬as–½3the“default“for“an“optional“­P•®9oin“tŽ‘!®¬argumenš¸ãt,‘Û bGecause“of“problems“that“ma˜y“arise,‘Û when“I‘½ implemen˜tŽ¡±user‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘K v¬and‘UU±view‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘K¯¬.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.03.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PlaneŽ‘#Œ ¬functions‘@¯663“°i‘Ǭ+°Ž¡‘ +­realu½‰™šs4Ž‘ÔwshortŽ‘?i¿±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘sãx¬(­v®9oidŽ‘¨ƒ¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹¼ ±× Šn ý‘ì¬188–¯NO‘ÕXARÃŽGUMENT’(3DLDF-1.1.5.1“°x¬680Ž €n ý•@P­680.Ž©°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°ޤ ‘ +­realu½‰™šs4Ž‘ÔwshortŽ‘?i¿PlaneŽ‘]K&¬::‘±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½¬(­v®9oidŽ‘¨ƒ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­realŽ‘*³0µfŽ‘3s.¬=‘DZfabsŽ‘ùê¬(±distanc‘ÿ}'eŽ‘$Eý¬);Ž¡‘­signedŽ‘7oøshortŽ‘U:›µsŽ‘\±³¬=‘Ç­staticu½‰™šs4Ž‘ÔwcastŽ‘7Dº°h­signedŽ‘#oöshortŽ‘=åD°i¬(±distanc‘ÿ}'eŽ‘$Eýµ=fŽ‘øæ¬);ަ‘­returnŽ‘7æ¼realu½‰™šs4Ž‘ÔwshortŽ‘iû%¬(µfŽ‘øæ;‘ª¨sŽ‘Z¨¬);Ž¡‘ +°gŽŸ­681.› üP•®9oin“t–ðlis“on“Plane.˜¬[²LDF‘T2003.06.04.¬]Ž‘ZŸÅThis–läfunction“returns“±trueŽ‘1|¬,‘rÈif“the“­P•®9oin“tŽ‘"t¬lies“on“the“­PlaneŽŽ¡µpŽ‘¬,‘Y‹otherwise‘X³±falseŽ‘÷¬.›{âDeclared–X³in“®points.web¬.˜Must“bšGe“de ned“here,‘Y‹b˜ecause“­PlaneŽ‘#’ɬis“an“incomplete“t¸ãyp˜e“inŽ¡that‘UU le.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.04.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡gP•®9oin“tŽ‘@;³¬::‘±is‘‰ffŽ–®on‘‰ffŽ“planeŽ‘2‚Þ¬(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(xµpŽ‘K0x¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(µpŽ‘:±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹¬(°Ž‘±thisŽ‘ë·¬)µ:±se–ÿ}'c“ondŽ‘ nß°‘Ǭ0Ž‘Ç)‘­returnŽ‘(溱trueŽ‘;«R¬;Ž¡‘­elseŽ‘+ØáreturnŽ‘O¿›±falseŽ‘dn߬;Ž¡‘ +°gޤ­682.‘ üIn®9tersection.Ž¡683.‘ üIn®9tersection–ÕTwith“a“line.Ž¡684.‘ üP•®9oin“t‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2003.06.03.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PlaneŽ‘#Œ ¬functions‘@¯663“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œ±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ’>r¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Å¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹½ Áë Šn ý‘ì°x¬685–¯3DLDF-1.1.5.1’ùh8­POINT‘ÕX¯ARÃŽGUMENTS“¬189Ž €n ý•@P­685.Ž©°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œPlaneŽ‘`‰¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Å¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§±bpŽ‘W‚¬;Ž¡‘­realŽ‘*³0±denominatorŽ‘f#¬=‘Ç(±p0Ž–O °‘8à±p1Ž“¬)µ:±dot‘‰ffŽ‘®pr–ÿ}'o“ductŽ‘2€!¬(±normalŽ‘ V¸¬);ަ‘­ifŽ‘Ý9¬(±denominatorŽ‘;²ú°‘ +,¬0Ž‘ +-)‘µ=°‘(<¬!!‘ê…TO‘}ŠDO:–}”Handle“cases:‘ÂE­P®9athŽ‘ Ñ=¬is“in“­PlaneŽ‘ ^÷¬,‘‡¤and“­P®9athŽ‘ŒŒ¬is“in“a“parallelŽ¡‘(­PlaneŽ‘Dág¬.‘qÇ[²LDF‘T2003.06.03.¬]Ž‘U$©°µ=Ž¡‘°fŽ¡‘±c‘ÿ}'errŽ‘4†4°‘Ћ´"ERROR!® ´In® ´Plane::inŽ‘lÐOtersection_point(conŽ’ÕÐst® ´Point&,® ´const® ´PoiŽ’>Ï×nt&,):"Ž’gæµ°Ž¡‘2´"denominator® ´is® ´0.® Ž’šÿÉ´Can't® ´divide.® ´"Ž’í, °‘朴"Path® ´is® ´either® ´in® ´PŽ‘kæ`lane,® ´or® ´parallel® ´toŽ’Ôæ$\ŽŽ¡‘2® ´Plane."Ž‘ar¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày¬)‘UU­constŽ‘*¢¬;ŽŸ­687.‘ üInš®9tersection–ÕTof“t˜w˜o“Planes.‘ ü¬[²LDF‘T2002.10.29.¬]Ž‘Zˆ6TO–UUDO:“LoGok“up“and“explain!ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.04.¬]Ž‘Y;Changed–UUto“­constŽ‘*¢¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­PlaneŽ‘#Œ ¬functions‘@¯663“°i‘Ǭ+°Ž¡‘ +­LineŽ‘#­Ù±interse‘ÿ}'ction‘‰ffŽ‘®lineŽ‘k1¬(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(x±plŽ‘O^ƒ¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹¾ ÉÞ Šn ý‘ì¬190›¯INTERSECTION–ÕXOF“TWÃŽO“­PLANES’¿“ȯ3DLDF-1.1.5.1˜°x¬688Ž €n ý•@P­688.Ž©°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°ޤ ‘ +­LineŽ‘#­ÙPlaneŽ‘A@¬::‘±interse‘ÿ}'ction‘‰ffŽ‘®lineŽ‘Hƒª¬(­constŽ‘*¢PlaneŽ‘>aZ¬&Ž‘F(x±plŽ‘O^ƒ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Plane::intŽ‘kÆÜersection_line()\n"Ž’Ð ¬;ަ‘­P•®9oin“tŽ‘2pl‘‰ffŽ‘®normalŽ‘^Ÿ¬(±plŽ‘ 6 µ:±normalŽ‘ V¸¬);Ž¡‘­P•®9oin“tŽ‘2dir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘z1¬=‘DZnormalŽ‘#е:±cr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé¬(±pl‘‰ffŽ‘®normalŽ‘+¯s¬);‘µ=°‘ÿý¬[²LDF‘T2002.10.29.¬]Ž‘T7Needed??‘o°µ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±dir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘Iæzµ:±showŽ‘Šÿ¬(´"direction_vector"Ž‘_2¬);Ž¡‘­ifŽ‘´ú¬(±dir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘G­’°‘DZoriginŽ‘½9¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"In® ´Plane::intersectŽ‘kÆÜion_line().\n"Ž’¸”2°‘Ç´"Planes® ´are® ´parallelŽ‘kÆÜ\n"Ž‘| ;¬;Ž¡‘­ifŽ‘)´û¬(±distanc‘ÿ}'eŽ‘' °‘DZplŽ‘ ý#µ:±distanc‘ÿ}'eŽ‘$Eý¬)‘°fŽ¡‘2µ=°‘f­EllipseŽ‘'÷C¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã¬(­EllipseŽ‘%L—¬&Ž‘-µ)–c¾calls“this“function“to“ nd“out“whether“t•¸ãw“o‘c¾­PlanesŽŽ¡‘<¬are–†Écoincidenš¸ãt,‘“%so“sometimes“w˜e“don't“w˜an˜t“to“see“these“messages.‘"I‘†¼ma˜y“decide“to“add“anŽ¡‘<argumen¸ãt‘UU­b•QÇo“olŽ‘ö»±silentŽ‘9$¬to–UUthis“function.–qÇ??“Add‘UU­b•QÇo“olŽ‘ö»±silentŽ‘5­Ï¬??‘o°µ=Ž¡‘(±c‘ÿ}'errŽ‘=”ܰ‘ß2´"Planes® ´are® ´coincideŽ‘kÞönt.\n"Ž’ŽÄ~°‘ß2´"Returning® ´Line® ´withŽ‘kÞö® ´origin® ´as® ´position® Ž’ÔÞº´\n"Ž’èK°Ž¡‘<´"and® ´INVALID_POINT® ´aŽ’¤ÿÊs® ´direction.\n\n"Ž’°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘Kæ¾´INVALID_LINEŽ’‹m¬;Ž¡‘°gŽ¡‘­elseŽ‘5Øâ°fŽ¡‘(±c‘ÿ}'errŽ‘=|°‘Ç´"Planes® ´are® ´not® ´coinŽ‘kÆÜcident.\n"Ž’£”>°‘Ç´"Returning® ´INVALID_LŽ‘kÆÜINE.\n\n"Ž’žTA°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘Kæ¾´INVALID_LINEŽ’‹m¬;Ž¡‘°gŽ¡‘g‘µ=°‘ÿý¬Outer‘UU­ifŽ‘ ´ø¬.‘o°µ=Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Planes® ´are® ´not® ´paraŽ‘kÆÜllel\n"Ž’“ÔG°‘DZ ushŽ‘€¬;Ž¡‘(µ=°‘ u¬Aš¸ãt–bÍleast“one“of“the“x,–f+y‘ÿ*ª,“or–bÍz“compGonen˜ts“of“±dir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘K¬¬m˜ust“bGe“non-zero,–f+otherwise,“thisŽ¡‘2function–UUwš¸ãould“ha˜v˜e“exited“b˜y“no˜w.‘o°µ=ަ‘­realŽ‘*³0µxŽ‘0jL;‘ÿýyŽ‘ Bõ;‘ÿýzŽ‘ -«;Ž¡‘ÂrealŽ‘*³0±dŽ‘2®º«=‘ÇÏdistanc‘ÿ}'eŽ‘' «;Ž¡‘ÂrealŽ‘*³0±eŽ‘2"I«=‘ÇÏplŽ‘ ý#±:Ïdistanc‘ÿ}'eŽ‘$Eý«;Ž¡‘ÂrealŽ‘*³0ÏnxŽ‘9t;«=‘ÇÏnormalŽ‘#б:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ÂrealŽ‘*³0ÏnyŽ‘9Yê«=‘ÇÏnormalŽ‘#б:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);Ž¡‘ÂrealŽ‘*³0ÏnzŽ‘8íÕ«=‘ÇÏnormalŽ‘#б:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡‘ÂrealŽ‘*³0ÏmxŽ‘<s«=‘ÇÏplŽ‘ ý#±:ÏnormalŽ‘ V¸±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ÂrealŽ‘*³0ÏmyŽ‘;è"«=‘ÇÏplŽ‘ ý#±:ÏnormalŽ‘ V¸±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);Ž¡‘ÂrealŽ‘*³0ÏmzŽ‘;| «=‘ÇÏplŽ‘ ý#±:ÏnormalŽ‘ V¸±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡‘ÂrealŽ‘*³0ÏvxŽ‘8nŠ«=‘ÇÏdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘G­’±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ÂrealŽ‘*³0ÏvyŽ‘8T9«=‘ÇÏdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘G­’±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);Ž¡‘ÂrealŽ‘*³0ÏvzŽ‘7è$«=‘ÇÏdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘G­’±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);ަ‘ÂifŽ‘´ú«(Ïdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘Dæz±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨)–Ç·6«=“0Ž‘Ç)‘·fŽ¡‘±xŽ‘&~7«=‘Ç0Ž‘Ç;Ž¡‘±yŽ‘& -«=‘Ç·Ž‘ -Ž6«1Ž‘Ç·–8à«((±dŽ‘mR·“ÏmzŽ‘s…·“±eŽ‘ Á·“ÏnzŽ‘ ¬m«)±=ÏvxŽ‘ -ôB«);Ž¡‘±zŽ‘%Þ9«=‘Ç(±dŽ‘mR·‘8àÏmyŽ‘ßš·‘8à±eŽ‘ Á·‘8àÏnyŽ‘‚«)±=ÏvxŽ‘ -ôB«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ïdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘Dæz±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨)–Ç·6«=“0Ž‘Ç)‘·fŽ¡‘±xŽ‘&~7«=‘Ç(±dŽ‘mR·‘8àÏmzŽ‘s…·‘8à±eŽ‘ Á·‘8àÏnzŽ‘ ¬m«)±=ÏvyŽ‘ -Ùñ«;Ž¡‘±yŽ‘& -«=‘Ç0Ž‘Ç;Ž¡‘±zŽ‘%Þ9«=‘Ç·Ž‘ -Ž6«1Ž‘Ç·–8à«((±dŽ‘mR·“ÏmxŽ‘ùë·“±eŽ‘ Á·“ÏnxŽ‘2Ó«)±=ÏvyŽ‘ -Ùñ«);Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘±xŽ‘&~7«=‘Ç·Ž‘ -Ž6«1Ž‘Ç·–8à«((±dŽ‘mR·“ÏmyŽ‘ßš·“±eŽ‘ Á·“ÏnyŽ‘‚«)±=ÏvzŽ‘ -mÜ«);ŽŽŽŒ‹µãÉ Šn ý‘ì·x«644‘­3DLDFPRšÃŽG’È^INTERSECTION–ÕXOF“TW˜O“ÂPLANES‘«181Ž €n ý•@P‘±yŽ‘& -«=‘Ç(±dŽ‘mR·‘8àÏmxŽ‘ùë·‘8à±eŽ‘ Á·‘8àÏnxŽ‘2Ó«)±=ÏvzŽ‘ -mÜ«;ޤ ‘±zŽ‘%Þ9«=‘Ç0Ž‘Ç;Ž¡‘·gޤ‘ÂP•®9oin“tŽ‘2ïŸÏp‘ÿ}'oint‘‰ffŽ–®on‘‰ffŽ“lineŽ‘kÛ³«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fޤ ‘Ïp‘ÿ}'oint‘‰ffŽ–®on‘‰ffŽ“lineŽ‘Vì±:ÏshowŽ‘Šÿ«(Ý"point_on_line:"Ž‘T†8«);Ž¡‘Ïdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘bæ}±:ÏshowŽ‘Šÿ«(Ý"direction_vector:"Ž‘dF/«);Ž¡‘ÏgetcharŽ‘?%ÿ«(‘ª®);Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ExitingÈ ÝPlane::inteŽ‘kÆÜrsection_line()\n"Ž’ÊÍ«;Ž¡‘ÏgetcharŽ‘?%ÿ«(‘ª®);Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼LineŽ‘N??«(Ïp‘ÿ}'oint‘‰ffŽ–®on‘‰ffŽ“lineŽ‘8ì±;‘ª¨Ïdir–ÿ}'e“ction‘‰ffŽ‘®ve“ctorŽ‘F‘"«);Ž¡‘ -·gŽ©Â645.‘ üSho®9w.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.06.«]Ž‘Y;Minor–UUc¸ãhange“to“the“conditional“that“handles“ÏtextŽ‘­!«.Ž¡‘ -[¬LDF‘T2003.06.06.«]Ž‘Y;Made‘UUÏshowŽ‘àT«(‘ª®)‘UUÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂPlaneŽ‘#Œ «functions‘@­619“·i‘Ç«+·ŽŸ ‘ -Âv®9oidŽ‘"ýÙÏshowŽ‘9ˆØ«(ÂstringŽ‘!%MÏtextŽ‘5D1«=‘ÇÝ""Ž‘ Íz«)‘UUÂconstŽ‘*¢«;ަÂ646.Ž¡·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙPlaneŽ‘@ß@«::‘ÏshowŽ‘‹«(ÂstringŽ‘!%MÏtextŽ‘2}«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïtextޑ䷑ÇÝ""Ž‘ Íz«)‘ÏtextŽ‘ä«=‘ÇÝ"Plane:"Ž‘-Mh«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÏtextŽ‘åü·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘ÂifŽ‘´ú«(·Ž‘ÏthisŽ‘²Ï·‘ÇÝINVALID_PLANEŽ‘GY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"INVALID_PLANE.È ÝCan'Ž‘kÆÜtÈ Ýshow."Ž’™D·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gŽ¡‘ÏnormalŽ‘4Vº±:ÏshowŽ‘Šÿ«(Ý"normal:"Ž‘/ÆM«);Ž¡‘Ïp‘ÿ}'ointŽ‘+.ޱ:ÏshowŽ‘Šÿ«(Ý"point:"Ž‘*†P«);Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"distanceÈ Ý==È Ý"Ž‘O”n·‘ÇÏdistanc‘ÿ}'eŽ‘)Ô-·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gަÂ647.‘ üGlobal–ÕTconstan®9ts“for“Plane.ŽŸ·h‘ª¨ÂPlaneŽ‘!á`«global‘UUconstan¸ãts‘@­647‘ª¨·i‘ÇŽ¡‘ -ÂexternŽ‘.×constŽ‘LHyPlaneŽ‘l1ÝINVALID_PLANEŽ’±Er«(ÝINVALID_POINTŽ‘DÆA±;‘ª¨ÝINVALID_POINTŽ‘Fpé«);ŽŸ ­This–ÕXcoNoš¸ãw– -Xall“of“the“data“mem˜bGers“of“ÂclassŽ‘Ÿ¬P®9athŽ‘<;h«are“assigned“to“except“for“Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘;¯J«.Ž¡This–Ÿyhas“bšGecome“necessary“b˜ecause“of“c¸ãhanges“in“ÂSolidŽ‘T«::‘ÏoutputŽ‘D«(‘ª®),‘òwhere“temp˜orary“ÂP®9athsŽ‘&Y’«ha•¸ãv“e–Ÿyto“b˜eŽ¡created–UUin“order“to“sort“them.Ž¡‘ -[¬LDF‘T2002.12.18.«]Ž‘XwMo•¸ãv“ed–`‘here.‘ 1With“the“DEC›`Scompiler“under“Compaq“T‘ÿ*ªru64“on“the“DEC˜Alpha“computer,Ž¡it›¬&w•¸ãork“ed˜to˜ha“v“e˜this˜follo“wing˜the˜constructors.‘9bWith˜the˜GNU–«û¬C‘€Ÿÿ®+‘ÿ+ŽŽ‘óF«compiler˜(GCC)“under˜GNU/Lin¸ãux˜onŽ¡the–ãInš¸ãtel“i686“computer,‘ùëit“didn't:‘8¥The“cop˜y“constructor“used“the“default“assignmen˜t“opGerator“instead“of“thisŽ¡function,‘Špresumably–óbGecause“this“function“wš¸ãasn't“kno˜wn“at“the“time“the“cop˜y“constructor“w˜as“compiled,Ž¡Ïalthough–säit“had“b–ÿ}'e“en›säde“clar“e“d˜pr“eviously‘â}«!‘f.UR•¸ãGENT:›2‰Mo“v“e˜assignmen“t˜op•Gerators˜for˜the˜other˜ÏclassesŽ‘$Ü#«b“eforeŽ¡the‘UUconstructors!Ž¡‘ -[¬LDF‘T2003.04.09.«]Ž‘Y;??‘qÇBUG–UUFIX:“No¸ãw“resizing“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WY¦«,“if“after“setting“it“toŽ¡±pŽ‘:Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«,‘{Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘X̱:ÏsizeŽ‘\«(‘ª¨)–Íô·“«0Ž‘Íõ.‘JïThis›ó prev•¸ãen“ts˜a˜Memory˜F‘ÿ*ªault˜error˜at˜run-time.‘JïIŽ¡don't–:%knoš¸ãw“wh˜y“it“should“bGe“necessary‘ÿ*ª,–?•though,“since–:%all“of“the“constructors“of“ÂP®9athŽ‘®«and“its“deriv˜ed“classesŽ¡resize‘UUÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WY¦«;–UUat“least,“I“though¸ãt“they“did.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘ÇŽ¡‘ -ÂvirtualŽ‘/ÔP®9athŽ‘Kt«&Ž‘S;«ÂopQÇeratorŽ‘~Ò`«=Ž’†™~(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày«);Ž© ­See–´?also“sections“660,–ºÝ663,“665,“668,“670,“673,“675,“677,“680,“682,“684,“686,“688,“690,“692,“695,“697,“700,“702,“704,“706,“708,“713,ޤ -‘719,–áú721,“723,“725,“728,“730,“733,“735,“738,“740,“742,“747,“749,“751,“754,“756,“758,“762,“767,“769,“775,“777,“784,“786,“793,Ž¡‘795,–áú801,“803,“806,“808,“812,“814,“820,“823,“825,“829,“831,“834,“836,“839,“841,“845,“846,“848,“850,“852,“854,“856,“866,“868,Ž¡‘871,–ÕX872,“874,“876,“877,“878,“879,“881,“888,“890,“892,“894,“896,“902,“908,“911,“915,“917,“920,“and“932.ަThis–ÕXco¬«;Ž¡‘Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘E³S«=‘DZpŽ‘Ï:Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘.ì9«;‘±=·‘éR«[¬LDF‘T2002.10.23.«]Ž‘SÚáÏdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’†Ä«and‘>ªÏ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘,©«pGoin¸ãt–>ªto“the“same“ÂColorŽŽ¡‘(«as‘UU±pŽ–]U:Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘2AŽ«and‘UU±pŽ“:Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘%˜U«.‘qÇNo–UUmemory“allošGcation“is“p˜erformed.‘o·±=Ž¡‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘<_o«=‘DZpŽ‘Ï:Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘%˜U«;Ž¡‘Ïdashe‘ÿ}'dŽ‘4ñ»«=‘DZpŽ‘Ï:Ïdashe‘ÿ}'dŽ‘*¡«;Ž¡‘Ïp‘ÿ}'enŽ‘&àÍ«=‘DZpŽ‘Ï:Ïp‘ÿ}'enŽ‘³«;Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘jËk«=‘DZpŽ‘Ï:Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«;‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“line.‘o·±=Ž¡‘ÂifŽ‘´ú«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ±:ÏsizeŽ‘\«(‘ª¨)–Ç·“«0Ž‘Ç)‘±=·‘ÿý«LDF–UU2003.04.09.‘qÇAdded“this“conditional.‘o·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘rT±:Ïr‘ÿ}'esizeŽ‘i«(6Ž‘±;‘ª¨«0Ž‘ª©);Ž¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûp‘‰ffŽ‘®iterŽ‘_ß”«=‘DZpŽ–Ï:Ïp‘ÿ}'ointsŽ›$•±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘ÿýÏp‘‰ffŽ‘®iterŽ‘!\–·6«=‘DZpŽ“:Ïp‘ÿ}'ointsŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘ÿýÏp‘‰ffŽ‘®iterŽ‘~Ÿÿ®+‘ÿ+ŽŽ‘*Üž«)Ž¡‘Ïp‘ÿ}'ointsŽ‘9$˜±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(·Ž‘Ïp‘‰ffŽ‘®iterŽ‘•‚«));Ž¡‘ÂforŽ‘&Q(«(Âv®9ectorŽ‘ªH·hÂstringŽ‘Ïø·i‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûc‘‰ffŽ‘®iterŽ‘` «=‘ux±pŽ–}x:Ïc–ÿ}'onne“ctorsŽ›/4.±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘hÏc‘‰ffŽ‘®iterŽ‘!ð½·6«=‘ux±pŽ“:Ïc–ÿ}'onne“ctorsŽ˜±:ÏendŽ‘ಫ(‘ª¨);Ž¡‘2Ïc‘‰ffŽ‘®iterŽ‘K’­Ÿÿ®+‘ÿ+ŽŽ‘WYÍ«)‘·fŽ¡‘Ïc–ÿ}'onne“ctorsŽ‘M41±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(·Ž‘Ïc‘‰ffŽ‘®iterŽ‘©«);Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼·Ž‘<æ½ÏthisŽ‘MÒs«;Ž¡‘ -·gŽ© ­See–´?also“sections“661,–ºÝ664,“666,“669,“671,“674,“676,“678,“681,“683,“685,“687,“689,“693,“696,“698,“701,“703,“705,“707,“709,“714,“720,ޤ -‘722,–áú724,“726,“729,“731,“734,“736,“739,“741,“743,“748,“750,“752,“755,“757,“759,“763,“764,“765,“766,“768,“770,“771,“776,“778,Ž¡‘785,–áú787,“794,“796,“802,“804,“807,“809,“813,“815,“821,“824,“826,“830,“832,“835,“837,“840,“842,“843,“844,“847,“849,“851,“853,Ž¡‘855,–áú857,“858,“859,“860,“861,“862,“863,“867,“869,“873,“875,“880,“882,“883,“884,“885,“886,“889,“891,“893,“897,“898,“899,“900,Ž¡‘903,–ÕX909,“912,“913,“914,“916,“918,“921,“and“933.ަThis–ÕXco“«0Ž‘Ç)‘·fŽ¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7iterŽ‘=+M«=‘ÇÏp‘ÿ}'ointsŽ–ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘·fŽ¡‘ÂdeleteŽ‘?ƽ·Ž‘DƾÏiterŽ‘U‘¼«;Ž¡‘·gŽ¡‘Ïp‘ÿ}'ointsŽ‘/$—±:Ïcle‘ÿ}'arŽ‘(Ù«(‘ª¨);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(Ïc–ÿ}'onne“ctorsŽ‘/4.±:ÏsizeŽ‘\«(›ª¨)–DZ>“«0Ž‘Ç)‘Ïc–ÿ}'onne“ctorsŽ‘44.±:Ïcle‘ÿ}'arŽ‘(Ù«(˜);ŽŽŽŒ‹º  Šn ý‘ì«186›­DISCARD–ÕXPOINTS“AND“CONNECTORS’Á¶ -3DLDFPRÃŽG˜·x«659Ž €n ý•@P­This–ÕXcoÄç«&Ž‘FŒÏp1Ž‘R¢Å«);ŽŽŽŒ‹» 3b Šn ý‘ì·x«664›­3DLDFPR•ÃŽG’BzCONSTR“UCTOR˜«187Ž €n ý•@PÂ664.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘#‘i«::‘ÂP®9athŽ‘‘h«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å«)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPath()È Ý(liŽ‘kÆÜneÈ Ýversion).\n"Ž’½Ô/·‘ÇÏ ushŽ‘€«;Ž¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïline‘‰ffŽ‘®switchŽ‘FiÛ«=‘ÇÏtrueŽ‘‹°«;Ž¡‘Ïcycle‘‰ffŽ‘®switchŽ‘KÇ´«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïdo‘‰ffŽ‘®outputŽ‘A½M«=‘ÇÏtrueŽ‘‹°«;‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“line.‘o·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS±:Ïr‘ÿ}'esizeŽ‘i«(6Ž‘±;‘ª¨«0Ž‘ª©);‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“line.‘o·±=Ž¡‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘Us+«=‘Ç0Ž‘Ç;Ž¡‘Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘E³S«=‘Ç0Ž‘Ç;Ž¡‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘<_o«=‘Ç0Ž‘Ç;Ž¡‘Ïdashe‘ÿ}'dŽ‘4ñ»«=‘ÇÝ""Ž‘ Íz«;‘±=·‘ÿý«LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o·±=Ž¡‘Ïp‘ÿ}'enŽ‘&àÍ«=‘ÇÝ""Ž‘ Íz«;Ž¡‘Ïarr‘ÿ}'owŽ‘1'j«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïp‘ÿ}'ointsŽ‘/$—±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïp0Ž‘ À«));Ž¡‘Ïp‘ÿ}'ointsŽ‘/$—±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïp1Ž‘ À«));Ž¡‘Ïc–ÿ}'onne“ctorsŽ‘C40±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ý"--"Ž‘†\«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath()È Ý(linŽ‘kÆÜeÈ Ýversion).\n"Ž’¸”2·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ665.‘ üSetting‘ÕTfunction.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏsetŽ‘0v]«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å«);ŽŽŽŒ‹¼ 3DLDFPRÃŽG“·x«666Ž €n ý•@PÂ666.ŽŸ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘Äç«&Ž‘FŒÏp1Ž‘R¢Å«)Ž¡‘ -·fŽ¡‘Ïline‘‰ffŽ‘®switchŽ‘FiÛ«=‘ÇÏtrueŽ‘‹°«;Ž¡‘Ïcycle‘‰ffŽ‘®switchŽ‘KÇ´«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïdo‘‰ffŽ‘®outputŽ‘A½M«=‘ÇÏtrueŽ‘‹°«;‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“line.‘o·±=Ž¡‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘Us+«=‘Ç0Ž‘Ç;Ž¡‘Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘E³S«=‘Ç0Ž‘Ç;Ž¡‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘<_o«=‘Ç0Ž‘Ç;Ž¡‘Ïdashe‘ÿ}'dŽ‘4ñ»«=‘ÇÝ""Ž‘ Íz«;‘±=·‘ÿý«LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o·±=Ž¡‘Ïp‘ÿ}'enŽ‘&àÍ«=‘ÇÝ""Ž‘ Íz«;Ž¡‘Ïarr‘ÿ}'owŽ‘1'j«=‘ÇÏfalseŽ‘v\«;Ž¡‘·h–ª¨«Discard‘UUÏp‘ÿ}'ointsŽ‘!Ï?«and‘UUÏc–ÿ}'onne“ctorsŽ‘6ɇ­659“·iŽ¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘jËk«=‘Ç0Ž‘Ç;‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“line.‘o·±=Ž¡‘Ïp‘ÿ}'ointsŽ‘/$—±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïp0Ž‘ À«));Ž¡‘Ïp‘ÿ}'ointsŽ‘/$—±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïp1Ž‘ À«));Ž¡‘Ïc–ÿ}'onne“ctorsŽ‘C40±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ý"--"Ž‘†\«);Ž¡‘Ïline‘‰ffŽ‘®switchŽ‘FiÛ«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ -·gŽ©Â667.› üP•®9oin“ts–ñ|and“one“t®9ypQÇe“of“connector.˜«This–+ constructor“takš¸ães“a“v‘ÿqÇariable“n˜um˜bGer“of“ÂP•®9oin“tŽ‘%ðZ·ŽŽ¡«argumenš¸ãts,‘´'but–mýonly“allo˜ws“one“t˜ypGe“of“connector.‘»ÀThe“argumen˜t“list“m˜ust“end“with“0.‘»ÀIf“the“order“ofŽ¡the–?]named“argumenš¸ãts“is“rev˜ersed,‘yßthe“compiler“can't“resolv˜e“certain“calls“to“ÂP®9athŽ‘ÐÁ«(‘ª®).‘/ßIt“couldn't“resolv˜eŽ¡bGet•¸ãw“een‘ÚÂP®9athŽ‘’>«(Âb•QÇo“olŽ‘LëÏcycleŽ‘0Æ ±;‘ª¨ÂstringŽ‘z Ïc–ÿ}'onne“ctorŽ‘R/¤±:–ª¨:“:Ž‘_„ó«)–Úand“ÂP®9athŽ‘ “«(“ÂP•®9oin“tŽ‘#›ü·Ž‘(›ýÏ rst‘‰ffŽ–®p‘ÿ}'oint‘‰ffŽ“ptrŽ‘jÙ>±:–ª¨:“:Ž‘|/g«).‘tVI‘®don't“kno¸ãwŽ¡whš¸ãy–UUit“should“ha˜v˜e“had“trouble,“though,“since“pGoin˜ters“to“ÂP•®9oin“tsŽ‘&Î.«are“not“Âb•QÇo“olsŽ‘*¢«.Ž¡‘ -[¬LDF‘T2002.4.6.«]Ž‘O5âProbably–Âøit“couldn't“distinguish“bšGet•¸ãw“een–Âøa“p˜oin¸ãter“and“an“Âin®9tޑՒ«on“the“one“hand“and“a“Âb•QÇo“olŽŽ¡«and–UUan“Âin®9tŽ‘úL«on“the“other.‘qÇI“hopGe“that“Âb•QÇo“olsŽ‘!÷«are“more“ecienš¸ãtly“implemen˜ted“than“as“ÏintsŽ‘Ãã«,“though!Ž¡‘ -[¬LDF‘T2002.10.29.«]Ž‘Y.®??‘åI‘{¾don't–{Èknoš¸ãw“wh˜y“Ècweave“«needs“instructions“to“put“thin“spaces“after“the“\Âb•QÇo“olŽ‘L«"“inŽ¡the–UUdeclaration“and“de nition“bšGelo•¸ãw.‘qÇMa“yb˜e–UUit's“b˜ecause“of“the“\±:–ª¨:“:Ž‘ ª§«".ަÂ668.‘ üConstructor.ŽŸ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘"‘e«(ÂstringŽ‘!%MÏc–ÿ}'onne“ctorŽ‘L„'±;‘ª¨Âb•QÇo“olŽ‘LÏcycleŽ‘8oï±:–ª¨:“:Ž‘EÅ>«);ŽŽŽŒ‹½ EJ Šn ý‘ì·x«669›­3DLDFPR•ÃŽG’BzCONSTR“UCTOR˜«189Ž €n ý•@PÂ669.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘#‘i«::‘ÂP®9athŽ‘‘h«(ÂstringŽ‘!%MÏc–ÿ}'onne“ctorŽ‘L„'±;‘ª¨Âb•QÇo“olŽ‘LÏcycleŽ‘8oï±:–ª¨:“:Ž‘EÅ>«)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPath()È Ý(coŽ‘kÆÜnnector,È Ýcycle,È Ý...)Ž’ÔÆ .\n"Ž’í·‘ÇÏ ushŽ‘€«;Ž¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïline‘‰ffŽ‘®switchŽ‘FiÛ«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïcycle‘‰ffŽ‘®switchŽ‘KÇ´«=‘ÇÏcycleŽ‘@M«;Ž¡‘Ïc–ÿ}'onne“ctorsŽ‘C40±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ïc–ÿ}'onne“ctorŽ‘+^Ú«);Ž¡‘Ïdo‘‰ffŽ‘®outputŽ‘A½M«=‘ÇÏtrueŽ‘‹°«;‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“line.‘o·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS±:Ïr‘ÿ}'esizeŽ‘i«(6Ž‘±;‘ª¨«0Ž‘ª©);‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“line.‘o·±=Ž¡‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘Us+«=‘Ç0Ž‘Ç;Ž¡‘Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘E³S«=‘Ç0Ž‘Ç;Ž¡‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘<_o«=‘Ç0Ž‘Ç;Ž¡‘Ïdashe‘ÿ}'dŽ‘4ñ»«=‘ÇÝ""Ž‘ Íz«;‘±=·‘ÿý«LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o·±=Ž¡‘Ïp‘ÿ}'enŽ‘&àÍ«=‘ÇÝ""Ž‘ Íz«;Ž¡‘Ïarr‘ÿ}'owŽ‘1'j«=‘ÇÏfalseŽ‘v\«;ަ‘Âv‘ÿ\rau½‰™šs4Ž‘ÔwlistŽ‘7'ýÏapŽ‘B…O«;‘±=·‘ÿý«F‘ÿ*ªor–UUthe“v‘ÿqÇariable“length“argumen¸ãt“list.‘o·±=ަ‘Ïva‘‰ffŽ‘®startŽ‘6éi«(ÏapŽ‘ ]R±;‘ª¨ÏcycleŽ‘#Ý«);ަ‘ÂP•®9oin“tŽ‘2Ž‘7ï Ïar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘WE«;ަ‘ÂwhileŽ‘2C.«((Ïar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘"•«=‘ÇÏva‘‰ffŽ‘®ar‘ÿ}'gŽ‘û,«(ÏapŽ‘ ]R±;‘ª¨ÂP•®9oin“tŽ‘ šE·Ž‘%šF«))–Ç·6«=“Âstaticu½‰™šs4Ž‘ÔwcastŽ‘7Dº·hÂP•®9oin“tŽ‘ï·Ž‘#ïži«(0Ž‘))Ž¡‘Ïp‘ÿ}'ointsŽ‘9$˜±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘U}«));Ž¡‘Ïva‘‰ffŽ‘®endŽ‘2DΫ(ÏapŽ‘ ]R«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath()È Ý(conŽ‘kÆÜnector,È Ýcycle,È Ý...).Ž’ÔÆ \n"Ž’çÔ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ670.‘ üSetting‘ÕTfunction.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏsetŽ‘0v]«(ÂstringŽ‘!%MÏc–ÿ}'onne“ctorŽ‘L„'±;‘ª¨Âb•QÇo“olŽ‘LÏcycleŽ‘8oï±:–ª¨:“:Ž‘EÅ>«);ŽŽŽŒ‹¾ Qð Šn ý‘ì«190–­SETTING‘ÕXFUNCTION’ -u>3DLDFPRÃŽG“·x«671Ž €n ý•@PÂ671.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘«)Ž¡‘ -·fŽ¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïline‘‰ffŽ‘®switchŽ‘FiÛ«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïcycle‘‰ffŽ‘®switchŽ‘KÇ´«=‘ÇÏcycleŽ‘@M«;Ž¡‘Ïdo‘‰ffŽ‘®outputŽ‘A½M«=‘ÇÏtrueŽ‘‹°«;‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“line.‘o·±=Ž¡‘·h–ª¨«Discard‘UUÏp‘ÿ}'ointsŽ‘!Ï?«and‘UUÏc–ÿ}'onne“ctorsŽ‘6ɇ­659“·iŽ¡‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘Us+«=‘Ç0Ž‘Ç;Ž¡‘Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘E³S«=‘Ç0Ž‘Ç;Ž¡‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘<_o«=‘Ç0Ž‘Ç;Ž¡‘Ïdashe‘ÿ}'dŽ‘4ñ»«=‘ÇÝ""Ž‘ Íz«;‘±=·‘ÿý«LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o·±=Ž¡‘Ïp‘ÿ}'enŽ‘&àÍ«=‘ÇÝ""Ž‘ Íz«;Ž¡‘Ïarr‘ÿ}'owŽ‘1'j«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘jËk«=‘Ç0Ž‘Ç;‘±=·‘ÿý«LDF–UU2002.09.18.‘qÇAdded“this“line.‘o·±=Ž¡‘Ïc–ÿ}'onne“ctorsŽ‘C40±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ïc–ÿ}'onne“ctorŽ‘+^Ú«);ަ‘Âv‘ÿ\rau½‰™šs4Ž‘ÔwlistŽ‘7'ýÏapŽ‘B…O«;‘±=·‘ÿý«F‘ÿ*ªor–UUthe“v‘ÿqÇariable“length“argumen¸ãt“list.‘o·±=ަ‘Ïva‘‰ffŽ‘®startŽ‘6éi«(ÏapŽ‘ ]R±;‘ª¨ÏcycleŽ‘#Ý«);ަ‘ÂP•®9oin“tŽ‘2Ž‘7ï Ïar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘WE«;ަ‘ÂwhileŽ‘2C.«((Ïar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘"•«=‘ÇÏva‘‰ffŽ‘®ar‘ÿ}'gŽ‘û,«(ÏapŽ‘ ]R±;‘ª¨ÂP•®9oin“tŽ‘ šE·Ž‘%šF«))–Ç·6«=“Âstaticu½‰™šs4Ž‘ÔwcastŽ‘7Dº·hÂP•®9oin“tŽ‘ï·Ž‘#ïži«(0Ž‘))Ž¡‘Ïp‘ÿ}'ointsŽ‘9$˜±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘U}«));Ž¡‘Ïva‘‰ffŽ‘®endŽ‘2DΫ(ÏapŽ‘ ]R«);Ž¡‘ -·gŽŸÂ672.‘ üV‘ÿ -«ariable›n•®9um“bQÇer˜of˜P“oin“ts˜and˜connectors.‘ ü«These–L¡functions“takš¸ães“a“v‘ÿqÇariable“n˜um˜bGer“ofŽ¡alternating‘«ZÂP•®9oin“tŽ‘"ðü·Ž‘+œW«and–«Zconnector“argumenš¸ãts,‘ÀÛstarting“with“a“ÂP•®9oin“tŽ‘"ðü·Ž‘'ðý«.‘sÖThe“argumen˜t“list“m˜ust“end“withŽ¡0.‘^WW‘ÿ*ªe–don't“need“an“argumen¸ãt“for“whether“it's“a“cycle“or“not,›&¯bGecause“if“it“is,˜it“will“ha•¸ãv“e–a“connector“at“theŽ¡end.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.29.«]Ž‘Y;BUG–UUFIX:“No“longer“pushing“Ï rst‘‰ffŽ–®p‘ÿ}'oint‘‰ffŽ“ptrŽ‘Cze«=‘ÇÏva‘‰ffŽ‘®ar‘ÿ}'gŽ‘û,«(ÏapŽ‘ ]R±;‘ª¨Âc®9harŽ‘ñ·Ž‘ ò«))–Ç·6«=“Âstaticu½‰™šs4Ž‘ÔwcastŽ‘7Dº·hÂc®9harŽ‘jI·Ž‘jJi«(0Ž‘))‘·fŽ¡‘2Ïc–ÿ}'onne“ctorsŽ‘a43±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«((Ïc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘J”«=‘ÇÏc–ÿ}'onne“ctor‘‰ffŽ‘®ptrŽ‘>ze«));Ž¡‘2ÂifŽ‘=´ý«((Ïp‘ÿ}'oint‘‰ffŽ‘®ptrŽ‘*jÌ«=‘ÇÏva‘‰ffŽ‘®ar‘ÿ}'gŽ‘û,«(ÏapŽ‘ ]R±;‘ª¨ÂP•®9oin“tŽ‘ šE·Ž‘%šF«))–Ç·“Âstaticu½‰™šs4Ž‘ÔwcastŽ‘7Dº·hÂP•®9oin“tŽ‘ï·Ž‘#ïži«(0Ž‘))‘·fŽ¡‘<Ïcycle‘‰ffŽ‘®switchŽ‘sǸ«=‘ÇÏtrueŽ‘‹°«;Ž¡‘<ÂbreakŽ‘X¡j«;Ž¡‘2·gŽ¡‘2Ïp‘ÿ}'ointsŽ‘M$š±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïp‘ÿ}'oint‘‰ffŽ‘®ptrŽ‘'£´«));Ž¡‘(·gŽ¡‘(Ïva‘‰ffŽ‘®endŽ‘FDЫ(ÏapŽ‘ ]R«);Ž¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath()È Ý(PoiŽ‘kÆÜnt*È Ý...).\n"Ž’®8·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽŸÂ675.‘ üSetting‘ÕTfunction.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏsetŽ‘3˲«(‘UUÂP•®9oin“tŽ‘"Dò·Ž‘'DóÏ rst‘‰ffŽ–®p‘ÿ}'oint‘‰ffŽ“ptrŽ‘eZ±:–ª¨:“:Ž‘v+þ«)‘UU;ŽŽŽŒ‹À hA Šn ý‘ì«192–­SETTING‘ÕXFUNCTION’ -u>3DLDFPRÃŽG“·x«676Ž €n ý•@PÂ676.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘ze«=‘ÇÏva‘‰ffŽ‘®ar‘ÿ}'gŽ‘û,«(ÏapŽ‘ ]R±;‘ª¨Âc®9harŽ‘ñ·Ž‘ ò«))–Ç·6«=“(Âc®9harŽ‘jI·Ž‘jJ«)‘UU0Ž‘UV)‘·fŽ¡‘2Ïc–ÿ}'onne“ctorsŽ‘a43±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«((Ïc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘J”«=‘ÇÏc–ÿ}'onne“ctor‘‰ffŽ‘®ptrŽ‘>ze«));Ž¡‘2ÂifŽ‘=´ý«((Ïp‘ÿ}'oint‘‰ffŽ‘®ptrŽ‘*jÌ«=‘ÇÏva‘‰ffŽ‘®ar‘ÿ}'gŽ‘û,«(ÏapŽ‘ ]R±;‘ª¨ÂP•®9oin“tŽ‘ šE·Ž‘%šF«))–Ç·“Âstaticu½‰™šs4Ž‘ÔwcastŽ‘7Dº·hÂP•®9oin“tŽ‘ï·Ž‘#ïži«(0Ž‘))‘·fŽ¡‘<Ïcycle‘‰ffŽ‘®switchŽ‘sǸ«=‘ÇÏtrueŽ‘‹°«;Ž¡‘<ÂbreakŽ‘X¡j«;Ž¡‘2·gŽ¡‘2Ïp‘ÿ}'ointsŽ‘M$š±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïp‘ÿ}'oint‘‰ffŽ‘®ptrŽ‘'£´«));Ž¡‘(·gŽ¡‘(Ïva‘‰ffŽ‘®endŽ‘FDЫ(ÏapŽ‘ ]R«);Ž¡‘·gŽŸÂ677.– üCop®9y‘…×constructor.“«[¬LDF‘T2003.04.06.«]Ž‘[!³??–>>!!“BUG:–îÒGot“a“memory“fault“when“I‘îªtried“to“use“thisŽ¡function.›ƒHa•¸ãv“en't–[tested“it“y¸ãet.˜It“w•¸ãork“ed–[to“use“the“default“constructor“and“then“the“assignmen¸ãt“opGerator.Ž¡Maš¸ãybGe–UUit's“not“k˜osher“to“use“\·Ž‘ÏthisŽ‘²Ï«=‘DZpŽ‘Ï«"“in“a“cop˜y“constructor.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.15.«]Ž‘Y‚PRewrote–Ïjthis“function.‘àThe“old“v¸ãersion“caused“a“memory“fault“when“I‘ÏJtried“to“use“it.Ž¡I'v•¸ãe›×tak“en˜coGde˜from˜the˜default˜constructor˜and˜the˜assignmen“t˜op•Gerator˜and˜put˜it˜here˜without˜b“otheringŽ¡to–Ö see“what“wš¸ãas“causing“the“problem.‘G‹Probably“the“old“v˜ersion“didn't“accoun˜t“for“c˜hanges“I'v˜e“made“in“otherŽ¡places,–UUpGerhaps“in“the“class“de nition.Ž¡‘ -[¬LDF‘T2002.11.03.«]Ž‘Y;Rewrote–UUthis“function.‘qÇNoš¸ãw“just“using“the“assignmen˜t“opGerator.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘"‘e«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày«);ŽŽŽŒ‹Á uá Šn ý‘ì·x«678›­3DLDFPR•ÃŽG’‡ZCOPY‘ÕXCONSTR“UCTOR˜«193Ž €n ý•@PÂ678.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘#‘i«::‘ÂP®9athŽ‘‘h«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày«)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPathÈ ÝcopyÈ Ž‘kÆÜÝconstructor.\n"Ž’» «;Ž¡‘·Ž‘ÏthisŽ‘,²Ñ«=‘DZpŽ‘Ï«;Ž¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath()È Ý(copŽ‘kÆÜyÈ Ýconstructor).\n"Ž’Í”&·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gޤÂ679.‘ üPseudo-constructor–ÕTfor“dynamic“alloQÇcation.Ž¡680.‘ üOptional–ÕTpQÇoinš®9ter“argumen˜t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.10.29.«]Ž‘X~öAdded–Ìargumen¸ãt“ÂconstŽ‘ mmP®9athŽ‘;Êá·Ž‘@Êâ±pŽ‘EÒâ«.‘DIf“±pŽ‘ -›(·6«=‘Ç0Ž‘Ç,‘ç„the“new“ÂP®9athŽ‘)„«is“assigned“to“using“the“v‘ÿqÇaluesŽ¡from‘UU±pŽ‘]U«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚP®9athŽ‘E/“·Ž‘J/”Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ’C3«(ÂconstŽ‘*¢P®9athŽ‘:[·Ž‘?\±pŽ‘Fàt«=‘Ç0Ž‘Ç);ŽŸÂ681.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘%溷Ž‘*æ»ÂP®9athŽ‘Dx#«::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ‘F£«(ÂconstŽ‘*¢P®9athŽ‘:[·Ž‘?\±pŽ‘D\«)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ Ýcreate_newŽ‘kÆÜ_path().\n"Ž’¨Ô;·‘ÇÏ ushŽ‘€«;ަ‘ÂP®9athŽ‘/æ»·Ž‘4æ¼±aŽ‘<÷«=‘ÇÂnewŽ‘Ïœ«(ÂP®9athŽ‘‘d«);ަ‘±aŽ‘I2Ÿ~ŽŽ‘I3Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Wµ=«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ÂifŽ‘´ú«(±pŽ‘Ï·6«=‘Ç0Ž‘Ç)‘·fŽ¡‘Ž‘#±aŽ‘+L«=‘Ç·Ž‘Ç±pŽ‘ Ï«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘±aŽ‘!I3Ÿ~ŽŽ‘'I4Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘h¼]«=‘Ç0Ž‘Ç;Ž¡‘±aŽ‘!I3Ÿ~ŽŽ‘'I4Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘Xü…«=‘Ç0Ž‘Ç;Ž¡‘±aŽ‘!I3Ÿ~ŽŽ‘'I4Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘O¨¡«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ Ýcreate_new_Ž‘kÆÜpath().\n"Ž’£”>·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gŽŸÂ682.‘ üRequired–ÕTPš®9ath“argumen˜t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.29.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚP®9athŽ‘E/“·Ž‘J/”Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ’C3«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày«);ŽŽŽŒ‹Â …³ Šn ý‘ì«194‘­REQUIRED›ÕXÂP–ÿ -«A“TH˜­AR•ÃŽGUMENT’Û_å3DLDFPR“G‘·x«683Ž €n ý•@PÂ683.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘%溷Ž‘*æ»ÂP®9athŽ‘Dx#«::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ‘F£«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày«)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ Ýcreate_newŽ‘kÆÜ_path().\n"Ž’¨Ô;·‘ÇÏ ushŽ‘€«;ަ‘ÂP®9athŽ‘/æ»·Ž‘4æ¼±aŽ‘<÷«=‘ÇÂnewŽ‘Ïœ«(ÂP®9athŽ‘‘d«);ަ‘±aŽ‘I2Ÿ~ŽŽ‘I3Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Wµ=«=‘ÇÏtrueŽ‘‹°«;Ž¡‘·Ž‘±aŽ‘!K«=‘DZpŽ‘Ï«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ Ýcreate_new_Ž‘kÆÜpath().\n"Ž’£”>·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼±aŽ‘=/ì«;Ž¡‘ -·gŽŸÂ684.‘ üDestructor.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.08.27.«]Ž‘ZÖMade‘eðÂvirtualŽ‘&žn«,‘ªbGecause–eðGCC‘eªwith“the“\È-Wall«"“option“issued“the“folloš¸ãwing“w˜arning:Ž¡\`class–UUP¸ãath'“has“virtual“functions“but“non-virtual“destructor".ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/Ô·Ž‘7TòÂP®9athŽ‘OæV«(‘ª¨);ŽŽŽŒ‹Ã ‘] Šn ý‘ì·x«685›­3DLDFPR•ÃŽG’&dDESTR“UCTOR˜«195Ž €n ý•@PÂ685.‘ ü«!!‘qÇMakš¸ãe–UUsure“to“delete“an˜ything“else“that“I“alloGcate“dynamically!Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘#‘i«::Ž‘*§·Ž‘1æÅÂP®9athŽ‘Jx)«(‘ª¨)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"EnteringÈ Ý~Path().\nŽ‘kÆÜ"Ž‘tTY·‘ÇÏ ushŽ‘€«;Ž¡‘ÏshowŽ‘4‹«(Ý"Path:"Ž‘%FS«);Ž¡‘ÏgetcharŽ‘?%ÿ«(‘ª®);Ž¡‘·gŽ¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7iterŽ‘=+M«=‘ÇÏp‘ÿ}'ointsŽ–ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘·fŽ¡‘ÂdeleteŽ‘?ƽ·Ž‘DƾÏiterŽ‘U‘¼«;Ž¡‘·gŽ¡‘Ïp‘ÿ}'ointsŽ‘/$—±:Ïcle‘ÿ}'arŽ‘(Ù«(‘ª¨);Ž¡‘±=·‘ÿý«[¬LDF‘T2002.11.03.«]Ž‘T7This–UUreplaces“a“ÂwhileŽ‘!˜«loGop“in“whicš¸ãh“Ïp–ÿ}'op‘‰ffŽ‘®b“ackŽ‘)Ò¢«(‘ª®)“w˜as“used“to“empt˜y“Ïp‘ÿ}'ointsŽ‘yê«.‘o·±=Ž¡‘Ïc–ÿ}'onne“ctorsŽ‘C40±:Ïcle‘ÿ}'arŽ‘(Ù«(‘ª¨);‘±=·‘ÿý«LDF‘UU2002.11.03.‘qÇAdded.‘o·±=Ž¡‘=·‘ÿý«LDF–UU2002.10.07.‘qÇAdded“coGde“for“handling“Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5–ã«and“Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(íª«.‘o·±=Ž¡‘ÂifŽ‘´ú«(Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q·6«=‘Ç0Ž‘ ÿù·^‘8àÏdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘/%Ÿ±~ŽŽ‘5%Ïis‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘wŸï«(‘ª¨)–Ç·“ÏtrueŽ‘‹°«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"DeletingÈ Ýdraw_colorŽ‘kÆÜ\n"Ž‘| ;«;Ž¡‘ÂdeleteŽ‘?ƽÏdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘n²ö«;Ž¡‘Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘O³T«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"NotÈ ÝdeletingÈ Ýdraw_cŽ‘kÆÜolor\n"Ž’‘ /«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(_m·6«=‘Ç0Ž‘ ÿù·^‘8àÏ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘%Ñ5Ÿ±~ŽŽ‘+Ñ6Ïis‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘nL «(‘ª¨)–Ç·“ÏtrueŽ‘‹°«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"DeletingÈ Ýfill_colorŽ‘kÆÜ\n"Ž‘| ;«;Ž¡‘ÂdeleteŽ‘?Æ½Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘e_«;Ž¡‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘F_p«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"NotÈ ÝdeletingÈ Ýfill_cŽ‘kÆÜolor\n"Ž’‘ /«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ExitingÈ Ý~Path().\n"Ž‘o\·‘ÇÏ ushŽ‘€«;Ž¡‘ÏgetcharŽ‘?%ÿ«(‘ª®);Ž¡‘·gŽ¡‘ -gŽŸÂ686.– üClear.“«LDF‘´Undated.‘VCThis–Éfunction“is“needed“bGecause“it's“a“pure“ÂvirtualŽ‘(>«function“in“ÂShapQÇeŽ‘!îÖ«,‘KandŽ¡for–UUgetting“rid“of“items“in“ÂPictureŽ‘)ñf«::‘Ïcle‘ÿ}'arŽ‘(Ý«(‘ª®).Ž¡‘ -[¬LDF‘T2002.10.07.«]Ž‘YlDÏcle‘ÿ}'arŽ‘o•«(‘ª®)–¹^is“needed“bGecause“it's“called“on“the“ÂShapQÇesŽ‘*è«that“are“stored“in“ÂPicturesŽ‘-Þ§«,‘Ò`andŽ¡I‘Omdon't–O®knoš¸ãw“of“a“w˜a˜y“of“o˜v˜erloading“destructors.‘`ÑThat“is,›ŽCin“ÂPictureŽ‘*ë¿«::‘Ïcle‘ÿ}'arŽ‘(Ý«(‘ª®),˜the“actual“t¸ãypGes“of“theŽ¡ÂShapQÇesŽ‘'ʾ«are–Uuunkno¸ãwn,›•}so“I‘U3can't“call“·Ž‘ “ÂP®9athŽ‘$­÷«(–ª¨),˜·Ž‘ \›ÂCircleŽ‘*¿Ç«(“),˜or–Uuother“destructors“directly‘ÿ*ª.‘r'But“a“namedŽ¡function–UUsucš¸ãh“as“Ïcle‘ÿ}'arŽ‘~.«(‘ª®)“can“serv˜e“the“same“purpGose.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.07.«]Ž‘X Added–#cošGde“for“deallo˜cating“the“memory“allo˜cated“for“Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5 -«and“Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(§x«,‘-if“an¸ãy‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¡‘ -??‘€I›†1tried–†=calling“·Ž‘ M[ÂP®9athŽ‘#Þ¿«(‘ª¨)“inside“ÂP®9athŽ‘Þ«:‘Ó˜Ïcle‘ÿ}'arŽ‘üq«(‘ª®),‘’xbut“I˜got“a“memory“fault.‘€Don't“knoš¸ãw“wh˜y‘ÿ*ª.‘€TO‘†1DO:Ž¡T‘ÿ*ªry–UUto“ nd“out.‘qÇHo•¸ãw“ev“er,–UUthis“isn't“urgen¸ãt.ŽŽŽŒ‹Ä –Ï Šn ý‘ì«196–­CLEAR’Dêp3DLDFPRÃŽG“·x«686Ž €n ý•@P·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ޤ ‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïcle‘ÿ}'arŽ‘^´…«(‘ª®);ŽŸÂ687.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘‘h¬;Ž¡‘°gŽ¡‘±normalŽ‘4Vºµ:±showŽ‘Šÿ¬(´"normal:"Ž‘/ÆM¬);Ž¡‘±p‘ÿ}'ointŽ‘+.޵:±showŽ‘Šÿ¬(´"point:"Ž‘*†P¬);Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"distance® ´==® ´"Ž‘O”n°‘DZdistanc‘ÿ}'eŽ‘)Ô-°‘DZend‘‚ØlŽ–ò°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘ +°gަ­691.‘ üGlobal–ÕTconstan®9ts“for“Plane.ŽŸ°h‘ª¨­PlaneŽ‘!á`¬global‘UUconstan¸ãts‘@¯691‘ª¨°i‘ÇŽ¡‘ +­externŽ‘.×constŽ‘LHyPlaneŽ‘l1´INVALID_PLANEŽ’±Er¬(´INVALID_POINTŽ‘DÆAµ;‘ª¨´INVALID_POINTŽ‘Fpé¬);ŽŸ ¯This–ÕXcoNoš¸ãw– +Xall“of“the“data“mem˜bGers“of“­classŽ‘Ÿ¬P®9athŽ‘<;h¬are“assigned“to“except“for“±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘;¯J¬.Ž¡This–Ÿyhas“bšGecome“necessary“b˜ecause“of“c¸ãhanges“in“­SolidŽ‘T¬::‘±outputŽ‘D¬(‘ª®),‘òwhere“temp˜orary“­P®9athsŽ‘&Y’¬ha•¸ãv“e–Ÿyto“b˜eŽ¡created–UUin“order“to“sort“them.Ž¡‘ +[²LDF‘T2002.12.18.¬]Ž‘XwMo•¸ãv“ed–`‘here.‘ 1With“the“DEC›`Scompiler“under“Compaq“T‘ÿ*ªru64“on“the“DEC˜Alpha“computer,Ž¡it›¬&w•¸ãork“ed˜to˜ha“v“e˜this˜follo“wing˜the˜constructors.‘9bWith˜the˜GNU–«û²C‘€Ÿÿ³+‘ÿ+ŽŽ‘óF¬compiler˜(GCC)“under˜GNU/Lin¸ãux˜onŽ¡the–ãInš¸ãtel“i686“computer,‘ùëit“didn't:‘8¥The“cop˜y“constructor“used“the“default“assignmen˜t“opGerator“instead“of“thisŽ¡function,‘Špresumably–óbGecause“this“function“wš¸ãasn't“kno˜wn“at“the“time“the“cop˜y“constructor“w˜as“compiled,Ž¡±although–säit“had“b–ÿ}'e“en›säde“clar“e“d˜pr“eviously‘â}¬!‘f.UR•¸ãGENT:›2‰Mo“v“e˜assignmen“t˜op•Gerators˜for˜the˜other˜±classesŽ‘$Ü#¬b“eforeŽ¡the‘UUconstructors!Ž¡‘ +[²LDF‘T2003.04.09.¬]Ž‘Y;??‘qÇBUG–UUFIX:“No¸ãw“resizing“±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WY¦¬,“if“after“setting“it“toŽ¡µpŽ‘:±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ¬,‘{±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘X̵:±sizeŽ‘\¬(‘ª¨)–Íô°“¬0Ž‘Íõ.‘JïThis›ó prev•¸ãen“ts˜a˜Memory˜F‘ÿ*ªault˜error˜at˜run-time.‘JïIŽ¡don't–:%knoš¸ãw“wh˜y“it“should“bGe“necessary‘ÿ*ª,–?•though,“since–:%all“of“the“constructors“of“­P®9athŽ‘®¬and“its“deriv˜ed“classesŽ¡resize‘UU±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘WY¦¬;–UUat“least,“I“though¸ãt“they“did.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘ÇŽ¡‘ +­virtualŽ‘/ÔP®9athŽ‘Kt¬&Ž‘S;«­opQÇeratorŽ‘~Ò`¬=Ž’†™~(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày¬);Ž© ¯See–´?also“sections“704,–ºÝ707,“709,“712,“714,“717,“719,“721,“726,“728,“730,“732,“735,“738,“740,“743,“745,“747,“749,“751,“756,“762,“764,ޤ +‘766,–áú768,“771,“773,“776,“778,“781,“783,“785,“790,“792,“794,“797,“799,“801,“805,“810,“812,“818,“820,“827,“829,“836,“838,“844,Ž¡‘846,–áú849,“851,“855,“857,“863,“866,“868,“872,“874,“877,“879,“882,“884,“888,“889,“891,“893,“895,“897,“899,“909,“911,“914,“916,Ž¡‘918,–ÕX920,“921,“922,“923,“925,“932,“934,“936,“938,“940,“946,“952,“955,“959,“961,“964,“and“976.ަThis–ÕXco¬¬;Ž¡‘±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘P+A¬=‘?µpŽ‘G:±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘.ì9¬;‘µ=°‘Gò¬[²LDF‘T2002.10.23.¬]Ž‘T˜!±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’‡!¤¬and‘J± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘,Òé¬pGoin¸ãt–Jto“the“sameŽ¡‘2­ColorŽ‘Q¤ø¬as‘UUµpŽ–]U:±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘2Aެand‘UUµpŽ“:± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘%˜U¬.‘qÇNo–UUmemory“allošGcation“is“p˜erformed.‘o°µ=Ž¡‘± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘F_p¬=‘ǵpŽ‘Ï:± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘%˜U¬;Ž¡‘±dashe‘ÿ}'dŽ‘>ñ¼¬=‘ǵpŽ‘Ï:±dashe‘ÿ}'dŽ‘*¡¬;Ž¡‘±p‘ÿ}'enŽ‘0àά=‘ǵpŽ‘Ï:±p‘ÿ}'enŽ‘³¬;Ž¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘tËl¬=‘ǵpŽ‘Ï:±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ¬;‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“line.‘o°µ=Ž¡‘­ifŽ‘)´û¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQµ:±sizeŽ‘\¬(‘ª¨)–ǰ“¬0Ž‘Ç)‘µ=°‘ÿý¬LDF–UU2003.04.09.‘qÇAdded“this“conditional.‘o°µ=Ž¡‘(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘|Uµ:±r‘ÿ}'esizeŽ‘i¬(6Ž‘µ;‘ª¨¬0Ž‘ª©);Ž¡‘­forŽ‘/þ¬(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘0°Ž‘$1i‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûp‘‰ffŽ‘®iterŽ‘`‰¬=‘ë µpŽ–ó :±p‘ÿ}'ointsŽ›$•µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘±p‘‰ffŽ‘®iterŽ‘!–°6¬=‘ë µpŽ“:±p‘ÿ}'ointsŽ˜µ:±endŽ‘ಬ(‘ª¨);‘±p‘‰ffŽ‘®iterŽ‘+Ÿÿ³+‘ÿ+ŽŽ‘*ò1¬)Ž¡‘2±p‘ÿ}'ointsŽ‘M$šµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(°Ž‘±p‘‰ffŽ‘®iterŽ‘•‚¬)–UU)“;Ž¡‘­forŽ‘0+á¬(­v®9ectorŽ‘ªH°h­stringŽ‘Ïø°i‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûc‘‰ffŽ‘®iterŽ‘_Ìø¬=‘7UµpŽ–?U:±c–ÿ}'onne“ctorsŽ›/4.µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘CU±c‘‰ffŽ‘®iterŽ‘!R°6¬=‘7UµpŽ“:±c–ÿ}'onne“ctorsŽ˜µ:±endŽ‘ಬ(‘ª¨);Ž¡‘<±c‘‰ffŽ‘®iterŽ‘U’®Ÿÿ³+‘ÿ+ŽŽ‘aYά)‘°fŽ¡‘(±c–ÿ}'onne“ctorsŽ‘W42µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(°Ž‘±c‘‰ffŽ‘®iterŽ‘©¬);Ž¡‘°gŽ¡‘­returnŽ‘Aæ½°Ž‘Fæ¾±thisŽ‘WÒt¬;‘UU°gŽ© ¯See–´?also“sections“705,–ºÝ708,“710,“713,“715,“718,“720,“722,“727,“729,“731,“733,“736,“739,“741,“744,“746,“748,“750,“752,“757,“763,“765,ޤ +‘767,–áú769,“772,“774,“777,“779,“782,“784,“786,“791,“793,“795,“798,“800,“802,“806,“807,“808,“809,“811,“813,“814,“819,“821,“828,Ž¡‘830,–áú837,“839,“845,“847,“850,“852,“856,“858,“864,“867,“869,“873,“875,“878,“880,“883,“885,“886,“887,“890,“892,“894,“896,“898,Ž¡‘900,–áú901,“902,“903,“904,“905,“906,“910,“912,“915,“917,“919,“924,“926,“927,“928,“929,“930,“933,“935,“937,“941,“942,“943,“944,Ž¡‘947,–ÕX953,“956,“957,“958,“960,“962,“965,“and“977.ަThis–ÕXco“¬0Ž‘Ç)‘°fŽ¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7iterŽ‘=+M¬=‘DZp‘ÿ}'ointsŽ–ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZp‘ÿ}'ointsŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘G±iterŽ‘"¬)‘°fŽ¡‘­deleteŽ‘?ƽ°Ž‘Dƾ±iterŽ‘U‘¼¬;Ž¡‘°gŽ¡‘±p‘ÿ}'ointsŽ‘/$—µ:±cle‘ÿ}'arŽ‘(Ù¬(‘ª¨);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±c–ÿ}'onne“ctorsŽ‘/4.µ:±sizeŽ‘\¬(›ª¨)–ǵ>“¬0Ž‘Ç)‘±c–ÿ}'onne“ctorsŽ‘44.µ:±cle‘ÿ}'arŽ‘(Ù¬(˜);ŽŸ ¯This–ÕXcoÄç¬&Ž‘FŒ±p1Ž‘R¢Å¬);ŽŽŽŒ‹Å$Á Šn ý‘ì°x¬708–¯3DLDF-1.1.5.1’ÎäCONSTRÃŽUCTOR“¬197Ž €n ý•@P­708.ޤ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž© ‘ +­P®9athŽ‘#‘i¬::‘­P®9athŽ‘‘h¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Å¬)°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path()® ´(liŽ‘kÆÜne® ´version).\n"Ž’½Ô/°‘DZ ushŽ‘€¬;ަ‘±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Xl ¬=‘DZfalseŽ‘v\¬;ަ‘±line‘‰ffŽ‘®switchŽ‘Piܬ=‘DZtrueŽ‘‹°¬;ަ‘±cycle‘‰ffŽ‘®switchŽ‘Uǵ¬=‘DZfalseŽ‘v\¬;ަ‘±do‘‰ffŽ‘®outputŽ‘K½N¬=‘DZtrueŽ‘‹°¬;‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“line.‘o°µ=ަ‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘rTµ:±r‘ÿ}'esizeŽ‘i¬(6Ž‘µ;‘ª¨¬0Ž‘ª©);‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“line.‘o°µ=ަ‘± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘_s,¬=‘Ç0Ž‘Ç;ަ‘±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘O³T¬=‘Ç0Ž‘Ç;ަ‘± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘F_p¬=‘Ç0Ž‘Ç;ަ‘±dashe‘ÿ}'dŽ‘>ñ¼¬=‘Ç´""Ž‘ Íz¬;‘µ=°‘ÿý¬LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o°µ=ަ‘±p‘ÿ}'enŽ‘0àά=‘Ç´""Ž‘ Íz¬;ަ‘±arr‘ÿ}'owŽ‘;Ij¬=‘é±falseŽ‘˜[¬;‘i»±p‘ÿ}'ointsŽ‘ŽPµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ›. ¬(‘i»±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6c:µ<‘i»­P•®9oin“tŽ‘!íµ>‘é¬(±p0Ž‘ À¬)–i»)“;‘®ú±p‘ÿ}'ointsޑӵ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ˜¬(“±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6c:µ<ަ‘2­P•®9oin“tŽ‘Paeµ>‘Ǭ(±p1Ž‘ À¬)–UU)“;ަ‘±c–ÿ}'onne“ctorsŽ‘M41µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(´"--"Ž‘†\¬);ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path()® ´(linŽ‘kÆÜe® ´version).\n"Ž’¸”2°‘DZ ushŽ‘€¬;ަ‘­returnŽ‘>‘h¬;‘qǰgŽŸ­709.‘ üSetting‘ÕTfunction.Ž¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙ±setŽ‘0v]¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Å¬);ŽŸ­710.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘Äç¬&Ž‘FŒ±p1Ž‘R¢Å¬)°f‘UU±line‘‰ffŽ‘®switchŽ‘5¿.¬=‘DZtrueŽ‘‹°¬;ަ‘±cycle‘‰ffŽ‘®switchŽ‘Uǵ¬=‘DZfalseŽ‘v\¬;ަ‘±do‘‰ffŽ‘®outputŽ‘K½N¬=‘DZtrueŽ‘‹°¬;‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“line.‘o°µ=ަ‘± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘_s,¬=‘Ç0Ž‘Ç;ަ‘±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘O³T¬=‘Ç0Ž‘Ç;ަ‘± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘F_p¬=‘Ç0Ž‘Ç;ަ‘±dashe‘ÿ}'dŽ‘>ñ¼¬=‘Ç´""Ž‘ Íz¬;‘µ=°‘ÿý¬LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o°µ=ަ‘±p‘ÿ}'enŽ‘0àά=‘Ç´""Ž‘ Íz¬;ަ‘±arr‘ÿ}'owŽ‘;'k¬=‘DZfalseŽ‘v\¬;ަ‘°h–ª¨¬Discard‘UU±p‘ÿ}'ointsŽ‘!Ï?¬and‘UU±c–ÿ}'onne“ctorsŽ‘6ɇ¯703“°iަ‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘tËl¬=‘Ç0Ž‘Ç;‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“line.‘o°µ=ަ‘±p‘ÿ}'ointsŽ‘9$˜µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ›.vC¬(‘ñ±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘5˦µ<‘ñ­P•®9oin“tŽ‘!Qµ>‘Ǭ(±p0Ž‘ À¬)–ñ)“;‘_P±p‘ÿ}'ointsŽ‘ƒåµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ˜¬(“±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘5˦µ<“­P•®9oin“tŽ‘!Qµ>‘Ǭ(±p1Ž‘ À¬)“)“;ަ‘±c–ÿ}'onne“ctorsŽ‘M41µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(´"--"Ž‘†\¬);ަ‘±line‘‰ffŽ‘®switchŽ‘Piܬ=‘DZtrueŽ‘‹°¬;‘UU°gŽŸ­711.› üP•®9oin“ts–ñ|and“one“t®9ypQÇe“of“connector.˜¬This–+ constructor“takš¸ães“a“v‘ÿqÇariable“n˜um˜bGer“of“­P•®9oin“tŽ‘%ðZ°ŽŽ¦¬argumenš¸ãts,‘´'but–mýonly“allo˜ws“one“t˜ypGe“of“connector.‘»ÀThe“argumen˜t“list“m˜ust“end“with“0.‘»ÀIf“the“order“ofަthe–?]named“argumenš¸ãts“is“rev˜ersed,‘yßthe“compiler“can't“resolv˜e“certain“calls“to“­P®9athŽ‘ÐÁ¬(‘ª®).‘/ßIt“couldn't“resolv˜eަbGet•¸ãw“een‘Ú­P®9athŽ‘’>¬(­b•QÇo“olŽ‘Lë±cycleŽ‘0Æ µ;‘ª¨­stringŽ‘z ±c–ÿ}'onne“ctorŽ‘R/¤µ:–ª¨:“:Ž‘_„ó¬)–Úand“­P®9athŽ‘ “¬(“­P•®9oin“tŽ‘#›ü°Ž‘(›ý± rst‘‰ffŽ–®p‘ÿ}'oint‘‰ffŽ“ptrŽ‘jÙ>µ:–ª¨:“:Ž‘|/g¬).‘tVI‘®don't“kno¸ãwަwhš¸ãy–UUit“should“ha˜v˜e“had“trouble,“though,“since“pGoin˜ters“to“­P•®9oin“tsŽ‘&Î.¬are“not“­b•QÇo“olsŽ‘*¢¬.ަ‘ +[²LDF‘T2002.4.6.¬]Ž‘O5âProbably–Âøit“couldn't“distinguish“bšGet•¸ãw“een–Âøa“p˜oin¸ãter“and“an“­in®9tޑՒ¬on“the“one“hand“and“a“­b•QÇo“olŽŽ¦¬and–UUan“­in®9tŽ‘úL¬on“the“other.‘qÇI“hopGe“that“­b•QÇo“olsŽ‘!÷¬are“more“ecienš¸ãtly“implemen˜ted“than“as“±intsŽ‘Ãã¬,“though!ަ‘ +[²LDF‘T2002.10.29.¬]Ž‘Y.®??‘åI‘{¾don't–{Èknoš¸ãw“wh˜y“®cweave“¬needs“instructions“to“put“thin“spaces“after“the“\­b•QÇo“olŽ‘L¬"“inަthe–UUdeclaration“and“de nition“bšGelo•¸ãw.‘qÇMa“yb˜e–UUit's“b˜ecause“of“the“\µ:–ª¨:“:Ž‘ ª§¬".ŽŽŽŒ‹Æ-– Šn ý‘ì¬198–¯CONSTRÃŽUCTOR’Îä3DLDF-1.1.5.1“°x¬712Ž €n ý•@P­712.‘ üConstructor.ޤ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž© ‘ +­P®9athŽ‘"‘e¬(­stringŽ‘!%M±c–ÿ}'onne“ctorŽ‘L„'µ;‘ª¨­b•QÇo“olŽ‘L±cycleŽ‘8oïµ:–ª¨:“:Ž‘EÅ>¬);ŽŸ­713.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­P®9athŽ‘#‘i¬::‘­P®9athŽ‘‘h¬(­stringŽ‘!%M±c–ÿ}'onne“ctorŽ‘L„'µ;‘ª¨­b•QÇo“olŽ‘L±cycleŽ‘8oïµ:–ª¨:“:Ž‘EÅ>¬)°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path()® ´(coŽ‘kÆÜnnector,® ´cycle,® ´...)Ž’ÔÆ .\n"Ž’í°‘Ç± ushŽ‘€¬;ަ‘±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Xl ¬=‘DZfalseŽ‘v\¬;ަ‘±line‘‰ffŽ‘®switchŽ‘Piܬ=‘DZfalseŽ‘v\¬;ަ‘±cycle‘‰ffŽ‘®switchŽ‘Uǵ¬=‘DZcycleŽ‘@M¬;ަ‘±c–ÿ}'onne“ctorsŽ‘M41µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±c–ÿ}'onne“ctorŽ‘+^Ú¬);ަ‘±do‘‰ffŽ‘®outputŽ‘K½N¬=‘DZtrueŽ‘‹°¬;‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“line.‘o°µ=ަ‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘rTµ:±r‘ÿ}'esizeŽ‘i¬(6Ž‘µ;‘ª¨¬0Ž‘ª©);‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“line.‘o°µ=ަ‘± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘_s,¬=‘Ç0Ž‘Ç;ަ‘±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘O³T¬=‘Ç0Ž‘Ç;ަ‘± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘F_p¬=‘Ç0Ž‘Ç;ަ‘±dashe‘ÿ}'dŽ‘>ñ¼¬=‘Ç´""Ž‘ Íz¬;‘µ=°‘ÿý¬LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o°µ=ަ‘±p‘ÿ}'enŽ‘0àά=‘Ç´""Ž‘ Íz¬;ަ‘±arr‘ÿ}'owŽ‘;'k¬=‘DZfalseŽ‘v\¬;Ž¡‘­v‘ÿ\rau½‰™šs4Ž‘ÔwlistŽ‘A'þ±apŽ‘L…P¬;‘µ=°‘ÿý¬F‘ÿ*ªor–UUthe“v‘ÿqÇariable“length“argumen¸ãt“list.‘o°µ=Ž¡‘±va‘‰ffŽ‘®startŽ‘@éj¬(±apŽ‘ ]Rµ;‘ª¨±cycleŽ‘#ݬ);Ž¡‘­P•®9oin“tŽ‘=ÚÖ°Ž‘BÚ×±ar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘b0T¬;‘@‹­whileŽ‘#ní¬((±ar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘#¤˜¬=‘O±va‘‰ffŽ‘®ar‘ÿ}'gŽ‘ ƒ/¬(±apŽ‘ ]Rµ;‘ª¨­P•®9oin“tŽ‘!…{°Ž‘&…|¬))–O°6¬=“­staticu½‰™šs4Ž‘ÔwcastŽ‘8̽°h­P•®9oin“tŽ‘ÚÓ°Ž‘$ÚÔi¬(0Ž‘))ަ‘2±p‘ÿ}'ointsŽ‘M$šµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(±ar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘U}¬)–UU)“;ަ‘±va‘‰ffŽ‘®endŽ‘‘h¬;‘qǰgŽŸ­714.‘ üSetting‘ÕTfunction.Ž¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙ±setŽ‘0v]¬(­stringŽ‘!%M±c–ÿ}'onne“ctorŽ‘L„'µ;‘ª¨­b•QÇo“olŽ‘L±cycleŽ‘8oïµ:–ª¨:“:Ž‘EÅ>¬);ŽŽŽŒ‹ÇAf Šn ý‘ì°x¬715–¯3DLDF-1.1.5.1’¨SETTING‘ÕXFUNCTION“¬199Ž €n ý•@P­715.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘¬)°f‘UU±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘=Á_¬=‘DZfalseŽ‘v\¬;Ž¡‘±line‘‰ffŽ‘®switchŽ‘Piܬ=‘DZfalseŽ‘v\¬;Ž¡‘±cycle‘‰ffŽ‘®switchŽ‘Uǵ¬=‘DZcycleŽ‘@M¬;Ž¡‘±do‘‰ffŽ‘®outputŽ‘K½N¬=‘DZtrueŽ‘‹°¬;‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“line.‘o°µ=Ž¡‘°h–ª¨¬Discard‘UU±p‘ÿ}'ointsŽ‘!Ï?¬and‘UU±c–ÿ}'onne“ctorsŽ‘6ɇ¯703“°iŽ¡‘± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘_s,¬=‘Ç0Ž‘Ç;Ž¡‘±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘O³T¬=‘Ç0Ž‘Ç;Ž¡‘± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘F_p¬=‘Ç0Ž‘Ç;Ž¡‘±dashe‘ÿ}'dŽ‘>ñ¼¬=‘Ç´""Ž‘ Íz¬;‘µ=°‘ÿý¬LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o°µ=Ž¡‘±p‘ÿ}'enŽ‘0àά=‘Ç´""Ž‘ Íz¬;Ž¡‘±arr‘ÿ}'owŽ‘;'k¬=‘DZfalseŽ‘v\¬;Ž¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘tËl¬=‘Ç0Ž‘Ç;‘µ=°‘ÿý¬LDF–UU2002.09.18.‘qÇAdded“this“line.‘o°µ=Ž¡‘±c–ÿ}'onne“ctorsŽ‘M41µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±c–ÿ}'onne“ctorŽ‘+^Ú¬);ަ‘­v‘ÿ\rau½‰™šs4Ž‘ÔwlistŽ‘A'þ±apŽ‘L…P¬;‘µ=°‘ÿý¬F‘ÿ*ªor–UUthe“v‘ÿqÇariable“length“argumen¸ãt“list.‘o°µ=ަ‘±va‘‰ffŽ‘®startŽ‘@éj¬(±apŽ‘ ]Rµ;‘ª¨±cycleŽ‘#ݬ);ަ‘­P•®9oin“tŽ‘=ÚÖ°Ž‘BÚ×±ar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘b0T¬;‘@‹­whileŽ‘#ní¬((±ar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘#¤˜¬=‘O±va‘‰ffŽ‘®ar‘ÿ}'gŽ‘ ƒ/¬(±apŽ‘ ]Rµ;‘ª¨­P•®9oin“tŽ‘!…{°Ž‘&…|¬))–O°6¬=“­staticu½‰™šs4Ž‘ÔwcastŽ‘8̽°h­P•®9oin“tŽ‘ÚÓ°Ž‘$ÚÔi¬(0Ž‘))Ž¡‘2±p‘ÿ}'ointsŽ‘M$šµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(±ar‘ÿ}'g‘‰ffŽ‘®ptrŽ‘U}¬)–UU)“;Ž¡‘±va‘‰ffŽ‘®endŽ‘ñ¼¬=‘Ç´""Ž‘ Íz¬;‘µ=°‘ÿý¬LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o°µ=ަ‘±p‘ÿ}'enŽ‘0àά=‘Ç´""Ž‘ Íz¬;ަ‘±arr‘ÿ}'owŽ‘;'k¬=‘DZfalseŽ‘v\¬;‘UU±p‘ÿ}'ointsŽ‘yêµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(± rst‘‰ffŽ–®p‘ÿ}'oint‘‰ffŽ“ptrŽ‘<‘¿¬)–UU)“;Ž¡‘­v‘ÿ\rau½‰™šs4Ž‘ÔwlistŽ‘A'þ±apŽ‘L…P¬;‘µ=°‘ÿý¬F‘ÿ*ªor–UUthe“v‘ÿqÇariable“length“argumen¸ãt“list.‘o°µ=Ž¡‘±va‘‰ffŽ‘®startŽ‘@éj¬(±apŽ‘ ]Rµ;‘ª¨± rst‘‰ffŽ–®p‘ÿ}'oint‘‰ffŽ“ptrŽ‘>‚Œ¬=‘Ï?±va‘‰ffŽ‘®ar‘ÿ}'gŽ‘S¬(±apŽ‘ ]Rµ;‘ª¨­c®9harޑհޑ Ö¬))–Ï?°6¬=“­staticu½‰™šs4Ž‘ÔwcastŽ‘7Lá°h­c®9harŽ‘o-°Ž‘o.i¬(0Ž‘))‘Z9°fަ‘2±c–ÿ}'onne“ctorsŽ‘a43µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬((±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘J”¬=‘DZc–ÿ}'onne“ctor‘‰ffŽ‘®ptrŽ‘>ze¬));ަ‘­ifŽ‘)´û¬((±p‘ÿ}'oint‘‰ffŽ‘®ptrŽ‘*j̬=‘DZva‘‰ffŽ‘®ar‘ÿ}'gŽ‘û,¬(±apŽ‘ ]Rµ;‘ª¨­P•®9oin“tŽ‘ šE°Ž‘%šF¬))–ǰ“­staticu½‰™šs4Ž‘ÔwcastŽ‘7Dº°h­P•®9oin“tŽ‘ï°Ž‘#ïži¬(0Ž‘))‘°fަ‘(±cycle‘‰ffŽ‘®switchŽ‘_Ƕ¬=‘DZtrueŽ‘‹°¬;ަ‘(­breakŽ‘D¡h¬;ަ‘°gަ‘±p‘ÿ}'ointsŽ‘9$˜µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(±p‘ÿ}'oint‘‰ffŽ‘®ptrŽ‘'£´¬)–UU)“;‘qǰg“±va‘‰ffŽ‘®endŽ‘!š!¬(±apŽ‘ ]R¬);ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path()® ´(PoiŽ‘kÆÜnt*® ´...).\n"Ž’®8°‘DZ ushŽ‘€¬;ަ‘°gŽŸ­719.‘ üSetting‘ÕTfunction.Ž¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙ±setŽ‘3˲¬(‘UU­P•®9oin“tŽ‘"Dò°Ž‘'Dó± rst‘‰ffŽ–®p‘ÿ}'oint‘‰ffŽ“ptrŽ‘eZµ:–ª¨:“:Ž‘v+þ¬)‘UU;ŽŽŽŒ‹ÉXJ Šn ý‘ì°x¬720–¯3DLDF-1.1.5.1’¨SETTING‘ÕXFUNCTION“¬201Ž €n ý•@P­720.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘ñ¼¬=‘Ç´""Ž‘ Íz¬;‘µ=°‘ÿý¬LDF–UU2003.04.06.‘qÇAdded“these“three“lines.‘o°µ=Ž¡‘±p‘ÿ}'enŽ‘0àά=‘Ç´""Ž‘ Íz¬;Ž¡‘±arr‘ÿ}'owŽ‘;'k¬=‘DZfalseŽ‘v\¬;‘UU±p‘ÿ}'ointsŽ‘yêµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(± rst‘‰ffŽ–®p‘ÿ}'oint‘‰ffŽ“ptrŽ‘<‘¿¬)–UU)“;ަ‘­v‘ÿ\rau½‰™šs4Ž‘ÔwlistŽ‘A'þ±apŽ‘L…P¬;‘µ=°‘ÿý¬F‘ÿ*ªor–UUthe“v‘ÿqÇariable“length“argumen¸ãt“list.‘o°µ=ަ‘±va‘‰ffŽ‘®startŽ‘@éj¬(±apŽ‘ ]Rµ;‘ª¨± rst‘‰ffŽ–®p‘ÿ}'oint‘‰ffŽ“ptrŽ‘>ze¬));Ž¡‘­ifŽ‘)´û¬((±p‘ÿ}'oint‘‰ffŽ‘®ptrŽ‘*j̬=‘DZva‘‰ffŽ‘®ar‘ÿ}'gŽ‘û,¬(±apŽ‘ ]Rµ;‘ª¨­P•®9oin“tŽ‘ šE°Ž‘%šF¬))–ǰ“­staticu½‰™šs4Ž‘ÔwcastŽ‘7Dº°h­P•®9oin“tŽ‘ï°Ž‘#ïži¬(0Ž‘))‘°fŽ¡‘(±cycle‘‰ffŽ‘®switchŽ‘_Ƕ¬=‘DZtrueŽ‘‹°¬;Ž¡‘(­breakŽ‘D¡h¬;Ž¡‘°gŽ¡‘±p‘ÿ}'ointsŽ‘9$˜µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(±p‘ÿ}'oint‘‰ffŽ‘®ptrŽ‘'£´¬)–UU)“;›qǰg“±va‘‰ffŽ‘®endŽ‘!š!¬(±apŽ‘ ]R¬);˜°gŽŸ­721.– üCop®9y‘…×constructor.“¬[²LDF‘T2003.04.06.¬]Ž‘[!³??–>>!!“BUG:–îÒGot“a“memory“fault“when“I‘îªtried“to“use“thisŽ¡function.›ƒHa•¸ãv“en't–[tested“it“y¸ãet.˜It“w•¸ãork“ed–[to“use“the“default“constructor“and“then“the“assignmen¸ãt“opGerator.Ž¡Maš¸ãybGe–UUit's“not“k˜osher“to“use“\°Ž‘±thisŽ‘²Ï¬=‘ǵpŽ‘Ï¬"“in“a“cop˜y“constructor.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.15.¬]Ž‘Y‚PRewrote–Ïjthis“function.‘àThe“old“v¸ãersion“caused“a“memory“fault“when“I‘ÏJtried“to“use“it.Ž¡I'v•¸ãe›×tak“en˜coGde˜from˜the˜default˜constructor˜and˜the˜assignmen“t˜op•Gerator˜and˜put˜it˜here˜without˜b“otheringŽ¡to–Ö see“what“wš¸ãas“causing“the“problem.‘G‹Probably“the“old“v˜ersion“didn't“accoun˜t“for“c˜hanges“I'v˜e“made“in“otherŽ¡places,–UUpGerhaps“in“the“class“de nition.Ž¡‘ +[²LDF‘T2002.11.03.¬]Ž‘Y;Rewrote–UUthis“function.‘qÇNoš¸ãw“just“using“the“assignmen˜t“opGerator.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­P®9athŽ‘"‘e¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày¬);ŽŽŽŒ‹Êe» Šn ý‘ì¬202–¯COPY‘ÕXCONSTRÃŽUCTOR’ûÄ3DLDF-1.1.5.1“°x¬722Ž €n ý•@P­722.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­P®9athŽ‘#‘i¬::‘­P®9athŽ‘‘h¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày¬)Ž¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path® ´copy® Ž‘kÆÜ´constructor.\n"Ž’» ¬;Ž¡‘°Ž‘±thisŽ‘,²Ñ¬=‘ǵpŽ‘Ï¬;Ž¡‘±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl ¬=‘DZfalseŽ‘v\¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path()® ´(copŽ‘kÆÜy® ´constructor).\n"Ž’Í”&°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gޤ­723.‘ üPseudo-constructor–ÕTfor“dynamic“alloQÇcation.Ž¡724.‘ üP•®9oin“ter‘ÕTargumen“t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.10.29.¬]Ž‘X~öAdded–Ìargumen¸ãt“­constŽ‘ mmP®9athŽ‘;Êá°Ž‘@ÊâµpŽ‘EÒâ¬.‘DIf“µpŽ‘ +›(°6¬=‘Ç0Ž‘Ç,‘ç„the“new“­P®9athŽ‘)„¬is“assigned“to“using“the“v‘ÿqÇaluesŽ¡from‘UUµpŽ‘]U¬.Ž¡‘ +[²LDF‘T2003.12.30.¬]Ž‘WëÉReplaced–8ãthis“v¸ãersion“of“­P®9athŽ‘ÊK¬::‘±cr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ‘F£¬(‘ª®)“with“a“spGecialization“of“­templateŽ‘/ +A°h­classŽ‘ŠüŸ€„ +Ž¡µCŽ‘Ṵ̈i‘UUµCŽ‘ 2!°Ž‘2"±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘?Áæ¬(‘ª¨).Ž¡‘ +[²LDF‘T2003.12.30.¬]Ž‘Y;Changed–UUthe“argumenš¸ãt.‘qÇIt's“no˜w“a“­constŽ‘!÷P®9athŽ‘=f°°Ž‘Bf±¬.Ž¡‘ +[²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ŽŽ¦°h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­P®9athŽ‘ &½¯724˜°i‘ÇŽ¡‘ +­P®9athŽ‘%溰Ž‘*æ»±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘Zv¬(­constŽ‘*¢P®9athŽ‘:[°Ž‘?\µpŽ‘D\¬);ޤ ¯See–ÕXalso“section“725.Ž¡This–ÕXco¬function“in“­ShapQÇeŽ‘!îÖ¬,‘KandŽ¡for–UUgetting“rid“of“items“in“­PictureŽ‘)ñf¬::‘±cle‘ÿ}'arŽ‘(ݬ(‘ª®).Ž¡‘ +[²LDF‘T2002.10.07.¬]Ž‘YlD±cle‘ÿ}'arŽ‘o•¬(‘ª®)–¹^is“needed“bGecause“it's“called“on“the“­ShapQÇesŽ‘*è¬that“are“stored“in“­PicturesŽ‘-Þ§¬,‘Ò`andŽ¡I‘Omdon't–O®knoš¸ãw“of“a“w˜a˜y“of“o˜v˜erloading“destructors.‘`ÑThat“is,›ŽCin“­PictureŽ‘*뿬::‘±cle‘ÿ}'arŽ‘(ݬ(‘ª®),˜the“actual“t¸ãypGes“of“theŽ¡­ShapQÇesŽ‘'ʾ¬are–Uuunkno¸ãwn,›•}so“I‘U3can't“call“°Ž‘ “­P®9athŽ‘$­÷¬(–ª¨),˜°Ž‘ \›­CircleŽ‘*¿Ç¬(“),˜or–Uuother“destructors“directly‘ÿ*ª.‘r'But“a“namedŽ¡function–UUsucš¸ãh“as“±cle‘ÿ}'arŽ‘~.¬(‘ª®)“can“serv˜e“the“same“purpGose.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.07.¬]Ž‘X Added–#cošGde“for“deallo˜cating“the“memory“allo˜cated“for“±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5 +¬and“± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(§x¬,‘-if“an¸ãy‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¡‘ +??‘€I›†1tried–†=calling“°Ž‘ M[­P®9athŽ‘#Þ¿¬(‘ª¨)“inside“­P®9athŽ‘Þ¬:‘Ó˜±cle‘ÿ}'arŽ‘üq¬(‘ª®),‘’xbut“I˜got“a“memory“fault.‘€Don't“knoš¸ãw“wh˜y‘ÿ*ª.‘€TO‘†1DO:Ž¡T‘ÿ*ªry–UUto“ nd“out.‘qÇHo•¸ãw“ev“er,–UUthis“isn't“urgen¸ãt.ŽŽŽŒ‹Ì‚Œ Šn ý‘ì¬204–¯CLEAR’«(ÂconstŽ‘*¢ColorŽ‘=Ï•«&Ž‘E–³±cŽ‘Iꎫ)Ž¡‘ -·fŽ¡‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘<_o«=‘Ç&Ž‘ -Ž6±cŽ‘â«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ702.‘ üColor–ÕTpQÇoinš®9ter“v˜ersion.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïset‘‰ffŽ–® l‘‚Øl‘‰ffŽ“c‘ÿ}'olorŽ‘}Ôæ«(ÂconstŽ‘*¢ColorŽ‘=Ï•·Ž‘BÏ–±cŽ‘G#q«);ŽŸÂ703.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘«(ÂconstŽ‘*¢ColorŽ‘=Ï•·Ž‘BÏ–±cŽ‘G#q«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(_m·6«=‘Ç0Ž‘ ÿù·^‘8àÏ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘%Ñ5Ÿ±~ŽŽ‘+Ñ6Ïis‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘nL «(‘ª¨)–Ç·“ÏtrueŽ‘‹°«)‘·fŽ¡‘ÂdeleteŽ‘?Æ½Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘e_«;Ž¡‘·gŽ¡‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘<_o«=‘DZcŽ‘ó«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ704.‘ üSet–ÕTdash“pattern.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïset‘‰ffŽ–®dash‘‰ffŽ“p‘ÿ}'atternŽ’iB«(ÂconstŽ‘*¢stringŽ‘?Oï±sŽ‘FÇ«=‘ÇÝ""Ž‘ Íz«);ŽŽŽŒ‹Ç »[ Šn ý‘ì·x«705‘­3DLDFPR•ÃŽG’ VPSET›ÕXD“ASH˜P–ÿJªA“TTERN‘«199Ž €n ý•@PÂ705.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘’ˆ«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘>f®«=‘Ç0Ž“);ŽŽŽŒ‹È Å' Šn ý‘ì«200‘­RšÃŽOT–ÿJªA“TION–ÕXAR˜OUND“THE“MAIN“AXES’Â7v3DLDFPR˜G‘·x«714Ž €n ý•@PÂ714.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9athŽ‘[Z;«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘;Ëp;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘;Ÿ–«)Ž¡‘ -·fŽ¡‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ަ‘±tŽ‘œt:Ïr‘ÿ}'otateŽ‘o>«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ÂreturnŽ‘7æ¼·Ž‘<æ½ÏthisŽ‘P™‹·«=ŽŽ‘`'±tŽ‘cÄ4«;Ž¡‘ -·gޤÂ715.‘ üRotatation–ÕTaround“an“arbitrary“axis.Ž¡716.– üT‘ÿ -«ransform‘í‘v®9ersion.“«Declared–' in“Ètransfor.web«.‘ è¨Must“bšGe“de ned“here,‘œ2b˜ecause“ÂP®9athŽ‘"फis“anޤ incomplete–UUt¸ãypGe“there.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬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.Ž¡‘ -[¬LDF‘T2003.07.06.«]Ž‘Y;Changed,–UUso“that“Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘(jÒ«(›ª®)“is“used,“instead“of“Ïget‘‰ffŽ–®line‘‰ffŽ“switchŽ‘C+Ò«(˜).ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ +¬[²LDF‘T2002.11.03.¬]Ž‘Y;Made‘UU­virtualŽ‘%Ó¬.‘qÇChanged‘UU­dynamicu½‰™šs4Ž‘ÔwcastŽ‘FÆ&¬(›ª®)–UUto“­staticu½‰™šs4Ž‘ÔwcastŽ‘7Ò÷¬(˜).‘qÇThis“maš¸ãy“not“w˜ork.Ž¡‘ +[²LDF‘T2003.01.29.¬]Ž‘Y;It–UUseems“to“w•¸ãork.‘qÇA“t–UUleast,“I“ha•¸ãv“en't–UUhad“an¸ãy“problems“with“it.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔShapQÇeŽ‘QÏ6°Ž‘VÏ7±get‘‰ffŽ‘®c‘ÿ}'opyŽ‘{’ë¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹Í’¯ Šn ý‘ì°x¬731–¯3DLDF-1.1.5.1’+þBGET‘ÕXCOPY“¬205Ž €n ý•@P­731.ޤ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž© ‘ +­ShapQÇeŽ‘,Ac°Ž‘1Ad­P®9athŽ‘JÒ̬::‘±get‘‰ffŽ‘®c‘ÿ}'opyŽ‘%ø¬(‘ª®)‘UU­constŽ‘*¢°f‘UU­P®9athŽ‘<°Ž‘$<µpŽ‘,™d¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P®9athŽ‘­Ñµ>‘Ǭ(0Ž‘);Ž¡‘°Ž‘#µpŽ‘*Ϭ=‘Ç°Ž‘Ç±thisŽ‘²Ï¬;ަ‘­returnŽ‘Aæ½staticu½‰™šs4Ž‘ÔwcastŽ‘vd_°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(µpŽ‘¬);‘UU°gŽŸ­732.‘ üSet–ÕTon“free“store.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2004.01.06.¬]Ž‘Y;Made‘UUnon-inline.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­virtualŽ‘/Ôb•QÇo“olŽ‘I/:±set‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ’…¬(­b•QÇo“olŽ‘¡fµbŽ‘ ³(¬=‘DZtrueŽ‘‹°¬);ŽŸ­733.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­b•QÇo“olŽ‘#¡gP®9athŽ‘=2Ϭ::‘±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ޤ­734.‘ üSetting–ÕTdra®9wing“and“ lling“data.Ž¡735.‘ üSet‘ÕT ll‘°¡‰ffs4Ž–#Õdra®9w‘°¡‰ffs4Ž“v‘ÿ\ralue.ŽŸ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±set‘‰ffŽ–® l‘‚Øl‘‰ffŽ“dr‘ÿ}'aw‘‰ffŽ“valueŽ’–袬(­constŽ‘*¢signedŽ‘Aš˜shortŽ‘_e;µsŽ‘d;¬);Ž¡­736.ŽŸ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘¬(­constŽ‘*¢ColorŽ‘=Ï•¬&Ž‘E–³µcŽ‘Iꎬ)ަ‘ +°fަ‘± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘<_o¬=‘Ç&Ž‘ +Ž6µcŽ‘â¬;ަ‘­returnŽ‘4‘g¬;ަ‘ +°gŽ¡­745.‘ üColor–ÕTpQÇoinš®9ter“v˜ersion.ŽŸ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±set‘‰ffŽ–® l‘‚Øl‘‰ffŽ“c‘ÿ}'olorŽ‘}Ôæ¬(­constŽ‘*¢ColorŽ‘=Ï•°Ž‘BÏ–µcŽ‘G#q¬);Ž¡­746.ŽŸ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘¬(­constŽ‘*¢ColorŽ‘=Ï•°Ž‘BÏ–µcŽ‘G#q¬)ަ‘ +°fަ‘­ifŽ‘´ú¬(± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(_m°6¬=‘Ç0Ž‘ ÿù°^‘8à± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘%Ñ5Ÿµ~ŽŽ‘+Ñ6±is‘‰ffŽ–®on‘‰ffŽ“fr–ÿ}'e“e‘‰ffŽ‘®stor“eŽ‘nL ¬(‘ª¨)–ǰ“±trueŽ‘‹°¬)‘°fަ‘­deleteŽ‘?ƽ± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘e_¬;ަ‘°gަ‘± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘<_o¬=‘ǵcŽ‘ó¬;ަ‘­returnŽ‘4‘g¬;ަ‘ +°gŽ¡­747.‘ üSet–ÕTdash“pattern.ŽŸ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±set‘‰ffŽ–®dash‘‰ffŽ“p‘ÿ}'atternŽ’iB¬(­constŽ‘*¢stringŽ‘?OïµsŽ‘FǬ=‘Ç´""Ž‘ Íz¬);ŽŽŽŒ‹Ï§œ Šn ý‘ì°x¬748›¯3DLDF-1.1.5.1’âºSET–ÕXDÃŽASH“P–ÿJªA“TTERN˜¬207Ž €n ý•@P­748.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘’ˆ¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘>f®¬=‘Ç0Ž“);ŽŽŽŒ‹Ð²c Šn ý‘ì¬208‘¯RšÃŽOT–ÿJªA“TION–ÕXAR˜OUND“THE“MAIN“AXES’¹Ãà3DLDF-1.1.5.1‘°x¬757Ž €n ý•@P­757.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9athŽ‘[Z;¬::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢realŽ‘4ÝеxŽ‘:”ì;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµyŽ‘;Ëp;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘;Ÿ–¬)Ž¡‘ +°fŽ¡‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;ަ‘µtŽ‘œt:±r‘ÿ}'otateŽ‘o>¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘­returnŽ‘7æ¼°Ž‘<æ½±thisŽ‘P™‹°¬=ŽŽ‘`'µtŽ‘cÄ4¬;Ž¡‘ +°gޤ­758.‘ üRotatation–ÕTaround“an“arbitrary“axis.Ž¡759.– üT‘ÿ +«ransform‘í‘v®9ersion.“¬Declared–' in“®transfor.web¬.‘ è¨Must“bšGe“de ned“here,‘œ2b˜ecause“­P®9athŽ‘"बis“anޤ incomplete–UUt¸ãypGe“there.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²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.Ž¡‘ +[²LDF‘T2003.07.06.¬]Ž‘Y;Changed,–UUso“that“±is‘‰ffŽ‘®line‘ÿ}'arŽ‘(jÒ¬(›ª®)“is“used,“instead“of“±get‘‰ffŽ–®line‘‰ffŽ“switchŽ‘C+Ò¬(˜).ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°i‘Ǭ+°Ž¡‘ +­T‘ÿ «ransformŽ‘AÈÓT‘ÿ -«ransformŽ‘w«(±pŽ‘:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘)±;‘ª¨pŽ‘²¨:Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>«(–ª¨)±;“ÏangleŽ‘jû«);Ž¡‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);Ž¡‘ -·gŽŽŽŒ‹É Îb Šn ý‘ì·x«717–­3DLDFPRÃŽG’èPÂPOINT‘ÕX­VERSION“«201Ž €n ý•@PÂ717.› üP•®9oin“t‘‘lv“ersion.˜«Declared–øäin“Èpoints.web«.‘\uMust“bšGe“de ned“here,‘!Èb˜ecause“ÂP®9athŽ‘ ƒ,«is“an“incompleteޤ t¸ãypGe‘UUthere.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬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ÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP•®9oin“tŽ‘^c«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘NHË«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(·:±pŽ‘:Ïget‘‰ffŽ–®line‘‰ffŽ“switchŽ‘?Ö}«(‘ª¨))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘8(¢·‘rùÝ"ERROR!È ÝInÈ ÝPoint::roŽ‘pr½tate(Path,È Ýreal).\n"Ž’ákâ·Ž¡‘2Ý"PathÈ ÝisÈ ÝnotÈ ÝaÈ Ýline.Ž’šÿÉÈ ÝReturningÈ ÝINVALID_Ž’ÿTRANSFORM.\n\n"Ž’SEÈ«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_TRANSFORMŽ’›¬ò«;Ž¡‘·gŽ©‘ÂP•®9oin“tŽ‘2ïŸÏpt0Ž‘Eò«=‘DZpŽ‘Ï:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘);Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏpt1Ž‘Eò«=‘DZpŽ‘Ï:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(1Ž‘);ަ‘ÂreturnŽ‘7æ¼Ïr‘ÿ}'otateŽ‘RUú«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã±;‘ª¨ÏangleŽ‘jû«);Ž¡‘ -·gޤÂ718.‘ üP•®9ath‘ÕTv“ersions.Ž¡719.‘ üP•®9oin“t‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.4.7.«]Ž‘OÈ?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®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦Ïr‘ÿ}'otateŽ’Åä«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘Qã«=‘Ç180ŽŽ‘Ç);ŽŸÂ720.‘ ü«TO›]¬DO:–]¯Change“this,‘_Åso“that“I˜use“ÂopQÇeratorŽ‘.ôd·«=ŽŽŽ‘;»ƒ(ÂT‘ÿ -«ransformŽ‘4s}«)“here“and“in“the“other“transformationŽ¡functions.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9athŽ‘[Z;«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘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û«);Ž¡‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);Ž¡‘ -·gŽŽŽŒ‹Ê ÖÞ Šn ý‘ì«202›ÂP–ÿ -«A“TH‘ÕX­AR•ÃŽGUMENTS’¯3DLDFPR“G˜·x«721Ž €n ý•@PÂ721.‘ üP•®9ath‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.4.7.«]Ž‘OÈ?Added–UUdefault“v‘ÿqÇalue“for“ÏangleŽ‘jý·‘Ç«180.Ž¡‘ -[¬LDF‘T2002.11.03.«]Ž‘Y;Got–UUrid“of“loGcal“ÂP•®9oin“tsŽ‘&Î.Ïp0Ž‘6:C«and“Ïp1Ž‘l«.Ž¡‘ -[¬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.Ž¡‘ -[¬LDF‘T2003.07.13.«]Ž‘Y;Changed,–UUso“that“Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘(jÒ«(‘ª®)“is“used“instead“of“c•¸ãhec“king–UUthe“return“v‘ÿqÇalue“ofŽ¡Ïget‘‰ffŽ–®line‘‰ffŽ“switchŽ‘?Ö}«(–ª®).‘MyAlso,‘þ3Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘="q«(“)–èjpassed“as“the“second“argumen¸ãt“to“Ïr‘ÿ}'otateŽ‘W¨«(‘ª®),‘þ3instead“of“Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘*J²«(1Ž‘).ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž© ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏr‘ÿ}'otateŽ‘\8«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘Qã«=‘Ç180ŽŽ‘Ç);ŽŸÂ722.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9athŽ‘[Z;«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘NHË«)ަ‘ -·fަ‘ÂifŽ‘´ú«(·:±pŽ‘:Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘%}«(‘ª¨))‘·fަ‘Ïc‘ÿ}'errŽ‘8K·‘•oÝ"ERROR!È ÝInÈ ÝPath::rotŽ‘p•3ate(Path,È Ýreal).\n"Ž’ÜpÑ·ަ‘2Ý"PathÈ ÝisÈ ÝnotÈ ÝaÈ Ýline.Ž’šÿÉÈ ÝReturningÈ ÝINVALID_Ž’ÿTRANSFORM.\n\n"Ž’SEÈ«;ަ‘ÂreturnŽ‘Aæ½ÝINVALID_TRANSFORMŽ’›¬ò«;ަ‘·gަ‘ÂreturnŽ‘7æ¼Ïr‘ÿ}'otateŽ‘RUú«(±pŽ‘:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘)±;‘ª¨pŽ‘²¨:Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>«(–ª¨)±;“ÏangleŽ‘jû«);ަ‘ -·gŽŸÂ723.– üScale.“«[¬LDF‘T2002.12.20.«]Ž‘Zˆ6TO–UUDO:“Mak¸ãe“all“of“the“transformations“ÂvirtualŽ‘%Ó«!Ž¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏsc‘ÿ}'aleŽ‘W}Å«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç1Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç1Ž“);ŽŸÂ724.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9athŽ‘[Z;«::‘Ïsc‘ÿ}'aleŽ‘´ö«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)ަ‘ -·fަ‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;Ž¡‘±tŽ‘œt:Ïsc‘ÿ}'aleŽ‘´ò«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);ަ‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);ަ‘ -·gŽŸÂ725.‘ üShear.Ž¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·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Ž“);ŽŽŽŒ‹Ë â Šn ý‘ì·x«726–­3DLDFPRÃŽG’EF,SHEAR“«203Ž €n ý•@PÂ726.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9athŽ‘[Z;«::‘Ïshe‘ÿ}'arŽ‘4>«(ÂrealŽ‘³.ÏxyŽ‘!—±;‘ª¨ÂrealŽ‘]ÖÏxzŽ‘"Õ¨±;‘ª¨ÂrealŽ‘]ÖÏyxŽ‘#“„±;‘ª¨ÂrealŽ‘]ÖÏyzŽ‘# ±;‘ª¨ÂrealŽ‘]ÖÏzxŽ‘"ÏA±;‘ª¨ÂrealŽ‘]ÖÏzyŽ‘"´ð«)Ž¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPath::sheaŽ‘kÆÜr().\n"Ž’‘ /«;ަ‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ަ‘±tŽ‘œt:Ïshe‘ÿ}'arŽ‘4:«(ÏxyŽ‘ -ãç±;‘ª¨ÏxzŽ‘ "z±;‘ª¨ÏyxŽ‘ àV±;‘ª¨ÏyzŽ‘ Yð±;‘ª¨ÏzxŽ‘ ±;‘ª¨ÏzyŽ‘ «);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::shearŽ‘kÆÜ().\n"Ž’‹Í2«;Ž¡‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);Ž¡‘ -·gޤÂ727.‘ üShift.Ž¡728.‘ üreal‘ÕTargumen®9ts.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ŽŸ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshiftŽ‘UæP«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç0Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç0Ž“);Ž¡Â729.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9athŽ‘[Z;«::‘ÏshiftŽ‘«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)Ž¡‘ -·fŽ¡‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ަ‘±tŽ‘œt:ÏshiftŽ‘}«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);Ž¡‘ -·gŽŸÂ730.‘ üP•®9oin“t‘ÕTargumen“t.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏshiftŽ‘UæP«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«);ŽŸÂ731.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9athŽ‘[Z;«::‘Ï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ŽŸÂ732.‘ üShift‘ÕTtimes.Ž¡‘ -«[¬LDF‘T2003.01.19.«]Ž‘Z}Ïshift‘‰ffŽ‘®timesŽ’ˆô¸«(‘ª®)–U—returns“Âv®9oidŽ‘þ«,‘•§bšGecause“ÂP®9athŽ‘!<’«do˜esn't“ha•¸ãv“e–U—a“ÂT‘ÿ -«ransformŽ‘=««data“mem¸ãb˜er,Ž¡and–UUthere's“no“guaranš¸ãtee“that“all“of“the“ÂP•®9oin“tsŽ‘&Î.«on“Ïp‘ÿ}'ointsŽ‘!Ï?«will“ha˜v˜e“iden˜tical“Ïtr‘ÿ}'ansformsŽ‘3-«.Ž¡‘ -[¬LDF‘T2003.01.19.«]Ž‘Y;ÓNote–ˆíthat“Ïshift‘‰ffŽ‘®timesŽ‘2u(«(‘ª®)“will“only“ha•¸ãv“e–ˆían“e ect“on“the“ÂP•®9oin“tsŽ‘'5^«on“a“ÂP®9athŽ‘£>«if“it's“calledŽ¡Ïafter‘6j«a–"Ýcall“to“ÏshiftŽ‘@Z«(›ª®)“and“Ïb–ÿ}'efor“e‘ã8«an–"ÝopGeration“is“applied“that“causes“ÂP•®9oin“tŽ‘½)«::‘Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Gã«(˜)“to“bGe“called.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.01.19.«]Ž‘Y;Added–UUthis“section.ަŸüÈ„`ÕÁGŽŽŽŽŒ‹Ì îG Šn ý‘ì«204›ÂREAL‘ÕX­AR•ÃŽGUMENTS’í“3DLDFPR“G˜·x«733Ž €n ý•@PÂ733.‘ üreal‘ÕTargumen®9ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ -«[¬LDF‘T2003.01.19.«]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ަ‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïshift‘‰ffŽ‘®timesŽ‘wwç«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç1Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç1Ž“);ŽŸÂ734.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘uC«&Ž‘FuC«&Ž‘FÄç«&Ž‘FŒÏp1Ž‘R¢Å±;‘ª¨ÂconstŽ‘ÕJc®9harŽ‘9?“ÏaxisŽ‘K|[«);ŽŸÂ752.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9athŽ‘[Z;«::‘Ïalign‘‰ffŽ–®with‘‰ffŽ“axisŽ‘A²|«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å±;‘ª¨ÂconstŽ‘ÕJc®9harŽ‘9?“ÏaxisŽ‘NCs«=‘ÇÝ'z'Ž‘ w«)ަ‘ -·fަ‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;Ž¡‘±tŽ‘œt:Ïalign‘‰ffŽ–®with‘‰ffŽ“axisŽ‘@²x«(Ïp0Ž‘ À±;‘ª¨Ïp1Ž‘ Áh±;‘ª¨ÏaxisŽ‘çp«);ަ‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);ަ‘ -·gޤÂ753.‘ üAdding›ÕTP•®9oin“ts˜to˜P“aths.Ž¡754.‘ üWith‘ÕTassignmen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.4.6.«]Ž‘O›çAdded–(ýthis“function.›bÿCurren¸ãtly‘ÿ*ª,‘1Ûit“doGesn't“return“a“ÂP®9athŽ‘ºa«.˜If“it“turns“out“that“it“w¸ãould“bGeަuseful–UUto“return“·Ž‘UVÏthisŽ‘A «,“I“can“c¸ãhange“it.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙopQÇeratorŽ‘N”Ž«+=ŽŽŽ‘^"Ê(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]ÏptŽ‘NÅú«);ŽŸÂ755.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘«;Ž¡‘(ÂreturnŽ‘H‘i«;Ž¡‘·gަ‘ÂstringŽ‘?%PÏlast‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘}F «;ŽŽŽŒ‹Ñ -)a Šn ý‘ì·x«764–­3DLDFPRÃŽG’ ¨tWITH‘ÕXASSIGNMENT“«209Ž €n ý•@PÂ764.‘ ü«[¬LDF‘T2002.4.6.«]Ž‘Q±If–¾there“isn't“an“explicit“connector“for“evš¸ãery“pair“of“ÂP•®9oin“tsŽ‘'ŸÂ«in“ÏthisŽ‘©ÕŸ±~ŽŽ‘©ÖÏp‘ÿ}'ointsŽ‘3Îk«,‘ØRthen“w˜eޤ ha•¸ãv“e–to“ ll“up“Ïc–ÿ}'onne“ctorsŽ‘7P4«so“that“there“are“enough.››ÒOtherwise,‘ Ы);ŽŸÂ765.‘ ü«[¬LDF‘T2002.4.6.«]Ž‘PõÆIf–áthe“ÂP®9athsŽ‘# b«don't“touc¸ãh,‘_they“are“joined“using“\.."›VKinstead“of“\&".˜This“mimics“theŽ¡bGehaš¸ãvior–UUof“MET‘ÿ*ªAF˜ONT.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.03.«]Ž‘Y;No¸ãw–UUusing“·Ž‘UV«(Ïp‘ÿ}'ointsŽ›$•±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨))“instead“of“Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘*·«(Ïp‘ÿ}'ointsŽ˜±:ÏsizeŽ‘\«(‘ª¨)–8à·“«1Ž‘8á).ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(·Ž›«(Ïp‘ÿ}'ointsŽ‘$•±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨))–Ç·6«=“Ïp‘ÿ}'aŽ‘ Ä\±:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž˜))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘+›·‘ålÝ"ERROR!È ÝInÈ ÝPath::opeŽ‘må0rator&(Path&)."Ž’Â×·‘ålÝ"PathsÈ Ýdon'tÈ Ýtouch.\Ž‘må0n"Ž‘}Ðþ·Ž¡‘(Ý"UsingÈ Ý\"..\"È ÝtoÈ ÝjoiŽ’ÿÈnÈ ÝthemÈ ÝinsteadÈ ÝofÈ Ý\"Ž’ùÿŒ&\".\n"Ž’" ÷·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc–ÿ}'onne“ctorsŽ‘C40±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ý".."Ž‘†\«);Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘!ØàÏc–ÿ}'onne“ctorsŽ‘Q ±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ý"&"Ž‘F_«);Ž¡‘ -ÂforŽ‘臫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'aŽ‘ Ä\±:Ïp‘ÿ}'ointsŽ‘$•±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);Ž¡‘±=·‘ÿý«[¬LDF‘T2002.4.6.«]Ž‘JÈ;Copš¸ãy–UUthe“ÂP•®9oin“tsŽ‘&Î.«in“Ïp‘ÿ}'aŽ‘§î«and“put“the“copies“on˜to“Ïp‘ÿ}'ointsŽ‘yê«.‘o·±=Ž¡‘ -ÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'aŽ‘ Ä\±:Ïp‘ÿ}'ointsŽ‘$•±:ÏendŽ‘ಫ(‘ª¨);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘Ïp‘ÿ}'ointsŽ‘ $•±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(·Ž‘ÏiterŽ‘Êÿ«));ŽŸÂ766.‘ ü«[¬LDF‘T2002.4.6.«]Ž‘R_}Put–l˜the“connectors“from“Ïp‘ÿ}'aŽ‘Öt«on¸ãto“the“new“ÂP®9athŽ‘ýü«.‘·Since“they're“ÂstringsŽ‘&œè«,‘²hand“notŽ¡pGoin•¸ãters,‘íöw“e–Ïpdon't“ha•¸ãv“e–Ïpto“copš¸ãy“them.‘àI‘ÏPtested“this“to“mak˜e“sure“it's“true.‘àI‘ÏPdon't“kno˜w“ho˜w“ÂstringsŽ‘)Ï0«areŽ¡implemenš¸ãted,–UUbut“they“seem“to“bGe“handled“lik˜e“string“literals.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂforŽ‘œ -«(Âv®9ectorŽ‘ªH·hÂstringŽ‘Ïø·i‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'aŽ– Ä\±:Ïc–ÿ}'onne“ctorsŽ›/4.±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘³€ÏiterŽ‘E–·6«=‘ÇÏp‘ÿ}'aŽ“±:Ïc–ÿ}'onne“ctorsŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘³€ÏiterŽ‘þ~Ÿÿ®+‘ÿ+ŽŽ‘!Åž«)‘·fŽ¡‘Ïc–ÿ}'onne“ctorsŽ‘C40±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(·Ž‘ÏiterŽ‘Êÿ«);Ž¡‘ -·gŽ¡‘ -ÂreturnŽ‘*‘f«;‘qÇ·gŽŸÂ767.‘ üWithout‘ÕTassignmen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.4.6.«]Ž‘OÈ?Added–UUthis“function.‘qÇIt“bšGeha•¸ãv“es–UUthe“w•¸ãa“y–UUthe“op˜erator“\&"“do˜es“in“MET‘ÿ*ªAF¸ãONT.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘%æºopQÇeratorŽ‘Q}o«&Ž‘YD(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØyÏp‘ÿ}'aŽ‘LÕ½«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹Ò -3Y Šn ý‘ì«210–­WITHOUT‘ÕXASSIGNMENT’úŠ„3DLDFPRÃŽG“·x«768Ž €n ý•@PÂ768.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘%æºP®9athŽ‘?x"«::Ž‘F`ÂopQÇeratorŽ‘q«&Ž‘yd3(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØyÏp‘ÿ}'aŽ‘LÕ½«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP®9athŽ‘/æ»±rŽ‘4°Ï«(·Ž‘ÏthisŽ‘ë·«);ަ‘±rŽ‘‘.«&=ŽŽ‘-æ‚Ïp‘ÿ}'aŽ‘8ãÆ«;Ž¡‘ÂreturnŽ‘7æ¼±rŽ‘<°Ð«;Ž¡‘ -·gŽŸÂ769.› üAppQÇending–‰Qwith“a“connector“argumen®9t.˜«[¬LDF‘T2002.4.7.«]Ž‘Qä½It–ñØwš¸ãould“not“ha˜v˜e“bšGeen“p˜ossible“toŽ¡spšGecify–d}a“connector“if“I'd“de ned“this“function“as“a“binary“op˜erator,–hGe.g.,“ÂopQÇeratorŽ‘.þü«+=ŽŽŽ‘>8(‘ª¨),“so–d}I'v¸ãe“made“it“aŽ¡named–&function.‘b It“can“bGe“useful“when,›/Žfor“instance,˜rotation“causes“t•¸ãw“o‘&ÂP•®9oin“tsŽ‘#I «,˜whic“h–&should“bGe“iden¸ãtical,Ž¡to–0di er“bš¸ãy“a“small“amoun˜t,‘7{lik˜e“1±=«10±;‘ª¨«000“in“one“cošGordinate.‘eWThis“has“actually“happ˜ened,‘7{whicš¸ãh“is“wh˜y“I'v˜eŽ¡added–þ»this“function.‘TéMET‘ÿ*ªAPOST‘þ¥can“reco•¸ãv“er–þ»gracefully“b¸ãy“using“\Ý..Ž‘ b«"“instead“of“\&"“to“connect“the“paths,Ž¡but–Œúit“issues“an“error“message“and“stops“to“wš¸ãait“for“a“respGonse.‘·Using“this“function“can“help“to“a˜v˜oid“suc˜hŽ¡problems.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.4.7.«]Ž‘OÈ?Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘%æºÏapp‘ÿ}'endŽ‘E™ã«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØyÏp‘ÿ}'aŽ‘LÕ½±;‘ª¨ÂstringŽ‘"ÏõÏc–ÿ}'onne“ctorŽ‘Põç«=‘ÇÝ"--"Ž‘Mt±;‘ª¨Âb•QÇo“olŽ‘LÏassignŽ‘9îB«=‘ÇÏtrueŽ‘‹°«);ŽŸÂ770.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘%æºP®9athŽ‘?x"«::‘Ïapp‘ÿ}'endŽ‘ ³-«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØyÏp‘ÿ}'aŽ‘LÕ½±;‘ª¨ÂstringŽ‘"ÏõÏc–ÿ}'onne“ctorŽ‘N.ϱ;‘ª¨Âb•QÇo“olŽ‘LÏassignŽ‘7'*«)·f‘UUÂP®9athŽ‘<±rŽ‘$"«(·Ž‘ÏthisŽ‘ë·«);Ž¡‘ÂstringŽ‘?VèÏlast‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘}w¸«;‘±=·‘1•«[¬LDF‘T2002.4.6.«]Ž‘K+kIf–†íthere“isn't“an“explicit“connector“for“ev¸ãery“pair“ofŽ¡‘2ÂP•®9oin“tsŽ‘U‰6«in‘e­ÏthisŽ‘QcŸ±~ŽŽ‘QdÏp‘ÿ}'ointsŽ‘3uù«,‘iÃthen–e­wš¸ãe“ha˜v˜e“to“ ll“up“Ïc–ÿ}'onne“ctorsŽ‘5ÿˆ«so“that“there“are“enough.‘¢ÎOtherwise,Ž¡‘2the–UU\&"“will“bšGe“at“the“wrong“place.‘qÇW‘ÿ*ªe“don't“ha•¸ãv“e–UUto“w¸ãorry“ab˜out“the“connectors“for“Ïp‘ÿ}'aŽ‘R™«.‘o·±=ަ‘ÂifŽ‘)´û«(±rŽ‘Ê:Ïc–ÿ}'onne“ctorsŽ‘/4.±:ÏsizeŽ‘\«(‘ª¨)–Ç·“«0Ž‘Ç)‘Ïlast‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘Eçè«=“Ý"--"Ž‘Mt«;Ž¡‘ÂelseŽ‘5ØâÏlast‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘vÀÊ«=‘DZrŽ‘‘,:Ïc–ÿ}'onne“ctorsŽ‘/4.±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨);Ž¡‘ÂwhileŽ‘ Ы);Ž¡‘±rŽ‘"Ê:Ïc–ÿ}'onne“ctorsŽ‘/4.±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ïc–ÿ}'onne“ctorŽ‘+^Ú«);Ž¡‘(±=·‘ÿý«[¬LDF‘T2002.4.6.«]Ž‘JÈ;Copš¸ãy–UUthe“ÂP•®9oin“tsŽ‘&Î.«in“Ïp‘ÿ}'aŽ‘§î«and“put“the“copies“on˜to“Ïp‘ÿ}'ointsŽ‘yê«.‘o·±=Ž¡‘ÂforŽ‘/艫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'aŽ– Ä\±:Ïp‘ÿ}'ointsŽ›$•±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'aŽ“±:Ïp‘ÿ}'ointsŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)Ž¡‘(±rŽ‘,Ê:Ïp‘ÿ}'ointsŽ‘$•±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(·Ž‘ÏiterŽ‘Êÿ«));ŽŸÂ771.‘ ü«Put–¡-the“connectors“from“Ïp‘ÿ}'aŽ‘?ž«onš¸ãto“the“new“ÂP®9athŽ‘2‘«.‘UNSince“they're“ÂstringsŽ‘%Ñ}«,‘´#and“not“pGoin˜ters,‘´#w˜e“don'tŽ¡ha•¸ãv“e–çöto“copš¸ãy“them.‘)©I‘çÐtested“this“to“mak˜e“sure“it's“true.‘)©I‘çÐdon't“kno˜w“ho˜w“ÂstringsŽ‘*<«are“implemen˜ted,‘ žbutŽ¡they–UUseem“to“bGe“handled“lik¸ãe“string“literals.‘qÇ[¬LDF‘T2002.4.6.«]ŽŽ¦·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂforŽ‘œ -«(Âv®9ectorŽ‘ªH·hÂstringŽ‘Ïø·i‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'aŽ– Ä\±:Ïc–ÿ}'onne“ctorsŽ›/4.±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘³€ÏiterŽ‘E–·6«=‘ÇÏp‘ÿ}'aŽ“±:Ïc–ÿ}'onne“ctorsŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘³€ÏiterŽ‘þ~Ÿÿ®+‘ÿ+ŽŽ‘!Åž«)‘·fŽ¡‘±rŽ‘Ê:Ïc–ÿ}'onne“ctorsŽ‘/4.±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(·Ž‘ÏiterŽ‘Êÿ«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÏassignŽ‘¢4·‘ÇÏtrueŽ‘‹°«)‘·Ž‘ -ÏthisŽ‘²Ï«=‘DZrŽ‘‘,«;Ž¡‘ -ÂreturnŽ‘-æ»±rŽ‘2°Ï«;‘qÇ·gޤÂ772.‘ üDra®9wing–ÕTand“ lling.Ž¡773.‘ üDra®9w.ŽŽŽŒ‹Ó -Cd Šn ý‘ì·x«774›­3DLDFPRÃŽG’hIÂP–ÿ -«A“TH‘ÕX­VERSIONS˜«211Ž €n ý•@PÂ774.‘ üP•®9ath‘ÕTv“ersions.ŽŸ775.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ -«[¬LDF‘T2002.10.07.«]Ž‘Y;Added–UUcoGde“for“handling“Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5–ã«and“Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(íª«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ަ‘ -ÂvirtualŽ‘0—mv®9oidŽ‘JžÞÏdr‘ÿ}'awŽ‘`ǹ«(ÂconstŽ‘4;ColorŽ‘?âÇ«&Ž‘G©åÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’€4M«=‘¿·Ž‘ ÀÂColorsŽ‘+Zž«::Ž‘1èÜÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘id·±;‘ª¨ÂconstŽ‘ ÞãstringŽŽ¦‘Ïddashe‘ÿ}'dŽ‘D"F«=‘Û2Ý""Ž– á”±;‘ª¨ÂconstŽ‘áZstringŽ‘A·Ïpp‘ÿ}'enŽ‘Y$ «=‘Û2Ý""Ž“±;‘ª¨ÂPictureŽ‘*¨«&Ž‘2o8Ïpictur‘ÿ}'eŽ‘TS@«=‘Û2Ïcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Eù±;‘ª¨Âb•QÇo“olŽ‘XÏaarr‘ÿ}'owŽ‘=°«=‘Û2ÏfalseŽ‘Šv«)ަ‘ÂconstŽ‘8ÕP«;ŽŸÂ776.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘#MÀP®9athŽ‘<ß(«::‘Ïdr‘ÿ}'awŽ‘(ß«(ÂconstŽ‘z‰ColorŽ‘>oc«&Ž‘F6Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘z?*±;‘ª¨ÂconstŽ‘ %1stringŽ‘AšeÏddashe‘ÿ}'dŽ‘dáv±;‘ª¨ÂconstŽ‘ %1stringŽ‘AšeÏpp‘ÿ}'enŽ‘VЈ±;‘ª¨ÂPictureŽŽ¦‘2«&Ž‘9Ç#Ïpictur‘ÿ}'eŽ‘XÏù±;‘ª¨Âb•QÇo“olŽ‘LÏaarr‘ÿ}'owŽ‘:ÈΫ)‘UUÂconstŽŽ¦‘ -·fަ‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPath::drawŽ‘kÆÜ().\n"Ž’Ž”J·‘ÇÏ ushŽ‘€«;ަ‘ÂifŽ‘´ú«(Ïp‘ÿ}'ointsŽ‘$•±:ÏsizeŽ‘\«(‘ª¨)–Ç·“«0Ž‘Ç)ަ‘±=·‘ÿý«LDF–UU2002.09.27.›qÇAdded“this“error“handling“coGde.˜If“the“ÂP®9athŽ‘<«is“emptš¸ãy‘ÿ*ª,“don't“dra˜w“it.‘ª¨·±=ަ‘·fަ‘Ïc‘ÿ}'errŽ‘4Vi·‘ ÀÝ"WARNING!È ÝInÈ ÝPath::dŽ‘l „raw():\n"Ž’ ‘·‘ ÀÝ"PathÈ Ýdoesn'tÈ ÝcontaiŽ‘l „nÈ ÝanyÈ ÝPoints.\n"Ž’ÄÇ|·ަ‘2Ý"NotÈ ÝdoingÈ Ýanything.Ž’šÿÉ\n\n"Ž’¸:·‘ÇÏ ushŽ‘€«;ަ‘ÂreturnŽ‘>‘h«;ަ‘·gŽ¡‘ÂP®9athŽ‘/æ»·Ž‘4æ¼±pŽ‘<µÔ«=‘ÇÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ‘GÚ·«(·Ž‘ÏthisŽ‘ë·«);Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘^{,«=‘ÇÝDRAWŽ‘Mt«;ަ‘±pŽ‘Ÿ~ŽŽ‘Ïarr‘ÿ}'owŽ‘:/k«=‘ÇÏaarr‘ÿ}'owŽ‘"CØ«;ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)ަ‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ddraw_color.get_useŽ‘kÆÜ_name()È Ý==È Ý"Ž’®8·‘ÇÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ±:Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;ަ‘ÂifŽ‘´ú«(Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©±:Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶«(‘ª¨)–Ç·“ÏfalseŽ‘v\«)‘·fަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"AllocatingÈ ÝmemoryÈ ÝfŽ‘kÆÜorÈ ÝColor.\n"Ž’®8·‘ÇÏ ushŽ‘€«;Ž¡‘ÂColorŽ‘=¤ö·Ž‘B¤÷±cŽ‘I¿ê«=‘ÇÂColorŽ‘ º«::Ž‘&¤øÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“c‘ÿ}'olorŽ‘nø«(‘ª¨);Ž¡‘·Ž‘#±cŽ‘*÷«=‘ÇÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ«;ަ‘±pŽ‘!Ÿ~ŽŽ‘'Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U«=‘DZcŽ‘ó«;ަ‘·gަ‘ÂelseŽ‘+Øá·fަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ddraw_color.get_namŽ‘kÆÜe()È Ý==È Ý"Ž’™D·‘ÇÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ±:Ïget‘‰ffŽ‘®nameŽ‘(ùÀ«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;ަ‘±pŽ‘!Ÿ~ŽŽ‘'Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U«=‘Ç&Ž‘ -Ž6Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘>–ß«;ަ‘·gަ‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Egp«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘urŒ«;ަ‘±pŽ‘Ÿ~ŽŽ‘Ïdashe‘ÿ}'dŽ‘=ù¼«=‘ÇÏddashe‘ÿ}'dŽ‘&)«;ަ‘±pŽ‘Ÿ~ŽŽ‘Ïp‘ÿ}'enŽ‘/èΫ=‘ÇÏpp‘ÿ}'enŽ‘ý;«;ަ‘Ïpictur‘ÿ}'eŽ‘5Ïð«+=ŽŽ‘H%DÂstaticu½‰™šs4Ž‘ÔwcastŽ‘|¢æ·hÂShapQÇeŽ‘"Ab·Ž‘'Aci«(±pŽ‘«);ަ‘±=·‘ÿý«LDF–UU2002.11.03.‘qÇChanged“Âdynamicu½‰™šs4Ž‘ÔwcastŽ‘FÆ&«(›ª®)“to“Âstaticu½‰™šs4Ž‘ÔwcastŽ‘7Ò÷«(˜).‘o·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::draw(Ž‘kÆÜ).\n"Ž’‰TM·‘ÇÏ ushŽ‘€«;ަ‘ÂreturnŽ‘4‘g«;ަ‘ -·gŽŽŽŒ‹Ô -V3 Šn ý‘ì«212‘ÂPICTURE–ÕX­ARšÃŽGUMENT“FIRST’ÚUW3DLDFPR˜G‘·x«777Ž €n ý•@PÂ777.› üPicture–Þ‹argumen®9t“ rst.˜«[¬LDF‘T2002.09.17.«]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tޤ to–\>pass“a“ÂPictureŽ‘,T‰«argumenš¸ãt.‘†If“I‘\ o«&Ž‘EçÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘yð6±;‘ª¨ÂstringŽ‘"øbÏddashe‘ÿ}'dŽ‘F?s±;‘ª¨ÂstringŽ‘"øbÏpp‘ÿ}'enŽ‘8.…±;‘ª¨ÂPictureŽ‘*Äw«&Ž‘2‹•Ïpictur‘ÿ}'eŽ‘Q”k«)ަ‘2ÂconstŽŽ¦‘ -·fަ‘Ïdr‘ÿ}'awŽ‘*(Ý«(Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~±;‘ª¨ÏtrueŽ‘o@«);ަ‘ -·gŽŸÂ786.‘ üPicture–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2003.01.15.«]Ž‘Y;Added–UUthis“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ަ‘ -ÂvirtualŽ‘.üãv®9oidŽ‘GiÊÏdr–ÿ}'awarr“owŽ‘v\Ž«(ÂPictureŽ‘(`q«&Ž‘0'Ïpictur‘ÿ}'eŽ‘O0e±;‘ª¨ÂconstŽ‘DYColorŽ‘>X[«&Ž‘FyÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|ï:«=‘Ç·Ž‘ÇÂColorsŽ‘)Ÿ÷«::Ž‘0.5Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘gª±;‘ª¨ÂstringŽŽ¦‘Ïddashe‘ÿ}'dŽ‘D,«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“«)‘UUÂconstŽ‘*¢«;ŽŸÂ787.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘#&FP®9athŽ‘<·®«::‘Ïdr–ÿ}'awarr“owŽ‘/òÈ«(ÂPictureŽ‘)Ï«&Ž‘0àíÏpictur‘ÿ}'eŽ‘Oéñ;‘ª¨ÂconstŽ‘ý·ColorŽ‘?Ë«&Ž‘G’5Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘{šÞ±;‘ª¨ÂstringŽ‘"øbÏddashe‘ÿ}'dŽ‘F?s±;‘ª¨ÂstringŽ‘"øbÏpp‘ÿ}'enŽ‘8.…«)ަ‘2ÂconstŽŽ¦‘ -·fަ‘Ïdr‘ÿ}'awŽ‘*(Ý«(Ïpictur‘ÿ}'eޑֱ;‘ª¨Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Q±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨ÏtrueŽ‘o@«);ަ‘ -·gޤÂ788.‘ üP•®9oin“t‘ÕTv“ersions.Ž¡789.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)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–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ަ‘ -ÂP®9athŽ‘&} P•®9oin“tŽ‘CX«::‘Ïdr–ÿ}'awarr“owŽ‘/òÈ«(ÂconstŽ‘ÀôP•®9oin“tŽ‘>Fã«&Ž‘F±pŽ‘K;‘ª¨ÂconstŽ‘ kœColorŽ‘@¦á«&Ž‘HmÿÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|v¨±;‘ª¨ÂstringŽ‘#fGÏddashe‘ÿ}'dŽ‘F­X±;‘ª¨ÂstringŽŽ¦‘2Ïpp‘ÿ}'enŽ‘G6(±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘Qkþ«)‘UUÂconstŽŽ¦‘ -·fަ‘ÂP®9athŽ‘/æ»Ïp‘ÿ}'aŽ‘:ãÿ«(·Ž‘ÏthisŽ‘ë·±;‘ª¨pŽ‘²¨«);Ž¡‘Ïp‘ÿ}'aŽ‘ýF±:Ïdr–ÿ}'awarr“owŽ‘.òÄ«(Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);ަ‘ÂreturnŽ‘7æ¼Ïp‘ÿ}'aŽ‘Bä«;ަ‘ -·gŽŽŽŒ‹Ö -uL Šn ý‘ì«214‘ÂPICTURE–ÕX­ARšÃŽGUMENT“FIRST’ÚUW3DLDFPR˜G‘·x«790Ž €n ý•@PÂ790.‘ üPicture–ÕTargumen®9t“ rst.Ž©ÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)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–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘&QP•®9oin“tŽ‘Bëd«::‘Ïdr–ÿ}'awarr“owŽ‘/òÈ«(ÂPictureŽ‘)[À«&Ž‘1"ÞÏpictur‘ÿ}'eŽ‘P+´±;‘ª¨ÂconstŽ‘ ?¨P•®9oin“tŽ‘?™£«&Ž‘G`Á±pŽ‘LhÁ;‘ª¨ÂconstŽ‘ ?¨ColorŽ‘@Nù«&Ž‘HÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|À±;‘ª¨ÂstringŽŽ¡‘2Ïddashe‘ÿ}'dŽ‘UG±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘8«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïdr–ÿ}'awarr“owŽ‘fÙ€«(±pŽ‘;‘ª¨Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Q±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gŽŸÂ791.‘ üDra®9w‘ÕThelp.ަŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.05.10.«]Ž‘Y|…Changed–ÉŸthe“w•¸ãa“y–ÉŸthe“default“argumenš¸ãts“are“handled.‘ΤThe“w˜a˜y“it“w˜as“didn't“w˜ork“forŽ¡bGoth–UUvš¸ãersions,“i.e.,“the“ÂP®9athŽ‘<«v˜ersion“and“the“ÂP•®9oin“tŽ‘"Dò«v˜ersion.Ž¡‘ -[¬LDF‘T2002.4.8.«]Ž‘OñžAdded–~´this“section.–íå!!“It–~´wš¸ãould“bGe“nice“to“do“something“to“mak˜e“sure“that“the“help“linesŽ¡and–Ètcurvš¸ães“are“not“dra˜wn“o˜v˜er“b˜y“ lling“commands.‘Ë#Ma˜ybšGe“it“will“b˜e“p˜ossible“to“tak¸ãe“care“of“this“when“IŽ¡implemenš¸ãt–”the“hidden“surface“algorithm“in“ÏoutputŽ‘!Ô«(‘ª®).‘…„[¬LDF‘T2002.11.03.«]Ž‘V>ýI‘fcould“ha˜v˜e“help“lines“outputtedŽ¡last,–UUif“I“put“them“on“a“Âv®9ectorŽ‘&Tò«of“their“o¸ãwn.Ž¡‘ -[¬LDF‘T2003.07.13.«]Ž‘Y;Made–UUall“v¸ãersions“of“Ïdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘.ý«(‘ª®)“ÂconstŽ‘*¢«.Ž©ŸüÈ„`ÕÁGŽŽ¤Â792.› üP•®9ath‘ÕTv“ersions.˜«[¬LDF‘T2002.12.20.«]Ž‘Zˆ6??‘qÇCould–UUthese“functions“bGe“ÂconstŽ‘*¢«?Ž¡Â793.– üNormal‘ÕTv®9ersion.“«[¬LDF‘T2002.4.8.«]Ž‘QH:Added–UUthis“function.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘#ØÏdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘M߀«(ÂconstŽ‘F¡ColorŽ‘>“«&Ž‘EαÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|Í«=‘õÁ·Ž‘õÂÏhelp‘‰ffŽ‘®c‘ÿ}'olorŽ‘3°6±;‘ª¨ÂstringŽ‘"ëôÏddashe‘ÿ}'dŽ‘I(Æ«=‘õÁÏhelp‘‰ffŽ–®dash‘‰ffŽ“p‘ÿ}'atternŽ‘O14±;‘ª¨ÂstringŽŽ¡‘Ïpp‘ÿ}'enŽ‘5ý>«=‘ÇÝ""Ž‘ Íz±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŸÂ794.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#6yP®9athŽ‘<Çá«::‘Ïdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘+Ŭ«(ÂconstŽ‘cBColorŽ‘>@Õ«&Ž‘FóÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘zœ±;‘ª¨ÂstringŽ‘#•Ïddashe‘ÿ}'dŽ‘FO¦±;‘ª¨ÂstringŽ‘#•Ïpp‘ÿ}'enŽ‘8>¸±;‘ª¨ÂPictureŽ‘*Ôª«&Ž‘2›ÈÏpictur‘ÿ}'eŽ‘Q¤ž«)Ž¡‘2ÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïdo‘‰ffŽ–®help‘‰ffŽ“linesŽ‘;¯·‘ÇÏfalseŽ‘v\«)‘ÂreturnŽ‘%‘e«;Ž¡‘Ïdr‘ÿ}'awŽ‘*(Ý«(Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gŽŸÂ795.‘ üPicture–ÕTargumen®9t“ rst.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘$D¬Ïdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘O -T«(ÂPictureŽ‘*85«&Ž‘1ÿSÏpictur‘ÿ}'eŽ‘Q)±;‘ª¨ÂconstŽ‘!ColorŽ‘Bã«&Ž‘IÏÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’‚¿t«=‘çÊ·Ž‘ çËÏhelp‘‰ffŽ‘®c‘ÿ}'olorŽ‘5¢?±;‘ª¨ÂstringŽŽ¡‘Ïddashe‘ÿ}'dŽ‘D,«=‘ÇÏhelp‘‰ffŽ–®dash‘‰ffŽ“p‘ÿ}'atternŽ‘O‹±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž‘ Íz«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹× -‚~ Šn ý‘ì·x«796‘­3DLDFPR•ÃŽG’ÚUWÂPICTURE›ÕX­AR“GUMENT˜FIRST‘«215Ž €n ý•@PÂ796.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘#6yP®9athŽ‘<Çá«::‘Ïdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘+Ŭ«(ÂPictureŽ‘)*«&Ž‘0ñ Ïpictur‘ÿ}'eŽ‘Oùö±;‘ª¨ÂconstŽ‘ êColorŽ‘?ë}«&Ž‘G²›Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘{»D±;‘ª¨ÂstringŽ‘#•Ïddashe‘ÿ}'dŽ‘FO¦±;‘ª¨ÂstringŽ‘#•Ïpp‘ÿ}'enŽ‘8>¸«)Ž¡‘2ÂconstŽŽ¡‘ -·fŽ¡‘Ïdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘>Ū«(Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gޤÂ797.‘ üP•®9oin“t‘ÕTv“ersions.Ž¡798.– üNormal‘XJv®9ersion.“«[¬LDF‘T2002.4.8.«]Ž‘R˜¶Added–¥Ñthis“function.‘cA“«&Ž‘F±ÏptŽ‘OíN±;‘ª¨ÂconstŽ‘ hôColorŽ‘@¡‘«&Ž‘Hh¯Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|qX±;‘ª¨ÂstringŽ‘#cŸÏddashe‘ÿ}'dŽ‘Fª°±;‘ª¨ÂstringŽŽ¡‘2Ïpp‘ÿ}'enŽ‘G6(±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘Qkþ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP®9athŽ‘/æ»Ïp‘ÿ}'aŽ‘:ãÿ«(·Ž‘ÏthisŽ‘ë·±;‘ª¨ÏptŽ‘ E«);ަ‘Ïp‘ÿ}'aŽ‘ýF±:Ïdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘*Ũ«(Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ÂreturnŽ‘7æ¼Ïp‘ÿ}'aŽ‘Bä«;Ž¡‘ -·gŽŸÂ799.› üPicture–Þ‹argumen®9t“ rst.˜«[¬LDF‘T2002.09.17.«]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“ÂPictureŽ‘,F·«argumen¸ãt.Ž¡‘ -[¬LDF‘T2002.10.26.«]Ž‘Y½mDeclared– -‡in“Èpoints.web«.‘‘]Must“bšGe“de ned“here,‘7Ób˜ecause“ÂP®9athŽ‘ ¦r«is“an“incomplete“t¸ãyp˜eŽ¡there.ަ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘&NpP•®9oin“tŽ‘B輫::‘Ïdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘+Ŭ«(ÂPictureŽ‘)Y«&Ž‘1 6Ïpictur‘ÿ}'eŽ‘P) ±;‘ª¨ÂconstŽ‘ =P•®9oin“tŽ‘?”S«&Ž‘G[qÏptŽ‘Q@±;‘ª¨ÂconstŽ‘ =ColorŽ‘@I©«&Ž‘HÇÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|p±;‘ª¨ÂstringŽŽ¡‘2Ïddashe‘ÿ}'dŽ‘UG±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘8«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘b¬d«(ÏptŽ‘ ä±;‘ª¨Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Q±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gŽ©Â800.‘ üFill.Ž¡‘ -«!!‘qÇ[¬LDF‘T2003.02.02.«]Ž‘SzFilling–UUdošGesn't“use“a“p˜en!!‘qÇChange“ev¸ãerywhere!!.ަÂ801.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.10.07.«]Ž‘Y;Added–UUcoGde“for“handling“and“Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(íª«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘#[½Ï l‘‚ØlŽ‘0%°«(ÂconstŽ‘ˆ†ColorŽ‘>‹]«&Ž‘FR{Ïl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘r€*«=‘c”·Ž‘c•ÂColorsŽ‘*‘h«;Ž¡‘·gަ‘ÂP®9athŽ‘/æ»·Ž‘4æ¼±pŽ‘<µÔ«=‘ÇÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ‘GÚ·«(ÏthisŽ‘ë¶«);ަ‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘^{,«=‘ÇÝFILLŽ‘Mt«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ffill_color.get_useŽ‘kÆÜ_name()È Ý==È Ý"Ž’®8·‘ÇÏl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3±:Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(Ïl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(ʱ:Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶«(‘ª¨)–Ç·“ÏfalseŽ‘v\«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"AllocatingÈ ÝmemoryÈ ÝfŽ‘kÆÜorÈ ÝColor.\n"Ž’®8·‘ÇÏ ushŽ‘€«;ަ‘ÂColorŽ‘=¤ö·Ž‘B¤÷±cŽ‘I¿ê«=‘ÇÂColorŽ‘ º«::Ž‘&¤øÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“c‘ÿ}'olorŽ‘nø«(‘ª¨);ަ‘·Ž‘#±cŽ‘*÷«=‘ÇÏl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3«;Ž¡‘±pŽ‘!Ÿ~ŽŽ‘'Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq«=‘DZcŽ‘ó«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ffill_color.get_namŽ‘kÆÜe()È Ý==È Ý"Ž’™D·‘ÇÏl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3±:Ïget‘‰ffŽ‘®nameŽ‘(ùÀ«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘±pŽ‘!Ÿ~ŽŽ‘'Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq«=‘Ç&Ž‘ -Ž6Ïl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘3XQ«;Ž¡‘·gŽ¡‘±pŽ‘Ÿ~ŽŽ‘Ïp‘ÿ}'enŽ‘/èΫ=‘ÇÝ""Ž‘ Íz«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïdashe‘ÿ}'dŽ‘=ù¼«=‘ÇÝ""Ž‘ Íz«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘N»T«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘urŒ«;Ž¡‘Ïpictur‘ÿ}'eŽ‘5Ïð«+=ŽŽ‘H%DÂstaticu½‰™šs4Ž‘ÔwcastŽ‘|¢æ·hÂShapQÇeŽ‘"Ab·Ž‘'Aci«(±pŽ‘«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::fill(Ž‘kÆÜ).\n"Ž’‰TM·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ803.› üPicture–Þ‹argumen®9t“ rst.˜«[¬LDF‘T2002.09.17.«]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“ÂPictureŽ‘,F·«argumen¸ãt.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏ l‘‚ØlŽ‘/ÇÌ«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘OÁV±;‘ª¨ÂconstŽ‘ÕJColorŽ‘?z=«&Ž‘GA[Ïl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘rÒŽ«=‘Ç·Ž‘ÇÂColorsŽ‘)Ÿ÷«::Ž‘0.5Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘gª«);ŽŽŽŒ‹Ù -ž Šn ý‘ì·x«804‘­3DLDFPR•ÃŽG’ÚUWÂPICTURE›ÕX­AR“GUMENT˜FIRST‘«217Ž €n ý•@PÂ804.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘x…«&Ž‘F?£Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘zHL±;‘ª¨ÂconstŽ‘ )ÂColorŽ‘@#-«&Ž‘GêKÏl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘p´f±;‘ª¨ÂstringŽ‘#$mÏddashe‘ÿ}'dŽ‘Fk~±;‘ª¨ÂstringŽŽ¡‘2Ïpp‘ÿ}'enŽ‘G6(±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘Qkþ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPath::fillŽ‘kÆÜdraw().\n"Ž’£”>·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(Ïp‘ÿ}'ointsŽ‘$•±:ÏsizeŽ‘\«(‘ª¨)–Ç·“«0Ž‘Ç)Ž¡‘±=·‘ÿý«LDF–UU2002.09.27.›qÇAdded“this“error“handling“coGde.˜If“the“ÂP®9athŽ‘<«is“emptš¸ãy‘ÿ*ª,“don't“ lldra˜w“it.‘o·±=Ž¡‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3ÓK·‘¢Ý"WARNING!È ÝInÈ ÝPath::fŽ‘lfilldraw():\n"Ž’´I·‘¢Ý"PathÈ Ýdoesn'tÈ ÝcontaiŽ‘lfnÈ ÝanyÈ ÝPoints.\n"Ž’ÃÁ@·Ž¡‘2Ý"NotÈ ÝdoingÈ Ýanything.Ž’šÿÉ\n\n"Ž’¸:·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gަ‘ÂP®9athŽ‘/æ»·Ž‘4æ¼±pŽ‘<µÔ«=‘ÇÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ‘GÚ·«(ÏthisŽ‘ë¶«);ަ‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘^{,«=‘ÇÝFILLDRAWŽ‘-Mh«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ddraw_color.get_useŽ‘kÆÜ_name()È Ý==È Ý"Ž’®8·‘ÇÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ±:Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ffill_color.get_useŽ‘kÆÜ_name()È Ý==È Ý"Ž’®8·‘ÇÏl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3±:Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©±:Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶«(‘ª¨)–Ç·“ÏfalseŽ‘v\«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"AllocatingÈ ÝmemoryÈ ÝfŽ‘kÆÜorÈ ÝColor.\n"Ž’®8·‘ÇÏ ushŽ‘€«;ަ‘ÂColorŽ‘=¤ö·Ž‘B¤÷±cŽ‘I¿ê«=‘ÇÂColorŽ‘ º«::Ž‘&¤øÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“c‘ÿ}'olorŽ‘nø«(‘ª¨);ަ‘·Ž‘#±cŽ‘*÷«=‘ÇÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ«;Ž¡‘±pŽ‘!Ÿ~ŽŽ‘'Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U«=‘DZcŽ‘ó«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ddraw_color.get_namŽ‘kÆÜe()È Ý==È Ý"Ž’™D·‘ÇÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ±:Ïget‘‰ffŽ‘®nameŽ‘(ùÀ«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘±pŽ‘!Ÿ~ŽŽ‘'Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U«=‘Ç&Ž‘ -Ž6Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘>–ß«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(Ïl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(ʱ:Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶«(‘ª¨)–Ç·“ÏfalseŽ‘v\«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"AllocatingÈ ÝmemoryÈ ÝfŽ‘kÆÜorÈ ÝColor.\n"Ž’®8·‘ÇÏ ushŽ‘€«;ަ‘ÂColorŽ‘=¤ö·Ž‘B¤÷±cŽ‘I¿ê«=‘ÇÂColorŽ‘ º«::Ž‘&¤øÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“c‘ÿ}'olorŽ‘nø«(‘ª¨);ަ‘·Ž‘#±cŽ‘*÷«=‘ÇÏl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3«;Ž¡‘±pŽ‘!Ÿ~ŽŽ‘'Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq«=‘DZcŽ‘ó«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ffill_color.get_namŽ‘kÆÜe()È Ý==È Ý"Ž’™D·‘ÇÏl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3±:Ïget‘‰ffŽ‘®nameŽ‘(ùÀ«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘±pŽ‘!Ÿ~ŽŽ‘'Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq«=‘Ç&Ž‘ -Ž6Ïl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘3XQ«;Ž¡‘·gŽ¡‘±pŽ‘Ÿ~ŽŽ‘Ïdashe‘ÿ}'dŽ‘=ù¼«=‘ÇÏddashe‘ÿ}'dŽ‘&)«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïp‘ÿ}'enŽ‘/èΫ=‘ÇÏpp‘ÿ}'enŽ‘ý;«;Ž¡‘Ïpictur‘ÿ}'eŽ‘5Ïð«+=ŽŽ‘H%DÂstaticu½‰™šs4Ž‘ÔwcastŽ‘|¢æ·hÂShapQÇeŽ‘"Ab·Ž‘'Aci«(±pŽ‘«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::filldŽ‘kÆÜraw().\n"Ž’žTA·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŽŽŒ‹Û -¶ Šn ý‘ì·x«808‘­3DLDFPR•ÃŽG’ÚUWÂPICTURE›ÕX­AR“GUMENT˜FIRST‘«219Ž €n ý•@PÂ808.› üPicture–Þ‹argumen®9t“ rst.˜«[¬LDF‘T2002.09.17.«]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tޤ to–UUpass“a“ÂPictureŽ‘,F·«argumen¸ãt.Ž©·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#42Ï l‘‚Øldr‘ÿ}'awŽ‘D›«(ÂPictureŽ‘)'»«&Ž‘0îÙÏpictur‘ÿ}'eŽ‘O÷¯±;‘ª¨ÂconstŽ‘ £ColorŽ‘?æï«&Ž‘G® Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘~Øa«=‘!«·Ž‘!¬ÂColorsŽ‘)úŠ«::Ž‘0ˆÈÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘h£±;‘ª¨ÂconstŽ‘ £ColorŽŽ¡‘«&Ž‘%Ç!Ïl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘QXT«=‘Ç·Ž‘ÇÂColorsŽ‘)Ÿ÷«::Ž‘0.5Ïb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘zr±;‘ª¨ÂstringŽ‘"ÏõÏddashe‘ÿ}'dŽ‘HÞ«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“«)‘UUÂconstŽ‘*¢«;ŽŸÂ809.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#&]P®9athŽ‘<·Å«::‘Ï l‘‚Øldr‘ÿ}'awŽ‘"go«(ÂPictureŽ‘)æ«&Ž‘0áÏpictur‘ÿ}'eŽ‘OéÚ±;‘ª¨ÂconstŽ‘ýÎColorŽ‘?ËE«&Ž‘G’cÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘{› ±;‘ª¨ÂconstŽ‘ýÎColorŽ‘?ËE«&Ž‘G’cÏl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘p\~±;‘ª¨ÂstringŽŽ¡‘2Ïddashe‘ÿ}'dŽ‘UG±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘8«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Ï l‘‚Øldr‘ÿ}'awŽ‘5gm«(Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©±;‘ª¨Ïl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘*tñ;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gޤÂ810.‘ üUndra®9w.Ž¡811.‘ üP•®9ath‘ÕTv“ersions.Ž¡812.‘ üNormal‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ŽŸ ‘ -Âv®9oidŽ‘"ýÙÏundr‘ÿ}'awŽ‘D#Ø«(ÂstringŽ‘!%MÏddashe‘ÿ}'dŽ‘G3v«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«);Ž¡Â813.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘‘h«;Ž¡‘·gަ‘ÂP®9athŽ‘/æ»·Ž‘4æ¼±pŽ‘<µÔ«=‘ÇÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ‘GÚ·«(ÏthisŽ‘ë¶«);ަ‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘^{,«=‘ÇÝUNDRAWŽ‘"Ín«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘N»T«=‘Ç0Ž‘Ç;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Egp«=‘Ç0Ž‘Ç;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïdashe‘ÿ}'dŽ‘=ù¼«=‘ÇÏddashe‘ÿ}'dŽ‘&)«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïp‘ÿ}'enŽ‘/èΫ=‘ÇÏpp‘ÿ}'enŽ‘ý;«;Ž¡‘Ïpictur‘ÿ}'eŽ‘5Ïð«+=ŽŽ‘H%DÂstaticu½‰™šs4Ž‘ÔwcastŽ‘|¢æ·hÂShapQÇeŽ‘"Ab·Ž‘'Aci«(±pŽ‘«);Ž¡‘ -·gŽŸÂ814.› üPicture–Þ‹argumen®9t“ rst.˜«[¬LDF‘T2002.09.17.«]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“ÂPictureŽ‘,F·«argumen¸ãt.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏundr‘ÿ}'awŽ‘D#Ø«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘OÁV±;‘ª¨ÂstringŽ‘"ÏõÏddashe‘ÿ}'dŽ‘HÞ«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“«);ŽŽŽŒ‹Ü -ÆÝ Šn ý‘ì«220‘ÂPICTURE–ÕX­ARšÃŽGUMENT“FIRST’ÚUW3DLDFPR˜G‘·x«815Ž €n ý•@PÂ815.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘Äç«&Ž‘FŒÏptŽ‘Pp¢±;‘ª¨ÂstringŽ‘"ÏõÏddashe‘ÿ}'dŽ‘F±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘8«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïundr‘ÿ}'awŽ‘Y »«(ÏptŽ‘ ä±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gޤÂ819.‘ üUn ll.Ž¡820.‘ üNormal‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ŽŸ ‘ -Âv®9oidŽ‘"ýÙÏun l‘‚ØlŽ‘:Äð«(ÂPictureŽ‘(ñb«&Ž‘0¸€Ïpictur‘ÿ}'eŽ‘Rˆn«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«);ŽŽŽŒ‹Ý -Õy Šn ý‘ì·x«821–­3DLDFPRÃŽG’4NORMAL‘ÕXVERSION“«221Ž €n ý•@PÂ821.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘‘h«;Ž¡‘·gަ‘ÂP®9athŽ‘/æ»·Ž‘4æ¼±pŽ‘<µÔ«=‘ÇÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ‘GÚ·«(ÏthisŽ‘ë¶«);ަ‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘^{,«=‘ÇÝUNFILLŽ‘"Ín«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘N»T«=‘Ç0Ž‘Ç;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Egp«=‘Ç0Ž‘Ç;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïdashe‘ÿ}'dŽ‘=ù¼«=‘ÇÝ""Ž‘ Íz«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïp‘ÿ}'enŽ‘/èΫ=‘ÇÝ""Ž‘ Íz«;Ž¡‘Ïpictur‘ÿ}'eŽ‘5Ïð«+=ŽŽ‘H%DÂstaticu½‰™šs4Ž‘ÔwcastŽ‘|¢æ·hÂShapQÇeŽ‘"Ab·Ž‘'Aci«(±pŽ‘«);Ž¡‘ -·gޤÂ822.‘ üUn lldra®9w.Ž¡823.‘ üNormal‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ÿ3Ïun l‘‚Øldr‘ÿ}'awŽ‘Oc«(ÂconstŽ‘+üColorŽ‘=ÒI«&Ž‘E™gÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|ki«=‘ÉY·Ž‘ÉZÂColorsŽ‘)¢8«::Ž‘00vÏb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘ztα;‘ª¨ÂstringŽ‘"ÑOÏddashe‘ÿ}'dŽ‘Hṫ=‘ÉYÝ""Ž‘ Ï»±;‘ª¨ÂstringŽŽ¡‘Ïpp‘ÿ}'enŽ‘5ý>«=‘ÇÝ""Ž‘ Íz±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«);ŽŽŽŒ‹Þ -ß— Šn ý‘ì«222–­NORMAL‘ÕXVERSION’43DLDFPRÃŽG“·x«824Ž €n ý•@PÂ824.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘"·Ž¡‘2Ý"NotÈ ÝdoingÈ Ýanything.Ž’šÿÉ\n\n"Ž’¸:·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gަ‘ÂP®9athŽ‘/æ»·Ž‘4æ¼±pŽ‘<µÔ«=‘ÇÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'athŽ‘GÚ·«(ÏthisŽ‘ë¶«);ަ‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘^{,«=‘ÇÝUNFILLDRAWŽ‘7Íb«;Ž¡‘±=·‘!O«LDF‘vž2002.10.07.›Õ¼Added–v§coGde“for“handling“Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5Ù‡«and“Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘)ü«.˜Will“get“rid“of“this“if“I‘vždoŽ¡‘(actually–UUcš¸ãhange“it“to“mak˜e“it“act“more“lik˜e“Âun lldra®9w“«in“MET‘ÿ*ªAPOST.‘ÿý·±=Ž¡‘ÂifŽ‘´ú«(Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©±:Ïget‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶«(‘ª¨)–Ç·“ÏfalseŽ‘v\«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"AllocatingÈ ÝmemoryÈ ÝfŽ‘kÆÜorÈ ÝColor.\n"Ž’®8·‘ÇÏ ushŽ‘€«;ަ‘ÂColorŽ‘=¤ö·Ž‘B¤÷±cŽ‘I¿ê«=‘ÇÂColorŽ‘ º«::Ž‘&¤øÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“c‘ÿ}'olorŽ‘nø«(‘ª¨);ަ‘·Ž‘#±cŽ‘*÷«=‘ÇÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ«;Ž¡‘±pŽ‘!Ÿ~ŽŽ‘'Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U«=‘DZcŽ‘ó«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ddraw_color.get_namŽ‘kÆÜe()È Ý==È Ý"Ž’™D·‘ÇÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ±:Ïget‘‰ffŽ‘®nameŽ‘(ùÀ«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘±pŽ‘!Ÿ~ŽŽ‘'Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U«=‘Ç&Ž‘ -Ž6Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘>–ß«;Ž¡‘·gŽ¡‘±pŽ‘Ÿ~ŽŽ‘Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Egp«=‘Ç0Ž‘Ç;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïdashe‘ÿ}'dŽ‘=ù¼«=‘ÇÏddashe‘ÿ}'dŽ‘&)«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïp‘ÿ}'enŽ‘/èΫ=‘ÇÏpp‘ÿ}'enŽ‘ý;«;Ž¡‘Ïpictur‘ÿ}'eŽ‘5Ïð«+=ŽŽ‘H%DÂstaticu½‰™šs4Ž‘ÔwcastŽ‘|¢æ·hÂShapQÇeŽ‘"Ab·Ž‘'Aci«(±pŽ‘«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::unfilŽ‘kÆÜldraw().\n"Ž’¨Ô;·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ825.› üPicture–Þ‹argumen®9t“ rst.˜«[¬LDF‘T2002.09.17.«]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“ÂPictureŽ‘,F·«argumen¸ãt.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#0ËÏun l‘‚Øldr‘ÿ}'awŽ‘O•Z«(ÂPictureŽ‘)$T«&Ž‘0ërÏpictur‘ÿ}'eŽ‘OôH±;‘ª¨ÂconstŽ‘ ‘h«;Ž¡‘·gŽ¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'ointsŽ–ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘·fŽ¡‘«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïlab‘ÿ}'elŽ‘t˜«(Ïtext‘‰ffŽ‘®shortŽ‘*ßo±;‘ª¨Ïp‘ÿ}'osition‘‰ffŽ‘®stringŽ‘A¥Ë±;‘ª¨ÏdotŽ‘«µ±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ÂifŽ‘)´û«(Ïtext‘‰ffŽ‘®shortŽ‘-¦‡·‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÝWORLD_VALUESŽ‘g®Æ·^‘8àÏtext‘‰ffŽ‘®shortŽ‘/ßg·‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÝVIEW_VALUESŽ‘`5é«)Ž¡‘2±=·‘ÿý«LDF–UU2003.05.06.‘qÇChanged“this“conditional.‘o·±=Ž¡‘(«;‘±=·‘ÿý«Do‘UUnothing.‘o·±=Ž¡‘ÂelseŽ‘6XâŸÿ®+‘ÿ+ŽŽ‘B Ïtext‘‰ffŽ‘®shortŽ‘lÿq«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::labelŽ‘kÆÜ()"Ž‘~ÔS·‘ÇÝ"\n"Ž‘Œ·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽŸÂ831.› üPicture–Þ‹argumen®9t“ rst.˜«[¬LDF‘T2002.09.17.«]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“ÂPictureŽ‘,F·«argumen¸ãt.Ž¡‘ -[¬LDF‘T2003.07.09.«]Ž‘Y;Made‘UUÏp‘ÿ}'osition‘‰ffŽ‘®stringŽ‘F¥Í«and‘UUÏdotŽ‘«·«argumen¸ãts‘UUÂconstŽ‘*¢«.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¦ŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#¢Ïlab‘ÿ}'elŽ‘7‰:«(ÂPictureŽ‘)+«&Ž‘0ÏIÏpictur‘ÿ}'eŽ‘Oر;‘ª¨ÂshortŽ‘ŒÏtext‘‰ffŽ‘®shortŽ‘MX•«=‘í0Ž‘í±;‘ª¨ÂconstŽ‘ìstringŽ‘A()Ïp‘ÿ}'osition‘‰ffŽ‘®stringŽ’„^«=‘íÝ"top"Ž‘³k±;‘ª¨ÂconstŽ‘ìb•QÇo“olŽŽ¡‘ÏdotŽ‘/È(«=‘ÇÏfalseŽ‘v\«)‘UUÂconstŽ‘*¢«;ŽŸÂ832.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#&2P®9athŽ‘<·š«::‘Ïlab‘ÿ}'elŽ‘tœ«(ÂPictureŽ‘)»«&Ž‘0àÙÏpictur‘ÿ}'eŽ‘O鯱;‘ª¨ÂshortŽ‘¤Ïtext‘‰ffŽ‘®shortŽ‘J}±;‘ª¨ÂconstŽ‘ý£stringŽ‘AKIÏp‘ÿ}'osition‘‰ffŽ‘®stringŽ’Fl±;‘ª¨ÂconstŽ‘ý£b•QÇo“olŽ‘9ÇbÏdotŽ‘HÈo«)Ž¡‘2ÂconstŽŽ¡‘ -·fŽ¡‘Ïlab‘ÿ}'elŽ‘(tš«(Ïtext‘‰ffŽ‘®shortŽ‘*ßo±;‘ª¨Ïp‘ÿ}'osition‘‰ffŽ‘®stringŽ‘A¥Ë±;‘ª¨ÏdotŽ‘«µ±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gŽŸÂ833.‘ üDotlabQÇel.ŽŽŽŒ‹á ' Šn ý‘ì·x«834–­3DLDFPRÃŽG’4NORMAL‘ÕXVERSION“«225Ž €n ý•@PÂ834.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ -«[¬LDF‘T2003.07.09.«]Ž‘Y;Made‘UUÏtext‘‰ffŽ‘®shortŽ‘1Š«and‘UUÏp‘ÿ}'osition‘‰ffŽ‘®stringŽ‘F¥Í«argumen¸ãts‘UUÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘#Ú¤Ïdotlab‘ÿ}'elŽ‘EÚ—«(ÂconstŽ‘mshortŽ‘=®ÛÏtext‘‰ffŽ‘®shortŽ‘lÅ^«=‘70Ž‘ 7±;‘ª¨ÂconstŽ‘ ²stringŽ‘B´-Ïp‘ÿ}'osition‘‰ffŽ‘®stringŽ’†æd«=‘7Ý"top"Ž‘ým±;‘ª¨ÂPictureŽŽ¦‘«&Ž‘%Ç!Ïpictur‘ÿ}'eŽ‘G—«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŸÂ835.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘Ïtext‘‰ffŽ‘®shortŽ‘l=«=‘#¹0Ž‘#º±;‘ª¨ÂconstŽ‘ ÞstringŽ‘Ai¿Ïp‘ÿ}'osition‘‰ffŽ‘®stringŽ’„ˆ›«=‘#¹Ý"top"Ž‘ê«)ަ‘ÂconstŽ‘8ÕP«;ŽŸÂ837.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘uC«&Ž‘FuC«&Ž‘FQá·‘ø¦Ý"EnteringÈ ÝPath::set_Ž‘køjextremes()"Ž’©7W·‘ø¦Ïend‘‚ØlŽ‘ã·‘ø¦Ï ushŽ‘±¢«;‘±=·‘¹«If–sthere“are“no“ÂP•®9oin“tsŽ‘' ¦«onŽ¡‘<the‘UUÂP®9athŽ‘湫,–UUset“all“the“elemen¸ãts“of“Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘Z®û«to“ÝINVALID_REALŽ‘F0î«and“return“ÏfalseŽ‘™«.‘o·±=Ž¡‘ÂifŽ‘)´û«(Ïp‘ÿ}'ointsŽ‘$•±:ÏsizeŽ‘\«(‘ª¨)–Ç·“«0Ž‘Ç)‘·fŽ¡‘(Ïc‘ÿ}'errŽ‘?6·‘hŒÝ"ERROR!È ÝInÈ ÝPath::setŽ‘mhP_extremes():\n"Ž’Á·‘hŒÝ"points.size()È Ý<=È Ý0.Ž‘mhPÈ Ý"Ž‘|×>·Ž¡‘<Ý"SettingÈ ÝextremesÈ ÝtoŽ’¤ÿÊÈ ÝINVALID_REALÈ ÝandÈ ÝreŽ’ ÿŽturning.\n"Ž’K í·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘~Ëm«=‘ÇÝINVALID_REALŽ‘BM\«;Ž¡‘(ÂreturnŽ‘Kæ¾ÏfalseŽ‘`–«;Ž¡‘·gŽŽŽŒ‹ã Ö Šn ý‘ì·x«843–­3DLDFPRÃŽG’®SET‘ÕXEXTREMES“«227Ž €n ý•@PÂ843.‘ ü«[¬LDF‘T2002.09.18.«]Ž‘YÍAdded–š=this“routine.‘3jSet“the“Ïminimum›^ «v‘ÿqÇalues“to“ÝMAX_REALŽ‘/ºÊ«and“the“Ïmaximum˜«v‘ÿqÇaluesޤ to‘èU·Ž‘ ¯sÝMAX_REALŽ‘65ë.‘*ÈThis›èUw•¸ãa“y‘ÿ*ª,‘ an“y˜v‘ÿqÇalid˜p•Gersp“ectiv¸ãe˜co“ordinates˜will˜replace˜them˜on˜the˜ rst˜iteration˜of˜theŽ¡ÂforŽ‘膫loGop.Ž¡‘ -[¬LDF‘T2002.09.18.«]Ž‘X×WI›$ehad–$qsome“dicult¸ãy“debugging“this“bGecause“instead“of“using“·Ž‘ -ëÝMAX_REALŽ‘5qß«,‘.9I˜de ned“andŽ¡used‘B1ÝMIN_REALŽ‘3[«=‘QÚÂn®9umericu½‰™šs4Ž‘ÔwlimitsŽ‘N@æ·hÂrealŽ‘]Ù·i‘«::Ž‘ŽBÏminŽ‘³W«(‘ª¨).‘8[Ho•¸ãw“ev“er,‘}hthis–B1isn't“the“negativ¸ãe“ÂrealŽ‘â;«with“the“largestŽ¡magnitude,–UUbut“the“smallest“pGositiv¸ãe“ÂrealŽ‘³.«.ŽŸ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R«[0Ž‘]–Ç=“ÝMAX_REALŽ‘-Mh«;‘±=·‘ÿý«Minima.‘o·±=Ž¡‘ -Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R«[2Ž‘]–Ç=“ÝMAX_REALŽ‘-Mh«;Ž¡‘ -Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R«[4Ž‘]–Ç=“ÝMAX_REALŽ‘-Mh«;Ž¡‘ -Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R«[1Ž‘]–Ç=“·Ž‘ -Ž6ÝMAX_REALŽ‘5†«;‘±=·‘ÿý«Maxima.‘o·±=Ž¡‘ -Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R«[3Ž‘]–Ç=“·Ž‘ -Ž6ÝMAX_REALŽ‘5†«;Ž¡‘ -Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R«[5Ž‘]–Ç=“·Ž‘ -Ž6ÝMAX_REALŽ‘5†«;Ž¡‘ -ÂforŽ‘臫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7iterŽ‘=+M«=‘ÇÏp‘ÿ}'ointsŽ–ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"minÈ ÝxÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[0Ž‘]–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"maxÈ ÝxÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[1Ž‘]–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"xÈ ÝworldÈ Ý==È Ý"Ž‘JTq·–Ç«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨)“·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"xÈ ÝperspÈ Ý==È Ý"Ž‘JTq·›Ç«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®xŽ‘Žg«(Ý'p'Ž‘F_±;‘ª¨ÏfalseŽ–Yì±;‘ª¨ÏfalseŽ“«)˜·˜Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"minÈ ÝyÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[2Ž‘]–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"maxÈ ÝyÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[3Ž‘]–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"yÈ ÝworldÈ Ý==È Ý"Ž‘JTq·–Ç«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨)“·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"yÈ ÝperspÈ Ý==È Ý"Ž‘JTq·›Ç«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®yŽ‘t«(Ý'p'Ž‘F_±;‘ª¨ÏfalseŽ–Yì±;‘ª¨ÏfalseŽ“«)˜·˜Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"minÈ ÝzÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[4Ž‘]–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"maxÈ ÝzÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[5Ž‘]–Ç·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"zÈ ÝworldÈ Ý==È Ý"Ž‘JTq·–Ç«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨)“·“Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"zÈ ÝperspÈ Ý==È Ý"Ž‘JTq·›Ç«(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®zŽ‘«(Ý'p'Ž‘F_±;‘ª¨ÏfalseŽ–Yì±;‘ª¨ÏfalseŽ“«)˜·˜Ïend‘‚ØlŽ‘¸Ú«;Ž¡‘·gŽ¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[0Ž›]–Ç=“ÏminŽ‘ì-«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«[0Ž˜]±;–ª¨«(·Ž˜Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®xŽ‘Žg«(Ý'p'Ž‘F_±;“ÏfalseŽ›Yì±;“ÏfalseŽ˜«));‘±=·–ÿý«Min‘UUx“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[2Ž›]–Ç=“ÏminŽ‘ì-«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«[2Ž˜]±;–ª¨«(·Ž˜Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®yŽ‘t«(Ý'p'Ž‘F_±;“ÏfalseŽ›Yì±;“ÏfalseŽ˜«));‘±=·–ÿý«Min‘UUy“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[4Ž›]–Ç=“ÏminŽ‘ì-«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«[4Ž˜]±;–ª¨«(·Ž˜Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®zŽ‘«(Ý'p'Ž‘F_±;“ÏfalseŽ›Yì±;“ÏfalseŽ˜«));‘±=·–ÿý«Min‘UUz“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[1Ž›]–Ç=“ÏmaxŽ‘k³«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«[1Ž˜]±;–ª¨«(·Ž˜Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®xŽ‘Žg«(Ý'p'Ž‘F_±;“ÏfalseŽ›Yì±;“ÏfalseŽ˜«));‘±=·–ÿý«Max‘UUx“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[3Ž›]–Ç=“ÏmaxŽ‘k³«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«[3Ž˜]±;–ª¨«(·Ž˜Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®yŽ‘t«(Ý'p'Ž‘F_±;“ÏfalseŽ›Yì±;“ÏfalseŽ˜«));‘±=·–ÿý«Max‘UUy“·±=Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS«[5Ž›]–Ç=“ÏmaxŽ‘k³«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«[5Ž˜]±;–ª¨«(·Ž˜Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®zŽ‘«(Ý'p'Ž‘F_±;“ÏfalseŽ›Yì±;“ÏfalseŽ˜«));‘±=·–ÿý«Max‘UUz“·±=Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«6Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"projective_extremesŽ‘kÆÜ["Ž‘y”V·‘DZiŽ‘ $·‘ÇÝ"]È Ý==È Ý"Ž‘*Ôƒ·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[±iŽ‘qô«]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘ -·gŽŽŽŒ‹ä -À Šn ý‘ì«228–­SET‘ÕXEXTREMES’®3DLDFPRÃŽG“·x«844Ž €n ý•@PÂ844.‘ ü«[¬LDF‘T2002.09.18.«]Ž‘[Å=Added–’\this“error“handling“coGde.‘(ÝThere“is“a“remote“c¸ãhance“that“a“v‘ÿqÇalid“ÂP•®9oin“tŽŽ¤ «could›Bha•¸ãv“e˜a˜coGordinate˜·˜ÝMAX_REALŽ‘3 -„«or˜·Ž‘ 8ÝMIN_REALŽ‘6ˆ«,›}Kho“w“ev“er,˜it–Bis“virtually“impšGossible“that“it“w¸ãould“b˜eŽ¡pro‘Ž8jectable.‘Õ®If–v¢it's“the“x“or“y-coGordinate,‘~õit“wš¸ãould“probably“lie“outside“the“limits“de ned“for“the“in˜v˜oGcationŽ¡of‘7¬ÂPictureŽ‘*Ó½«::‘ÏoutputŽ‘D«(‘ª®),›pAand–7¬if“it“w¸ãas“the“±zŽ‘ NÊ«,˜it“w¸ãould“either“bšGe“b˜ehind“the“ÂF‘ÿ -«oQÇcusŽ‘%d¤«or“so“far“a•¸ãw“a“y–7¬as“to“b˜eŽ¡practically›‹.in•¸ãvisible.‘SI‘ŠÞbGeliev“e˜that˜this˜is˜the˜case,‘ؤev“en˜though˜the˜z-coGordinates˜are˜made˜smaller˜b“yŽ¡applying–UUthe“equation“±zŸÿ´pŽ‘fj«=‘DZzp—=«(±z‘©w«+‘8à±p«).Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂforŽ‘臫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž–Ç;‘ÿý±iŽ› 9 <‘Ç«6Ž“;‘ÿý±iŽ˜«+=ŽŽ‘Ž]2Ž‘"Ž^)‘·fŽ¡‘ÂifŽ‘´ú«(Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ«[±iŽ‘qô«]–Ç·“ÝMAX_REALŽ‘AMi±=·–ÿý«Minima“·±=Ž¡‘8â·_‘8àÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘V=1«[±iŽ‘ªÔ«+‘8à1Ž‘8á]–Ç·“Ž‘ -Ž6ÝMAX_REALŽ‘5†«)‘±=·–ÿý«Maxima“·±=Ž¡‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"iÈ Ý==È Ý"Ž‘*Ôƒ·‘DZiŽ‘ $·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"projective_extremesŽ‘kÆÜ["Ž‘y”V·‘DZiŽ‘ $·‘ÇÝ"]È Ý==È Ý"Ž‘*Ôƒ·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[±iŽ‘qô«]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘·gŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"ERROR!È ÝInÈ ÝPath::setŽ‘kÆÜ_extremes():\n"Ž’½Ô/·‘ÇÝ"maximaÈ ÝandÈ ÝminimaÈ ÝcŽ‘kÆÜouldÈ ÝnotÈ ÝbeÈ ÝsetÈ ÝpropŽ’ÔÆ \ŽŽ¡‘2erly.È Ý"Ž‘Z p·‘ÇÝ"SettingÈ ÝthemÈ ÝallÈ ÝtoŽ‘kÆÜÈ ÝINVALID_REALÈ ÝandÈ ÝreŽ’ÔÆ turningÈ Ýfalse.\n"Ž’1Sí·‘ÇÏ ushŽ‘€«;Ž¡‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘tËl«=‘ÇÝINVALID_REALŽ‘BM\«;Ž¡‘ÂreturnŽ‘Aæ½ÏfalseŽ‘V–«;Ž¡‘ÂbreakŽ‘:¡g«;Ž¡‘·gŽ¡‘ +«ransformŽ‘w¬(µpŽ‘:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘)µ;‘ª¨pŽ‘²¨:±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>¬(–ª¨)µ;“±angleŽ‘jû¬);Ž¡‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);Ž¡‘ +°gŽŽŽŒ‹Ñ»Ÿ Šn ý‘ì°x¬760–¯3DLDF-1.1.5.1’ +tº­POINT‘ÕX¯VERSION“¬209Ž €n ý•@P­760.› üP•®9oin“t‘‘lv“ersion.˜¬Declared–øäin“®points.web¬.‘\uMust“bšGe“de ned“here,‘!Èb˜ecause“­P®9athŽ‘ ƒ,¬is“an“incompleteޤ t¸ãypGe‘UUthere.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²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­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­T‘ÿ +«ransformŽ‘AÈÓP•®9oin“tŽ‘^c¬::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘NHˬ)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(°:µpŽ‘:±get‘‰ffŽ–®line‘‰ffŽ“switchŽ‘?Ö}¬(‘ª¨))‘°fŽ¡‘±c‘ÿ}'errŽ‘8(¢°‘rù´"ERROR!® ´In® ´Point::roŽ‘pr½tate(Path,® ´real).\n"Ž’ákâ°Ž¡‘2´"Path® ´is® ´not® ´a® ´line.Ž’šÿÉ® ´Returning® ´INVALID_Ž’ÿTRANSFORM.\n\n"Ž’SEȬ;Ž¡‘­returnŽ‘Aæ½´INVALID_TRANSFORMŽ’›¬ò¬;Ž¡‘°gŽ©‘­P•®9oin“tŽ‘2pt0Ž‘Eò¬=‘ǵpŽ‘Ï:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘);Ž¡‘­P•®9oin“tŽ‘2pt1Ž‘Eò¬=‘ǵpŽ‘Ï:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(1Ž‘);ަ‘­returnŽ‘7æ¼±r‘ÿ}'otateŽ‘RUú¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ãµ;‘ª¨±angleŽ‘jû¬);Ž¡‘ +°gޤ­761.‘ üP•®9ath‘ÕTv“ersions.Ž¡762.‘ üP•®9oin“t‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.4.7.¬]Ž‘OÈ?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®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦±r‘ÿ}'otateŽ’Åä¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Åµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘Qã¬=‘Ç180ŽŽ‘Ç);ŽŸ­763.‘ ü¬TO›]¬DO:–]¯Change“this,‘_Åso“that“I˜use“­opQÇeratorŽ‘.ôd°¬=ŽŽŽ‘;»ƒ(­T‘ÿ +«ransformŽ‘4s}¬)“here“and“in“the“other“transformationŽ¡functions.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9athŽ‘[Z;¬::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘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û¬);Ž¡‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);Ž¡‘ +°gŽŽŽŒ‹ÒÄ Šn ý‘ì¬210›­P–ÿ +«A“TH‘ÕX¯ARÃŽGUMENTS’ÿ¡3DLDF-1.1.5.1˜°x¬764Ž €n ý•@P­764.‘ üP•®9ath‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.4.7.¬]Ž‘OÈ?Added–UUdefault“v‘ÿqÇalue“for“±angleŽ‘jý°‘Ǭ180.Ž¡‘ +[²LDF‘T2002.11.03.¬]Ž‘Y;Got–UUrid“of“loGcal“­P•®9oin“tsŽ‘&Î.±p0Ž‘6:C¬and“±p1Ž‘l¬.Ž¡‘ +[²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.Ž¡‘ +[²LDF‘T2003.07.13.¬]Ž‘Y;Changed,–UUso“that“±is‘‰ffŽ‘®line‘ÿ}'arŽ‘(jÒ¬(‘ª®)“is“used“instead“of“c•¸ãhec“king–UUthe“return“v‘ÿqÇalue“ofŽ¡±get‘‰ffŽ–®line‘‰ffŽ“switchŽ‘?Ö}¬(–ª®).‘MyAlso,‘þ3±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘="q¬(“)–èjpassed“as“the“second“argumen¸ãt“to“±r‘ÿ}'otateŽ‘W¨¬(‘ª®),‘þ3instead“of“±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘*J²¬(1Ž‘).ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž© ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±r‘ÿ}'otateŽ‘\8¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘Qã¬=‘Ç180ŽŽ‘Ç);ŽŸ­765.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9athŽ‘[Z;¬::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘NHˬ)ަ‘ +°fަ‘­ifŽ‘´ú¬(°:µpŽ‘:±is‘‰ffŽ‘®line‘ÿ}'arŽ‘%}¬(‘ª¨))‘°fަ‘±c‘ÿ}'errŽ‘8K°‘•o´"ERROR!® ´In® ´Path::rotŽ‘p•3ate(Path,® ´real).\n"Ž’ÜpѰަ‘2´"Path® ´is® ´not® ´a® ´line.Ž’šÿÉ® ´Returning® ´INVALID_Ž’ÿTRANSFORM.\n\n"Ž’SEȬ;ަ‘­returnŽ‘Aæ½´INVALID_TRANSFORMŽ’›¬ò¬;ަ‘°gަ‘­returnŽ‘7æ¼±r‘ÿ}'otateŽ‘RUú¬(µpŽ‘:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘)µ;‘ª¨pŽ‘²¨:±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>¬(–ª¨)µ;“±angleŽ‘jû¬);ަ‘ +°gŽŸ­766.– üScale.“¬[²LDF‘T2002.12.20.¬]Ž‘Zˆ6TO–UUDO:“Mak¸ãe“all“of“the“transformations“­virtualŽ‘%Ó¬!Ž¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±sc‘ÿ}'aleŽ‘W}Ŭ(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç1Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç1Ž“);ŽŸ­767.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9athŽ‘[Z;¬::‘±sc‘ÿ}'aleŽ‘´ö¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)ަ‘ +°fަ‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;Ž¡‘µtŽ‘œt:±sc‘ÿ}'aleŽ‘´ò¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);ަ‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);ަ‘ +°gŽŸ­768.‘ üShear.Ž¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°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Ž“);ŽŽŽŒ‹ÓÏV Šn ý‘ì°x¬769–¯3DLDF-1.1.5.1’<Ò–SHEAR“¬211Ž €n ý•@P­769.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9athŽ‘[Z;¬::‘±she‘ÿ}'arŽ‘4>¬(­realŽ‘³.±xyŽ‘!—µ;‘ª¨­realŽ‘]Ö±xzŽ‘"Õ¨µ;‘ª¨­realŽ‘]Ö±yxŽ‘#“„µ;‘ª¨­realŽ‘]Ö±yzŽ‘# µ;‘ª¨­realŽ‘]Ö±zxŽ‘"ÏAµ;‘ª¨­realŽ‘]Ö±zyŽ‘"´ð¬)Ž¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path::sheaŽ‘kÆÜr().\n"Ž’‘ /¬;ަ‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;ަ‘µtŽ‘œt:±she‘ÿ}'arŽ‘4:¬(±xyŽ‘ +ãçµ;‘ª¨±xzŽ‘ "zµ;‘ª¨±yxŽ‘ àVµ;‘ª¨±yzŽ‘ Yðµ;‘ª¨±zxŽ‘ µ;‘ª¨±zyŽ‘ ¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::shearŽ‘kÆÜ().\n"Ž’‹Í2¬;Ž¡‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);Ž¡‘ +°gޤ­770.‘ üShift.Ž¡771.‘ üreal‘ÕTargumen®9ts.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ŽŸ ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shiftŽ‘UæP¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç0Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç0Ž“);Ž¡­772.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9athŽ‘[Z;¬::‘±shiftŽ‘¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)Ž¡‘ +°fŽ¡‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;ަ‘µtŽ‘œt:±shiftŽ‘}¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);Ž¡‘ +°gŽŸ­773.‘ üP•®9oin“t‘ÕTargumen“t.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±shiftŽ‘UæP¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬);ŽŸ­774.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9athŽ‘[Z;¬::‘±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ŽŸ­775.‘ üShift‘ÕTtimes.Ž¡‘ +¬[²LDF‘T2003.01.19.¬]Ž‘Z}±shift‘‰ffŽ‘®timesŽ’ˆô¸¬(‘ª®)–U—returns“­v®9oidŽ‘þ¬,‘•§bšGecause“­P®9athŽ‘!<’¬do˜esn't“ha•¸ãv“e–U—a“­T‘ÿ +«ransformŽ‘=«¬data“mem¸ãb˜er,Ž¡and–UUthere's“no“guaranš¸ãtee“that“all“of“the“­P•®9oin“tsŽ‘&Î.¬on“±p‘ÿ}'ointsŽ‘!Ï?¬will“ha˜v˜e“iden˜tical“±tr‘ÿ}'ansformsŽ‘3-¬.Ž¡‘ +[²LDF‘T2003.01.19.¬]Ž‘Y;ÓNote–ˆíthat“±shift‘‰ffŽ‘®timesŽ‘2u(¬(‘ª®)“will“only“ha•¸ãv“e–ˆían“e ect“on“the“­P•®9oin“tsŽ‘'5^¬on“a“­P®9athŽ‘£>¬if“it's“calledŽ¡±after‘6j¬a–"Ýcall“to“±shiftŽ‘@Z¬(›ª®)“and“±b–ÿ}'efor“e‘ã8¬an–"ÝopGeration“is“applied“that“causes“­P•®9oin“tŽ‘½)¬::‘±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Gã¬(˜)“to“bGe“called.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.01.19.¬]Ž‘Y;Added–UUthis“section.ަŸüÈ„`ÕÁGŽŽŽŽŒ‹ÔÛŽ Šn ý‘ì¬212–­REAL‘ÕX¯ARÃŽGUMENTS’ÿyý3DLDF-1.1.5.1“°x¬776Ž €n ý•@P­776.‘ üreal‘ÕTargumen®9ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ +¬[²LDF‘T2003.01.19.¬]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±shift‘‰ffŽ‘®timesŽ‘wwç¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç1Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç1Ž“);ŽŸ­777.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘uC¬&Ž‘FuC¬&Ž‘FÄç¬&Ž‘FŒ±p1Ž‘R¢Åµ;‘ª¨­constŽ‘ÕJc®9harŽ‘9?“±axisŽ‘K|[¬);ŽŸ­795.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9athŽ‘[Z;¬::‘±align‘‰ffŽ–®with‘‰ffŽ“axisŽ‘A²|¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Åµ;‘ª¨­constŽ‘ÕJc®9harŽ‘9?“±axisŽ‘NCs¬=‘Ç´'z'Ž‘ w¬)ަ‘ +°fަ‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;Ž¡‘µtŽ‘œt:±align‘‰ffŽ–®with‘‰ffŽ“axisŽ‘@²x¬(±p0Ž‘ Àµ;‘ª¨±p1Ž‘ Áhµ;‘ª¨±axisŽ‘çp¬);ަ‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);ަ‘ +°gޤ­796.‘ üAdding›ÕTP•®9oin“ts˜to˜P“aths.Ž¡797.‘ üWith‘ÕTassignmen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.4.6.¬]Ž‘O›çAdded–(ýthis“function.›bÿCurren¸ãtly‘ÿ*ª,‘1Ûit“doGesn't“return“a“­P®9athŽ‘ºa¬.˜If“it“turns“out“that“it“w¸ãould“bGeަuseful–UUto“return“°Ž‘UV±thisŽ‘A ¬,“I“can“c¸ãhange“it.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”ެ+=ŽŽŽ‘^"Ê(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±ptŽ‘NÅú¬);ŽŸ­798.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘‘Ǭ(±ptŽ‘ ä¬)–UU)“;ަ‘­returnŽ‘>‘h¬;‘qǰgŽŸ­799.‘ üWithout‘ÕTassignmen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2002.4.6.¬]Ž‘OÈ?Added–UUthis“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­P®9athŽ‘%æºopQÇeratorŽ‘Q}o¬+Ž‘YD(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±ptŽ‘NÅú¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹Ø 1 Šn ý‘ì¬216–¯WITHOUT‘ÕXASSIGNMENT’òî3DLDF-1.1.5.1“°x¬800Ž €n ý•@P­800.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­P®9athŽ‘%ó“P®9athŽ‘?„û¬::Ž‘F9­opQÇeratorŽ‘q©î¬+Ž‘yq (­constŽ‘7{P•®9oin“tŽ‘=3ñ¬&Ž‘Dû±ptŽ‘N߬¬)‘b.­constŽ‘7{°f‘b.­P®9athŽ‘UÀ±p‘ÿ}'aŽ‘*S¬(°Ž‘±thisŽ‘ë·¬);‘b.±p‘ÿ}'aŽ‘_rµ:±p‘ÿ}'ointsŽ‘$•µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.º€¬(‘b.±cr–ÿ}'e“ate‘‰ffŽ‘®newŽŽ¡‘2µ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(±ptŽ‘ ä¬)–UU)“;Ž¡‘­returnŽ‘Aæ½±p‘ÿ}'aŽ‘Lä¬;‘qǰgŽŸ­801.‘ üAdding–ÕTconnectors“to“P®9aths.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.02.09.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙopQÇeratorŽ‘N”ެ+=ŽŽŽ‘^"Ê(­constŽ‘*¢stringŽ‘?OïµsŽ‘Cÿï¬);ŽŸ­802.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙP®9athŽ‘¬;Ž¡‘(­returnŽ‘H‘i¬;Ž¡‘°gަ‘­stringŽ‘?%P±last‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘}F ¬;ŽŽŽŒ‹Ùœ Šn ý‘ì°x¬807–¯3DLDF-1.1.5.1’4ÞWITH‘ÕXASSIGNMENT“¬217Ž €n ý•@P­807.‘ ü¬[²LDF‘T2002.4.6.¬]Ž‘Q±If–¾there“isn't“an“explicit“connector“for“evš¸ãery“pair“of“­P•®9oin“tsŽ‘'ŸÂ¬in“±thisŽ‘©ÕŸµ~ŽŽ‘©Ö±p‘ÿ}'ointsŽ‘3Îk¬,‘ØRthen“w˜eޤ ha•¸ãv“e–to“ ll“up“±c–ÿ}'onne“ctorsŽ‘7P4¬so“that“there“are“enough.››ÒOtherwise,‘ Ь);ŽŸ­808.‘ ü¬[²LDF‘T2002.4.6.¬]Ž‘PõÆIf–áthe“­P®9athsŽ‘# b¬don't“touc¸ãh,‘_they“are“joined“using“\.."›VKinstead“of“\&".˜This“mimics“theŽ¡bGehaš¸ãvior–UUof“MET‘ÿ*ªAF˜ONT.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.03.¬]Ž‘Y;No¸ãw–UUusing“°Ž‘UV¬(±p‘ÿ}'ointsŽ›$•µ:±b‘ÿ}'ackŽ‘üì(‘ª¨))“instead“of“±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘*·¬(±p‘ÿ}'ointsŽ˜µ:±sizeŽ‘\¬(‘ª¨)–8à°“¬1Ž‘8á).ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(°Ž›¬(±p‘ÿ}'ointsŽ‘$•µ:±b‘ÿ}'ackŽ‘üì(‘ª¨))–ǰ6¬=“±p‘ÿ}'aŽ‘ Ä\µ:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž˜))‘°fŽ¡‘±c‘ÿ}'errŽ‘+›°‘ål´"ERROR!® ´In® ´Path::opeŽ‘må0rator&(Path&)."Ž’Â×°‘ål´"Paths® ´don't® ´touch.\Ž‘må0n"Ž‘}Ðþ°Ž¡‘(´"Using® ´\"..\"® ´to® ´joiŽ’ÿÈn® ´them® ´instead® ´of® ´\"Ž’ùÿŒ&\".\n"Ž’" ÷°‘DZ ushŽ‘€¬;Ž¡‘±c–ÿ}'onne“ctorsŽ‘C40µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(´".."Ž‘†\¬);Ž¡‘ +°gŽ¡‘ +­elseŽ‘!Øà±c–ÿ}'onne“ctorsŽ‘Q µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(´"&"Ž‘F_¬);Ž¡‘ +­forŽ‘臬(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘DZp‘ÿ}'aŽ‘ Ä\µ:±p‘ÿ}'ointsŽ‘$•µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);Ž¡‘µ=°‘ÿý¬[²LDF‘T2002.4.6.¬]Ž‘JÈ;Copš¸ãy–UUthe“­P•®9oin“tsŽ‘&Î.¬in“±p‘ÿ}'aŽ‘§î¬and“put“the“copies“on˜to“±p‘ÿ}'ointsŽ‘yê¬.‘o°µ=Ž¡‘ +±iterŽ‘’°6¬=‘DZp‘ÿ}'aŽ‘ Ä\µ:±p‘ÿ}'ointsŽ‘$•µ:±endŽ‘ಬ(‘ª¨);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)‘UU±p‘ÿ}'ointsŽ‘yêµ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(°Ž‘±iterŽ‘Êÿ¬)–UU)“;ŽŸ­809.‘ ü¬[²LDF‘T2002.4.6.¬]Ž‘R_}Put–l˜the“connectors“from“±p‘ÿ}'aŽ‘Öt¬on¸ãto“the“new“­P®9athŽ‘ýü¬.‘·Since“they're“­stringsŽ‘&œè¬,‘²hand“notŽ¡pGoin•¸ãters,‘íöw“e–Ïpdon't“ha•¸ãv“e–Ïpto“copš¸ãy“them.‘àI‘ÏPtested“this“to“mak˜e“sure“it's“true.‘àI‘ÏPdon't“kno˜w“ho˜w“­stringsŽ‘)Ï0¬areŽ¡implemenš¸ãted,–UUbut“they“seem“to“bGe“handled“lik˜e“string“literals.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­forŽ‘œ +¬(­v®9ectorŽ‘ªH°h­stringŽ‘Ïø°i‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘DZp‘ÿ}'aŽ– Ä\µ:±c–ÿ}'onne“ctorsŽ›/4.µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘³€±iterŽ‘E–°6¬=‘DZp‘ÿ}'aŽ“µ:±c–ÿ}'onne“ctorsŽ˜µ:±endŽ‘ಬ(‘ª¨);‘³€±iterŽ‘þ~Ÿÿ³+‘ÿ+ŽŽ‘!Åž¬)‘°fŽ¡‘±c–ÿ}'onne“ctorsŽ‘C40µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(°Ž‘±iterŽ‘Êÿ¬);Ž¡‘ +°gŽ¡‘ +­returnŽ‘*‘f¬;‘qǰgŽŸ­810.‘ üWithout‘ÕTassignmen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.4.6.¬]Ž‘OÈ?Added–UUthis“function.‘qÇIt“bšGeha•¸ãv“es–UUthe“w•¸ãa“y–UUthe“op˜erator“\&"“do˜es“in“MET‘ÿ*ªAF¸ãONT.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­P®9athŽ‘%æºopQÇeratorŽ‘Q}o¬&Ž‘YD(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØy±p‘ÿ}'aŽ‘LÕ½¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹Ú € Šn ý‘ì¬218–¯WITHOUT‘ÕXASSIGNMENT’òî3DLDF-1.1.5.1“°x¬811Ž €n ý•@P­811.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­P®9athŽ‘%æºP®9athŽ‘?x"¬::Ž‘F`­opQÇeratorŽ‘q¬&Ž‘yd3(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØy±p‘ÿ}'aŽ‘LÕ½¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P®9athŽ‘/滵rŽ‘4°Ï¬(°Ž‘±thisŽ‘ë·¬);ަ‘µrŽ‘‘.¬&=ŽŽ‘-悱p‘ÿ}'aŽ‘8ãÆ¬;Ž¡‘­returnŽ‘7æ¼µrŽ‘<°Ð¬;Ž¡‘ +°gŽŸ­812.› üAppQÇending–‰Qwith“a“connector“argumen®9t.˜¬[²LDF‘T2002.4.7.¬]Ž‘Qä½It–ñØwš¸ãould“not“ha˜v˜e“bšGeen“p˜ossible“toŽ¡spšGecify–d}a“connector“if“I'd“de ned“this“function“as“a“binary“op˜erator,–hGe.g.,“­opQÇeratorŽ‘.þü¬+=ŽŽŽ‘>8(‘ª¨),“so–d}I'v¸ãe“made“it“aŽ¡named–&function.‘b It“can“bGe“useful“when,›/Žfor“instance,˜rotation“causes“t•¸ãw“o‘&­P•®9oin“tsŽ‘#I ¬,˜whic“h–&should“bGe“iden¸ãtical,Ž¡to–0di er“bš¸ãy“a“small“amoun˜t,‘7{lik˜e“1µ=¬10µ;‘ª¨¬000“in“one“cošGordinate.‘eWThis“has“actually“happ˜ened,‘7{whicš¸ãh“is“wh˜y“I'v˜eŽ¡added–þ»this“function.‘TéMET‘ÿ*ªAPOST‘þ¥can“reco•¸ãv“er–þ»gracefully“b¸ãy“using“\´..Ž‘ b¬"“instead“of“\&"“to“connect“the“paths,Ž¡but–Œúit“issues“an“error“message“and“stops“to“wš¸ãait“for“a“respGonse.‘·Using“this“function“can“help“to“a˜v˜oid“suc˜hŽ¡problems.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.4.7.¬]Ž‘OÈ?Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­P®9athŽ‘%溱app‘ÿ}'endŽ‘E™ã¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØy±p‘ÿ}'aŽ‘LÕ½µ;‘ª¨­stringŽ‘"Ïõ±c–ÿ}'onne“ctorŽ‘Põç¬=‘Ç´"--"Ž‘Mtµ;‘ª¨­b•QÇo“olŽ‘L±assignŽ‘9îB¬=‘DZtrueŽ‘‹°¬);ŽŸ­813.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­P®9athŽ‘%æºP®9athŽ‘?x"¬::‘±app‘ÿ}'endŽ‘ ³-¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØy±p‘ÿ}'aŽ‘LÕ½µ;‘ª¨­stringŽ‘"Ïõ±c–ÿ}'onne“ctorŽ‘N.ϵ;‘ª¨­b•QÇo“olŽ‘L±assignŽ‘7'*¬)°f‘UU­P®9athŽ‘<µrŽ‘$"¬(°Ž‘±thisŽ‘ë·¬);Ž¡‘­stringŽ‘?Vè±last‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘}w¸¬;‘µ=°‘1•¬[²LDF‘T2002.4.6.¬]Ž‘K+kIf–†íthere“isn't“an“explicit“connector“for“ev¸ãery“pair“ofŽ¡‘2­P•®9oin“tsŽ‘U‰6¬in‘e­±thisŽ‘QcŸµ~ŽŽ‘Qd±p‘ÿ}'ointsŽ‘3uù¬,‘iÃthen–e­wš¸ãe“ha˜v˜e“to“ ll“up“±c–ÿ}'onne“ctorsŽ‘5ÿˆ¬so“that“there“are“enough.‘¢ÎOtherwise,Ž¡‘2the–UU\&"“will“bšGe“at“the“wrong“place.‘qÇW‘ÿ*ªe“don't“ha•¸ãv“e–UUto“w¸ãorry“ab˜out“the“connectors“for“±p‘ÿ}'aŽ‘R™¬.‘o°µ=ަ‘­ifŽ‘)´û¬(µrŽ‘Ê:±c–ÿ}'onne“ctorsŽ‘/4.µ:±sizeŽ‘\¬(‘ª¨)–ǰ“¬0Ž‘Ç)‘±last‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘Eçè¬=“´"--"Ž‘Mt¬;Ž¡‘­elseŽ‘5Øâ±last‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘vÀʬ=‘ǵrŽ‘‘,:±c–ÿ}'onne“ctorsŽ‘/4.µ:±b‘ÿ}'ackŽ‘üì(‘ª¨);Ž¡‘­whileŽ‘ Ь);Ž¡‘µrŽ‘"Ê:±c–ÿ}'onne“ctorsŽ‘/4.µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±c–ÿ}'onne“ctorŽ‘+^Ú¬);Ž¡‘(µ=°‘ÿý¬[²LDF‘T2002.4.6.¬]Ž‘JÈ;Copš¸ãy–UUthe“­P•®9oin“tsŽ‘&Î.¬in“±p‘ÿ}'aŽ‘§î¬and“put“the“copies“on˜to“±p‘ÿ}'ointsŽ‘yê¬.‘o°µ=Ž¡‘­forŽ‘02|¬(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘9°Ž‘$9‘i‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘WP¬=‘BW±p‘ÿ}'aŽ–?›µ:±p‘ÿ}'ointsŽ›$•µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘Ið±iterŽ‘WE°6¬=‘BW±p‘ÿ}'aŽ“µ:±p‘ÿ}'ointsŽ˜µ:±endŽ‘ಬ(‘ª¨);‘Ið±iterŽ‘”îŸÿ³+‘ÿ+ŽŽ‘"\¬)Ž¡‘2µrŽ‘6Ê:±p‘ÿ}'ointsŽ‘$•µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(°Ž‘±iterŽ‘Êÿ¬)–UU)“;ŽŸ­814.‘ ü¬Put–¡-the“connectors“from“±p‘ÿ}'aŽ‘?ž¬onš¸ãto“the“new“­P®9athŽ‘2‘¬.‘UNSince“they're“­stringsŽ‘%Ñ}¬,‘´#and“not“pGoin˜ters,‘´#w˜e“don'tŽ¡ha•¸ãv“e–çöto“copš¸ãy“them.‘)©I‘çÐtested“this“to“mak˜e“sure“it's“true.‘)©I‘çÐdon't“kno˜w“ho˜w“­stringsŽ‘*<¬are“implemen˜ted,‘ žbutŽ¡they–UUseem“to“bGe“handled“lik¸ãe“string“literals.‘qÇ[²LDF‘T2002.4.6.¬]ŽŽ¦°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­forŽ‘œ +¬(­v®9ectorŽ‘ªH°h­stringŽ‘Ïø°i‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘DZp‘ÿ}'aŽ– Ä\µ:±c–ÿ}'onne“ctorsŽ›/4.µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘³€±iterŽ‘E–°6¬=‘DZp‘ÿ}'aŽ“µ:±c–ÿ}'onne“ctorsŽ˜µ:±endŽ‘ಬ(‘ª¨);‘³€±iterŽ‘þ~Ÿÿ³+‘ÿ+ŽŽ‘!Åž¬)‘°fŽ¡‘µrŽ‘Ê:±c–ÿ}'onne“ctorsŽ‘/4.µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(°Ž‘±iterŽ‘Êÿ¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±assignŽ‘¢4°‘DZtrueŽ‘‹°¬)‘°Ž‘ +±thisŽ‘²Ï¬=‘ǵrŽ‘‘,¬;Ž¡‘ +­returnŽ‘-滵rŽ‘2°Ï¬;‘qǰgޤ­815.‘ üDra®9wing–ÕTand“ lling.Ž¡816.‘ üDra®9w.ŽŽŽŒ‹Û0€ Šn ý‘ì°x¬817›¯3DLDF-1.1.5.1’ ô³­P–ÿ +«A“TH‘ÕX¯VERSIONS˜¬219Ž €n ý•@P­817.‘ üP•®9ath‘ÕTv“ersions.ŽŸ818.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ +¬[²LDF‘T2002.10.07.¬]Ž‘Y;Added–UUcoGde“for“handling“±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5–ã¬and“± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(íª¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­virtualŽ‘0—mv®9oidŽ‘JžÞ±dr‘ÿ}'awŽ‘`ǹ¬(­constŽ‘4;ColorŽ‘?âǬ&Ž‘G©å±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’€4M¬=‘¿°Ž‘ À­ColorsŽ‘+Zž¬::Ž‘1èܱdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘id·µ;‘ª¨­constŽ‘ ÞãstringŽŽ¦‘±ddashe‘ÿ}'dŽ‘D"F¬=‘Û2´""Ž– ᔵ;‘ª¨­constŽ‘áZstringŽ‘A·±pp‘ÿ}'enŽ‘Y$ ¬=‘Û2´""Ž“µ;‘ª¨­PictureŽ‘*¨¬&Ž‘2o8±pictur‘ÿ}'eŽ‘TS@¬=‘Û2±curr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Eùµ;‘ª¨­b•QÇo“olŽ‘X±aarr‘ÿ}'owŽ‘=°¬=‘Û2±falseŽ‘Šv¬)ަ‘­constŽ‘8ÕP¬;ŽŸ­819.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘#MÀP®9athŽ‘<ß(¬::‘±dr‘ÿ}'awŽ‘(߬(­constŽ‘z‰ColorŽ‘>oc¬&Ž‘F6±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘z?*µ;‘ª¨­constŽ‘ %1stringŽ‘Aše±ddashe‘ÿ}'dŽ‘dávµ;‘ª¨­constŽ‘ %1stringŽ‘Aše±pp‘ÿ}'enŽ‘VЈµ;‘ª¨­PictureŽŽ¦‘2¬&Ž‘9Ç#±pictur‘ÿ}'eŽ‘XÏùµ;‘ª¨­b•QÇo“olŽ‘L±aarr‘ÿ}'owŽ‘:Èά)‘UU­constŽ‘*¢°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path::drawŽ‘kÆÜ().\n"Ž’Ž”J°‘DZ ushŽ‘€¬;ަ‘­ifŽ‘)´û¬(±p‘ÿ}'ointsŽ‘$•µ:±sizeŽ‘\¬(‘ª¨)–ǰ“¬0Ž‘Ç)ަ‘(µ=°‘ÿý¬LDF–UU2002.09.27.›qÇAdded“this“error“handling“coGde.˜If“the“­P®9athŽ‘<¬is“emptš¸ãy‘ÿ*ª,“don't“dra˜w“it.‘ª¨°µ=ަ‘°fަ‘(±c‘ÿ}'errŽ‘>ú°‘bP´"WARNING!® ´In® ´Path::dŽ‘lbraw():\n"Ž’ŸŠ±°‘bP´"Path® ´doesn't® ´contaiŽ‘lbn® ´any® ´Points.\n"Ž’ÄJœ°ަ‘<´"Not® ´doing® ´anything.Ž’¤ÿÊ\n\n"Ž’Â;°‘DZ ushŽ‘€¬;ަ‘(­returnŽ‘H‘i¬;ަ‘°gަ‘­P®9athŽ‘9æ¼°Ž‘>æ½µpŽ‘GD¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P®9athŽ‘­Ñµ>‘Ǭ(°Ž‘±thisŽ‘ë·¬);Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘h{-¬=‘Ç´DRAWŽ‘Mt¬;ަ‘µpŽ‘!Ÿ~ŽŽ‘'±arr‘ÿ}'owŽ‘D/l¬=‘DZaarr‘ÿ}'owŽ‘"Cج;ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)ަ‘(±c‘ÿ}'outŽ‘> S°‘Ç´"ddraw_color.get_useŽ‘kÆÜ_name()® ´==® ´"Ž’®8°‘DZddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁµ:±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;ަ‘­ifŽ‘)´û¬(±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©µ:±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶¬(‘ª¨)–ǰ“±falseŽ‘v\¬)‘UU°fަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Allocating® ´memory® ´fŽ‘kÆÜor® ´Color.\n"Ž’®8°‘DZ ushŽ‘€¬;ަ‘­ColorŽ‘=¤ö°Ž‘B¤÷µcŽ‘JN'¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­ColorŽ‘"l µ>‘Ǭ(0Ž‘);Ž¡‘°Ž‘#µcŽ‘*÷¬=‘DZddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ¬;ަ‘µpŽ‘!Ÿ~ŽŽ‘'±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U¬=‘ǵcŽ‘ó¬;‘UU°gަ‘­elseŽ‘5Øâ°fަ‘(­ifŽ‘3ƒH¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"ddraw_color.get_namŽ‘kÆÜe()® ´==® ´"Ž’™D°‘DZddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁµ:±get‘‰ffŽ‘®nameŽ‘(ùÀ¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;ަ‘(µpŽ‘+Ÿ~ŽŽ‘1±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘b»V¬=‘Ç&Ž‘ +Ž6±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘>–߬;ަ‘°gަ‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘urŒ¬;ަ‘µpŽ‘!Ÿ~ŽŽ‘'±dashe‘ÿ}'dŽ‘Gù½¬=‘DZddashe‘ÿ}'dŽ‘&)¬;ަ‘µpŽ‘!Ÿ~ŽŽ‘'±p‘ÿ}'enŽ‘9èϬ=‘DZpp‘ÿ}'enŽ‘ý;¬;ަ‘±pictur‘ÿ}'eŽ‘?Ïñ¬+=ŽŽ‘R%E­staticu½‰™šs4Ž‘ÔwcastŽ’†¢ç°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(µpŽ‘¬);ަ‘(µ=°‘ÿý¬LDF–UU2002.11.03.‘qÇChanged“­dynamicu½‰™šs4Ž‘ÔwcastŽ‘FÆ&¬(›ª®)“to“­staticu½‰™šs4Ž‘ÔwcastŽ‘7Ò÷¬(˜).‘o°µ=ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::draw(Ž‘kÆÜ).\n"Ž’‰TM°‘DZ ushŽ‘€¬;ަ‘­returnŽ‘>‘h¬;‘qǰgŽŽŽŒ‹ÜCD Šn ý‘ì¬220›­PICTURE–ÕX¯ARÃŽGUMENT“FIRST’ÑáÁ3DLDF-1.1.5.1˜°x¬820Ž €n ý•@P­820.› üPicture–Þ‹argumen®9t“ rst.˜¬[²LDF‘T2002.09.17.¬]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tޤ to–\>pass“a“­PictureŽ‘,T‰¬argumenš¸ãt.‘†If“I‘\ o¬&Ž‘Eç±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘yð6µ;‘ª¨­stringŽ‘"øb±ddashe‘ÿ}'dŽ‘F?sµ;‘ª¨­stringŽ‘"øb±pp‘ÿ}'enŽ‘8.…µ;‘ª¨­PictureŽ‘*Äw¬&Ž‘2‹•±pictur‘ÿ}'eŽ‘Q”k¬)ަ‘2­constŽŽ¦‘ +°fަ‘±dr‘ÿ}'awŽ‘*(ݬ(±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©µ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~µ;‘ª¨±trueŽ‘o@¬);ަ‘ +°gŽŸ­829.‘ üPicture–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ +¬[²LDF‘T2003.01.15.¬]Ž‘Y;Added–UUthis“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­virtualŽ‘.üãv®9oidŽ‘Giʱdr–ÿ}'awarr“owŽ‘v\ެ(­PictureŽ‘(`q¬&Ž‘0'±pictur‘ÿ}'eŽ‘O0eµ;‘ª¨­constŽ‘DYColorŽ‘>X[¬&Ž‘Fy±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|ï:¬=‘Ç°Ž‘Ç­ColorsŽ‘)Ÿ÷¬::Ž‘0.5±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘gªµ;‘ª¨­stringŽŽ¦‘±ddashe‘ÿ}'dŽ‘D,¬=‘Ç´""Ž– Ízµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘:Í0¬=‘Ç´""Ž“¬)‘UU­constŽ‘*¢¬;ŽŸ­830.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘#&FP®9athŽ‘<·®¬::‘±dr–ÿ}'awarr“owŽ‘/òȬ(­PictureŽ‘)Ϭ&Ž‘0àí±pictur‘ÿ}'eŽ‘Oéõ;‘ª¨­constŽ‘ý·ColorŽ‘?ˬ&Ž‘G’5±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘{šÞµ;‘ª¨­stringŽ‘"øb±ddashe‘ÿ}'dŽ‘F?sµ;‘ª¨­stringŽ‘"øb±pp‘ÿ}'enŽ‘8.…¬)ަ‘2­constŽŽ¦‘ +°fަ‘±dr‘ÿ}'awŽ‘*(ݬ(±pictur‘ÿ}'eޑֵ;‘ª¨±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Qµ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±trueŽ‘o@¬);ަ‘ +°gޤ­831.‘ üP•®9oin“t‘ÕTv“ersions.Ž¡832.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)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–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ަ‘ +­P®9athŽ‘&} P•®9oin“tŽ‘CX¬::‘±dr–ÿ}'awarr“owŽ‘/òȬ(­constŽ‘ÀôP•®9oin“tŽ‘>Fã¬&Ž‘FµpŽ‘K;‘ª¨­constŽ‘ kœColorŽ‘@¦á¬&Ž‘Hmÿ±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|v¨µ;‘ª¨­stringŽ‘#fG±ddashe‘ÿ}'dŽ‘F­Xµ;‘ª¨­stringŽŽ¦‘2±pp‘ÿ}'enŽ‘G6(µ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘Qkþ¬)‘UU­constŽŽ¦‘ +°fަ‘­P®9athŽ‘/æ»±p‘ÿ}'aŽ‘:ãÿ¬(°Ž‘±thisŽ‘ë·µ;‘ª¨pŽ‘²¨¬);Ž¡‘±p‘ÿ}'aŽ‘ýFµ:±dr–ÿ}'awarr“owŽ‘.òĬ(±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©µ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);ަ‘­returnŽ‘7æ¼±p‘ÿ}'aŽ‘Bä¬;ަ‘ +°gŽŽŽŒ‹ÞbD Šn ý‘ì¬222›­PICTURE–ÕX¯ARÃŽGUMENT“FIRST’ÑáÁ3DLDF-1.1.5.1˜°x¬833Ž €n ý•@P­833.‘ üPicture–ÕTargumen®9t“ rst.Ž©ÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)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–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­P®9athŽ‘&QP•®9oin“tŽ‘Bëd¬::‘±dr–ÿ}'awarr“owŽ‘/òȬ(­PictureŽ‘)[À¬&Ž‘1"Þ±pictur‘ÿ}'eŽ‘P+´µ;‘ª¨­constŽ‘ ?¨P•®9oin“tŽ‘?™£¬&Ž‘G`ÁµpŽ‘LhÁ;‘ª¨­constŽ‘ ?¨ColorŽ‘@Nù¬&Ž‘H±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|Àµ;‘ª¨­stringŽŽ¡‘2±ddashe‘ÿ}'dŽ‘UGµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘8¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±dr–ÿ}'awarr“owŽ‘fÙ€¬(µpŽ‘;‘ª¨±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Qµ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gŽŸ­834.‘ üDra®9w‘ÕThelp.ަŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.05.10.¬]Ž‘Y|…Changed–ÉŸthe“w•¸ãa“y–ÉŸthe“default“argumenš¸ãts“are“handled.‘ΤThe“w˜a˜y“it“w˜as“didn't“w˜ork“forŽ¡bGoth–UUvš¸ãersions,“i.e.,“the“­P®9athŽ‘<¬v˜ersion“and“the“­P•®9oin“tŽ‘"Dò¬v˜ersion.Ž¡‘ +[²LDF‘T2002.4.8.¬]Ž‘OñžAdded–~´this“section.–íå!!“It–~´wš¸ãould“bGe“nice“to“do“something“to“mak˜e“sure“that“the“help“linesŽ¡and–Ètcurvš¸ães“are“not“dra˜wn“o˜v˜er“b˜y“ lling“commands.‘Ë#Ma˜ybšGe“it“will“b˜e“p˜ossible“to“tak¸ãe“care“of“this“when“IŽ¡implemenš¸ãt–”the“hidden“surface“algorithm“in“±outputŽ‘!Ô¬(‘ª®).‘…„[²LDF‘T2002.11.03.¬]Ž‘V>ýI‘fcould“ha˜v˜e“help“lines“outputtedŽ¡last,–UUif“I“put“them“on“a“­v®9ectorŽ‘&Tò¬of“their“o¸ãwn.Ž¡‘ +[²LDF‘T2003.07.13.¬]Ž‘Y;Made–UUall“v¸ãersions“of“±dr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘.ý¬(‘ª®)“­constŽ‘*¢¬.Ž©ŸüÈ„`ÕÁGŽŽ¤­835.› üP•®9ath‘ÕTv“ersions.˜¬[²LDF‘T2002.12.20.¬]Ž‘Zˆ6??‘qÇCould–UUthese“functions“bGe“­constŽ‘*¢¬?Ž¡­836.– üNormal‘ÕTv®9ersion.“¬[²LDF‘T2002.4.8.¬]Ž‘QH:Added–UUthis“function.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘#رdr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘M߀¬(­constŽ‘F¡ColorŽ‘>“¬&Ž‘Eα±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|ͬ=‘õÁ°Ž‘õ±help‘‰ffŽ‘®c‘ÿ}'olorŽ‘3°6µ;‘ª¨­stringŽ‘"ëô±ddashe‘ÿ}'dŽ‘I(Ƭ=‘õÁ±help‘‰ffŽ–®dash‘‰ffŽ“p‘ÿ}'atternŽ‘O14µ;‘ª¨­stringŽŽ¡‘±pp‘ÿ}'enŽ‘5ý>¬=‘Ç´""Ž‘ Ízµ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘T3¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬)‘UU­constŽ‘*¢¬;ŽŸ­837.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘#6yP®9athŽ‘<Çá¬::‘±dr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘+Ŭ¬(­constŽ‘cBColorŽ‘>@Õ¬&Ž‘Fó±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘zœµ;‘ª¨­stringŽ‘#•±ddashe‘ÿ}'dŽ‘FO¦µ;‘ª¨­stringŽ‘#•±pp‘ÿ}'enŽ‘8>¸µ;‘ª¨­PictureŽ‘*Ôª¬&Ž‘2›È±pictur‘ÿ}'eŽ‘Q¤ž¬)Ž¡‘2­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±do‘‰ffŽ–®help‘‰ffŽ“linesŽ‘;¯°‘DZfalseŽ‘v\¬)‘­returnŽ‘%‘e¬;Ž¡‘±dr‘ÿ}'awŽ‘*(ݬ(±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©µ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gŽŸ­838.‘ üPicture–ÕTargumen®9t“ rst.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘$D¬±dr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘O +T¬(­PictureŽ‘*85¬&Ž‘1ÿS±pictur‘ÿ}'eŽ‘Q)µ;‘ª¨­constŽ‘!ColorŽ‘Bã¬&Ž‘Iϱddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’‚¿t¬=‘çʰŽ‘ ç˱help‘‰ffŽ‘®c‘ÿ}'olorŽ‘5¢?µ;‘ª¨­stringŽŽ¡‘±ddashe‘ÿ}'dŽ‘D,¬=‘DZhelp‘‰ffŽ–®dash‘‰ffŽ“p‘ÿ}'atternŽ‘O‹µ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘:Í0¬=‘Ç´""Ž‘ Íz¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹ßox Šn ý‘ì°x¬839›¯3DLDF-1.1.5.1’ÑáÁ­PICTURE–ÕX¯ARÃŽGUMENT“FIRST˜¬223Ž €n ý•@P­839.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘#6yP®9athŽ‘<Çá¬::‘±dr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘+Ŭ¬(­PictureŽ‘)*¬&Ž‘0ñ ±pictur‘ÿ}'eŽ‘Oùöµ;‘ª¨­constŽ‘ êColorŽ‘?ë}¬&Ž‘G²›±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘{»Dµ;‘ª¨­stringŽ‘#•±ddashe‘ÿ}'dŽ‘FO¦µ;‘ª¨­stringŽ‘#•±pp‘ÿ}'enŽ‘8>¸¬)Ž¡‘2­constŽŽ¡‘ +°fŽ¡‘±dr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘>Ū¬(±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©µ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gޤ­840.‘ üP•®9oin“t‘ÕTv“ersions.Ž¡841.– üNormal‘XJv®9ersion.“¬[²LDF‘T2002.4.8.¬]Ž‘R˜¶Added–¥Ñthis“function.‘cA“¬&Ž‘F±±ptŽ‘OíNµ;‘ª¨­constŽ‘ hôColorŽ‘@¡‘¬&Ž‘Hh¯±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|qXµ;‘ª¨­stringŽ‘#cŸ±ddashe‘ÿ}'dŽ‘Fª°µ;‘ª¨­stringŽŽ¡‘2±pp‘ÿ}'enŽ‘G6(µ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘Qkþ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P®9athŽ‘/æ»±p‘ÿ}'aŽ‘:ãÿ¬(°Ž‘±thisŽ‘ë·µ;‘ª¨±ptŽ‘ E¬);ަ‘±p‘ÿ}'aŽ‘ýFµ:±dr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘*Ũ¬(±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©µ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘­returnŽ‘7æ¼±p‘ÿ}'aŽ‘Bä¬;Ž¡‘ +°gŽŸ­842.› üPicture–Þ‹argumen®9t“ rst.˜¬[²LDF‘T2002.09.17.¬]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“­PictureŽ‘,F·¬argumen¸ãt.Ž¡‘ +[²LDF‘T2002.10.26.¬]Ž‘Y½mDeclared– +‡in“®points.web¬.‘‘]Must“bšGe“de ned“here,‘7Ób˜ecause“­P®9athŽ‘ ¦r¬is“an“incomplete“t¸ãyp˜eŽ¡there.ަ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­P®9athŽ‘&NpP•®9oin“tŽ‘B輬::‘±dr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘+Ŭ¬(­PictureŽ‘)Y¬&Ž‘1 6±pictur‘ÿ}'eŽ‘P) µ;‘ª¨­constŽ‘ =P•®9oin“tŽ‘?”S¬&Ž‘G[q±ptŽ‘Q@µ;‘ª¨­constŽ‘ =ColorŽ‘@I©¬&Ž‘HDZddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|pµ;‘ª¨­stringŽŽ¡‘2±ddashe‘ÿ}'dŽ‘UGµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘8¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±dr‘ÿ}'aw‘‰ffŽ‘®helpŽ‘b¬d¬(±ptŽ‘ äµ;‘ª¨±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Qµ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gŽ©­843.‘ üFill.Ž¡‘ +¬!!‘qÇ[²LDF‘T2003.02.02.¬]Ž‘SzFilling–UUdošGesn't“use“a“p˜en!!‘qÇChange“ev¸ãerywhere!!.ަ­844.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.10.07.¬]Ž‘Y;Added–UUcoGde“for“handling“and“± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(íª¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘#[½± l‘‚ØlŽ‘0%°¬(­constŽ‘ˆ†ColorŽ‘>‹]¬&Ž‘FR{±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘r€*¬=‘c”°Ž‘c•­ColorsŽ‘*ú°‘bP´"WARNING!® ´In® ´Path::fŽ‘lbill():\n"Ž’ŸŠ±°‘bP´"Path® ´doesn't® ´contaiŽ‘lbn® ´any® ´Points.\n"Ž’ÄJœ°Ž¡‘<´"Not® ´doing® ´anything.Ž’¤ÿÊ\n\n"Ž’Â;°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘H‘i¬;Ž¡‘°gŽ¡‘­P®9athŽ‘9æ¼°Ž‘>æ½µpŽ‘GD¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P®9athŽ‘­Ñµ>‘Ǭ(0Ž‘);ަ‘°Ž‘#µpŽ‘*Ϭ=‘Ç°Ž‘Ç±thisŽ‘²Ï¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘h{-¬=‘Ç´FILLŽ‘Mt¬;Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"ffill_color.get_useŽ‘kÆÜ_name()® ´==® ´"Ž’®8°‘DZl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3µ:±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(ʵ:±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶¬(‘ª¨)–ǰ“±falseŽ‘v\¬)‘UU°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Allocating® ´memory® ´fŽ‘kÆÜor® ´Color.\n"Ž’®8°‘DZ ushŽ‘€¬;Ž¡‘­ColorŽ‘=¤ö°Ž‘B¤÷µcŽ‘JN'¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­ColorŽ‘"l µ>‘Ǭ(0Ž‘);ަ‘°Ž‘#µcŽ‘*÷¬=‘DZl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq¬=‘ǵcŽ‘ó¬;‘UU°gŽ¡‘­elseŽ‘5Øâ°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"ffill_color.get_namŽ‘kÆÜe()® ´==® ´"Ž’™D°‘DZl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3µ:±get‘‰ffŽ‘®nameŽ‘(ùÀ¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘(µpŽ‘+Ÿ~ŽŽ‘1± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ygr¬=‘Ç&Ž‘ +Ž6±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘3XQ¬;Ž¡‘°gŽ¡‘µpŽ‘!Ÿ~ŽŽ‘'±p‘ÿ}'enŽ‘9èϬ=‘Ç´""Ž‘ Íz¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±dashe‘ÿ}'dŽ‘Gù½¬=‘Ç´""Ž‘ Íz¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘urŒ¬;Ž¡‘±pictur‘ÿ}'eŽ‘?Ïñ¬+=ŽŽ‘R%E­staticu½‰™šs4Ž‘ÔwcastŽ’†¢ç°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(µpŽ‘¬);Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::fill(Ž‘kÆÜ).\n"Ž’‰TM°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;‘qǰgŽŸ­846.› üPicture–Þ‹argumen®9t“ rst.˜¬[²LDF‘T2002.09.17.¬]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“­PictureŽ‘,F·¬argumen¸ãt.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ± l‘‚ØlŽ‘/Ç̬(­PictureŽ‘(ñb¬&Ž‘0¸€±pictur‘ÿ}'eŽ‘OÁVµ;‘ª¨­constŽ‘ÕJColorŽ‘?z=¬&Ž‘GA[±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘rÒŽ¬=‘Ç°Ž‘Ç­ColorsŽ‘)Ÿ÷¬::Ž‘0.5±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘gª¬);ŽŽŽŒ‹á‹ Šn ý‘ì°x¬847›¯3DLDF-1.1.5.1’ÑáÁ­PICTURE–ÕX¯ARÃŽGUMENT“FIRST˜¬225Ž €n ý•@P­847.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘x…¬&Ž‘F?£±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘zHLµ;‘ª¨­constŽ‘ )ÂColorŽ‘@#-¬&Ž‘GêK±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘p´fµ;‘ª¨­stringŽ‘#$m±ddashe‘ÿ}'dŽ‘Fk~µ;‘ª¨­stringŽŽ¡‘2±pp‘ÿ}'enŽ‘G6(µ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘Qkþ¬)‘UU­constŽ‘*¢°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path::fillŽ‘kÆÜdraw().\n"Ž’£”>°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(±p‘ÿ}'ointsŽ‘$•µ:±sizeŽ‘\¬(‘ª¨)–ǰ“¬0Ž‘Ç)Ž¡‘(µ=°‘ÿý¬LDF–UU2002.09.27.›qÇAdded“this“error“handling“coGde.˜If“the“­P®9athŽ‘<¬is“emptš¸ãy‘ÿ*ª,“don't“ lldra˜w“it.‘o°µ=Ž¡‘°fŽ¡‘(±c‘ÿ}'errŽ‘=”ܰ‘ß2´"WARNING!® ´In® ´Path::fŽ‘kÞöilldraw():\n"Ž’³„i°‘ß2´"Path® ´doesn't® ´contaiŽ‘kÞön® ´any® ´Points.\n"Ž’ÃD`°Ž¡‘<´"Not® ´doing® ´anything.Ž’¤ÿÊ\n\n"Ž’Â;°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘H‘i¬;Ž¡‘°gŽ¡‘­P®9athŽ‘9æ¼°Ž‘>æ½µpŽ‘GD¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P®9athŽ‘­Ñµ>‘Ǭ(0Ž‘);ަ‘°Ž‘#µpŽ‘*Ϭ=‘Ç°Ž‘Ç±thisŽ‘²Ï¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘h{-¬=‘Ç´FILLDRAWŽ‘-Mh¬;Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"ddraw_color.get_useŽ‘kÆÜ_name()® ´==® ´"Ž’®8°‘DZddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁµ:±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"ffill_color.get_useŽ‘kÆÜ_name()® ´==® ´"Ž’®8°‘DZl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3µ:±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©µ:±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶¬(‘ª¨)–ǰ“±falseŽ‘v\¬)‘UU°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Allocating® ´memory® ´fŽ‘kÆÜor® ´Color.\n"Ž’®8°‘DZ ushŽ‘€¬;Ž¡‘­ColorŽ‘=¤ö°Ž‘B¤÷µcŽ‘JN'¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­ColorŽ‘"l µ>‘Ǭ(0Ž‘);ަ‘°Ž‘#µcŽ‘*÷¬=‘DZddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U¬=‘ǵcŽ‘ó¬;‘UU°gŽ¡‘­elseŽ‘5Øâ°fŽ¡‘(­ifŽ‘3ƒH¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"ddraw_color.get_namŽ‘kÆÜe()® ´==® ´"Ž’™D°‘DZddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁµ:±get‘‰ffŽ‘®nameŽ‘(ùÀ¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘(µpŽ‘+Ÿ~ŽŽ‘1±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘b»V¬=‘Ç&Ž‘ +Ž6±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘>–߬;Ž¡‘°gŽ¡‘­ifŽ‘)´û¬(±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(ʵ:±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶¬(‘ª¨)–ǰ“±falseŽ‘v\¬)‘UU°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Allocating® ´memory® ´fŽ‘kÆÜor® ´Color.\n"Ž’®8°‘DZ ushŽ‘€¬;Ž¡‘­ColorŽ‘=¤ö°Ž‘B¤÷µcŽ‘JN'¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­ColorŽ‘"l µ>‘Ǭ(0Ž‘);ަ‘°Ž‘#µcŽ‘*÷¬=‘DZl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq¬=‘ǵcŽ‘ó¬;‘UU°gŽ¡‘­elseŽ‘5Øâ°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"ffill_color.get_namŽ‘kÆÜe()® ´==® ´"Ž’™D°‘DZl‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘+‘3µ:±get‘‰ffŽ‘®nameŽ‘(ùÀ¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘(µpŽ‘+Ÿ~ŽŽ‘1± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ygr¬=‘Ç&Ž‘ +Ž6±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘3XQ¬;Ž¡‘°gŽ¡‘µpŽ‘!Ÿ~ŽŽ‘'±dashe‘ÿ}'dŽ‘Gù½¬=‘DZddashe‘ÿ}'dŽ‘&)¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±p‘ÿ}'enŽ‘9èϬ=‘DZpp‘ÿ}'enŽ‘ý;¬;Ž¡‘±pictur‘ÿ}'eŽ‘?Ïñ¬+=ŽŽ‘R%E­staticu½‰™šs4Ž‘ÔwcastŽ’†¢ç°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(µpŽ‘¬);Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::filldŽ‘kÆÜraw().\n"Ž’žTA°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;‘qǰgŽŸ­851.› üPicture–Þ‹argumen®9t“ rst.˜¬[²LDF‘T2002.09.17.¬]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“­PictureŽ‘,F·¬argumen¸ãt.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘#42± l‘‚Øldr‘ÿ}'awŽ‘D›¬(­PictureŽ‘)'»¬&Ž‘0îÙ±pictur‘ÿ}'eŽ‘O÷¯µ;‘ª¨­constŽ‘ £ColorŽ‘?æï¬&Ž‘G® ±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘~Øa¬=‘!«°Ž‘!¬­ColorsŽ‘)úЬ::Ž‘0ˆÈ±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘h£µ;‘ª¨­constŽ‘ £ColorŽŽ¡‘¬&Ž‘%Ç!±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘QXT¬=‘Ç°Ž‘Ç­ColorsŽ‘)Ÿ÷¬::Ž‘0.5±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘zrµ;‘ª¨­stringŽ‘"Ïõ±ddashe‘ÿ}'dŽ‘HÞ¬=‘Ç´""Ž– Ízµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘:Í0¬=‘Ç´""Ž“¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹ã£+ Šn ý‘ì°x¬852›¯3DLDF-1.1.5.1’ÑáÁ­PICTURE–ÕX¯ARÃŽGUMENT“FIRST˜¬227Ž €n ý•@P­852.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘#&]P®9athŽ‘<·Å¬::‘± l‘‚Øldr‘ÿ}'awŽ‘"go¬(­PictureŽ‘)æ¬&Ž‘0á±pictur‘ÿ}'eŽ‘OéÚµ;‘ª¨­constŽ‘ýÎColorŽ‘?ËE¬&Ž‘G’c±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘{› µ;‘ª¨­constŽ‘ýÎColorŽ‘?ËE¬&Ž‘G’c±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘p\~µ;‘ª¨­stringŽŽ¡‘2±ddashe‘ÿ}'dŽ‘UGµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘8¬)‘UU­constŽŽ¡‘ +°fŽ¡‘± l‘‚Øldr‘ÿ}'awŽ‘5gm¬(±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©µ;‘ª¨±l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘*tõ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gޤ­853.‘ üUndra®9w.Ž¡854.‘ üP•®9ath‘ÕTv“ersions.Ž¡855.‘ üNormal‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ŽŸ ‘ +­v®9oidŽ‘"ýÙ±undr‘ÿ}'awŽ‘D#ج(­stringŽ‘!%M±ddashe‘ÿ}'dŽ‘G3v¬=‘Ç´""Ž– Ízµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘:Í0¬=‘Ç´""Ž“µ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘T3¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬);Ž¡­856.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘æ½µpŽ‘GD¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P®9athŽ‘­Ñµ>‘Ǭ(±thisŽ‘붬);ަ‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘h{-¬=‘Ç´UNDRAWŽ‘"Ín¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U¬=‘Ç0Ž‘Ç;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq¬=‘Ç0Ž‘Ç;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±dashe‘ÿ}'dŽ‘Gù½¬=‘DZddashe‘ÿ}'dŽ‘&)¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±p‘ÿ}'enŽ‘9èϬ=‘DZpp‘ÿ}'enŽ‘ý;¬;Ž¡‘±pictur‘ÿ}'eŽ‘?Ïñ¬+=ŽŽ‘R%E­staticu½‰™šs4Ž‘ÔwcastŽ’†¢ç°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(µpŽ‘¬);‘UU°gŽŸ­857.› üPicture–Þ‹argumen®9t“ rst.˜¬[²LDF‘T2002.09.17.¬]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“­PictureŽ‘,F·¬argumen¸ãt.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±undr‘ÿ}'awŽ‘D#ج(­PictureŽ‘(ñb¬&Ž‘0¸€±pictur‘ÿ}'eŽ‘OÁVµ;‘ª¨­stringŽ‘"Ïõ±ddashe‘ÿ}'dŽ‘HÞ¬=‘Ç´""Ž– Ízµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘:Í0¬=‘Ç´""Ž“¬);ŽŸ­858.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙP®9athŽ‘Äç¬&Ž‘FŒ±ptŽ‘Pp¢µ;‘ª¨­stringŽ‘"Ïõ±ddashe‘ÿ}'dŽ‘Fµ;‘ª¨­stringŽ‘"Ïõ±pp‘ÿ}'enŽ‘8¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±undr‘ÿ}'awŽ‘Y »¬(±ptŽ‘ äµ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gޤ­862.‘ üUn ll.Ž¡863.‘ üNormal‘ÕTv®9ersion.ŽŸ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ŽŸ ‘ +­v®9oidŽ‘"ýÙ±un l‘‚ØlŽ‘:Äð¬(­PictureŽ‘(ñb¬&Ž‘0¸€±pictur‘ÿ}'eŽ‘Rˆn¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬);ŽŽŽŒ‹åÄ  Šn ý‘ì°x¬864–¯3DLDF-1.1.5.1’  žNORMAL‘ÕXVERSION“¬229Ž €n ý•@P­864.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘æ½µpŽ‘GD¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P®9athŽ‘­Ñµ>‘Ǭ(±thisŽ‘붬);ަ‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘h{-¬=‘Ç´UNFILLŽ‘"Ín¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U¬=‘Ç0Ž‘Ç;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq¬=‘Ç0Ž‘Ç;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±dashe‘ÿ}'dŽ‘Gù½¬=‘Ç´""Ž‘ Íz¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±p‘ÿ}'enŽ‘9èϬ=‘Ç´""Ž‘ Íz¬;Ž¡‘±pictur‘ÿ}'eŽ‘?Ïñ¬+=ŽŽ‘R%E­staticu½‰™šs4Ž‘ÔwcastŽ’†¢ç°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(µpŽ‘¬);‘UU°gޤ­865.‘ üUn lldra®9w.Ž¡866.‘ üNormal‘ÕTv®9ersion.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ÿ3±un l‘‚Øldr‘ÿ}'awŽ‘Oc¬(­constŽ‘+üColorŽ‘=ÒI¬&Ž‘E™g±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘|ki¬=‘ÉY°Ž‘ÉZ­ColorsŽ‘)¢8¬::Ž‘00v±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘ztε;‘ª¨­stringŽ‘"ÑO±ddashe‘ÿ}'dŽ‘HṬ=‘ÉY´""Ž‘ Ï»µ;‘ª¨­stringŽŽ¡‘±pp‘ÿ}'enŽ‘5ý>¬=‘Ç´""Ž‘ Ízµ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘T3¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬);ŽŽŽŒ‹æÌ£ Šn ý‘ì¬230–¯NORMAL‘ÕXVERSION’  ž3DLDF-1.1.5.1“°x¬867Ž €n ý•@P­867.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘#ËP®9athŽ‘<®3¬::‘±un l‘‚Øldr‘ÿ}'awŽ‘-d“¬(­constŽ‘I”ColorŽ‘> y¬&Ž‘EÔ—±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘yÝ@µ;‘ª¨­stringŽ‘"îç±ddashe‘ÿ}'dŽ‘F5øµ;‘ª¨­stringŽ‘"îç±pp‘ÿ}'enŽ‘8% +µ;‘ª¨­PictureŽ‘*ºü¬&Ž‘2‚±pictur‘ÿ}'eŽ‘QŠð¬)°fŽ¡‘2­b•QÇo“olŽ‘K¡k´DEBUGŽ‘i.ܬ=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path::unfiŽ‘kÆÜlldraw().\n"Ž’®8°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(±p‘ÿ}'ointsŽ‘$•µ:±sizeŽ‘\¬(‘ª¨)–ǰ“¬0Ž‘Ç)Ž¡‘(µ=°‘è2¬LDF‘=„2002.09.27.›iÙAdded–=Šthis“error“handling“coGde.˜If“the“­P®9athŽ‘ x¬is“emptš¸ãy‘ÿ*ª,‘BLdon't“un lldra˜w“it.‘°µ=Ž¡‘°fŽ¡‘(±c‘ÿ}'errŽ‘=|°‘Ç´"WARNING!® ´In® ´Path::uŽ‘kÆÜnfilldraw():\n"Ž’½Ô/°‘Ç´"Path® ´doesn't® ´contaiŽ‘kÆÜn® ´any® ´Points.\n"Ž’Ã,°Ž¡‘<´"Not® ´doing® ´anything.Ž’¤ÿÊ\n\n"Ž’Â;°‘DZ ushŽ‘€¬;Ž¡‘(­returnŽ‘H‘i¬;Ž¡‘°gŽ¡‘­P®9athŽ‘9æ¼°Ž‘>æ½µpŽ‘GD¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P®9athŽ‘­Ñµ>‘Ǭ(±thisŽ‘붬);ަ‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘h{-¬=‘Ç´UNFILLDRAWŽ‘7Íb¬;Ž¡‘(µ=°‘´¬LDF‘W 2002.10.07.›vëAdded–W coGde“for“handling“±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5šQ¬and“± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(ïa¬.˜Will“get“rid“of“this“if“I‘W doŽ¡‘2actually–UUcš¸ãhange“it“to“mak˜e“it“act“more“lik˜e“­un lldra®9w“¬in“MET‘ÿ*ªAPOST.‘ÿý°µ=Ž¡‘­ifŽ‘)´û¬(±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘4©µ:±get‘‰ffŽ–®use‘‰ffŽ“nameŽ‘:¶¬(‘ª¨)–ǰ“±falseŽ‘v\¬)‘UU°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Allocating® ´memory® ´fŽ‘kÆÜor® ´Color.\n"Ž’®8°‘DZ ushŽ‘€¬;Ž¡‘­ColorŽ‘=¤ö°Ž‘B¤÷µcŽ‘JN'¬=‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­ColorŽ‘"l µ>‘Ǭ(0Ž‘);ަ‘°Ž‘#µcŽ‘*÷¬=‘DZddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁ¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘X»U¬=‘ǵcŽ‘ó¬;‘UU°gŽ¡‘­elseŽ‘5Øâ°fŽ¡‘(­ifŽ‘3ƒH¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"ddraw_color.get_namŽ‘kÆÜe()® ´==® ´"Ž’™D°‘DZddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6ÏÁµ:±get‘‰ffŽ‘®nameŽ‘(ùÀ¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘(µpŽ‘+Ÿ~ŽŽ‘1±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘b»V¬=‘Ç&Ž‘ +Ž6±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘>–߬;Ž¡‘°gŽ¡‘µpŽ‘!Ÿ~ŽŽ‘'± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘Ogq¬=‘Ç0Ž‘Ç;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±dashe‘ÿ}'dŽ‘Gù½¬=‘DZddashe‘ÿ}'dŽ‘&)¬;Ž¡‘µpŽ‘!Ÿ~ŽŽ‘'±p‘ÿ}'enŽ‘9èϬ=‘DZpp‘ÿ}'enŽ‘ý;¬;Ž¡‘±pictur‘ÿ}'eŽ‘?Ïñ¬+=ŽŽ‘R%E­staticu½‰™šs4Ž‘ÔwcastŽ’†¢ç°h­ShapQÇeŽ‘"Ab°Ž‘'Aci¬(µpŽ‘¬);Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::unfilŽ‘kÆÜldraw().\n"Ž’¨Ô;°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘>‘h¬;‘qǰgŽŸ­868.› üPicture–Þ‹argumen®9t“ rst.˜¬[²LDF‘T2002.09.17.¬]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“­PictureŽ‘,F·¬argumen¸ãt.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘#0˱un l‘‚Øldr‘ÿ}'awŽ‘O•Z¬(­PictureŽ‘)$T¬&Ž‘0ër±pictur‘ÿ}'eŽ‘OôHµ;‘ª¨­constŽ‘ ‘h¬;Ž¡‘°gŽ¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘DZp‘ÿ}'ointsŽ–ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZp‘ÿ}'ointsŽ“µ:±endŽ‘ಬ(˜);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)‘°fŽ¡‘¬(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±lab‘ÿ}'elŽ‘t˜¬(±text‘‰ffŽ‘®shortŽ‘*ßoµ;‘ª¨±p‘ÿ}'osition‘‰ffŽ‘®stringŽ‘A¥Ëµ;‘ª¨±dotŽ‘«µµ;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘­ifŽ‘)´û¬(±text‘‰ffŽ‘®shortŽ‘-¦‡°‘Ç­P•®9oin“tŽ‘ad¬::Ž‘%WORLD_VALUESŽ‘g®Æ°^‘8à±text‘‰ffŽ‘®shortŽ‘/ßg°‘Ç­P•®9oin“tŽ‘ad¬::Ž‘%VIEW_VALUESŽ‘`5é¬)Ž¡‘2µ=°‘ÿý¬LDF–UU2003.05.06.‘qÇChanged“this“conditional.‘o°µ=Ž¡‘(¬;‘µ=°‘ÿý¬Do‘UUnothing.‘o°µ=Ž¡‘­elseŽ‘6XâŸÿ³+‘ÿ+ŽŽ‘B ±text‘‰ffŽ‘®shortŽ‘lÿq¬;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::labelŽ‘kÆÜ()"Ž‘~ÔS°‘Ç´"\n"Ž‘Œ°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽŸ­874.› üPicture–Þ‹argumen®9t“ rst.˜¬[²LDF‘T2002.09.17.¬]Ž‘Z:Added–]Ythis“function.‘‰ÒIt's“con•¸ãv“enien“t–]Yfor“when“I‘]Ww•¸ãan“tŽ¡to–UUpass“a“­PictureŽ‘,F·¬argumen¸ãt.Ž¡‘ +[²LDF‘T2003.07.09.¬]Ž‘Y;Made‘UU±p‘ÿ}'osition‘‰ffŽ‘®stringŽ‘F¥Í¬and‘UU±dotŽ‘«·¬argumen¸ãts‘UU­constŽ‘*¢¬.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¦ŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘#¢±lab‘ÿ}'elŽ‘7‰:¬(­PictureŽ‘)+¬&Ž‘0ÏI±pictur‘ÿ}'eŽ‘Oص;‘ª¨­shortŽ‘Œ±text‘‰ffŽ‘®shortŽ‘MX•¬=‘í0Ž‘íµ;‘ª¨­constŽ‘ìstringŽ‘A()±p‘ÿ}'osition‘‰ffŽ‘®stringŽ’„^¬=‘í´"top"Ž‘³kµ;‘ª¨­constŽ‘ìb•QÇo“olŽŽ¡‘±dotŽ‘/È(¬=‘DZfalseŽ‘v\¬)‘UU­constŽ‘*¢¬;ŽŸ­875.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘#&2P®9athŽ‘<·š¬::‘±lab‘ÿ}'elŽ‘tœ¬(­PictureŽ‘)»¬&Ž‘0àÙ±pictur‘ÿ}'eŽ‘O鯵;‘ª¨­shortŽ‘¤±text‘‰ffŽ‘®shortŽ‘J}µ;‘ª¨­constŽ‘ý£stringŽ‘AKI±p‘ÿ}'osition‘‰ffŽ‘®stringŽ’Flµ;‘ª¨­constŽ‘ý£b•QÇo“olŽ‘9Çb±dotŽ‘HÈo¬)Ž¡‘2­constŽŽ¡‘ +°fŽ¡‘±lab‘ÿ}'elŽ‘(tš¬(±text‘‰ffŽ‘®shortŽ‘*ßoµ;‘ª¨±p‘ÿ}'osition‘‰ffŽ‘®stringŽ‘A¥Ëµ;‘ª¨±dotŽ‘«µµ;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gŽŸ­876.‘ üDotlabQÇel.ŽŽŽŒ‹éî Šn ý‘ì°x¬877–¯3DLDF-1.1.5.1’  žNORMAL‘ÕXVERSION“¬233Ž €n ý•@P­877.‘ üNormal‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ +¬[²LDF‘T2003.07.09.¬]Ž‘Y;Made‘UU±text‘‰ffŽ‘®shortŽ‘1Ьand‘UU±p‘ÿ}'osition‘‰ffŽ‘®stringŽ‘F¥Í¬argumen¸ãts‘UU­constŽ‘*¢¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘#Ú¤±dotlab‘ÿ}'elŽ‘EÚ—¬(­constŽ‘mshortŽ‘=®Û±text‘‰ffŽ‘®shortŽ‘lÅ^¬=‘70Ž‘ 7µ;‘ª¨­constŽ‘ ²stringŽ‘B´-±p‘ÿ}'osition‘‰ffŽ‘®stringŽ’†æd¬=‘7´"top"Ž‘ýmµ;‘ª¨­PictureŽŽ¦‘¬&Ž‘%Ç!±pictur‘ÿ}'eŽ‘G—¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬)‘UU­constŽ‘*¢¬;ŽŸ­878.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘±text‘‰ffŽ‘®shortŽ‘l=¬=‘#¹0Ž‘#ºµ;‘ª¨­constŽ‘ ÞstringŽ‘Ai¿±p‘ÿ}'osition‘‰ffŽ‘®stringŽ’„ˆ›¬=‘#¹´"top"Ž‘ê¬)ަ‘­constŽ‘8ÕP¬;ŽŸ­880.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘uC¬&Ž‘FuC¬&Ž‘FQá°‘ø¦´"Entering® ´Path::set_Ž‘køjextremes()"Ž’©7W°‘ø¦±end‘‚ØlŽ‘ã°‘ø¦± ushŽ‘±¢¬;‘µ=°‘¹¬If–sthere“are“no“­P•®9oin“tsŽ‘' ¦¬onŽ¡‘<the‘UU­P®9athŽ‘湬,–UUset“all“the“elemen¸ãts“of“±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘Z®û¬to“´INVALID_REALŽ‘F0î¬and“return“±falseŽ‘™¬.‘o°µ=Ž¡‘­ifŽ‘)´û¬(±p‘ÿ}'ointsŽ‘$•µ:±sizeŽ‘\¬(‘ª¨)–ǰ“¬0Ž‘Ç)‘°fŽ¡‘(±c‘ÿ}'errŽ‘?6°‘hŒ´"ERROR!® ´In® ´Path::setŽ‘mhP_extremes():\n"Ž’Á°‘hŒ´"points.size()® ´<=® ´0.Ž‘mhP® ´"Ž‘|×>°Ž¡‘<´"Setting® ´extremes® ´toŽ’¤ÿÊ® ´INVALID_REAL® ´and® ´reŽ’ ÿŽturning.\n"Ž’K í°‘Ç± ushŽ‘€¬;Ž¡‘(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘~Ëm¬=‘Ç´INVALID_REALŽ‘BM\¬;Ž¡‘(­returnŽ‘Kæ¾±falseŽ‘`–¬;Ž¡‘°gŽŽŽŒ‹ë Í Šn ý‘ì°x¬886–¯3DLDF-1.1.5.1’:úSET‘ÕXEXTREMES“¬235Ž €n ý•@P­886.‘ ü¬[²LDF‘T2002.09.18.¬]Ž‘YÍAdded–š=this“routine.‘3jSet“the“±minimum›^ ¬v‘ÿqÇalues“to“´MAX_REALŽ‘/ºÊ¬and“the“±maximum˜¬v‘ÿqÇaluesޤ to‘èU°Ž‘ ¯s´MAX_REALŽ‘65ì.‘*ÈThis›èUw•¸ãa“y‘ÿ*ª,‘ an“y˜v‘ÿqÇalid˜p•Gersp“ectiv¸ãe˜co“ordinates˜will˜replace˜them˜on˜the˜ rst˜iteration˜of˜theŽ¡­forŽ‘膬loGop.Ž¡‘ +[²LDF‘T2002.09.18.¬]Ž‘X×WI›$ehad–$qsome“dicult¸ãy“debugging“this“bGecause“instead“of“using“°Ž‘ +ë´MAX_REALŽ‘5q߬,‘.9I˜de ned“andŽ¡used‘B1´MIN_REALŽ‘3[¬=‘QÚ­n®9umericu½‰™šs4Ž‘ÔwlimitsŽ‘N@æ°h­realŽ‘]Ù°i‘¬::Ž‘ŽB±minŽ‘³W¬(‘ª¨).‘8[Ho•¸ãw“ev“er,‘}hthis–B1isn't“the“negativ¸ãe“­realŽ‘â;¬with“the“largestŽ¡magnitude,–UUbut“the“smallest“pGositiv¸ãe“­realŽ‘³.¬.ŽŸ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R¬[0Ž‘]–Ç=“´MAX_REALŽ‘-Mh¬;‘µ=°‘ÿý¬Minima.‘o°µ=Ž¡‘ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R¬[2Ž‘]–Ç=“´MAX_REALŽ‘-Mh¬;Ž¡‘ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R¬[4Ž‘]–Ç=“´MAX_REALŽ‘-Mh¬;Ž¡‘ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R¬[1Ž‘]–Ç=“°Ž‘ +Ž6´MAX_REALŽ‘5†¬;‘µ=°‘ÿý¬Maxima.‘o°µ=Ž¡‘ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R¬[3Ž‘]–Ç=“°Ž‘ +Ž6´MAX_REALŽ‘5†¬;Ž¡‘ +±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘^R¬[5Ž‘]–Ç=“°Ž‘ +Ž6´MAX_REALŽ‘5†¬;Ž¡‘ +­forŽ‘臬(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7iterŽ‘=+M¬=‘DZp‘ÿ}'ointsŽ–ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZp‘ÿ}'ointsŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘G±iterŽ‘"¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"min® ´x® ´==® ´"Ž‘?Ôw°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[0Ž‘]–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"max® ´x® ´==® ´"Ž‘?Ôw°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[1Ž‘]–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"x® ´world® ´==® ´"Ž‘JTq°–Ǭ(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨)“°“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"x® ´persp® ´==® ´"Ž‘JTq°›Ç¬(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®xŽ‘Žg¬(´'p'Ž‘F_µ;‘ª¨±falseŽ–Yìµ;‘ª¨±falseŽ“¬)˜°˜±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"min® ´y® ´==® ´"Ž‘?Ôw°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[2Ž‘]–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"max® ´y® ´==® ´"Ž‘?Ôw°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[3Ž‘]–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"y® ´world® ´==® ´"Ž‘JTq°–Ǭ(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨)“°“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"y® ´persp® ´==® ´"Ž‘JTq°›Ç¬(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®yŽ‘t¬(´'p'Ž‘F_µ;‘ª¨±falseŽ–Yìµ;‘ª¨±falseŽ“¬)˜°˜±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"min® ´z® ´==® ´"Ž‘?Ôw°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[4Ž‘]–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"max® ´z® ´==® ´"Ž‘?Ôw°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[5Ž‘]–ǰ“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"z® ´world® ´==® ´"Ž‘JTq°–Ǭ(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨)“°“±end‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"z® ´persp® ´==® ´"Ž‘JTq°›Ç¬(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®zŽ‘¬(´'p'Ž‘F_µ;‘ª¨±falseŽ–Yìµ;‘ª¨±falseŽ“¬)˜°˜±end‘‚ØlŽ‘¸Ú¬;Ž¡‘°gŽ¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS¬[0Ž›]–Ç=“±minŽ‘ì-¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ¬[0Ž˜]µ;–ª¨¬(°Ž˜Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®xŽ‘Žg¬(´'p'Ž‘F_µ;“±falseŽ›Yìµ;“±falseŽ˜¬));‘µ=°–ÿý¬Min‘UUx“°µ=Ž¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS¬[2Ž›]–Ç=“±minŽ‘ì-¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ¬[2Ž˜]µ;–ª¨¬(°Ž˜Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®yŽ‘t¬(´'p'Ž‘F_µ;“±falseŽ›Yìµ;“±falseŽ˜¬));‘µ=°–ÿý¬Min‘UUy“°µ=Ž¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS¬[4Ž›]–Ç=“±minŽ‘ì-¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ¬[4Ž˜]µ;–ª¨¬(°Ž˜Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®zŽ‘¬(´'p'Ž‘F_µ;“±falseŽ›Yìµ;“±falseŽ˜¬));‘µ=°–ÿý¬Min‘UUz“°µ=Ž¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS¬[1Ž›]–Ç=“±maxŽ‘k³¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ¬[1Ž˜]µ;–ª¨¬(°Ž˜Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®xŽ‘Žg¬(´'p'Ž‘F_µ;“±falseŽ›Yìµ;“±falseŽ˜¬));‘µ=°–ÿý¬Max‘UUx“°µ=Ž¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS¬[3Ž›]–Ç=“±maxŽ‘k³¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ¬[3Ž˜]µ;–ª¨¬(°Ž˜Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®yŽ‘t¬(´'p'Ž‘F_µ;“±falseŽ›Yìµ;“±falseŽ˜¬));‘µ=°–ÿý¬Max‘UUy“°µ=Ž¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘hS¬[5Ž›]–Ç=“±maxŽ‘k³¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ¬[5Ž˜]µ;–ª¨¬(°Ž˜Ž‘ +±iterŽ‘ˬ)µ:±get‘‰ffŽ‘®zŽ‘¬(´'p'Ž‘F_µ;“±falseŽ›Yìµ;“±falseŽ˜¬));‘µ=°–ÿý¬Max‘UUz“°µ=Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘­forŽ‘%般(­in®9tŽ‘¤÷µiŽ‘Þ¬=‘Ç0Ž–Ç;‘ÿýµiŽ‘ 9 <‘Ǭ6Ž“;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"projective_extremesŽ‘kÆÜ["Ž‘y”V°‘ǵiŽ‘ $°‘Ç´"]® ´==® ´"Ž‘*Ôƒ°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[µiŽ‘qô¬]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘ +°gŽŽŽŒ‹ì» Šn ý‘ì¬236–¯SET‘ÕXEXTREMES’:ú3DLDF-1.1.5.1“°x¬887Ž €n ý•@P­887.‘ ü¬[²LDF‘T2002.09.18.¬]Ž‘[Å=Added–’\this“error“handling“coGde.‘(ÝThere“is“a“remote“c¸ãhance“that“a“v‘ÿqÇalid“­P•®9oin“tŽŽ¤ ¬could›Bha•¸ãv“e˜a˜coGordinate˜°˜´MAX_REALŽ‘3 +„¬or˜°Ž‘ 8´MIN_REALŽ‘6ˆ¬,›}Kho“w“ev“er,˜it–Bis“virtually“impšGossible“that“it“w¸ãould“b˜eŽ¡pro‘Ž8jectable.‘Õ®If–v¢it's“the“x“or“y-coGordinate,‘~õit“wš¸ãould“probably“lie“outside“the“limits“de ned“for“the“in˜v˜oGcationŽ¡of‘7¬­PictureŽ‘*Ó½¬::‘±outputŽ‘D¬(‘ª®),›pAand–7¬if“it“w¸ãas“the“µzŽ‘ Nʬ,˜it“w¸ãould“either“bšGe“b˜ehind“the“­F‘ÿ +«oQÇcusŽ‘%d¤¬or“so“far“a•¸ãw“a“y–7¬as“to“b˜eŽ¡practically›‹.in•¸ãvisible.‘SI‘ŠÞbGeliev“e˜that˜this˜is˜the˜case,‘ؤev“en˜though˜the˜z-coGordinates˜are˜made˜smaller˜b“yŽ¡applying–UUthe“equation“µzŸÿ·pŽ‘fj¬=‘ǵzp—=¬(µz‘©w¬+‘8àµp¬).Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­forŽ‘臬(­in®9tŽ‘¤÷µiŽ‘Þ¬=‘Ç0Ž–Ç;‘ÿýµiŽ› 9 <‘Ǭ6Ž“;‘ÿýµiŽ˜¬+=ŽŽ‘Ž]2Ž‘"Ž^)‘°fŽ¡‘­ifŽ‘´ú¬(±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘TQ¬[µiŽ‘qô¬]–ǰ“´MAX_REALŽ‘AMiµ=°–ÿý¬Minima“°µ=Ž¡‘8â°_‘8à±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘V=1¬[µiŽ‘ªÔ¬+‘8à1Ž‘8á]–ǰ“Ž‘ +Ž6´MAX_REALŽ‘5†¬)‘µ=°–ÿý¬Maxima“°µ=Ž¡‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"i® ´==® ´"Ž‘*Ôƒ°‘ǵiŽ‘ $°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"projective_extremesŽ‘kÆÜ["Ž‘y”V°‘ǵiŽ‘ $°‘Ç´"]® ´==® ´"Ž‘*Ôƒ°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[µiŽ‘qô¬]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘°gŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"ERROR!® ´In® ´Path::setŽ‘kÆÜ_extremes():\n"Ž’½Ô/°‘Ç´"maxima® ´and® ´minima® ´cŽ‘kÆÜould® ´not® ´be® ´set® ´propŽ’ÔÆ \ŽŽ¡‘2erly.® ´"Ž‘Z p°‘Ç´"Setting® ´them® ´all® ´toŽ‘kÆÜ® ´INVALID_REAL® ´and® ´reŽ’ÔÆ turning® ´false.\n"Ž’1Sí°‘Ç± ushŽ‘€¬;Ž¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘tËl¬=‘Ç´INVALID_REALŽ‘BM\¬;Ž¡‘­returnŽ‘Aæ½±falseŽ‘V–¬;Ž¡‘­breakŽ‘:¡g¬;Ž¡‘°gŽ¡‘ gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::set_eŽ‘kÆÜxtremes()"Ž’£”>·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂreturnŽ‘-æ»ÏtrueŽ‘@«S«;‘qÇ·gŽŸÂ845.– ü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®9athŽ‘<«functions‘@­656“·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ŽŸÂ846.› üGet–ÕTminim®9um“z.˜«[¬LDF‘T2003.05.16.«]Ž‘Zˆ6Added–UUthis“function.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔrealŽ‘FAÏget‘‰ffŽ–®minimum‘‰ffŽ“zŽ’‰žÚ«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹å D' Šn ý‘ì·x«847›­3DLDFPRÃŽG’´GET–ÕXMINIMUM“Z˜«229Ž €n ý•@PÂ847.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ ³/P®9athŽ‘:D—«::‘Ïget‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘D]Ü«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"EnteringÈ ÝPath::get_Ž‘kÆÜminimum_z()"Ž’®8·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"projective_extremesŽ‘kÆÜ[4]È Ý==È Ý"Ž’™D·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[4Ž‘]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ExitingÈ ÝPath::get_mŽ‘kÆÜinimum_z()"Ž’¨Ô;·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ’‹ë «[4Ž‘];Ž¡‘ -·gŽŸÂ848.› üGet–ÕTmaxim®9um“z.˜«[¬LDF‘T2002.09.17.«]Ž‘Zˆ6Added–UUthis“function.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔrealŽ‘FAÏget‘‰ffŽ–®maximum‘‰ffŽ“zŽ’Š®«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ849.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/P®9athŽ‘:D—«::‘Ïget‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘Em«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"EnteringÈ ÝPath::get_Ž‘kÆÜmaximum_z()"Ž’®8·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"projective_extremesŽ‘kÆÜ[5]È Ý==È Ý"Ž’™D·‘ÇÏpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi«[5Ž‘]–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ExitingÈ ÝPath::get_mŽ‘kÆÜaximum_z()"Ž’¨Ô;·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ’‹ë «[5Ž‘];Ž¡‘ -·gŽŸÂ850.› üGet–ÕTmean“z.˜«[¬LDF‘T2003.05.16.«]Ž‘Zˆ6Added–UUthis“function.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔrealŽ‘FAÏget‘‰ffŽ–®me‘ÿ}'an‘‰ffŽ“zŽ‘v÷ «(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ851.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/P®9athŽ‘:D—«::‘Ï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ŽŸÂ852.– üSuppress‘xÿoutput.“«[¬LDF‘T2002.09.18.«]Ž‘[ˆAdded–ã§this“function.‘½It's“needed“bGecause“trying“to“erase“aŽ¡ÂShapQÇeŽ‘"Ab·Ž‘*–¸«from‘UUÏelementsŽ‘-¥«in‘UUÂPictureŽ‘)ñf«::‘ÏoutputŽ‘D«(‘ª®)–UUcauses“a“memory“fault.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïsuppr‘ÿ}'ess‘‰ffŽ‘®outputŽ’r.«(‘ª®);ŽŽŽŒ‹æ P” Šn ý‘ì«230–­SUPPRESS‘ÕXOUTPUT’eø3DLDFPRÃŽG“·x«853Ž €n ý•@PÂ853.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘È ÝtoÈ ÝcoŽ’ÿÈntinue.\n"Ž’ÈÍ*·‘ÇÏ ushŽ‘€«;Ž¡‘ÏgetcharŽ‘5%þ«(‘ª®);Ž¡‘Ïc‘ÿ}'errŽ‘*SI·‘¡Ý"WARNING!È ÝInÈ ÝPath::oŽ‘leutput():\n"Ž’ªM·‘¡Ý"PathÈ Ýdoesn'tÈ ÝcontaiŽ‘lenÈ ÝanyÈ ÝPoints.\n"Ž’ÄÁ>·Ž¡‘(Ý"NotÈ ÝdoingÈ Ýanything.Ž’ÿÈ\n\n"Ž’®9·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŽŽŒ‹è f´ Šn ý‘ì«232–­OUTPUT’=\03DLDFPRÃŽG“·x«859Ž €n ý•@PÂ859.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âv®9ectorŽ‘)ªI·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7p‘ÿ}'oint‘‰ffŽ‘®iterŽ‘V’:«=‘ÇÏp‘ÿ}'ointsŽ‘ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);Ž¡‘ -Âv®9ectorŽ‘)ªI·hÂstringŽ‘Ïø·i‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7c–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘j¡Ó«=‘ÇÏc–ÿ}'onne“ctorsŽ‘1ûF±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);ަ‘ -ÂstringŽ‘+%NÏc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘rëÊ«;ަ‘ -ÂifŽ‘´ù«(Ïc–ÿ}'onne“ctorsŽ‘/4.±:ÏsizeŽ‘\«(‘ª¨)–DZ>“«0Ž›Ç)‘Ïc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”«=“·Ž˜Ïc–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘FˆŸÿ®+‘ÿ+ŽŽ‘RO½«;Ž¡‘ -ÂelseŽ‘!ØàÏc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘lft«=‘ÇÝ"--"Ž‘Mt«;Ž¡‘ -ÂifŽ‘´ù«(Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)·‘ÇÝDRAWŽ‘Mt«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"Drawing.\n"Ž‘Et·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(Ïarr‘ÿ}'owŽ‘'h·‘ÇÏtrueŽ‘‹°«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"drawarrowÈ Ý"Ž‘Et·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘ÂelseŽ‘+ØáÏout‘‰ffŽ‘®str–ÿ}'e“amŽ‘]à•·‘ÇÝ"drawÈ Ý"Ž‘*Ôƒ·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘·h–ª¨«Output‘²ÎÂP®9athŽ‘ „6­864“·i‘±=·‘]v«[¬LDF‘T2002.09.26.«]Ž‘TÃ)Comparing–²ÎpGoinš¸ãters“seems“to“w˜ork“here.‘Š2I‘²¶think“itŽ¡‘(should,–UUbut“I“wš¸ãasn't“sure“that“it“really“w˜ould.‘o·±=Ž¡‘ÂifŽ‘´ú«(Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q·6«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª«)‘·fŽ¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘P··‘ÇÝ"È ÝwithcolorÈ Ý"Ž‘JTq·‘ÇŽ‘ÇÏdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(Ïdashe‘ÿ}'dŽ– ñ¹·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝdashedÈ Ý"Ž‘:”z·‘ÇÏdashe‘ÿ}'dŽ“«;Ž¡‘ÂifŽ‘´ú«(Ïp‘ÿ}'enŽ–àË·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithpenÈ Ý"Ž‘?Ôw·‘ÇÏp‘ÿ}'enŽ“«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘ .5ifŽ‘+ã-«(Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)·‘ÇÝFILLŽ‘Mt«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"Filling.\n"Ž‘Et·‘ÇÏ ushŽ‘€«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ"fillÈ Ý"Ž‘*Ôƒ·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘ÂifŽ‘´ú«(Ï l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(_m·6«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithcolorÈ Ý"Ž‘JTq·‘ÇŽ‘ÇÏ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘-_n«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘ .5ifŽ‘+ã-«(Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)·‘ÇÝFILLDRAWŽ‘-Mh«)‘UU·fŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"Filldrawing.\n"Ž‘Zh·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂifŽ‘´ù«(Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q·‘ÇÏ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(_m«)‘·fŽ¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ"filldrawÈ Ý"Ž‘?Ôw·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘ÂifŽ‘´ú«(Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q·6«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithcolorÈ Ý"Ž‘JTq·‘ÇŽ‘ÇÏdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R«;Ž¡‘ÂifŽ‘´ú«(Ïdashe‘ÿ}'dŽ– ñ¹·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝdashedÈ Ý"Ž‘:”z·‘ÇÏdashe‘ÿ}'dŽ“«;Ž¡‘ÂifŽ‘´ú«(Ïp‘ÿ}'enŽ–àË·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithpenÈ Ý"Ž‘?Ôw·‘ÇÏp‘ÿ}'enŽ“«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘0Øá±=·‘ÿý«W‘ÿ*ªe›UUha•¸ãv“e˜t“w“o˜di eren“t˜colors,˜so˜w“e˜ha“v“e˜to˜ ll˜once˜and˜dra“w˜once.‘o·±=Ž¡‘ -·f‘UUÏout‘‰ffŽ‘®str–ÿ}'e“amŽ‘5] ·‘ÇÝ"fillÈ Ý"Ž‘*Ôƒ·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘ -·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘ -Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘<µ·‘ÇÝ"È ÝwithcolorÈ Ý"Ž‘JTq·‘ÇŽ‘ÇÏ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘-_n«;Ž¡‘ -Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘<µ·‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘ -Ïp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘6ù«=‘ÇÏp‘ÿ}'ointsŽ‘ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);ŽŽŽŒ‹é lL Šn ý‘ì·x«860–­3DLDFPRÃŽG’=\0OUTPUT“«233Ž €n ý•@PÂ860.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.05.10.«]Ž‘X_Added–`ythe“coGde“in“this“section.› )It“ xes“a“bug.˜If“it's“not“done,‘‘rthen“the“correct“connectorsŽ¡are–UUnot“used“when“the“ÂP®9athŽ‘<«is“output“the“second“time.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Ïc–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘K«=‘ÇÏc–ÿ}'onne“ctorsŽ‘1ûF±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);Ž¡‘ -ÂifŽ‘´ù«(Ïc–ÿ}'onne“ctorsŽ‘/4.±:ÏsizeŽ‘\«(‘ª¨)–DZ>“«0Ž›Ç)‘Ïc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”«=“·Ž˜Ïc–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘FˆŸÿ®+‘ÿ+ŽŽ‘RO½«;Ž¡‘ -ÂelseŽ‘!ØàÏc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘lft«=‘ÇÝ"--"Ž‘Mt«;ŽŸÂ861.ŽŸ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïarr‘ÿ}'owŽ‘'h·‘ÇÏtrueŽ‘‹°«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"drawarrowÈ Ý"Ž‘Et·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘ -ÂelseŽ‘!ØàÏout‘‰ffŽ‘®str–ÿ}'e“amŽ‘Sà”·‘ÇÝ"drawÈ Ý"Ž‘*Ôƒ·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘ -·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘ -ÂifŽ‘´ù«(Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q·6«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithcolorÈ Ý"Ž‘JTq·‘ÇŽ‘ÇÏdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R«;Ž¡‘ -ÂifŽ‘´ù«(Ïdashe‘ÿ}'dŽ– ñ¹·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝdashedÈ Ý"Ž‘:”z·‘ÇÏdashe‘ÿ}'dŽ“«;Ž¡‘ -ÂifŽ‘´ù«(Ïp‘ÿ}'enŽ–àË·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithpenÈ Ý"Ž‘?Ôw·‘ÇÏp‘ÿ}'enŽ“«;Ž¡‘ -Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘<µ·‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;–UU·g“gŽ¡‘ -ÂelseŽŽ¡‘ifŽ‘´ú«(Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)·‘ÇÝUNDRAWŽ‘"Ín«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"Undrawing.\n"Ž‘O”n·‘ÇÏ ushŽ‘€«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘P··‘ÇÝ"undrawÈ Ý"Ž‘5T}·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘ÂifŽ‘)´û«(Ïdashe‘ÿ}'dŽ– ñ¹·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝdashedÈ Ý"Ž‘:”z·‘ÇÏdashe‘ÿ}'dŽ“«;Ž¡‘ÂifŽ‘)´û«(Ïp‘ÿ}'enŽ–àË·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithpenÈ Ý"Ž‘?Ôw·‘ÇÏp‘ÿ}'enŽ“«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘P··‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)·‘ÇÝUNFILLŽ‘"Ín«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"Unfilling.\n"Ž‘O”n·‘ÇÏ ushŽ‘€«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘P··‘ÇÝ"unfillÈ Ý"Ž‘5T}·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘P··‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽŽŽŒ‹ê d Šn ý‘ì«234–­OUTPUT’=\03DLDFPRÃŽG“·x«862Ž €n ý•@PÂ862.‘ ü«Filldra¸ãw‘UUcase.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2003.03.25.«]Ž‘[ WChanged–Yqthis“section,›Úxso“that“the“outline“of“the“ÂP®9athŽ‘#DF«is“dra¸ãwn,˜if“Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘:hí·6«=Ž¡ÂColorsŽ‘!ØÞ«::Ž‘(gÏb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘r«t«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂelseŽŽ¡‘ifŽ‘´ú«(Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)·‘ÇÝUNFILLDRAWŽ‘7Íb«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"Unfilldrawing.\n"Ž‘d”b·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘)´û«(Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q·‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïb–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘urŒ«)‘·fŽ¡‘(Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸·‘ÇÝ"unfilldrawÈ Ý"Ž‘JTq·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘(·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘(ÂifŽ‘3´ü«(Ïdashe‘ÿ}'dŽ– ñ¹·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝdashedÈ Ý"Ž‘:”z·‘ÇÏdashe‘ÿ}'dŽ“«;Ž¡‘(ÂifŽ‘3´ü«(Ïp‘ÿ}'enŽ–àË·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithpenÈ Ý"Ž‘?Ôw·‘ÇÏp‘ÿ}'enŽ“«;Ž¡‘(Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸·‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂelseŽ‘5Øâ·fŽ¡‘(Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸·‘ÇÝ"unfillÈ Ý"Ž‘5T}·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘(·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘(Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸·‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘Tù«=‘ÇÏp‘ÿ}'ointsŽ‘ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);Ž¡‘(Ïc–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘i «=‘ÇÏc–ÿ}'onne“ctorsŽ‘1ûF±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);Ž¡‘(ÂifŽ‘3´ü«(Ïc–ÿ}'onne“ctorsŽ‘/4.±:ÏsizeŽ‘\«(‘ª¨)–DZ>“«0Ž›Ç)‘Ïc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”«=“·Ž˜Ïc–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘FˆŸÿ®+‘ÿ+ŽŽ‘RO½«;Ž¡‘(ÂelseŽ‘?ØãÏc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ’Šfw«=‘ÇÝ"--"Ž‘Mt«;Ž¡‘(Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸·‘ÇÝ"drawÈ Ý"Ž‘*Ôƒ·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘(·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘(ÂifŽ‘3´ü«(Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q·6«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithcolorÈ Ý"Ž‘JTq·‘ÇŽ‘ÇÏdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R«;Ž¡‘(ÂifŽ‘3´ü«(Ïdashe‘ÿ}'dŽ– ñ¹·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝdashedÈ Ý"Ž‘:”z·‘ÇÏdashe‘ÿ}'dŽ“«;Ž¡‘(ÂifŽ‘3´ü«(Ïp‘ÿ}'enŽ–àË·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithpenÈ Ý"Ž‘?Ôw·‘ÇÏp‘ÿ}'enŽ“«;Ž¡‘(Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸·‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘g‘±=·‘ÿý«End–UUof“ÝUNFILLDRAWŽ‘;°ô«case.‘qÇ[¬LDF‘T2003.03.25.«]Ž‘U$©·±=ŽŽŽŒ‹ë Œ5 Šn ý‘ì·x«863–­3DLDFPRÃŽG’=\0OUTPUT“«235Ž €n ý•@PÂ863.‘ ü«Default‘UUcase.‘qÇ[¬LDF‘T2003.03.25.«]ŽŽŸ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂelseŽ‘0Øá±=·‘ÿý«Use–UUDRA‘þãW“as“default.‘qÇ[¬LDF‘T2003.03.25.«]Ž‘U$©·±=Ž¡‘ -·fŽ¡‘Ïc‘ÿ}'errŽ‘)â·‘Û:Ý"WARNING!È ÝInvalidÈ Ý|fŽ‘kÚþill_draw_value|:È Ý"Ž’Í¼j·‘Û:Ï l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘Db…·‘Û:Ý".È ÝUsingÈ Ý\"draw\"\n"Ž‘o< ·Ž¡‘(Ï ushŽ‘=¹«;Ž¡#ÂifŽ‘ ´ø«0Ž‘$´ú±=·‘ÿý«!!‘qÇDe ne–UUa“ÂclassŽ‘5¦«for“information“on“the“run“state.‘o·±=Ž¡‘ÂifŽ‘´ú«(·:ÏR¾“un‘‰ffŽ‘®StateŽ‘-ò¦«::Ž‘4€äÏnon‘‰ffŽ‘®stopŽ‘[P„«)‘ÏgetcharŽ‘&%ü«(‘ª®);Ž¡#ÂendifŽŽ¡‘ifŽ‘´ú«(Ïarr‘ÿ}'owŽ‘'h·‘ÇÏtrueŽ‘‹°«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"drawarrowÈ Ý"Ž‘Et·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘ÂelseŽ‘+ØáÏout‘‰ffŽ‘®str–ÿ}'e“amŽ‘]à•·‘ÇÝ"drawÈ Ý"Ž‘*Ôƒ·‘ÇŽ‘ÇŽ‘ ÇÏp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ®+‘ÿ+ŽŽ‘C@%«;Ž¡‘·h–ª¨«Output‘UUÂP®9athŽ‘ &½­864“·iŽ¡‘ÂifŽ‘´ú«(Ïdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q·6«=‘ÇÂColorsŽ‘$Ÿö«::Ž‘+.4Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithcolorÈ Ý"Ž‘JTq·‘ÇŽ‘ÇÏdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R«;Ž¡‘ÂifŽ‘´ú«(Ïdashe‘ÿ}'dŽ– ñ¹·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝdashedÈ Ý"Ž‘:”z·‘ÇÏdashe‘ÿ}'dŽ“«;Ž¡‘ÂifŽ‘´ú«(Ïp‘ÿ}'enŽ–àË·6«=‘ÇÝ""Ž‘ Íz«)‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´·‘ÇÝ"È ÝwithpenÈ Ý"Ž‘?Ôw·‘ÇÏp‘ÿ}'enŽ“«;Ž¡‘Ïout‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶·‘ÇÝ";\n"Ž‘ T‰·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::outpuŽ‘kÆÜt(Focus)"Ž’žTA·‘ÇÝ"\n"Ž‘Œ·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂreturnŽ‘*‘f«;‘qÇ·gŽŽŽŒ‹ì ˜¦ Šn ý‘ì«236–­OUTPUT’=\03DLDFPRÃŽG“·x«864Ž €n ý•@PÂ864.‘ ü«When‘vÏ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘,„q«and‘vÏdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5ØU«are–vdi erenš¸ãt,‘~·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘h—«=‘ÇÝ"--"Ž‘Mt«;Ž¡‘·gŽ¡‘fŽ¡‘Âin®9tŽ‘/¤úÏlo‘ÿ}'op‘‰ffŽ‘®ctrŽ‘U4«=‘Ç0Ž‘Ç;ަ‘ÂforŽ‘0EY«(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘Lm·Ž‘$Lni‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûp‘ÿ}'oints‘‰ffŽ‘®iterŽ‘u-n«=‘aÈÏp‘ÿ}'ointsŽ–†]±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘\ÍÏp‘ÿ}'oints‘‰ffŽ‘®iterŽ‘7@·6«=‘aÈÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);Ž¡‘<€Ÿÿ®+‘ÿ+ŽŽ‘HG&Ïp‘ÿ}'oints‘‰ffŽ‘®iterŽ‘vÑ«)‘·fŽ¡‘(ÂifŽ‘3´ü«(Ïp‘ÿ}'oints‘‰ffŽ‘®iterŽ‘1÷6«=‘ÇÏp‘ÿ}'ointsŽ‘ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨))‘·fŽ¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÝ"È Ý"Ž‘Ô·‘ÇÏc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘MT¬·‘ÇÝ"È Ý"Ž‘ w«;Ž¡‘(·gŽ¡‘(ÂifŽ‘3´ü«(Ïc–ÿ}'onne“ctors‘‰ffŽ‘®iterŽ‘E\·6«=‘ÇÏc–ÿ}'onne“ctorsŽ‘1ûF±:ÏendŽ‘ಫ(‘ª¨))‘Ïc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”«=‘Ç·Ž‘ÇÏc–ÿ}'onne“ctors‘‰ffŽ‘®iterŽ‘JŸ]Ÿÿ®+‘ÿ+ŽŽ‘Vf}«;Ž¡‘(ÂifŽ‘3´ü«(Ïlo‘ÿ}'op‘‰ffŽ‘®ctrŽ‘%È·‘Ç«2Ž‘Ç)‘±=·‘ÿý«Break–UUeac¸ãh“line“after“2“ÂP•®9oin“tsŽ‘#xÙ«.‘o·±=Ž¡‘(·fŽ¡‘2Ïc‘ÿ}'outŽ‘H T·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘2Ïlo‘ÿ}'op‘‰ffŽ‘®ctrŽ‘WÍ«=‘Ç0Ž‘Ç;Ž¡‘(·gŽ¡‘(€Ÿÿ®+‘ÿ+ŽŽ‘4G$Ïlo‘ÿ}'op‘‰ffŽ‘®ctrŽ‘WÔ«;Ž¡‘(±vŽ‘/ûÙ«=‘Ç(·Ž‘Ž‘ -Ïp‘ÿ}'oints‘‰ffŽ‘®iterŽ‘8H­«)±:Ïget‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘:§«(Ïc–ÿ}'o“or“dsŽ‘ Œ±;‘ª¨Ïdo‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sà±;‘ª¨Ïdo‘‰ffŽ‘®applyŽ‘'µ}±;‘ª¨fŽ‘£Ž;‘ª¨Ïpr‘ÿ}'ojŽ‘žk±;‘ª¨ÏfactorŽ‘®†«);Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"("Ž‘Ô·‘DZvŽ›ûÕ«[0Ž‘]–Ç·“Ý",È Ý"Ž‘Œ·“±vŽ˜«[1Ž‘]“·“Ý",È Ý"Ž‘Œ·“±vŽ˜«[2Ž‘]“·“Ý")"Ž‘ w«;Ž¡‘·gŽ¡‘gŽ¡‘ÂifŽ‘´ú«(Ïcycle‘‰ffŽ‘®switchŽ‘5š«)‘·fŽ¡‘ÂifŽ‘)´û«(Ïc–ÿ}'onne“ctors‘‰ffŽ‘®iterŽ‘E\·6«=‘ÇÏc–ÿ}'onne“ctorsŽ‘1ûF±:ÏendŽ‘ಫ(‘ª¨))‘Ïc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”«=‘Ç·Ž‘ÇÏc–ÿ}'onne“ctors‘‰ffŽ‘®iterŽ‘JŸ]Ÿÿ®+‘ÿ+ŽŽ‘Vf}«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"È Ý"Ž‘Ô·‘ÇÏc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘MT¬·‘ÇÝ"È Ýcycle;"Ž‘5T}·‘ÇÏend‘‚ØlŽ‘¸Ú«;ŽŽŽŒ‹î °u Šn ý‘ì«238›­SHO•ÃŽW’H’F3DLDFPR“G˜·x«867Ž €n ý•@P‘·gޤ ‘ÂelseŽ‘+ØáÏc‘ÿ}'outŽ‘Aù0·‘ÇÝ";\n"Ž‘q«;Ž¡‘ -·gŽ©Â868.‘ üSho®9w‘ÕTColors.ŽŸ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙÏshow‘‰ffŽ‘®c‘ÿ}'olorsŽ‘V!Š«(Âb•QÇo“olŽ‘¡fÏstopŽ‘// «=‘ÇÏfalseŽ‘v\«);ަÂ869.ŽŸ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘If“it“doGes,‘H Ïis‘‰ffŽ‘®planarŽ‘+nœ«(‘ª®)“returns“ÏtrueŽ‘ R«,–H otherwise,“it–Dºreturns“ÏfalseŽ‘óþ«.˜If“·Ž‘D»ÏthisŽŽ¡«is–UUlinear,“Ïis‘‰ffŽ‘®planarŽ‘+{ä«(‘ª®)“issues“a“w¸ãarning“and“returns“ÏtrueŽ‘í«.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.03.«]Ž‘Y;Rewrote–UUthis“function.‘qÇIt“should“noš¸ãw“w˜ork“for“all“ÂP®9athsŽ‘ oõ«.Ž¡‘ -[¬LDF‘T2002.11.05.«]Ž‘Y;Rewrote–UUthis“function“again.‘qÇIt“noš¸ãw“uses“the“new“v˜ersion“of“Ïget‘‰ffŽ‘®normalŽ‘3ßÉ«(‘ª®).Ž¡‘ -[¬LDF‘T2002.11.06.«]Ž‘YCvAdded–optional“ÂconstŽ‘!ömb•QÇo“olŽ‘;ÓÏverb‘ÿ}'oseŽ‘_ôû«and“ÂstringŽ‘$ñÏtextŽ‘9Ùt«argumen¸ãts“for“writing“a“messageŽ¡to–UUthe“standard“output.Ž¡‘ -[¬LDF‘T2003.08.14.«]Ž‘Y;Made‘UUÏverb‘ÿ}'oseŽ‘'<«non-ÂconstŽ‘ÕM«.‘qÇSetting–UUit“to“ÏtrueŽ‘oB«if“ÝVERBOSE_GLOBALŽ‘P°è«is“ÏtrueŽ‘í«.Ž¡Added‘UUÝVERBOSE_GLOBALŽ‘P°è«to–UUÈpspglb.web“«toGda¸ãy‘ÿ*ª.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ŽŸ ‘ -ÂvirtualŽ‘/Ôb•QÇo“olŽ‘I/:Ïis‘‰ffŽ‘®planarŽ‘qUÉ«(Âb•QÇo“olŽ‘¡fÏverb‘ÿ}'oseŽ‘<ùÛ«=‘ÇÏfalseŽ‘v\±;‘ª¨ÂstringŽ‘"ÏõÏtextŽ‘6îÙ«=‘ÇÝ""Ž‘ Íz«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹ï Ä< Šn ý‘ì·x«873–­3DLDFPRÃŽG’3´TIS‘ÕXPLANAR“«239Ž €n ý•@PÂ873.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olŽ‘#¡gP®9athŽ‘=2Ï«::‘Ïis‘‰ffŽ‘®planarŽ‘)&“«(Âb•QÇo“olŽ‘¡fÏverb‘ÿ}'oseŽ‘:2ñ;‘ª¨ÂstringŽ‘"ÏõÏtextŽ‘4'Á«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝVERBOSE_GLOBALŽ‘J>«)‘Ïverb‘ÿ}'oseŽ‘(Xu«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÿ9·_‘8àÏverb‘ÿ}'oseŽ‘"Ê=«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPath::is_pŽ‘kÆÜlanar().\n"Ž’¦ #«;ަ‘ÂP•®9oin“tŽ‘2pŽ‘7÷Ÿ«(Ïget‘‰ffŽ‘®normalŽ‘0Št«(‘ª®));ަ‘ÂifŽ‘´ú«(±pŽ‘Ï·‘ÇÝINVALID_POINTŽ‘GY«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::is_plŽ‘kÆÜanar().È ÝReturningÈ ÝfaŽ’ÔÆ lse.\n\n"Ž’T·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘)´û«(Ïverb‘ÿ}'oseŽ‘ ‘]«)‘·fŽ¡‘(ÂifŽ‘3´ü«(Ïtextޑ䷑ÇÝ""Ž‘ Íz«)‘ÏtextŽ‘ä«=‘ÇÝ"Path"Ž‘"Ín«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÏtextŽ‘åü·‘ÇÝ"È ÝisÈ Ýnon-planar.\n\nŽ‘kÆÜ"Ž‘qA«;Ž¡‘·gŽ¡‘ÂreturnŽ‘Aæ½ÏfalseŽ‘V–«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±pŽ‘Ï·‘ÇÏoriginŽ‘½9«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"WARNING!È ÝInÈ ÝPath::iŽ‘kÆÜs_planar():\n"Ž’¸”2·‘ÇÝ"PathÈ ÝisÈ Ýlinear.È ÝReŽ‘kÆÜturningÈ Ýtrue.\n\n"Ž’Í”&·Ž¡‘2Ï ushŽ‘G¹«;Ž¡‘ÂifŽ‘)´û«(Ïverb‘ÿ}'oseŽ‘ ‘]«)‘·fŽ¡‘(ÂifŽ‘3´ü«(Ïtextޑ䷑ÇÝ""Ž‘ Íz«)‘ÏtextŽ‘ä«=‘ÇÝ"Path"Ž‘"Ín«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÏtextŽ‘åü·‘ÇÝ"È ÝisÈ Ýplanar.\n\n"Ž‘\M«;Ž¡‘·gŽ¡‘ÂreturnŽ‘Aæ½ÏtrueŽ‘T«U«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘ÂifŽ‘)´û«(Ïverb‘ÿ}'oseŽ‘ ‘]«)‘·fŽ¡‘(ÂifŽ‘3´ü«(Ïtextޑ䷑ÇÝ""Ž‘ Íz«)‘ÏtextŽ‘ä«=‘ÇÝ"Path"Ž‘"Ín«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÏtextŽ‘åü·‘ÇÝ"È ÝisÈ Ýplanar.\n\n"Ž‘\M«;Ž¡‘·gŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::is_plŽ‘kÆÜanar().È ÝReturningÈ ÝtrŽ’ÔÆ ue.\n\n"Ž’·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÏtrueŽ‘T«U«;Ž¡‘·gŽ¡‘ -gŽŸÂ874.– üIs‘þ“linear.“«[¬LDF‘T2003.04.09.«]Ž‘Z¬Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘Á‘«(‘ª®)–y3 rst“c•¸ãhec“ks–y3whether“Ïline‘‰ffŽ‘®switchŽ‘6•'«is“ÏtrueŽ‘=Ë«.‘ÝaIf“it“is,‘‚+it“returnsŽ¡ÏtrueŽ‘Á«righ•¸ãt›<)a“w“a“y‘ÿ*ª.‘icOtherwise,‘A2it˜uses˜the˜return˜v‘ÿqÇalue˜of˜Ïget‘‰ffŽ‘®normalŽ‘3Æ«(‘ª®)˜to˜determine˜whether˜·Ž‘<*ÏthisŽ‘d «is˜linear˜orŽ¡not.‘qÇIf–UUit“is,“Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘(jÒ«(‘ª®)“returns“ÏtrueŽ‘í«,“otherwise,“it“returns“ÏfalseŽ‘™«.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.05.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2002.11.06.«]Ž‘YCvAdded–optional“ÂconstŽ‘!ömb•QÇo“olŽ‘;ÓÏverb‘ÿ}'oseŽ‘_ôû«and“ÂstringŽ‘$ñÏtextŽ‘9Ùt«argumen¸ãts“for“writing“a“messageŽ¡to–UUthe“standard“output.Ž¡‘ -[¬LDF‘T2003.04.09.«]Ž‘YþØNo•¸ãw›Kòc“hec“king˜whether˜Ïline‘‰ffŽ‘®switchŽ‘8:¥«is˜ÏtrueŽ‘\|«bGefore˜calling˜Ïget‘‰ffŽ‘®normalŽ‘4Öf«(‘ª®).–Už!!“If˜a˜ÂP®9athŽŽ¡«whose‘ûÏline‘‰ffŽ‘®switchŽ‘9+·‘êÔÏtrueŽ‘Mg«is–ûmoGdi ed“sucš¸ãh“that“it's“no“longer“linear,‘ð$the“programmer“m˜ust“ensure“thatŽ¡Ïline‘‰ffŽ‘®switchŽ‘2ø«is–UUset“to“ÏfalseŽ‘™«!Ž¡‘ -[¬LDF‘T2003.08.14.«]Ž‘Y;Made‘UUÏverb‘ÿ}'oseŽ‘'<«non-ÂconstŽ‘ÕM«.‘qÇSetting–UUit“to“ÏtrueŽ‘oB«if“ÝVERBOSE_GLOBALŽ‘P°è«is“ÏtrueŽ‘í«.Ž¡Added‘UUÝVERBOSE_GLOBALŽ‘P°è«to–UUÈpspglb.web“«toGda¸ãy‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gÏis‘‰ffŽ‘®line‘ÿ}'arŽ‘H¶ä«(Âb•QÇo“olŽ‘¡fÏverb‘ÿ}'oseŽ‘<ùÛ«=‘ÇÏfalseŽ‘v\±;‘ª¨ÂstringŽ‘"ÏõÏtextŽ‘6îÙ«=‘ÇÝ""Ž‘ Íz«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹ð РŠn ý‘ì«240–­IS‘ÕXLINEAR’73DLDFPRÃŽG“·x«875Ž €n ý•@PÂ875.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olŽ‘#¡gP®9athŽ‘=2Ï«::‘Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘&«(Âb•QÇo“olŽ‘¡fÏverb‘ÿ}'oseŽ‘:2ñ;‘ª¨ÂstringŽ‘"ÏõÏtextŽ‘4'Á«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝVERBOSE_GLOBALŽ‘J>«)‘Ïverb‘ÿ}'oseŽ‘(Xu«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÿ9·_‘8àÏverb‘ÿ}'oseŽ‘"Ê=«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPath::is_lŽ‘kÆÜinear().\n"Ž’¦ #«;Ž¡‘ÂifŽ‘´ú«(Ïline‘‰ffŽ‘®switchŽ‘/¢Á«)‘±=·‘ÿý«LDF–UU2003.04.09.‘qÇAdded“this“conditional.‘o·±=Ž¡‘ÂreturnŽ‘Aæ½ÏtrueŽ‘T«U«;ަ‘ÂP•®9oin“tŽ‘2pŽ‘7÷Ÿ«(Ïget‘‰ffŽ‘®normalŽ‘0Št«(‘ª®));ަ‘ÂifŽ‘´ú«(±pŽ‘Ï·‘ÇÏoriginŽ‘½9«)‘·fŽ¡‘ÂifŽ‘)´û«(Ïverb‘ÿ}'oseŽ‘ ‘]«)‘·fŽ¡‘(ÂifŽ‘3´ü«(Ïtextޑ䷑ÇÝ""Ž‘ Íz«)‘ÏtextŽ‘ä«=‘ÇÝ"Path"Ž‘"Ín«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÏtextŽ‘åü·‘ÇÝ"È ÝisÈ Ýlinear.\n\n"Ž‘\M«;Ž¡‘·gŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::is_liŽ‘kÆÜnear().È Ý"Ž’žTA·‘ÇÝ"ReturningÈ Ýtrue.\n\nŽ‘kÆÜ"Ž‘tTY·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÏtrueŽ‘T«U«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘ÂifŽ‘)´û«(Ïverb‘ÿ}'oseŽ‘ ‘]«)‘·fŽ¡‘(ÂifŽ‘3´ü«(Ïtextޑ䷑ÇÝ""Ž‘ Íz«)‘ÏtextŽ‘ä«=‘ÇÝ"Path"Ž‘"Ín«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÏtextŽ‘åü·‘ÇÝ"È ÝisÈ Ýnon-linear.\n\nŽ‘kÆÜ"Ž‘qA«;Ž¡‘·gŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::is_liŽ‘kÆÜnear().È Ý"Ž’žTA·‘ÇÝ"ReturningÈ Ýfalse.\n\Ž‘kÆÜn"Ž‘y”V·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÏfalseŽ‘V–«;Ž¡‘·gŽ¡‘ -gŽŸÂ876.› üGet–$line“switc®9h.˜«[¬LDF‘T2002.11.03.«]Ž‘ZÍThis–š9function“returns“ÏtrueŽ‘ù -«for“ÂP®9athsŽ‘$O«that“are“created“or“setŽ¡using›UUt•¸ãw“o˜ÂP•®9oin“tsŽ‘&Î.«only‘ÿ*ª,˜and˜no˜connectors,˜as˜argumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.03.«]Ž‘XIúRenamed–—this“function“Ïget‘‰ffŽ–®line‘‰ffŽ“switchŽ‘Bm‘«(›ª®)“from“Ïis‘‰ffŽ‘®lineŽ‘ˆS«(˜).‘2\AbGout“to“add“Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘'¬‘«(˜),‘½!whic¸ãhŽ¡will–UUtest“whether“all“the“ÂP•®9oin“tsŽ‘&Î.«are“colinear“or“not.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIb•QÇo“olŽ‘C+¯Ïget‘‰ffŽ–®line‘‰ffŽ“switchŽ’ƒ,«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïline‘‰ffŽ‘®switchŽ‘g‰}«;Ž¡‘ -·gŽŸÂ877.‘ üT‘ÿ -«est–ÕTfor“cycles.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIb•QÇo“olŽ‘C+¯Ïis‘‰ffŽ‘®cycleŽ‘dzÇ«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïcycle‘‰ffŽ‘®switchŽ‘lçV«;Ž¡‘ -·gŽŸÂ878.‘ üSize›ÕT(n•®9um“b•QÇer˜of˜p“oin®9ts).ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ŽŽŽŒ‹ñ ß - Šn ý‘ì·x«878›­3DLDFPRÃŽG’í}PSIZE–ÕX(NUMBER“OF“POINTS)˜«241Ž €n ý•@P‘ -ÂinlineŽ‘)ŠIin®9tŽ‘;/@ÏsizeŽ‘LJœ«(‘ª®)ޤ ‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïp‘ÿ}'ointsŽ‘S Q±:ÏsizeŽ‘\«(‘ª¨);Ž¡‘ -·gŽ©Â879.– üSlopQÇe.“«[¬LDF‘T2002.11.05.«]Ž‘\OÊÏslop‘ÿ}'eŽ‘r‡•«(‘ª®)–écan“only“bGe“used“for“linear“ÂP®9athsŽ‘"7‰«.‘ ȃIt“returns“a“ÂrealŽ‘—««v‘ÿqÇalueŽ¡represenš¸ãting–ƒthe“slopGe“of“the“Ïtr–ÿ}'ac“e‘Cl«of–ƒa“line“on“the“ma‘Ž8jor“plane“represen˜ted“b˜y“the“Âc®9harŽ‘«argumen˜ts,‘ÎorŽ¡ÝINVALID_REALŽ‘?†D«,›B*if–=`the“ÂP®9athŽ‘ $«is“non-linear.‘iËF‘ÿ*ªor“example,˜ifŸü±È“·ŽŽ‘ÞG‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®1ŽŽŽŽŽ‘ƒ¦«is“a“ÂP®9athŽ‘ $±pŽ‘'Q„«andŸü±È“·ŽŽ‘M‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“±qŸÿ®0Ž‘|s±qŸÿ®1ŽŽŽŽŽ‘aH«is“the“trace“of“±pŽ‘ ‚À«on“theŽ¡x-y–é.plane,‘$then“±pŽ‘ñ.:Ïslop‘ÿ}'eŽ‘7Ë«(Ý'x'Ž‘F_±;‘ª¨Ý'y'Ž‘ñ«)“returns“a“ÂrealŽ‘05±m“«sucš¸ãh“that“±m–½€«=“(±b–›p·“±y[Ù«)±=x–é.«where“±b“«is“the“y-in˜tercept“ofŽ¡Ÿü±È·ŽŽ‘¸‘þãŽŽŽ‘ÖÏ!ŽŽŸN8±qŸÿ®0Ž‘|s±qŸÿ®1ŽŽŽŽŽ‘;Ý«and–UU±x“«and“±y‘±.«are“the“x“and“y-cošGordinates“of“p˜oin¸ãts“onŸü±È“·ŽŽ‘e ‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“±qŸÿ®0Ž‘|s±qŸÿ®1ŽŽŽŽŽ‘;Ý«.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.05.«]Ž‘X؃Changed–%this“function,‘/(so“that“Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘(;«(›ª®)“is“used“instead“of“Ïget‘‰ffŽ–®line‘‰ffŽ“switchŽ‘Bü«(˜)“(formerlyŽ¡\Ïis‘‰ffŽ‘®lineŽ‘ñ?«(‘ª®)").‘qµNo¸ãw,›U)it–Ucan“bGe“used“for“all“linear“ÂP®9athsŽ‘ o¾«,˜not“just“ones“created“using“the“constructor“for“lines.Ž¡Also,–UUit“wš¸ãas“commen˜ted-out.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ŽŸ ‘ -ÂrealŽ‘ ³/Ïslop‘ÿ}'eŽ‘6êú«(Âc®9harŽ‘jI±aŽ‘!z‘«=‘ÇÝ'x'Ž– w±;‘ª¨Âc®9harŽ‘ñ±bŽ‘"&³«=‘ÇÝ'y'Ž“«);ަÂ880.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ ³/P®9athŽ‘:D—«::‘Ïslop‘ÿ}'eŽ‘7Ï«(Âc®9harŽ‘jI±aŽ‘³y;‘ª¨Âc®9harŽ‘ñ±bŽ‘_›«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(·:Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘%}«(‘ª¨))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘7ó·‘_JÝ"ERROR!È ÝInÈ ÝPath::sloŽ‘o_pe().È ÝPathÈ ÝisÈ ÝnotÈ ÝliŽ’Ø^Ònear!\n"Ž’ Dl·Ž¡‘2Ý"ReturningÈ ÝINVALID_RŽ’šÿÉEAL\n"Ž’½Í7·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_REALŽ’m«;Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼Ïp‘ÿ}'ointsŽ‘S Q«[1Ž–]‘þŸ±~ŽŽ‘Ïslop‘ÿ}'eŽ‘7Ì«(·Ž“Ïp‘ÿ}'ointsŽ‘ $–«[0Ž“]±;‘ª¨aŽ‘óØ;‘ª¨bŽ‘õR«);Ž¡‘ -·gަÂ881.– üSubpath.“«[¬LDF‘T2002.11.05.«]Ž‘Zˆ6Ïsubp‘ÿ}'athŽ‘|˜«(‘ª®)–UUreturns“a“new“ÂP®9athŽ‘<«using“Ïp‘ÿ}'ointsŽ‘yê«[ÏstartŽ‘…M«]“throughŽ¡Ïp‘ÿ}'ointsŽ‘$•«[ÏendŽ‘ª—·‘Éå«1ޑɿ]–×from“·Ž‘ØÏthisŽ‘ Ž«.‘_HIf“the“optional“Âb•QÇo“olŽ‘‡¿«argumen¸ãt“ÏcycleŽ‘´ã«is“used,‘(ðthen“the“new“ÂP®9athŽ‘Í«will“bGe“a“cycle,Ž¡whether‘ý'·Ž‘ý(ÏthisŽ‘æ«is–ý'or“not.›TbOne“optional“connector“argumen¸ãt“can“bGe“used.˜If“it“is,‘Êit“will“bGe“the“only“connector.Ž¡Otherwise,–UUthe“connectors“from“·Ž‘UVÏthisŽ‘–a«are“used.Ž¡‘ -[¬LDF‘T2002.11.05.«]Ž‘Y;ÏstartŽ‘qâÝ«m¸ãust–UUbšGe“±<“ÏendŽ‘6«.‘qÇIt“is“not“p˜ossible“to“ha•¸ãv“e‘UUÏstartŽ‘/÷±>‘UUÏendŽ‘6«,›UUev“en˜if˜·Ž‘UVÏthisŽ‘–a«is˜a˜cycle.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.05.«]Ž‘Y½Rewrote– -!this“function.›,Made“Ïsubp‘ÿ}'athŽ‘%„ƒ«(‘ª®)“itself“and“its“argumen¸ãts“ÂconstŽ‘ßn«.˜Added“errorŽ¡handling‘UUcoGde.Ž¡‘ -[¬LDF‘T2003.07.16.«]Ž‘Y;Please–UUnote“that“ÏstartŽ‘/÷«and“ÏendŽ‘‹\«cannot“bGe“made“ÂconstŽ‘*¢«.Ž¡‘ -[¬LDF‘T2003.08.27.«]Ž‘YE‹Changed‘’¥Âin®9tŽ‘tì±iŽ‘y…«to‘’¥Âsizeu½‰™šs4Ž‘ÔwtŽ‘#"ž±iŽ‘*'7«in–’¥the“ÂforŽ‘¸{«loGops“that“compare“±iŽ‘ -—>«to“ÏstartŽ‘ª—«and“ÏendŽ‘sW«.‘)¸The“w•¸ãa“yŽ¡it–UUwš¸ãas“bGefore“caused“GCC“with“the“\È-Wall«"“option“to“issue“a“w˜arning.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·ŽŸ ‘ -ÂP®9athŽ‘%åíÏsubp‘ÿ}'athŽ‘G`O«(Âsizeu½‰™šs4Ž‘ÔwtŽ‘QÜÏstartŽ‘4×)±;‘ª¨Âsizeu½‰™šs4Ž‘ÔwtŽ‘ ü„ÏendŽ‘1Ý6±;‘ª¨ÂconstŽ‘Ô}b•QÇo“olŽ‘9uÏcycleŽ‘Rµc«=‘ÇÏfalseŽ‘v\±;‘ª¨ÂconstŽ‘Ô}stringŽ‘@øýÏc–ÿ}'onne“ctorŽ‘oï«=‘ÇÝ""Ž‘ Íz«)‘TˆÂconstŽ‘)Õ«;ŽŽŽŒ‹ò ê÷ Šn ý‘ì«242›­SUBP–ÿJªA“TH’:kÒ3DLDFPRÃŽG˜·x«882Ž €n ý•@PÂ882.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘%Ï6P®9athŽ‘?`ž«::‘Ïsubp‘ÿ}'athŽ‘"zf«(Âsizeu½‰™šs4Ž‘ÔwtŽ‘;%ÏstartŽ‘4Àr±;‘ª¨Âsizeu½‰™šs4Ž‘ÔwtŽ‘ åÍÏendŽ‘1Ʊ;‘ª¨ÂconstŽ‘½Æb•QÇo“olŽ‘9G¨ÏcycleŽ‘OÀݱ;‘ª¨ÂconstŽ‘½ÆstringŽ‘@ËÏc–ÿ}'onne“ctorŽ‘l*i«)‘=ÑÂconstŽ‘·f‘=ÑÂb•QÇo“olŽŽ¡‘2ÝDEBUGŽ‘Ov«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂP®9athŽ‘9æ¼±pŽ‘>;ŽŸÂ883.‘ ü«[¬LDF‘T2002.11.05.«]Ž‘[˜There–e!is“no“\ÝINVALID_PATHŽ‘?†D«",›©so“I‘dÛreturn“an“empt¸ãy“one,˜if“ÏstartŽ‘vƒ·‘ŒÏendŽ‘lÇ«.‘¡+SinceŽ¡ÂopQÇeratorŽ‘+–µ·Ž‘3]Ó«(‘ª¨)–=¬currenš¸ãtly“doGesn't“exist,‘wÂthere's“not“m˜uc˜h“pGoin˜t“in“de ning“ÝINVALID_PATHŽ‘CÃð«,‘wÂsince“there's“noŽ¡w•¸ãa“y–UUto“compare“another“ÂP®9athŽ‘<«to“it.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÏstartŽ‘Le·‘ÇÏendŽ‘§Ê«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘*'c·‘q»Ý"ERROR!È ÝInÈ ÝPath::subŽ‘lqpath():\n"Ž’¤é„·‘q»Ý"TheÈ Ý\"start\"È ÝargumŽ‘lqentÈ ÝisÈ Ý<È ÝtheÈ Ý\"end\"Ž’ÕqC\ŽŽ¡‘(È Ýargument.\n"Ž‘o]·‘ÇÝ"ReturningÈ ÝemptyÈ ÝPatŽ‘kÆÜh.\n\n"Ž’“ÔG·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼±pŽ‘<;Ž¡‘ -·gŽŸÂ884.‘ ü«[¬LDF‘T2002.11.05.«]Ž‘Zˆ6More–UUerror“handling.‘qÇIn“these“cases,“it's“pGossible“to“reco•¸ãv“er.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÏstartŽ‘Le±>‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ‘\«(‘ª¨)–8à·“«1Ž‘8á)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘*'c·‘q»Ý"ERROR!È ÝInÈ ÝPath::subŽ‘lqpath():\n"Ž’¤é„·‘q»Ý"\"start\"È ÝargumentÈ Ž‘lqÝisÈ Ý>È Ýpoints.size()È Ý-Ž’ÕqC\ŽŽ¡‘(È Ý1.\n"Ž‘JÍr·‘ÇÝ"WillÈ ÝtryÈ ÝtoÈ ÝrecoverŽ‘kÆÜÈ ÝbyÈ ÝsettingÈ ÝstartÈ Ý=È Ž’ÔÆ Ý0.\n\n"Ž’üÔ ·‘ÇÏ ushŽ‘€«;Ž¡‘ÏstartŽ‘,Lg«=‘Ç0Ž‘Ç;Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÏendŽ‘§Ê±>‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ‘\«(‘ª¨))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘)ðò·‘;JÝ"ERROR!È ÝInÈ ÝPath::subŽ‘l;path():\n"Ž’¤|¢·‘;JÝ"\"end\"È ÝargumentÈ ÝisŽ‘l;È Ý>È Ýpoints.size().\n"Ž’Øü„·Ž¡‘(Ý"WillÈ ÝtryÈ ÝtoÈ ÝrecoverŽ’ÿÈÈ ÝbyÈ ÝsettingÈ ÝendÈ Ý=È ÝpoŽ’ùÿŒints.size().\n\n"Ž’VŒÙ·‘ÇÏ ushŽ‘€«;Ž¡‘ÏendŽ‘'§Ì«=‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ‘\«(‘ª¨);Ž¡‘ -·gŽŸÂ885.‘ ü«[¬LDF‘T2002.11.05.«]Ž‘Y«If–x4a“Ïc–ÿ}'onne“ctorŽ‘0OB«argumenš¸ãt“is“spGeci ed,‘¤nall“w˜e“ha˜v˜e“to“do“is“put“the“appropriate“ÂP•®9oin“tsŽŽ¡«from‘UUÏp‘ÿ}'ointsŽ‘!Ï?«onš¸ãto‘UU±pŽ‘]U:Ïp‘ÿ}'ointsŽ‘$•«,–UUput“Ïc–ÿ}'onne“ctorŽ‘2 „«on˜to“±pŽ›]U:Ïc–ÿ}'onne“ctorsŽ‘/4.«,“and“return“±pŽ˜«.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïc–ÿ}'onne“ctorŽ‘.%ò·6«=‘ÇÝ""Ž‘ Íz«)‘·fŽ¡‘ÂforŽ‘%舫(Âsizeu½‰™šs4Ž‘ÔwtŽ‘R©±iŽ‘%‹µ«=‘ÇÏstartŽ‘Le«;‘ÿý±iŽ‘ 9 <‘ÇÏendŽ‘§Ê«;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘ÂifŽ‘)´û«(±iŽ‘9 ·‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ‘\«(‘ª¨))‘·fŽ¡‘(Ïc‘ÿ}'errŽ‘>Y‰·‘£ßÝ"ERROR!È ÝInÈ ÝPath::subŽ‘l££path():\n"Ž’¥MÌ·‘£ßÝ"endÈ ÝargumentÈ Ý>È ÝpoinŽ‘l££ts.size().\n"Ž’µ ÷Ž¡‘<Ý"BreakingÈ ÝoutÈ ÝofÈ ÝlooŽ’¤ÿÊp.\n\n"Ž’Í 5·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂbreakŽ‘D¡h«;Ž¡‘·gŽ¡‘±pŽ‘#:Ïp‘ÿ}'ointsŽ–$•±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïp‘ÿ}'ointsŽ“«[±iŽ‘qô«]));Ž¡‘·gŽ¡‘±pŽ‘:Ïc–ÿ}'onne“ctorsŽ‘/4.±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ïc–ÿ}'onne“ctorŽ‘+^Ú«);Ž¡‘±pŽ‘:Ïset‘‰ffŽ‘®cycleŽ‘&*«(ÏcycleŽ‘y5«);Ž¡‘ÂreturnŽ‘7æ¼±pŽ‘<;Ž¡‘ -·gŽŽŽŒ‹ó ü Šn ý‘ì·x«886›­3DLDFPRÃŽG’:kÒSUBP–ÿJªA“TH˜«243Ž €n ý•@PÂ886.‘ ü«[¬LDF‘T2002.11.05.«]Ž‘ZNTIf–sno“Ïc–ÿ}'onne“ctorŽ‘1•À«argumenš¸ãt“is“spGeci ed,‘'then“w˜e“ha˜v˜e“to“get“the“appropriate“connec-ޤ tors– Pfrom“·Ž‘ QÏthisŽ‘ø«.‘YpThis“is“slighš¸ãtly“tric˜ky‘ÿ*ª,‘ëbšGecause“Ïc–ÿ}'onne“ctorsŽ‘5LΫdo˜esn't“ha•¸ãv“e– Pto“conš¸ãtain“a“Ïc–ÿ}'onne“ctorŽ‘1wz«for“eac˜h“pairŽ¡of‘fjÂP•®9oin“tsŽ‘&ðX«that–fjis“joined“in“a“ÂP®9athŽ‘÷Ϋ.‘¥So,‘j° rst“wš¸ãe“m˜ust“ ll“up“±pŽ‘nj:Ïc–ÿ}'onne“ctorsŽ‘2š˜«so“that“w˜e“can“tell“whic˜h“ones“toŽ¡use.Ž¡‘ -[¬LDF‘T2002.11.05.«]Ž‘YEµActually‘ÿ*ª,›¢-with–’Ïthe“constructors“that“exist,˜there“will“either“bGe“only“one“connector“or“aŽ¡connector–0$for“eacš¸ãh“pair“of“ÂP•®9oin“tsŽ‘&ƒÌ«that“need“to“bGe“joined.‘eaHo˜w˜ev˜er,‘7”it“w˜ould“bGe“easy“to“write“functions“thatŽ¡add–UUor“remo•¸ãv“e–UUconnectors,“so“it's“bGest“to“ha•¸ãv“e–UUthis“routine.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -±pŽ‘Ï«=‘Ç·Ž‘ÇÏthisŽ‘²Ï«;ަ‘ -ÂunsignedŽ‘:7shortŽ‘X²±aŽ‘`ú«=‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ‘\«(‘ª¨);ަ‘ -ÂifŽ‘´ù«(·:ÏcycleŽ‘y5«)‘±aŽ‘ H·«=ŽŽ‘eœ1Ž‘$e;ަ‘ -Âin®9tŽ‘¤ø±iŽ‘ì«;Ž¡‘ -ÂstringŽ‘+%N±sŽ‘2œf«=‘ÇÏc–ÿ}'onne“ctorsŽ‘1ûF±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨);ަ‘ -ÂforŽ‘臫(±iŽ‘9 «=‘ÇÏc–ÿ}'onne“ctorsŽ‘1ûF±:ÏsizeŽ‘\«(‘ª¨);‘ÿý±iŽ‘ 9 <‘ÇaŽ‘H«;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘±pŽ‘:Ïc–ÿ}'onne“ctorsŽ‘/4.±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(±sŽ‘°«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"p.connectors.size()Ž‘kÆÜÈ Ý==È Ý"Ž’‰TM·‘DZpŽ‘Ï:Ïc–ÿ}'onne“ctorsŽ‘/4.±:ÏsizeŽ‘\«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;ަ‘ -ÂP®9athŽ‘%溱qŽ‘*¹d«;ަ‘ -ÂforŽ‘臫(Âsizeu½‰™šs4Ž‘ÔwtŽ‘R©±iŽ‘%‹µ«=‘ÇÏstartŽ‘Le«;‘ÿý±iŽ‘ 9 <‘ÇÏendŽ‘§Ê«;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘·fŽ¡‘±qŽ‘Ò¬:Ïp‘ÿ}'ointsŽ–$•±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(±pŽ‘:Ïp‘ÿ}'ointsŽ“«[±iŽ‘qô«]));Ž¡‘ÂifŽ‘´ú«(±iŽ‘9 <‘ÇpŽ‘Ï:Ïc–ÿ}'onne“ctorsŽ–/4.±:ÏsizeŽ‘\«(‘ª¨))‘±qŽ‘ Òª:Ïc–ÿ}'onne“ctorsŽ“±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(±pŽ‘:Ïc–ÿ}'onne“ctorsŽ“«[±iŽ‘qô«]);Ž¡‘ -·gŽ¡‘ -±qŽ‘Ò«:Ïset‘‰ffŽ‘®cycleŽ‘&*«(ÏcycleŽ‘y5«);Ž¡‘ -ÂreturnŽ‘-æ»±qŽ‘2¹e«;‘qÇ·gޤÂ887.‘ üGet‘ÕTpQÇoin®9t.Ž¡888.‘ ünon-const‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.11.05.«]Ž‘Y;Made–UUnon-ÂinlineŽ‘4ó«.‘qÇChanged“return“v‘ÿqÇalue“to“ÂconstŽ‘!÷P•®9oin“tŽ‘@o”«&Ž‘H6².Ž¡‘ -[¬LDF‘T2003.11.28.«]Ž‘Y˜{BUG‘åpFIX:–å•Changed,‘ ¥so“that“Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Jt«(‘ª®)“is“called“on“the“ÂP•®9oin“tŽ‘Ý«.‘"†This“en¸ãtailedŽ¡making–ÅÃthis“function“non-ÂconstŽ‘ÕM«.‘ÃAdded“ÂconstŽ‘"`Ó«vš¸ãersion“bGelo˜w.‘ÃThis“ma˜y“actually“bGe“a“bug,‘áÞrather“than“aŽ¡bug–s x,‘mdepGending“on“hoš¸ãw“this“function“is“used“elsewhere.‘U|Ho˜w˜ev˜er,‘mI‘]really“think“Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘I R«(‘ª®)“shouldŽ¡bGe‘UUcalled.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂconstŽ‘(*£P•®9oin“tŽ‘G@«&Ž‘Ná^Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘vC¦«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S±aŽ‘quƒ«);ŽŽŽŒ‹ô -\ Šn ý‘ì«244–­NON-ÂCONST‘ÕX­VERSION’úAÕ3DLDFPRÃŽG“·x«889Ž €n ý•@PÂ889.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂconstŽ‘(*£P•®9oin“tŽ‘G@«&Ž‘Ná^ÂP®9athŽ‘hrÆ«::‘Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘(bL«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S±aŽ‘quƒ«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(±aŽ‘H<‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ‘\«(‘ª¨))‘·fŽ¡‘«(Ïp‘ÿ}'ointsŽ‘$•«[±aŽ‘I0«])‘þŸ±~ŽŽ‘Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Jà«(‘ª¨);Ž¡‘ÂreturnŽ‘Aæ½·Ž‘Fæ¾Ïp‘ÿ}'ointsŽ‘b S«[±aŽ‘I0«];Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘4w0·‘Á‡Ý"ERROR!È ÝInÈ ÝPath::getŽ‘lÁK_point():\n"Ž—° ·‘Á‡Ý"ArgumentÈ ÝisÈ Ý>=È ÝsizeŽ‘lÁKÈ ÝofÈ ÝPath.\n"Ž“·Ž¡‘2Ý"ReturningÈ ÝINVALID_PŽ’šÿÉOINT.\n\n"Ž’ÒÍ+·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gŽ¡‘ -gŽŸÂ890.‘ üconst‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.11.28.«]Ž‘Y;Added–UUthis“v¸ãersion.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏget‘‰ffŽ‘®p‘ÿ}'ointŽ‘PQæ«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S±aŽ‘quƒ«)‘UUÂconstŽ‘*¢«;ŽŸÂ891.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžP®9athŽ‘B«::‘Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘(bL«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S±aŽ‘quƒ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(±aŽ‘H<‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ‘\«(‘ª¨))‘·fŽ¡‘ÂP•®9oin“tŽ‘<ï ±pŽ‘D¾¸«=‘Ç·Ž‘Ç«(Ïp‘ÿ}'ointsŽ‘$•«[±aŽ‘I0«]);ަ‘±pŽ‘#:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÂreturnŽ‘Aæ½±pŽ‘F;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘4w0·‘Á‡Ý"ERROR!È ÝInÈ ÝPath::getŽ‘lÁK_point():\n"Ž—° ·‘Á‡Ý"ArgumentÈ ÝisÈ Ý>=È ÝsizeŽ‘lÁKÈ ÝofÈ ÝPath.\n"Ž“·Ž¡‘2Ý"ReturningÈ ÝINVALID_PŽ’šÿÉOINT.\n\n"Ž’ÒÍ+·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gŽ¡‘ -gŽŸÂ892.‘ üGet–ÕTlast“pQÇoin®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.05.10.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2002.11.05.«]Ž‘Y;Made–UUnon-ÂinlineŽ‘4ó«.‘qÇChanged“return“v‘ÿqÇalue“to“ÂconstŽ‘!÷P•®9oin“tŽ‘@o”«&Ž‘H6².ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂconstŽ‘(*£P•®9oin“tŽ‘G@«&Ž‘Ná^Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ’‰œ«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹õ Ü Šn ý‘ì·x«893›­3DLDFPRÃŽG’„GET–ÕXLAST“POINT˜«245Ž €n ý•@PÂ893.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂconstŽ‘(*£P•®9oin“tŽ‘G@«&Ž‘Ná^ÂP®9athŽ‘hrÆ«::‘Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘;$B«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïp‘ÿ}'ointsŽ›$•±:ÏsizeŽ‘\«(‘ª¨)–Ç·6«=“0Ž‘Ç)‘ÂreturnŽ‘(溷Ž‘-æ»Ïp‘ÿ}'ointsŽ‘I P«[Ïp‘ÿ}'ointsŽ˜±:ÏsizeŽ‘\«(‘ª¨)–8à·“«1Ž‘8á];Ž¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘5ž4·‘è‹Ý"ERROR!È ÝInÈ ÝPath::getŽ‘mèO_last_point():\n"Ž’Ì—·‘è‹Ý"PathÈ ÝisÈ Ýempty.\n"Ž‘h×H·Ž¡‘2Ý"ReturningÈ ÝINVALID_PŽ’šÿÉOINT.\n\n"Ž’ÒÍ+·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gŽ¡‘ -gŽŸÂ894.‘ üGet‘ÕTsize.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔinlineŽ‘Osizeu½‰™šs4Ž‘ÔwtŽ‘njÅÏget‘‰ffŽ‘®sizeŽ’¹Ý«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïp‘ÿ}'ointsŽ‘S Q±:ÏsizeŽ‘\«(‘ª¨);Ž¡‘ -·gŽŸÂ895.‘ üGet‘ÕTnormal.ŽŽŽŒ‹ö !¹ Šn ý‘ì«246›ÂP–ÿ -«A“TH‘ÕX­VERSION’!13DLDFPRÃŽG˜·x«896Ž €n ý•@PÂ896.› üP•®9ath‘õÓv“ersion.˜«[¬LDF‘T2002.11.05.«]Ž‘YÅÛÏget‘‰ffŽ‘®normalŽ’ŠPO«(‘ª®)–’úreturns“a“unit“vš¸ãector“represen˜ting“the“normal“to“theޤ plane–f -of“the“ÂP®9athŽ‘]x·Ž‘$]yÏthisŽ‘5I/«,‘j8if“·Ž‘f ÏthisŽ›·Ë«is“planar.‘£çIf“the“ÂP•®9oin“tsŽ‘&on“·Ž‘f ÏthisŽ˜«are“colinear“and“there“are“no“connectorsŽ¡that–˜pcould“mak¸ãe“the“ÂP®9athŽ›ÂD«non-linear,‘©6then“ÏoriginŽ‘"'«((0±;–ª¨«0±;“«0))–˜pis“returned.‘;If“the“ÂP®9athŽ˜«is“neither“planar“norŽ¡linear,‘UUÏget‘‰ffŽ‘®normalŽ‘3ßÉ«(‘ª®)–UUreturns“ÝINVALID_POINTŽ‘H–«.Ž¡‘ -[¬LDF‘T2002.11.05.«]ŽŽ¡·Ž‘ -Ïget‘‰ffŽ‘®normalŽ‘:Šu«(›ª®)–> rst“c•¸ãhec“ks–>whether“a“ÂP®9athŽ‘ Çà«con¸ãtains“no“ÂP•®9oin“tsŽ‘(Z«or“only“one“ÂP•®9oin“tŽ‘µ†«.‘ÂIf“so,‘L¸Ïget‘‰ffŽ‘®normalŽ‘4×,«(˜)Ž¡‘ -returns‘UUÝINVALID_POINTŽ‘H–«.Ž©·Ž‘ -«Then–KÒit“c•¸ãhec“ks–KÒwhether“the“ÂP®9athŽ‘!)«has“connnectors“that“mighš¸ãt“mak˜e“the“ÂP®9athŽ‘!)«non-planar,‘‰qev˜en“if“theŽ¡‘ -ÂP•®9oin“tsŽ‘.DÙ«lie–!Tin“a“plane.›ÕÄIf“it“doGes,‘TTit“returns“ÝINVALID_POINTŽ‘Hç•«.˜Note“that“there“is“no“guaran¸ãtee“that“theŽ¡‘ -connectors–UUactually“Ïwil‘‚Øl‘]Þ«mak¸ãe“the“ÂP®9athŽ‘<«non-planar.ަ·Ž‘ -«Then–èit“c•¸ãhec“ks–èwhether“the“ÂP®9athŽ‘­4«has“only“t•¸ãw“o‘èÂP•®9oin“tsŽ‘"±l«.‘/NIf–èit“doGes,‘µËÏget‘‰ffŽ‘®normalŽ‘3@?«(‘ª®)“returns“the“ÂP•®9oin“tŽ‘ ¶«(0±;–ª¨«0±;“«0),Ž¡‘ -bšGecause–UUthe“ÂP®9athŽ‘<«will“b˜e“linear.ަ·Ž‘ -«Then–¨ it“gets“the“cross“proGduct“±bŸÿ®0Ž›$“«ofŸü±È“·ŽŽ‘ I‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®1ŽŽŽŽŽ‘Y&«andŸü±È“·ŽŽ‘ I‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®2ŽŽŽŽŽ‘±«,‘¼Ówhere“±pŸÿ®0Ž˜«and“±pŸÿ®1Ž˜«are“the“ rst“and“second“ÂP•®9oin“tsŽ‘'sÄ«onŽ¡‘ -the‘‡ÂP®9athŽ‘’ë«,‘Jand–‡±pŸÿ®2Ž‘}ú«is“the“next“ÂP•®9oin“tŽ‘!V«on“the“ÂP®9athŽ›”r«suc¸ãh“that“±bŸÿ®0Ž‘C‹·6«=‘Ç(0±;–ª¨«0±;“«0).‘UØIf–‡no“ÂP•®9oin“tsŽ‘&&’«on“the“ÂP®9athŽ˜«ful llŽ¡‘ -this–UUcondition,“then“all“of“the“ÂP•®9oin“tsŽ‘&Î.«are“colinear,“so“Ïget‘‰ffŽ‘®normalŽ‘3ßÉ«(‘ª®)“returns“ÏoriginŽ‘Kv«.ަ·Ž‘ -«If,›Ñho•¸ãw“ev“er,˜±bŸÿ®0Ž‘C‹·6«=‘Ç(0±;–ª¨«0±;“«0)–pexists,˜then“cross“proGducts“±bŸÿ´xŽ‘ T«are“calculated“usingŸü±È“·ŽŽ‘¤W‘þãŽŽŽ‘gþ!ŽŽŸN8“±pŸÿ®0Ž‘|s±pŸÿ®1ŽŽŽŽŽ‘Æ«and“the“direction“v¸ãectorsŽ¡Ÿü±È‘ -·ŽŽ‘ç!‘þãŽŽŽ‘®6!ŽŽŸN8‘ -±pŸÿ®0Ž‘|s±pŸÿ´xŽŽŽŽŽ‘! ‡«for–‹/the“rest“of“the“ÂP•®9oin“tsŽ‘'9â±pŸÿ´xŽ‘”«on“the“ÂP®9athŽ‘“«.‘TIf“and“only“if“±bŸÿ´xŽ›)¼«=‘ رbŸÿ®0Ž‘|s«,‘˜¥or“±bŸÿ´xŽ˜«=‘ Ø·±bŸÿ®0Ž‘|s«,‘˜¥or“±bŸÿ´xŽ˜«=‘ Ø(0±;–ª¨«0±;“«0)‘‹/forŽ¡‘ -all–òþ±bŸÿ´xŽ‘ä«,›©then“the“ÂP®9athŽ‘w`«is“planar,˜and“Ïget‘‰ffŽ‘®normalŽ‘3}r«(‘ª®)“returns“·±bŸÿ®0Ž‘oq«(see“explanation“of“sign“bGelo¸ãw).‘QOtherwise,Ž¡‘ -the‘UUÂP®9athŽ‘<«is–UUnon-planar,“and“Ïget‘‰ffŽ‘®normalŽ‘3ßÉ«(‘ª®)“returns“ÝINVALID_POINTŽ‘H–«.ަ‘ -[¬LDF‘T2003.06.04.«]Ž‘XP™Revš¸ãersing–³the“sign“of“±bŸÿ®0Ž‘&«ensures“that“the“normal“will“pGoin˜t“in“the“direction“of“the“pGositiv˜eŽ¡y-axis,›Ï‚when–® a“plane“ gure“is“created“in“the“x-z“plane,˜using“one“of“the“constructors“taking“a“ÂP•®9oin“tŽ‘ öb«argumen¸ãtŽ¡for–˜¾the“cen•¸ãter,‘¾vÂrealŽ‘µ «argumen“ts–˜¾for“the“dimensions,‘¾vand“three“ÂrealŽ‘U«argumen¸ãts“for“the“rotation“abGout“the“ma‘Ž8jorŽ¡axes.›iIf–ýnon-zero“argumen¸ãts“are“used“for“rotation,‘' -the“normal“will“bGe“rotated“accordingly‘ÿ*ª.˜This“directionŽ¡considered–%jto“bšGe“\outside".‘aÎIn“3DLDF,“the“constructors“generally“generate“ÂP•®9oin“tsŽ‘&nX«mo¸ãving“ab˜out“the“ gureŽ¡in–[9the“coun•¸ãter-clošGc“kwise–[9direction“(as“seen“from“a“ÂP•®9oin“tŽ‘"Pº«with“a“p˜ositiv¸ãe“y-co˜ordinate).‘ƒrHo•¸ãw“ev“er,‘\²accordingŽ¡to–$ˆHu¸ãw“Jones,‘.KÏComputer–gGr›ÿ}'aphics“Thr˜ough“Key“Mathematics«,–.Kp.›$ˆ197,“\outside"˜is˜considered˜to˜bGe˜the˜sideŽ¡of–Ïta“plane,‘ê;where“the“ÂP•®9oin“tsŽ‘%Âl«are“meanš¸ãt“to“bGe“tra˜v˜ersed“in“the“cloGc˜kwise“direction.–E'!!“W‘ÿ*ªatc˜h–Ïtout“for“problemsŽ¡that–UUma¸ãy“arise“from“this“discrepancy!ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.05.«]Ž‘Y;Rewrote–UUthis“function.Ž¡‘ -[¬LDF‘T2003.06.04.«]Ž‘Y75Changed–„Osign“of“the“normal,› when“it's“returned,˜in“the“cases“where“a“propGer“normal“isŽ¡found–UU(not“ÝINVALID_POINTŽ‘Kpë«or“ÏoriginŽ‘Kv«).‘qÇSee“explanation“abGo•¸ãv“e.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔP•®9oin“tŽ‘N}qÏget‘‰ffŽ‘®normalŽ‘å«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ897.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžP®9athŽ‘B«::‘Ïget‘‰ffŽ‘®normalŽ‘1Šx«(‘ª®)‘UUÂconstŽ‘*¢·f‘UUÂb•QÇo“olŽ‘ö»ÝDEBUGŽ‘:„,«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPath::get_Ž‘kÆÜnormal().\n"Ž’®8·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘)´û«(Ïp‘ÿ}'ointsŽ‘$•±:ÏsizeŽ‘\«(‘ª¨)–Ç·“«0Ž‘Ç)‘·fŽ¡‘(Ïc‘ÿ}'errŽ‘B“M·‘Ý£Ý"WARNING!È ÝInÈ ÝPath::gŽ‘pÝget_normal():\n"Ž’ÈE·Ž¡‘<Ý"PathÈ ÝisÈ ÝemptyÈ ÝorÈ ÝcoŽ’¤ÿÊntainsÈ ÝonlyÈ ÝoneÈ ÝPoinŽ’ ÿŽt.È Ý"Ž’&M·‘ÇÝ"ReturningÈ ÝINVALID_PŽ‘kÆÜOINT.\n\n"Ž’£”>·Ž¡‘<Ï ushŽ‘Q¹«;Ž¡‘(ÂreturnŽ‘Kæ¾ÝINVALID_POINTŽ’¬ÿ«;Ž¡‘·gŽŽŽŒ‹÷ & Šn ý‘ì·x«898›­3DLDFPRÃŽG’!1ÂP–ÿ -«A“TH‘ÕX­VERSION˜«247Ž €n ý•@PÂ898.‘ ü«[¬LDF‘T2002.11.05.«]Ž‘ZžWConnectors–kvother“than“the“ones“in“the“conditional“bGelo¸ãw“could“cause“the“ÂP®9athŽ‘hP«toޤ bGe–UUnon-linear“or“non-planar,“ev¸ãen“if“the“ÂP•®9oin“tsŽ‘&Î.«lie“on“a“line“or“in“a“plane.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂforŽ‘臫(Âv®9ectorŽ‘ªH·hÂstringŽ‘Ïø·i‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏc–ÿ}'onne“ctorsŽ–1ûF±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏc–ÿ}'onne“ctorsŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘·fŽ¡‘ÂifŽ‘´ú«(·:«(·Ž‘ÏiterŽ‘’·‘ÇÝ".."Ž–†T·_‘8àŽ‘8áÏiterŽ›Ê÷·‘ÇÝ"--"Ž“·_‘8àŽ‘8áÏiterŽ˜·‘ÇÝ"..."Ž‘ÆQ·_‘8àŽ‘8áÏiterŽ˜·‘ÇÝ"---"Ž‘q«))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘3|Á·‘ÇÝ"WARNING!È ÝInÈ ÝPath::gŽ‘kÆÜet_normal():\n"Ž’½Ô/·‘ÇÝ"ConnectorÈ ÝmayÈ ÝmakeÈ Ž‘kÆÜÝPathÈ Ýnon-linearÈ ÝorÈ ÝnŽ’ÔÆ \ŽŽ¡‘2on-planar:È Ý"Ž‘tMa·‘ÇŽ‘ÇÏiterŽ‘Y/·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÝ"ReturningÈ ÝINVALID_PŽ‘kÆÜOINT.\n\n"Ž’£”>·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gŽ¡‘ -gŽŸÂ899.‘ ü«[¬LDF‘T2002.11.05.«]Ž‘Zˆ6Tw•¸ão›UUpGoin“ts˜determine˜a˜line.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïp‘ÿ}'ointsŽ‘$•±:ÏsizeŽ‘\«(‘ª¨)–Ç·“«2Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘/“·‘`ëÝ"WARNING!È ÝInÈ ÝPath::gŽ‘q`¯et_normal():\n"Ž’ÉÕ·Ž¡‘(Ý"PathÈ ÝhasÈ Ý2È ÝPoints.È Ž’ÿÈ ÝReturningÈ Ýorigin.\nŽ’ùÿŒ\n"Ž’ ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼ÏoriginŽ‘RÜÝ«;Ž¡‘ -·gŽŽŽŒ‹ø ;ú Šn ý‘ì«248›ÂP–ÿ -«A“TH‘ÕX­VERSION’!13DLDFPRÃŽG˜·x«900Ž €n ý•@PÂ900.ޤ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž© ‘ -Âv®9ectorŽ‘)ªI·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'ointsŽ‘ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏp0Ž‘5^«(·Ž‘Ž‘ -ÏiterŽ‘KŸÿ®+‘ÿ+ŽŽ‘' «);ަ‘ -ÂP•®9oin“tŽ‘(ïžÏp1Ž‘5^«(·Ž‘Ž‘ -ÏiterŽ‘KŸÿ®+‘ÿ+ŽŽ‘' «);ަ‘ -ÂP•®9oin“tŽ‘(ïžÏp2Ž‘5^«;ަ‘ -ÂP•®9oin“tŽ‘(ïžÏa0Ž‘5^«(Ïp1Ž–O ·‘8àÏp0Ž“«);ަ‘ -ÂP•®9oin“tŽ‘(ïžÏa1Ž‘5^«;ަ‘ -ÂP•®9oin“tŽ‘(ïžÏb0Ž‘4ƒ…«;Ž¡‘ -ÂwhileŽ‘(C-«(Ïb0Ž‘Zÿ·‘ÇÏoriginŽ‘ö·^‘8àÏiterŽ‘Êö·6«=‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏendŽ‘ಫ(‘ª¨))‘·fަ‘Ïp2Ž‘"ÝÚ«=‘Ç·Ž‘ÇŽ‘ ÇÏiterŽ‘Ÿÿ®+‘ÿ+ŽŽ‘)Ù8«;ަ‘Ïa1Ž‘"ÝÚ«=‘ÇÏp2Ž‘¸·‘8àÏp0Ž‘O «;ަ‘Ïb0Ž‘"[«=‘ÇÏa0Ž‘ÝØ±:Ïcr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé«(Ïa1Ž‘ À«);ަ‘ -·gަ‘ -ÂifŽ‘´ù«(ÏiterŽ‘’·‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏendŽ‘ಫ(‘ª¨)–8à·^“Ïb0Ž‘“ß·‘ÇÏoriginŽ‘½9«)‘·fަ‘ÂifŽ‘ "®«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘×$·‘}íÝ"ExitingÈ ÝPath::get_nŽ‘l}±ormal().È Ý"Ž’¥è·‘}íÝ"PointsÈ ÝareÈ ÝallÈ ÝcoliŽ‘l}±near.\n"Ž’šî·ަ‘2Ý"ReturningÈ Ýorigin.\nŽ’šÿÉ\n"Ž’® @·‘ÇÏ ushŽ‘€«;ަ‘ÂreturnŽ‘7æ¼ÏoriginŽ‘RÜÝ«;ަ‘ -·gަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïb0Ž‘“ç±:ÏshowŽ‘Šÿ«(Ý"b0"Ž‘†\«);ަ‘ -Ïb0Ž‘“è±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);ަ‘ -ÂifŽ‘´ù«(ÏiterŽ‘’·‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏendŽ‘ಫ(‘ª¨)–8à·^“Ïb0Ž‘“ß·6«=‘ÇÏoriginŽ‘½9«)‘·fަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fަ‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ExitingÈ ÝPath::get_nŽ‘kÆÜormal().È Ý"Ž’£”>·‘ÇÝ"PointsÈ ÝareÈ ÝallÈ ÝcoliŽ‘kÆÜnearÈ ÝexceptÈ ÝforÈ Ýone.Ž’ÔÆ \n"Ž’çÔ·ަ‘2Ý"ReturningÈ Ýnormal.\nŽ’šÿÉ\n"Ž’® @·‘ÇÏ ushŽ‘€«;ަ‘·gަ‘ÂreturnŽ‘7æ¼·Ž‘?­ÚÏb0Ž‘KAÁ«;ަ‘ -·gŽ¡‘ -ÂP•®9oin“tŽ‘(ïžÏb1Ž‘4ƒ…«;Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝsecondÈ ÝwhiŽ‘kÆÜle.\n"Ž’Ž”J·‘ÇÏ ushŽ‘€«;ަ‘ -ÂwhileŽ‘(C-«(ÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏendŽ‘ಫ(‘ª¨))‘·fަ‘Ïp2Ž‘"ÝÚ«=‘Ç·Ž‘ÇŽ‘ ÇÏiterŽ‘Ÿÿ®+‘ÿ+ŽŽ‘)Ù8«;ަ‘Ïa1Ž‘"ÝÚ«=‘ÇÏp2Ž‘¸·‘8àÏp0Ž‘O «;ަ‘Ïb1Ž‘"[«=‘ÇÏa0Ž‘ÝØ±:Ïcr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé«(Ïa1Ž‘ À«);ަ‘ÂifŽ‘´ú«(Ïb1Ž‘Zÿ·6«=‘ÇÏoriginŽ‘½9«)ަ‘(±=·‘ÿý«[¬LDF‘T2002.11.03.«]Ž‘T7This‘UUÂifŽ‘ -M«merely›UUprev•¸ãen“ts˜a˜w“arning˜from˜bGeing˜issued˜b“y˜Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘3êÊ«(‘ª®).‘o·±=ަ‘Ïb1Ž‘)“ê±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïb1Ž‘“ç±:ÏshowŽ‘Šÿ«(Ý"b1"Ž‘†\«);ަ‘ÂifŽ‘´ú«(·:«(Ïb1Ž‘Zÿ·‘ÇÏoriginŽ‘ö·_‘8àÏb1Ž–“ß·‘ÇÏb0Ž“·_‘8àÏb1Ž“·‘ÇŽ‘ -Ž6Ïb0Ž‘"«))‘·fަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)ަ‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"ExitingÈ ÝPath::get_nŽ‘kÆÜormal().È Ý"Ž—£”>·‘ÇÝ"ReturningÈ ÝINVALID_PŽ‘kÆÜOINT.\n\n"Ž“·‘ÇÏ ushŽ‘€«;ަ‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;ަ‘·gަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::set_eŽ‘kÆÜxtremes()"Ž’£”>°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +­returnŽ‘-æ»±trueŽ‘@«S¬;‘qǰgŽŸ­888.– ü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®9athŽ‘<¬functions‘@¯700“°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ŽŸ­889.› üGet–ÕTminim®9um“z.˜¬[²LDF‘T2003.05.16.¬]Ž‘Zˆ6Added–UUthis“function.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔrealŽ‘FA±get‘‰ffŽ–®minimum‘‰ffŽ“zŽ’‰žÚ¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹í1$ Šn ý‘ì°x¬890›¯3DLDF-1.1.5.1’¨GET–ÕXMINIMUM“Z˜¬237Ž €n ý•@P­890.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­realŽ‘ ³/P®9athŽ‘:D—¬::‘±get‘‰ffŽ–®minimum‘‰ffŽ“zŽ‘D]ܬ(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Entering® ´Path::get_Ž‘kÆÜminimum_z()"Ž’®8°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"projective_extremesŽ‘kÆÜ[4]® ´==® ´"Ž’™D°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[4Ž‘]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Exiting® ´Path::get_mŽ‘kÆÜinimum_z()"Ž’¨Ô;°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­returnŽ‘7æ¼±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ’‹ë ¬[4Ž‘];Ž¡‘ +°gŽŸ­891.› üGet–ÕTmaxim®9um“z.˜¬[²LDF‘T2002.09.17.¬]Ž‘Zˆ6Added–UUthis“function.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔrealŽ‘FA±get‘‰ffŽ–®maximum‘‰ffŽ“zŽ’Š®¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŸ­892.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/P®9athŽ‘:D—¬::‘±get‘‰ffŽ–®maximum‘‰ffŽ“zŽ‘Em¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Entering® ´Path::get_Ž‘kÆÜmaximum_z()"Ž’®8°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"projective_extremesŽ‘kÆÜ[5]® ´==® ´"Ž’™D°‘DZpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘VËi¬[5Ž‘]–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Exiting® ´Path::get_mŽ‘kÆÜaximum_z()"Ž’¨Ô;°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­returnŽ‘7æ¼±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ’‹ë ¬[5Ž‘];Ž¡‘ +°gŽŸ­893.› üGet–ÕTmean“z.˜¬[²LDF‘T2003.05.16.¬]Ž‘Zˆ6Added–UUthis“function.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔrealŽ‘FA±get‘‰ffŽ–®me‘ÿ}'an‘‰ffŽ“zŽ‘v÷ ¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŸ­894.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­realŽ‘ ³/P®9athŽ‘:D—¬::‘±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ŽŸ­895.– üSuppress‘xÿoutput.“¬[²LDF‘T2002.09.18.¬]Ž‘[ˆAdded–ã§this“function.‘½It's“needed“bGecause“trying“to“erase“aŽ¡­ShapQÇeŽ‘"Ab°Ž‘*–¸¬from‘UU±elementsŽ‘-¥¬in‘UU­PictureŽ‘)ñf¬::‘±outputŽ‘D¬(‘ª®)–UUcauses“a“memory“fault.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±suppr‘ÿ}'ess‘‰ffŽ‘®outputŽ’r.¬(‘ª®);ŽŽŽŒ‹î=“ Šn ý‘ì¬238–¯SUPPRESS‘ÕXOUTPUT’òb3DLDF-1.1.5.1“°x¬896Ž €n ý•@P­896.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘® ´to® ´coŽ’ÿÈntinue.\n"Ž’ÈÍ*°‘DZ ushŽ‘€¬;Ž¡‘±getcharŽ‘5%þ¬(‘ª®);Ž¡‘±c‘ÿ}'errŽ‘*SI°‘¡´"WARNING!® ´In® ´Path::oŽ‘leutput():\n"Ž’ªM°‘¡´"Path® ´doesn't® ´contaiŽ‘len® ´any® ´Points.\n"Ž’ÄÁ>°Ž¡‘(´"Not® ´doing® ´anything.Ž’ÿÈ\n\n"Ž’®9°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŽŽŒ‹ðS· Šn ý‘ì¬240–¯OUTPUT’4èš3DLDF-1.1.5.1“°x¬902Ž €n ý•@P­902.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­v®9ectorŽ‘)ªI°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7p‘ÿ}'oint‘‰ffŽ‘®iterŽ‘V’:¬=‘DZp‘ÿ}'ointsŽ‘ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);Ž¡‘ +­v®9ectorŽ‘)ªI°h­stringŽ‘Ïø°i‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7c–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘j¡Ó¬=‘DZc–ÿ}'onne“ctorsŽ‘1ûFµ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);ަ‘ +­stringŽ‘+%N±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘rëʬ;ަ‘ +­ifŽ‘´ù¬(±c–ÿ}'onne“ctorsŽ‘/4.µ:±sizeŽ‘\¬(‘ª¨)–ǵ>“¬0Ž›Ç)‘±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”¬=“°Ž˜±c–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘FˆŸÿ³+‘ÿ+ŽŽ‘RO½¬;Ž¡‘ +­elseŽ‘!Øà±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘lft¬=‘Ç´"--"Ž‘Mt¬;Ž¡‘ +­ifŽ‘´ù¬(± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)°‘Ç´DRAWŽ‘Mt¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Drawing.\n"Ž‘Et°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(±arr‘ÿ}'owŽ‘'h°‘DZtrueŽ‘‹°¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"drawarrow® ´"Ž‘Et°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘­elseŽ‘+Øá±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘]à•°‘Ç´"draw® ´"Ž‘*Ôƒ°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘°h–ª¨¬Output‘²Î­P®9athŽ‘ „6¯907“°i‘µ=°‘]v¬[²LDF‘T2002.09.26.¬]Ž‘TÃ)Comparing–²ÎpGoinš¸ãters“seems“to“w˜ork“here.‘Š2I‘²¶think“itŽ¡‘(should,–UUbut“I“wš¸ãasn't“sure“that“it“really“w˜ould.‘o°µ=Ž¡‘­ifŽ‘´ú¬(±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q°6¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª¬)‘°fŽ¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘P·°‘Ç´"® ´withcolor® ´"Ž‘JTq°‘ÇŽ‘DZdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R¬;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(±dashe‘ÿ}'dŽ– ñ¹°6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´dashed® ´"Ž‘:”z°‘DZdashe‘ÿ}'dŽ“¬;Ž¡‘­ifŽ‘´ú¬(±p‘ÿ}'enŽ–à˰6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withpen® ´"Ž‘?Ôw°‘DZp‘ÿ}'enŽ“¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)°‘Ç´FILLŽ‘Mt¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Filling.\n"Ž‘Et°‘DZ ushŽ‘€¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´"fill® ´"Ž‘*Ôƒ°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘­ifŽ‘´ú¬(± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(_m°6¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withcolor® ´"Ž‘JTq°‘ÇŽ‘DZ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘-_n¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘ .5ifŽ‘+ã-¬(± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)°‘Ç´FILLDRAWŽ‘-Mh¬)‘UU°fŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Filldrawing.\n"Ž‘Zh°‘DZ ushŽ‘€¬;Ž¡‘ +­ifŽ‘´ù¬(±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q°‘DZ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘(_m¬)‘°fŽ¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´"filldraw® ´"Ž‘?Ôw°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘­ifŽ‘´ú¬(±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q°6¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withcolor® ´"Ž‘JTq°‘ÇŽ‘DZdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R¬;Ž¡‘­ifŽ‘´ú¬(±dashe‘ÿ}'dŽ– ñ¹°6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´dashed® ´"Ž‘:”z°‘DZdashe‘ÿ}'dŽ“¬;Ž¡‘­ifŽ‘´ú¬(±p‘ÿ}'enŽ–à˰6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withpen® ´"Ž‘?Ôw°‘DZp‘ÿ}'enŽ“¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘0Øáµ=°‘ÿý¬W‘ÿ*ªe›UUha•¸ãv“e˜t“w“o˜di eren“t˜colors,˜so˜w“e˜ha“v“e˜to˜ ll˜once˜and˜dra“w˜once.‘o°µ=Ž¡‘ +°f‘UU±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘5] °‘Ç´"fill® ´"Ž‘*Ôƒ°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘ +°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘ +±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘<µ°‘Ç´"® ´withcolor® ´"Ž‘JTq°‘ÇŽ‘DZ l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘-_n¬;Ž¡‘ +±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘<µ°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘ +±p‘ÿ}'oint‘‰ffŽ‘®iterŽ‘6ù¬=‘DZp‘ÿ}'ointsŽ‘ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);ŽŽŽŒ‹ñYQ Šn ý‘ì°x¬903–¯3DLDF-1.1.5.1’4èšOUTPUT“¬241Ž €n ý•@P­903.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.05.10.¬]Ž‘X_Added–`ythe“coGde“in“this“section.› )It“ xes“a“bug.˜If“it's“not“done,‘‘rthen“the“correct“connectorsŽ¡are–UUnot“used“when“the“­P®9athŽ‘<¬is“output“the“second“time.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +±c–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘K¬=‘DZc–ÿ}'onne“ctorsŽ‘1ûFµ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);Ž¡‘ +­ifŽ‘´ù¬(±c–ÿ}'onne“ctorsŽ‘/4.µ:±sizeŽ‘\¬(‘ª¨)–ǵ>“¬0Ž›Ç)‘±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”¬=“°Ž˜±c–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘FˆŸÿ³+‘ÿ+ŽŽ‘RO½¬;Ž¡‘ +­elseŽ‘!Øà±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘lft¬=‘Ç´"--"Ž‘Mt¬;ŽŸ­904.ŽŸ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±arr‘ÿ}'owŽ‘'h°‘DZtrueŽ‘‹°¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"drawarrow® ´"Ž‘Et°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘ +­elseŽ‘!Øà±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘Sà”°‘Ç´"draw® ´"Ž‘*Ôƒ°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘ +°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘ +­ifŽ‘´ù¬(±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q°6¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withcolor® ´"Ž‘JTq°‘ÇŽ‘DZdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R¬;Ž¡‘ +­ifŽ‘´ù¬(±dashe‘ÿ}'dŽ– ñ¹°6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´dashed® ´"Ž‘:”z°‘DZdashe‘ÿ}'dŽ“¬;Ž¡‘ +­ifŽ‘´ù¬(±p‘ÿ}'enŽ–à˰6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withpen® ´"Ž‘?Ôw°‘DZp‘ÿ}'enŽ“¬;Ž¡‘ +±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘<µ°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;–UU°g“gŽ¡‘ +­elseŽŽ¡‘ifŽ‘´ú¬(± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)°‘Ç´UNDRAWŽ‘"Ín¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Undrawing.\n"Ž‘O”n°‘DZ ushŽ‘€¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘P·°‘Ç´"undraw® ´"Ž‘5T}°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘­ifŽ‘)´û¬(±dashe‘ÿ}'dŽ– ñ¹°6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´dashed® ´"Ž‘:”z°‘DZdashe‘ÿ}'dŽ“¬;Ž¡‘­ifŽ‘)´û¬(±p‘ÿ}'enŽ–à˰6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withpen® ´"Ž‘?Ôw°‘DZp‘ÿ}'enŽ“¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘P·°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)°‘Ç´UNFILLŽ‘"Ín¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Unfilling.\n"Ž‘O”n°‘DZ ushŽ‘€¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘P·°‘Ç´"unfill® ´"Ž‘5T}°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘P·°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘°gŽŽŽŒ‹òlk Šn ý‘ì¬242–¯OUTPUT’4èš3DLDF-1.1.5.1“°x¬905Ž €n ý•@P­905.‘ ü¬Filldra¸ãw‘UUcase.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2003.03.25.¬]Ž‘[ WChanged–Yqthis“section,›Úxso“that“the“outline“of“the“­P®9athŽ‘#DF¬is“dra¸ãwn,˜if“±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘:hí°6¬=Ž¡­ColorsŽ‘!ØÞ¬::Ž‘(g±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘r«t¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­elseŽŽ¡‘ifŽ‘´ú¬(± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘As)°‘Ç´UNFILLDRAWŽ‘7Íb¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Unfilldrawing.\n"Ž‘d”b°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q°‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±b–ÿ}'ackgr“ound‘‰ffŽ‘®c“olorŽ‘urŒ¬)‘°fŽ¡‘(±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸°‘Ç´"unfilldraw® ´"Ž‘JTq°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘(°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘(­ifŽ‘3´ü¬(±dashe‘ÿ}'dŽ– ñ¹°6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´dashed® ´"Ž‘:”z°‘DZdashe‘ÿ}'dŽ“¬;Ž¡‘(­ifŽ‘3´ü¬(±p‘ÿ}'enŽ–à˰6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withpen® ´"Ž‘?Ôw°‘DZp‘ÿ}'enŽ“¬;Ž¡‘(±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­elseŽ‘5Øâ°fŽ¡‘(±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸°‘Ç´"unfill® ´"Ž‘5T}°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘(°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘(±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘(±p‘ÿ}'oint‘‰ffŽ‘®iterŽ‘Tù¬=‘DZp‘ÿ}'ointsŽ‘ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);Ž¡‘(±c–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘i ¬=‘DZc–ÿ}'onne“ctorsŽ‘1ûFµ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);Ž¡‘(­ifŽ‘3´ü¬(±c–ÿ}'onne“ctorsŽ‘/4.µ:±sizeŽ‘\¬(‘ª¨)–ǵ>“¬0Ž›Ç)‘±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”¬=“°Ž˜±c–ÿ}'onne“ctor‘‰ffŽ‘®iterŽ‘FˆŸÿ³+‘ÿ+ŽŽ‘RO½¬;Ž¡‘(­elseŽ‘?Øã±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ’Šfw¬=‘Ç´"--"Ž‘Mt¬;Ž¡‘(±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸°‘Ç´"draw® ´"Ž‘*Ôƒ°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘(°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘(­ifŽ‘3´ü¬(±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q°6¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withcolor® ´"Ž‘JTq°‘ÇŽ‘DZdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R¬;Ž¡‘(­ifŽ‘3´ü¬(±dashe‘ÿ}'dŽ– ñ¹°6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´dashed® ´"Ž‘:”z°‘DZdashe‘ÿ}'dŽ“¬;Ž¡‘(­ifŽ‘3´ü¬(±p‘ÿ}'enŽ–à˰6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withpen® ´"Ž‘?Ôw°‘DZp‘ÿ}'enŽ“¬;Ž¡‘(±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘Z¸°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘g‘µ=°‘ÿý¬End–UUof“´UNFILLDRAWŽ‘;°ô¬case.‘qÇ[²LDF‘T2003.03.25.¬]Ž‘U$©°µ=ŽŽŽŒ‹óy> Šn ý‘ì°x¬906–¯3DLDF-1.1.5.1’4èšOUTPUT“¬243Ž €n ý•@P­906.‘ ü¬Default‘UUcase.‘qÇ[²LDF‘T2003.03.25.¬]ŽŽŸ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­elseŽ‘0Øáµ=°‘ÿý¬Use–UUDRA‘þãW“as“default.‘qÇ[²LDF‘T2003.03.25.¬]Ž‘U$©°µ=Ž¡‘ +°fŽ¡‘±c‘ÿ}'errŽ‘)â°‘Û:´"WARNING!® ´Invalid® ´|fŽ‘kÚþill_draw_value|:® ´"Ž’Í¼j°‘Û:± l‘‚Øl‘‰ffŽ–®dr‘ÿ}'aw‘‰ffŽ“valueŽ‘Db…°‘Û:´".® ´Using® ´\"draw\"\n"Ž‘o< °Ž¡‘(± ushŽ‘=¹¬;Ž¡#­ifŽ‘ ´ø¬0Ž‘$´úµ=°‘ÿý¬!!‘qÇDe ne–UUa“­classŽ‘5¦¬for“information“on“the“run“state.‘o°µ=Ž¡‘­ifŽ‘´ú¬(°:±R¾“un‘‰ffŽ‘®StateŽ‘-ò¦¬::Ž‘4€ä±non‘‰ffŽ‘®stopŽ‘[P„¬)‘±getcharŽ‘&%ü¬(‘ª®);Ž¡#­endifŽŽ¡‘ifŽ‘´ú¬(±arr‘ÿ}'owŽ‘'h°‘DZtrueŽ‘‹°¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"drawarrow® ´"Ž‘Et°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘­elseŽ‘+Øá±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘]à•°‘Ç´"draw® ´"Ž‘*Ôƒ°‘ÇŽ‘ÇŽ‘ DZp‘ÿ}'oint‘‰ffŽ‘®iterŽ‘7yŸÿ³+‘ÿ+ŽŽ‘C@%¬;Ž¡‘°h–ª¨¬Output‘UU­P®9athŽ‘ &½¯907“°iŽ¡‘­ifŽ‘´ú¬(±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘1³Q°6¬=‘Ç­ColorsŽ‘$Ÿö¬::Ž‘+.4±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘bª¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withcolor® ´"Ž‘JTq°‘ÇŽ‘DZdr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘6³R¬;Ž¡‘­ifŽ‘´ú¬(±dashe‘ÿ}'dŽ– ñ¹°6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´dashed® ´"Ž‘:”z°‘DZdashe‘ÿ}'dŽ“¬;Ž¡‘­ifŽ‘´ú¬(±p‘ÿ}'enŽ–à˰6¬=‘Ç´""Ž‘ Íz¬)‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘7´°‘Ç´"® ´withpen® ´"Ž‘?Ôw°‘DZp‘ÿ}'enŽ“¬;Ž¡‘±out‘‰ffŽ‘®str–ÿ}'e“amŽ‘F¶°‘Ç´";\n"Ž‘ T‰°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::outpuŽ‘kÆÜt(Focus)"Ž’žTA°‘Ç´"\n"Ž‘Œ°‘DZ ushŽ‘€¬;Ž¡‘ +­returnŽ‘*‘f¬;‘qǰgŽŽŽŒ‹ô…± Šn ý‘ì¬244–¯OUTPUT’4èš3DLDF-1.1.5.1“°x¬907Ž €n ý•@P­907.‘ ü¬When‘v± l‘‚Øl‘‰ffŽ‘®c‘ÿ}'olorŽ‘,„q¬and‘v±dr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5ØU¬are–vdi erenš¸ãt,‘~°‘DZ ushŽ‘€¬;Ž¡‘±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘h—¬=‘Ç´"--"Ž‘Mt¬;Ž¡‘°gŽ¡‘fŽ¡‘­in®9tŽ‘/¤ú±lo‘ÿ}'op‘‰ffŽ‘®ctrŽ‘U4¬=‘Ç0Ž‘Ç;ަ‘­forŽ‘0EY¬(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘Lm°Ž‘$Lni‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûp‘ÿ}'oints‘‰ffŽ‘®iterŽ‘u-n¬=‘aȱp‘ÿ}'ointsŽ–†]µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘\ͱp‘ÿ}'oints‘‰ffŽ‘®iterŽ‘7@°6¬=‘aȱp‘ÿ}'ointsŽ“µ:±endŽ‘ಬ(˜);Ž¡‘<€Ÿÿ³+‘ÿ+ŽŽ‘HG&±p‘ÿ}'oints‘‰ffŽ‘®iterŽ‘vѬ)‘°fŽ¡‘(­ifŽ‘3´ü¬(±p‘ÿ}'oints‘‰ffŽ‘®iterŽ‘1ð6¬=‘DZp‘ÿ}'ointsŽ‘ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨))‘°fŽ¡‘2±c‘ÿ}'outŽ‘H T°‘Ç´"® ´"Ž‘Ô°‘DZc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘MT¬°‘Ç´"® ´"Ž‘ w¬;Ž¡‘(°gŽ¡‘(­ifŽ‘3´ü¬(±c–ÿ}'onne“ctors‘‰ffŽ‘®iterŽ‘E\°6¬=‘DZc–ÿ}'onne“ctorsŽ‘1ûFµ:±endŽ‘ಬ(‘ª¨))‘±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”¬=‘Ç°Ž‘Ç±c–ÿ}'onne“ctors‘‰ffŽ‘®iterŽ‘JŸ]Ÿÿ³+‘ÿ+ŽŽ‘Vf}¬;Ž¡‘(­ifŽ‘3´ü¬(±lo‘ÿ}'op‘‰ffŽ‘®ctrŽ‘%Ȱ‘Ǭ2Ž‘Ç)‘µ=°‘ÿý¬Break–UUeac¸ãh“line“after“2“­P•®9oin“tsŽ‘#xÙ¬.‘o°µ=Ž¡‘(°fŽ¡‘2±c‘ÿ}'outŽ‘H T°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘2±lo‘ÿ}'op‘‰ffŽ‘®ctrŽ‘Wͬ=‘Ç0Ž‘Ç;Ž¡‘(°gŽ¡‘(€Ÿÿ³+‘ÿ+ŽŽ‘4G$±lo‘ÿ}'op‘‰ffŽ‘®ctrŽ‘WÔ¬;Ž¡‘(µvŽ‘/ûÙ¬=‘Ç(°Ž‘Ž‘ +±p‘ÿ}'oints‘‰ffŽ‘®iterŽ‘8H­¬)µ:±get‘‰ffŽ–®al‘‚Øl‘‰ffŽ“c–ÿ}'o“or“dsŽ‘:§¬(±c–ÿ}'o“or“dsŽ‘ Œµ;‘ª¨±do‘‰ffŽ‘®p‘ÿ}'erspŽ‘'Sàµ;‘ª¨±do‘‰ffŽ‘®applyŽ‘'µ}µ;‘ª¨fŽ‘£Ž;‘ª¨±pr‘ÿ}'ojŽ‘žkµ;‘ª¨±factorŽ‘®†¬);Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"("Ž‘Ô°‘ǵvŽ›ûÕ¬[0Ž‘]–ǰ“´",® ´"Ž‘Œ°“µvŽ˜¬[1Ž‘]“°“´",® ´"Ž‘Œ°“µvŽ˜¬[2Ž‘]“°“´")"Ž‘ w¬;Ž¡‘°gŽ¡‘gŽ¡‘­ifŽ‘´ú¬(±cycle‘‰ffŽ‘®switchŽ‘5š¬)‘°fŽ¡‘­ifŽ‘)´û¬(±c–ÿ}'onne“ctors‘‰ffŽ‘®iterŽ‘E\°6¬=‘DZc–ÿ}'onne“ctorsŽ‘1ûFµ:±endŽ‘ಬ(‘ª¨))‘±c–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘O”¬=‘Ç°Ž‘Ç±c–ÿ}'onne“ctors‘‰ffŽ‘®iterŽ‘JŸ]Ÿÿ³+‘ÿ+ŽŽ‘Vf}¬;Ž¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"® ´"Ž‘Ô°‘DZc–ÿ}'onne“ctor‘‰ffŽ‘®stringŽ‘MT¬°‘Ç´"® ´cycle;"Ž‘5T}°‘DZend‘‚ØlŽ‘¸Ú¬;ŽŽŽŒ‹ö„ Šn ý‘ì¬246–¯SHOÃŽW’@°3DLDF-1.1.5.1“°x¬910Ž €n ý•@P‘°gޤ ‘­elseŽ‘+Øá±c‘ÿ}'outŽ‘Aù0°‘Ç´";\n"Ž‘q¬;Ž¡‘ +°gŽ©­911.‘ üSho®9w‘ÕTColors.ŽŸ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙ±show‘‰ffŽ‘®c‘ÿ}'olorsŽ‘V!Ь(­b•QÇo“olŽ‘¡f±stopŽ‘// ¬=‘DZfalseŽ‘v\¬);ަ­912.ŽŸ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘"ýÙP®9athŽ‘If“it“doGes,‘H ±is‘‰ffŽ‘®planarŽ‘+nœ¬(‘ª®)“returns“±trueŽ‘ R¬,–H otherwise,“it–Dºreturns“±falseŽ‘óþ¬.˜If“°Ž‘D»±thisŽŽ¡¬is–UUlinear,“±is‘‰ffŽ‘®planarŽ‘+{ä¬(‘ª®)“issues“a“w¸ãarning“and“returns“±trueŽ‘í¬.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.03.¬]Ž‘Y;Rewrote–UUthis“function.‘qÇIt“should“noš¸ãw“w˜ork“for“all“­P®9athsŽ‘ oõ¬.Ž¡‘ +[²LDF‘T2002.11.05.¬]Ž‘Y;Rewrote–UUthis“function“again.‘qÇIt“noš¸ãw“uses“the“new“v˜ersion“of“±get‘‰ffŽ‘®normalŽ‘3ßɬ(‘ª®).Ž¡‘ +[²LDF‘T2002.11.06.¬]Ž‘YCvAdded–optional“­constŽ‘!ömb•QÇo“olŽ‘;Ó±verb‘ÿ}'oseŽ‘_ôû¬and“­stringŽ‘$ñ±textŽ‘9Ùt¬argumen¸ãts“for“writing“a“messageŽ¡to–UUthe“standard“output.Ž¡‘ +[²LDF‘T2003.08.14.¬]Ž‘Y;Made‘UU±verb‘ÿ}'oseŽ‘'<¬non-­constŽ‘ÕM¬.‘qÇSetting–UUit“to“±trueŽ‘oB¬if“´VERBOSE_GLOBALŽ‘P°è¬is“±trueŽ‘í¬.Ž¡Added‘UU´VERBOSE_GLOBALŽ‘P°è¬to–UU®pspglb.web“¬toGda¸ãy‘ÿ*ª.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ŽŸ ‘ +­virtualŽ‘/Ôb•QÇo“olŽ‘I/:±is‘‰ffŽ‘®planarŽ‘qUɬ(­b•QÇo“olŽ‘¡f±verb‘ÿ}'oseŽ‘<ùÛ¬=‘DZfalseŽ‘v\µ;‘ª¨­stringŽ‘"Ïõ±textŽ‘6îÙ¬=‘Ç´""Ž‘ Íz¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹÷±O Šn ý‘ì°x¬917–¯3DLDF-1.1.5.1’+@¾IS‘ÕXPLANAR“¬247Ž €n ý•@P­917.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olŽ‘#¡gP®9athŽ‘=2Ϭ::‘±is‘‰ffŽ‘®planarŽ‘)&“¬(­b•QÇo“olŽ‘¡f±verb‘ÿ}'oseŽ‘:2õ;‘ª¨­stringŽ‘"Ïõ±textŽ‘4'Á¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´VERBOSE_GLOBALŽ‘J>¬)‘±verb‘ÿ}'oseŽ‘(Xu¬=‘DZtrueŽ‘‹°¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÿ9°_‘8à±verb‘ÿ}'oseŽ‘"Ê=¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path::is_pŽ‘kÆÜlanar().\n"Ž’¦ #¬;ަ‘­P•®9oin“tŽ‘2pŽ‘7÷Ÿ¬(±get‘‰ffŽ‘®normalŽ‘0Št¬(‘ª®));ަ‘­ifŽ‘´ú¬(µpŽ‘Ï°‘Ç´INVALID_POINTŽ‘GY¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::is_plŽ‘kÆÜanar().® ´Returning® ´faŽ’ÔÆ lse.\n\n"Ž’T°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(±textŽ‘ä°‘Ç´""Ž‘ Íz¬)‘±textŽ‘ä¬=‘Ç´"Path"Ž‘"Ín¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘DZtextŽ‘åü°‘Ç´"® ´is® ´non-planar.\n\nŽ‘kÆÜ"Ž‘qA¬;Ž¡‘°gŽ¡‘­returnŽ‘Aæ½±falseŽ‘V–¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(µpŽ‘Ï°‘DZoriginŽ‘½9¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"WARNING!® ´In® ´Path::iŽ‘kÆÜs_planar():\n"Ž’¸”2°‘Ç´"Path® ´is® ´linear.® ´ReŽ‘kÆÜturning® ´true.\n\n"Ž’Í”&°Ž¡‘2± ushŽ‘G¹¬;Ž¡‘­ifŽ‘)´û¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(±textŽ‘ä°‘Ç´""Ž‘ Íz¬)‘±textŽ‘ä¬=‘Ç´"Path"Ž‘"Ín¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘DZtextŽ‘åü°‘Ç´"® ´is® ´planar.\n\n"Ž‘\M¬;Ž¡‘°gŽ¡‘­returnŽ‘Aæ½±trueŽ‘T«U¬;Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘­ifŽ‘)´û¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(±textŽ‘ä°‘Ç´""Ž‘ Íz¬)‘±textŽ‘ä¬=‘Ç´"Path"Ž‘"Ín¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘DZtextŽ‘åü°‘Ç´"® ´is® ´planar.\n\n"Ž‘\M¬;Ž¡‘°gŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::is_plŽ‘kÆÜanar().® ´Returning® ´trŽ’ÔÆ ue.\n\n"Ž’°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½±trueŽ‘T«U¬;Ž¡‘°gŽ¡‘ +gŽŸ­918.– üIs‘þ“linear.“¬[²LDF‘T2003.04.09.¬]Ž‘Z¬±is‘‰ffŽ‘®line‘ÿ}'arŽ‘Á‘¬(‘ª®)–y3 rst“c•¸ãhec“ks–y3whether“±line‘‰ffŽ‘®switchŽ‘6•'¬is“±trueŽ‘=ˬ.‘ÝaIf“it“is,‘‚+it“returnsŽ¡±trueŽ‘Á¬righ•¸ãt›<)a“w“a“y‘ÿ*ª.‘icOtherwise,‘A2it˜uses˜the˜return˜v‘ÿqÇalue˜of˜±get‘‰ffŽ‘®normalŽ‘3Ƭ(‘ª®)˜to˜determine˜whether˜°Ž‘<*±thisŽ‘d ¬is˜linear˜orŽ¡not.‘qÇIf–UUit“is,“±is‘‰ffŽ‘®line‘ÿ}'arŽ‘(jÒ¬(‘ª®)“returns“±trueŽ‘í¬,“otherwise,“it“returns“±falseŽ‘™¬.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.05.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2002.11.06.¬]Ž‘YCvAdded–optional“­constŽ‘!ömb•QÇo“olŽ‘;Ó±verb‘ÿ}'oseŽ‘_ôû¬and“­stringŽ‘$ñ±textŽ‘9Ùt¬argumen¸ãts“for“writing“a“messageŽ¡to–UUthe“standard“output.Ž¡‘ +[²LDF‘T2003.04.09.¬]Ž‘YþØNo•¸ãw›Kòc“hec“king˜whether˜±line‘‰ffŽ‘®switchŽ‘8:¥¬is˜±trueŽ‘\|¬bGefore˜calling˜±get‘‰ffŽ‘®normalŽ‘4Öf¬(‘ª®).–Už!!“If˜a˜­P®9athŽŽ¡¬whose‘û±line‘‰ffŽ‘®switchŽ‘9+°‘êÔ±trueŽ‘Mg¬is–ûmoGdi ed“sucš¸ãh“that“it's“no“longer“linear,‘ð$the“programmer“m˜ust“ensure“thatŽ¡±line‘‰ffŽ‘®switchŽ‘2ø¬is–UUset“to“±falseŽ‘™¬!Ž¡‘ +[²LDF‘T2003.08.14.¬]Ž‘Y;Made‘UU±verb‘ÿ}'oseŽ‘'<¬non-­constŽ‘ÕM¬.‘qÇSetting–UUit“to“±trueŽ‘oB¬if“´VERBOSE_GLOBALŽ‘P°è¬is“±trueŽ‘í¬.Ž¡Added‘UU´VERBOSE_GLOBALŽ‘P°è¬to–UU®pspglb.web“¬toGda¸ãy‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#¡g±is‘‰ffŽ‘®line‘ÿ}'arŽ‘H¶ä¬(­b•QÇo“olŽ‘¡f±verb‘ÿ}'oseŽ‘<ùÛ¬=‘DZfalseŽ‘v\µ;‘ª¨­stringŽ‘"Ïõ±textŽ‘6îÙ¬=‘Ç´""Ž‘ Íz¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹ø¾i Šn ý‘ì¬248–¯IS‘ÕXLINEAR’.Žú3DLDF-1.1.5.1“°x¬919Ž €n ý•@P­919.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olŽ‘#¡gP®9athŽ‘=2Ϭ::‘±is‘‰ffŽ‘®line‘ÿ}'arŽ‘&¬(­b•QÇo“olŽ‘¡f±verb‘ÿ}'oseŽ‘:2õ;‘ª¨­stringŽ‘"Ïõ±textŽ‘4'Á¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´VERBOSE_GLOBALŽ‘J>¬)‘±verb‘ÿ}'oseŽ‘(Xu¬=‘DZtrueŽ‘‹°¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÿ9°_‘8à±verb‘ÿ}'oseŽ‘"Ê=¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path::is_lŽ‘kÆÜinear().\n"Ž’¦ #¬;Ž¡‘­ifŽ‘´ú¬(±line‘‰ffŽ‘®switchŽ‘/¢Á¬)‘µ=°‘ÿý¬LDF–UU2003.04.09.‘qÇAdded“this“conditional.‘o°µ=Ž¡‘­returnŽ‘Aæ½±trueŽ‘T«U¬;ަ‘­P•®9oin“tŽ‘2pŽ‘7÷Ÿ¬(±get‘‰ffŽ‘®normalŽ‘0Št¬(‘ª®));ަ‘­ifŽ‘´ú¬(µpŽ‘Ï°‘DZoriginŽ‘½9¬)‘°fŽ¡‘­ifŽ‘)´û¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(±textŽ‘ä°‘Ç´""Ž‘ Íz¬)‘±textŽ‘ä¬=‘Ç´"Path"Ž‘"Ín¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘DZtextŽ‘åü°‘Ç´"® ´is® ´linear.\n\n"Ž‘\M¬;Ž¡‘°gŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::is_liŽ‘kÆÜnear().® ´"Ž’žTA°‘Ç´"Returning® ´true.\n\nŽ‘kÆÜ"Ž‘tTY°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½±trueŽ‘T«U¬;Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘­ifŽ‘)´û¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(±textŽ‘ä°‘Ç´""Ž‘ Íz¬)‘±textŽ‘ä¬=‘Ç´"Path"Ž‘"Ín¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘DZtextŽ‘åü°‘Ç´"® ´is® ´non-linear.\n\nŽ‘kÆÜ"Ž‘qA¬;Ž¡‘°gŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::is_liŽ‘kÆÜnear().® ´"Ž’žTA°‘Ç´"Returning® ´false.\n\Ž‘kÆÜn"Ž‘y”V°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½±falseŽ‘V–¬;Ž¡‘°gŽ¡‘ +gŽŸ­920.› üGet–$line“switc®9h.˜¬[²LDF‘T2002.11.03.¬]Ž‘ZÍThis–š9function“returns“±trueŽ‘ù +¬for“­P®9athsŽ‘$O¬that“are“created“or“setŽ¡using›UUt•¸ãw“o˜­P•®9oin“tsŽ‘&Î.¬only‘ÿ*ª,˜and˜no˜connectors,˜as˜argumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.03.¬]Ž‘XIúRenamed–—this“function“±get‘‰ffŽ–®line‘‰ffŽ“switchŽ‘Bm‘¬(›ª®)“from“±is‘‰ffŽ‘®lineŽ‘ˆS¬(˜).‘2\AbGout“to“add“±is‘‰ffŽ‘®line‘ÿ}'arŽ‘'¬‘¬(˜),‘½!whic¸ãhŽ¡will–UUtest“whether“all“the“­P•®9oin“tsŽ‘&Î.¬are“colinear“or“not.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIb•QÇo“olŽ‘C+¯±get‘‰ffŽ–®line‘‰ffŽ“switchŽ’ƒ,¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±line‘‰ffŽ‘®switchŽ‘g‰}¬;Ž¡‘ +°gŽŸ­921.‘ üT‘ÿ +«est–ÕTfor“cycles.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIb•QÇo“olŽ‘C+¯±is‘‰ffŽ‘®cycleŽ‘dzǬ(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±cycle‘‰ffŽ‘®switchŽ‘lçV¬;Ž¡‘ +°gŽŸ­922.‘ üSize›ÕT(n•®9um“b•QÇer˜of˜p“oin®9ts).ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ŽŽŽŒ‹ùÍs Šn ý‘ì°x¬922›¯3DLDF-1.1.5.1’å ºSIZE–ÕX(NUMBER“OF“POINTS)˜¬249Ž €n ý•@P‘ +­inlineŽ‘)ŠIin®9tŽ‘;/@±sizeŽ‘LJœ¬(‘ª®)ޤ ‘ +°fŽ¡‘­returnŽ‘7æ¼±p‘ÿ}'ointsŽ‘S Qµ:±sizeŽ‘\¬(‘ª¨);Ž¡‘ +°gŽ©­923.– üSlopQÇe.“¬[²LDF‘T2002.11.05.¬]Ž‘\Oʱslop‘ÿ}'eŽ‘r‡•¬(‘ª®)–écan“only“bGe“used“for“linear“­P®9athsŽ‘"7‰¬.‘ ȃIt“returns“a“­realŽ‘—«¬v‘ÿqÇalueŽ¡represenš¸ãting–ƒthe“slopGe“of“the“±tr–ÿ}'ac“e‘Cl¬of–ƒa“line“on“the“ma‘Ž8jor“plane“represen˜ted“b˜y“the“­c®9harŽ‘¬argumen˜ts,‘ÎorŽ¡´INVALID_REALŽ‘?†D¬,›B*if–=`the“­P®9athŽ‘ $¬is“non-linear.‘iËF‘ÿ*ªor“example,˜ifŸü±È“°ŽŽ‘ÞG‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³1ŽŽŽŽŽ‘ƒ¦¬is“a“­P®9athŽ‘ $µpŽ‘'Q„¬andŸü±È“°ŽŽ‘M‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“µqŸÿ³0Ž‘|sµqŸÿ³1ŽŽŽŽŽ‘aH¬is“the“trace“of“µpŽ‘ ‚À¬on“theŽ¡x-y–é.plane,‘$then“µpŽ‘ñ.:±slop‘ÿ}'eŽ‘7ˬ(´'x'Ž‘F_µ;‘ª¨´'y'Ž‘ñ¬)“returns“a“­realŽ‘05µm“¬sucš¸ãh“that“µm–½€¬=“(µb–›p°“µy[Ù¬)µ=x–é.¬where“µb“¬is“the“y-in˜tercept“ofŽ¡Ÿü±È°ŽŽ‘¸‘þãŽŽŽ‘ÖÏ!ŽŽŸN8µqŸÿ³0Ž‘|sµqŸÿ³1ŽŽŽŽŽ‘;ݬand–UUµx“¬and“µy‘±.¬are“the“x“and“y-cošGordinates“of“p˜oin¸ãts“onŸü±È“°ŽŽ‘e ‘þãŽŽŽ‘ÖÏ!ŽŽŸN8“µqŸÿ³0Ž‘|sµqŸÿ³1ŽŽŽŽŽ‘;ݬ.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.05.¬]Ž‘X؃Changed–%this“function,‘/(so“that“±is‘‰ffŽ‘®line‘ÿ}'arŽ‘(;¬(›ª®)“is“used“instead“of“±get‘‰ffŽ–®line‘‰ffŽ“switchŽ‘Bü¬(˜)“(formerlyŽ¡\±is‘‰ffŽ‘®lineŽ‘ñ?¬(‘ª®)").‘qµNo¸ãw,›U)it–Ucan“bGe“used“for“all“linear“­P®9athsŽ‘ o¾¬,˜not“just“ones“created“using“the“constructor“for“lines.Ž¡Also,–UUit“wš¸ãas“commen˜ted-out.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ŽŸ ‘ +­realŽ‘ ³/±slop‘ÿ}'eŽ‘6êú¬(­c®9harŽ‘jIµaŽ‘!z‘¬=‘Ç´'x'Ž– wµ;‘ª¨­c®9harŽ‘ñµbŽ‘"&³¬=‘Ç´'y'Ž“¬);ަ­924.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­realŽ‘ ³/P®9athŽ‘:D—¬::‘±slop‘ÿ}'eŽ‘7Ϭ(­c®9harŽ‘jIµaŽ‘³y;‘ª¨­c®9harŽ‘ñµbŽ‘_›¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(°:±is‘‰ffŽ‘®line‘ÿ}'arŽ‘%}¬(‘ª¨))‘°fŽ¡‘±c‘ÿ}'errŽ‘7ó°‘_J´"ERROR!® ´In® ´Path::sloŽ‘o_pe().® ´Path® ´is® ´not® ´liŽ’Ø^Ònear!\n"Ž’ Dl°Ž¡‘2´"Returning® ´INVALID_RŽ’šÿÉEAL\n"Ž’½Í7°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_REALŽ’m¬;Ž¡‘°gŽ¡‘­returnŽ‘7æ¼±p‘ÿ}'ointsŽ‘S Q¬[1Ž–]‘þŸµ~ŽŽ‘±slop‘ÿ}'eŽ‘7̬(°Ž“±p‘ÿ}'ointsŽ‘ $–¬[0Ž“]µ;‘ª¨aŽ‘óØ;‘ª¨bŽ‘õR¬);Ž¡‘ +°gަ­925.– üSubpath.“¬[²LDF‘T2002.11.05.¬]Ž‘Zˆ6±subp‘ÿ}'athŽ‘|˜¬(‘ª®)–UUreturns“a“new“­P®9athŽ‘<¬using“±p‘ÿ}'ointsŽ‘yê¬[±startŽ‘…M¬]“throughŽ¡±p‘ÿ}'ointsŽ‘$•¬[±endŽ‘ª—°‘Éå¬1ޑɿ]–×from“°Ž‘رthisŽ‘ ެ.‘_HIf“the“optional“­b•QÇo“olŽ‘‡¿¬argumen¸ãt“±cycleŽ‘´ã¬is“used,‘(ðthen“the“new“­P®9athŽ‘Í¬will“bGe“a“cycle,Ž¡whether‘ý'°Ž‘ý(±thisŽ‘æ¬is–ý'or“not.›TbOne“optional“connector“argumen¸ãt“can“bGe“used.˜If“it“is,‘Êit“will“bGe“the“only“connector.Ž¡Otherwise,–UUthe“connectors“from“°Ž‘UV±thisŽ‘–a¬are“used.Ž¡‘ +[²LDF‘T2002.11.05.¬]Ž‘Y;±startŽ‘qâݬm¸ãust–UUbšGe“µ<“±endŽ‘6¬.‘qÇIt“is“not“p˜ossible“to“ha•¸ãv“e‘UU±startŽ‘/÷µ>‘UU±endŽ‘6¬,›UUev“en˜if˜°Ž‘UV±thisŽ‘–a¬is˜a˜cycle.ŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.05.¬]Ž‘Y½Rewrote– +!this“function.›,Made“±subp‘ÿ}'athŽ‘%„ƒ¬(‘ª®)“itself“and“its“argumen¸ãts“­constŽ‘ßn¬.˜Added“errorŽ¡handling‘UUcoGde.Ž¡‘ +[²LDF‘T2003.07.16.¬]Ž‘Y;Please–UUnote“that“±startŽ‘/÷¬and“±endŽ‘‹\¬cannot“bGe“made“­constŽ‘*¢¬.Ž¡‘ +[²LDF‘T2003.08.27.¬]Ž‘YE‹Changed‘’¥­in®9tŽ‘tìµiŽ‘y…¬to‘’¥­sizeu½‰™šs4Ž‘ÔwtŽ‘#"žµiŽ‘*'7¬in–’¥the“­forŽ‘¸{¬loGops“that“compare“µiŽ‘ +—>¬to“±startŽ‘ª—¬and“±endŽ‘sW¬.‘)¸The“w•¸ãa“yŽ¡it–UUwš¸ãas“bGefore“caused“GCC“with“the“\®-Wall¬"“option“to“issue“a“w˜arning.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°ŽŸ ‘ +­P®9athŽ‘%åí±subp‘ÿ}'athŽ‘G`O¬(­sizeu½‰™šs4Ž‘ÔwtŽ‘QܱstartŽ‘4×)µ;‘ª¨­sizeu½‰™šs4Ž‘ÔwtŽ‘ ü„±endŽ‘1Ý6µ;‘ª¨­constŽ‘Ô}b•QÇo“olŽ‘9u±cycleŽ‘Rµc¬=‘DZfalseŽ‘v\µ;‘ª¨­constŽ‘Ô}stringŽ‘@øý±c–ÿ}'onne“ctorŽ‘oï¬=‘Ç´""Ž‘ Íz¬)‘Tˆ­constŽ‘)Õ¬;ŽŽŽŒ‹úÙb Šn ý‘ì¬250›¯SUBP–ÿJªA“TH’1ø<3DLDF-1.1.5.1˜°x¬926Ž €n ý•@P­926.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­P®9athŽ‘%Ï6P®9athŽ‘?`ž¬::‘±subp‘ÿ}'athŽ‘"zf¬(­sizeu½‰™šs4Ž‘ÔwtŽ‘;%±startŽ‘4Àrµ;‘ª¨­sizeu½‰™šs4Ž‘ÔwtŽ‘ åͱendŽ‘1Ƶ;‘ª¨­constŽ‘½Æb•QÇo“olŽ‘9G¨±cycleŽ‘OÀݵ;‘ª¨­constŽ‘½ÆstringŽ‘@˱c–ÿ}'onne“ctorŽ‘l*i¬)‘=Ñ­constŽ‘°f‘=Ñ­b•QÇo“olŽŽ¡‘2´DEBUGŽ‘Ov¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­P®9athŽ‘9æ¼µpŽ‘>;ŽŸ­927.‘ ü¬[²LDF‘T2002.11.05.¬]Ž‘[˜There–e!is“no“\´INVALID_PATHŽ‘?†D¬",›©so“I‘dÛreturn“an“empt¸ãy“one,˜if“±startŽ‘vƒ°‘Œ±endŽ‘lǬ.‘¡+SinceŽ¡­opQÇeratorŽ‘+–µ°Ž‘3]Ó¬(‘ª¨)–=¬currenš¸ãtly“doGesn't“exist,‘wÂthere's“not“m˜uc˜h“pGoin˜t“in“de ning“´INVALID_PATHŽ‘CÃð¬,‘wÂsince“there's“noŽ¡w•¸ãa“y–UUto“compare“another“­P®9athŽ‘<¬to“it.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±startŽ‘Le°‘DZendŽ‘§Ê¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘*'c°‘q»´"ERROR!® ´In® ´Path::subŽ‘lqpath():\n"Ž’¤é„°‘q»´"The® ´\"start\"® ´argumŽ‘lqent® ´is® ´<® ´the® ´\"end\"Ž’ÕqC\ŽŽ¡‘(® ´argument.\n"Ž‘o]°‘Ç´"Returning® ´empty® ´PatŽ‘kÆÜh.\n\n"Ž’“ÔG°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼µpŽ‘<;Ž¡‘ +°gŽŸ­928.‘ ü¬[²LDF‘T2002.11.05.¬]Ž‘Zˆ6More–UUerror“handling.‘qÇIn“these“cases,“it's“pGossible“to“reco•¸ãv“er.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±startŽ‘Leµ>‘DZp‘ÿ}'ointsŽ‘ë­µ:±sizeŽ‘\¬(‘ª¨)–8à°“¬1Ž‘8á)‘°fŽ¡‘±c‘ÿ}'errŽ‘*'c°‘q»´"ERROR!® ´In® ´Path::subŽ‘lqpath():\n"Ž’¤é„°‘q»´"\"start\"® ´argument® Ž‘lq´is® ´>® ´points.size()® ´-Ž’ÕqC\ŽŽ¡‘(® ´1.\n"Ž‘JÍr°‘Ç´"Will® ´try® ´to® ´recoverŽ‘kÆÜ® ´by® ´setting® ´start® ´=® Ž’ÔÆ ´0.\n\n"Ž’üÔ °‘DZ ushŽ‘€¬;Ž¡‘±startŽ‘,Lg¬=‘Ç0Ž‘Ç;Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±endŽ‘§Êµ>‘DZp‘ÿ}'ointsŽ‘ë­µ:±sizeŽ‘\¬(‘ª¨))‘°fŽ¡‘±c‘ÿ}'errŽ‘)ðò°‘;J´"ERROR!® ´In® ´Path::subŽ‘l;path():\n"Ž’¤|¢°‘;J´"\"end\"® ´argument® ´isŽ‘l;® ´>® ´points.size().\n"Ž’Øü„°Ž¡‘(´"Will® ´try® ´to® ´recoverŽ’ÿÈ® ´by® ´setting® ´end® ´=® ´poŽ’ùÿŒints.size().\n\n"Ž’VŒÙ°‘DZ ushŽ‘€¬;Ž¡‘±endŽ‘'§Ì¬=‘DZp‘ÿ}'ointsŽ‘ë­µ:±sizeŽ‘\¬(‘ª¨);Ž¡‘ +°gŽŸ­929.‘ ü¬[²LDF‘T2002.11.05.¬]Ž‘Y«If–x4a“±c–ÿ}'onne“ctorŽ‘0OB¬argumenš¸ãt“is“spGeci ed,‘¤nall“w˜e“ha˜v˜e“to“do“is“put“the“appropriate“­P•®9oin“tsŽŽ¡¬from‘UU±p‘ÿ}'ointsŽ‘!Ï?¬onš¸ãto‘UUµpŽ‘]U:±p‘ÿ}'ointsŽ‘$•¬,–UUput“±c–ÿ}'onne“ctorŽ‘2 „¬on˜to“µpŽ›]U:±c–ÿ}'onne“ctorsŽ‘/4.¬,“and“return“µpŽ˜¬.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±c–ÿ}'onne“ctorŽ‘.%ò°6¬=‘Ç´""Ž‘ Íz¬)–UU°f“­forŽ‘=Û¬(­sizeu½‰™šs4Ž‘ÔwtŽ‘R©µiŽ‘%‹µ¬=‘DZstartŽ‘Le¬;‘ÿýµiŽ‘ 9 <‘DZendŽ‘§Ê¬;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)“°fŽ¡‘ +­ifŽ‘´ù¬(µiŽ‘9 °‘DZp‘ÿ}'ointsŽ‘ë­µ:±sizeŽ‘\¬(‘ª¨))‘°fŽ¡‘±c‘ÿ}'errŽ‘*Ög°‘ ¿´"ERROR!® ´In® ´Path::subŽ‘m ƒpath():\n"Ž’¦GŒ°‘ ¿´"end® ´argument® ´>® ´poinŽ‘m ƒts.size().\n"Ž’¶ƒ°Ž¡‘(´"Breaking® ´out® ´of® ´looŽ’ÿÈp.\n\n"Ž’¹ 3°‘DZ ushŽ‘€¬;Ž¡‘­breakŽ‘0¡f¬;Ž¡‘ +°gŽ¡‘ +µpŽ‘:±p‘ÿ}'ointsŽ–$•µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘.­§¬(‘UU±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<‘UU­P•®9oin“tŽ‘!¶µµ>‘Ǭ(±p‘ÿ}'ointsŽ“¬[µiŽ‘qô¬])–UU)“;‘qǰg“µpŽ‘]U:±c–ÿ}'onne“ctorsŽ‘/4.µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±c–ÿ}'onne“ctorŽ‘+^Ú¬);Ž¡‘ +µpŽ‘:±set‘‰ffŽ‘®cycleŽ‘&*¬(±cycleŽ‘y5¬);Ž¡‘ +­returnŽ‘-滵pŽ‘2;‘qǰgŽŽŽŒ‹ûêo Šn ý‘ì°x¬930›¯3DLDF-1.1.5.1’1ø‘ÐC¬(µpŽ‘:±p‘ÿ}'ointsŽ˜¬[µiŽ‘qô¬])Ž¡‘)‘UU;Ž¡‘ +­ifŽ‘´ù¬(µiŽ‘9 <‘ÇpŽ‘Ï:±c–ÿ}'onne“ctorsŽ–/4.µ:±sizeŽ‘\¬(‘ª¨))‘µqŽ‘ Òª:±c–ÿ}'onne“ctorsŽ“µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(µpŽ‘:±c–ÿ}'onne“ctorsŽ“¬[µiŽ‘qô¬]);Ž¡‘ +°g‘UUµqŽ‘'ÿ:±set‘‰ffŽ‘®cycleŽ‘&*¬(±cycleŽ‘y5¬);Ž¡‘ +­returnŽ‘-滵qŽ‘2¹e¬;‘qǰgޤ­931.‘ üGet‘ÕTpQÇoin®9t.Ž¡932.‘ ünon-const‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.11.05.¬]Ž‘Y;Made–UUnon-­inlineŽ‘4ó¬.‘qÇChanged“return“v‘ÿqÇalue“to“­constŽ‘!÷P•®9oin“tŽ‘@o”¬&Ž‘H6².Ž¡‘ +[²LDF‘T2003.11.28.¬]Ž‘Y˜{BUG‘åpFIX:–å•Changed,‘ ¥so“that“±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Jt¬(‘ª®)“is“called“on“the“­P•®9oin“tŽ‘ݬ.‘"†This“en¸ãtailedŽ¡making–ÅÃthis“function“non-­constŽ‘ÕM¬.‘ÃAdded“­constŽ‘"`Ó¬vš¸ãersion“bGelo˜w.‘ÃThis“ma˜y“actually“bGe“a“bug,‘áÞrather“than“aŽ¡bug–s x,‘mdepGending“on“hoš¸ãw“this“function“is“used“elsewhere.‘U|Ho˜w˜ev˜er,‘mI‘]really“think“±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘I R¬(‘ª®)“shouldŽ¡bGe‘UUcalled.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­constŽ‘(*£P•®9oin“tŽ‘G@¬&Ž‘Ná^±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘vC¦¬(­constŽ‘*¢unsignedŽ‘Na°shortŽ‘l,SµaŽ‘quƒ¬);ŽŽŽŒ‹üø© Šn ý‘ì¬252–¯NON-­CONST‘ÕX¯VERSION’ñÎ?3DLDF-1.1.5.1“°x¬933Ž €n ý•@P­933.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­constŽ‘(*£P•®9oin“tŽ‘G@¬&Ž‘Ná^­P®9athŽ‘hrƬ::‘±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘(bL¬(­constŽ‘*¢unsignedŽ‘Na°shortŽ‘l,SµaŽ‘quƒ¬)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(µaŽ‘H<‘DZp‘ÿ}'ointsŽ‘ë­µ:±sizeŽ‘\¬(‘ª¨))‘°fŽ¡‘¬(±p‘ÿ}'ointsŽ‘$•¬[µaŽ‘I0¬])‘þŸµ~ŽŽ‘±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Jà¬(‘ª¨);Ž¡‘­returnŽ‘Aæ½°Ž‘Fæ¾±p‘ÿ}'ointsŽ‘b S¬[µaŽ‘I0¬];Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘4w0°‘Á‡´"ERROR!® ´In® ´Path::getŽ‘lÁK_point():\n"Ž—° °‘Á‡´"Argument® ´is® ´>=® ´sizeŽ‘lÁK® ´of® ´Path.\n"Ž“°Ž¡‘2´"Returning® ´INVALID_PŽ’šÿÉOINT.\n\n"Ž’ÒÍ+°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_POINTŽ’†¬þ¬;Ž¡‘°gŽ¡‘ +gŽŸ­934.‘ üconst‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.11.28.¬]Ž‘Y;Added–UUthis“v¸ãersion.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïž±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘PQæ¬(­constŽ‘*¢unsignedŽ‘Na°shortŽ‘l,SµaŽ‘quƒ¬)‘UU­constŽ‘*¢¬;ŽŸ­935.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžP®9athŽ‘B¬::‘±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘(bL¬(­constŽ‘*¢unsignedŽ‘Na°shortŽ‘l,SµaŽ‘quƒ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(µaŽ‘H<‘DZp‘ÿ}'ointsŽ‘ë­µ:±sizeŽ‘\¬(‘ª¨))‘°fŽ¡‘­P•®9oin“tŽ‘<ï µpŽ‘D¾¸¬=‘Ç°Ž‘Ç¬(±p‘ÿ}'ointsŽ‘$•¬[µaŽ‘I0¬]);ަ‘µpŽ‘#:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘­returnŽ‘Aæ½µpŽ‘F;Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘4w0°‘Á‡´"ERROR!® ´In® ´Path::getŽ‘lÁK_point():\n"Ž—° °‘Á‡´"Argument® ´is® ´>=® ´sizeŽ‘lÁK® ´of® ´Path.\n"Ž“°Ž¡‘2´"Returning® ´INVALID_PŽ’šÿÉOINT.\n\n"Ž’ÒÍ+°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_POINTŽ’†¬þ¬;Ž¡‘°gŽ¡‘ +gŽŸ­936.‘ üGet–ÕTlast“pQÇoin®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.05.10.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2002.11.05.¬]Ž‘Y;Made–UUnon-­inlineŽ‘4ó¬.‘qÇChanged“return“v‘ÿqÇalue“to“­constŽ‘!÷P•®9oin“tŽ‘@o”¬&Ž‘H6².ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­constŽ‘(*£P•®9oin“tŽ‘G@¬&Ž‘Ná^±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ’‰œ¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹ý Šn ý‘ì°x¬937›¯3DLDF-1.1.5.1’îGET–ÕXLAST“POINT˜¬253Ž €n ý•@P­937.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­constŽ‘(*£P•®9oin“tŽ‘G@¬&Ž‘Ná^­P®9athŽ‘hrƬ::‘±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘;$B¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±p‘ÿ}'ointsŽ›$•µ:±sizeŽ‘\¬(‘ª¨)–ǰ6¬=“0Ž‘Ç)‘­returnŽ‘(溰Ž‘-æ»±p‘ÿ}'ointsŽ‘I P¬[±p‘ÿ}'ointsŽ˜µ:±sizeŽ‘\¬(‘ª¨)–8à°“¬1Ž‘8á];Ž¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘5ž4°‘è‹´"ERROR!® ´In® ´Path::getŽ‘mèO_last_point():\n"Ž’Ì—°‘è‹´"Path® ´is® ´empty.\n"Ž‘h×H°Ž¡‘2´"Returning® ´INVALID_PŽ’šÿÉOINT.\n\n"Ž’ÒÍ+°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_POINTŽ’†¬þ¬;Ž¡‘°gŽ¡‘ +gŽŸ­938.‘ üGet‘ÕTsize.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔinlineŽ‘Osizeu½‰™šs4Ž‘ÔwtŽ‘njűget‘‰ffŽ‘®sizeŽ’¹Ý¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±p‘ÿ}'ointsŽ‘S Qµ:±sizeŽ‘\¬(‘ª¨);Ž¡‘ +°gŽŸ­939.‘ üGet‘ÕTnormal.ŽŽŽŒ‹þñ Šn ý‘ì¬254›­P–ÿ +«A“TH‘ÕX¯VERSION’­›3DLDF-1.1.5.1˜°x¬940Ž €n ý•@P­940.› üP•®9ath‘õÓv“ersion.˜¬[²LDF‘T2002.11.05.¬]Ž‘YÅÛ±get‘‰ffŽ‘®normalŽ’ŠPO¬(‘ª®)–’úreturns“a“unit“vš¸ãector“represen˜ting“the“normal“to“theޤ plane–f +of“the“­P®9athŽ‘]x°Ž‘$]y±thisŽ‘5I/¬,‘j8if“°Ž‘f ±thisŽ›·Ë¬is“planar.‘£çIf“the“­P•®9oin“tsŽ‘&on“°Ž‘f ±thisŽ˜¬are“colinear“and“there“are“no“connectorsŽ¡that–˜pcould“mak¸ãe“the“­P®9athŽ›ÂD¬non-linear,‘©6then“±originŽ‘"'¬((0µ;–ª¨¬0µ;“¬0))–˜pis“returned.‘;If“the“­P®9athŽ˜¬is“neither“planar“norŽ¡linear,‘UU±get‘‰ffŽ‘®normalŽ‘3ßɬ(‘ª®)–UUreturns“´INVALID_POINTŽ‘H–¬.Ž¡‘ +[²LDF‘T2002.11.05.¬]ŽŽ¡°Ž‘ +±get‘‰ffŽ‘®normalŽ‘:Šu¬(›ª®)–> rst“c•¸ãhec“ks–>whether“a“­P®9athŽ‘ Çà¬con¸ãtains“no“­P•®9oin“tsŽ‘(Z¬or“only“one“­P•®9oin“tŽ‘µ†¬.‘ÂIf“so,‘L¸±get‘‰ffŽ‘®normalŽ‘4×,¬(˜)Ž¡‘ +returns‘UU´INVALID_POINTŽ‘H–¬.Ž©°Ž‘ +¬Then–KÒit“c•¸ãhec“ks–KÒwhether“the“­P®9athŽ‘!)¬has“connnectors“that“mighš¸ãt“mak˜e“the“­P®9athŽ‘!)¬non-planar,‘‰qev˜en“if“theŽ¡‘ +­P•®9oin“tsŽ‘.DÙ¬lie–!Tin“a“plane.›ÕÄIf“it“doGes,‘TTit“returns“´INVALID_POINTŽ‘H畬.˜Note“that“there“is“no“guaran¸ãtee“that“theŽ¡‘ +connectors–UUactually“±wil‘‚Øl‘]Þ¬mak¸ãe“the“­P®9athŽ‘<¬non-planar.ަ°Ž‘ +¬Then–èit“c•¸ãhec“ks–èwhether“the“­P®9athŽ‘­4¬has“only“t•¸ãw“o‘è­P•®9oin“tsŽ‘"±l¬.‘/NIf–èit“doGes,‘µË±get‘‰ffŽ‘®normalŽ‘3@?¬(‘ª®)“returns“the“­P•®9oin“tŽ‘ ¶¬(0µ;–ª¨¬0µ;“¬0),Ž¡‘ +bšGecause–UUthe“­P®9athŽ‘<¬will“b˜e“linear.ަ°Ž‘ +¬Then–¨ it“gets“the“cross“proGduct“µbŸÿ³0Ž›$“¬ofŸü±È“°ŽŽ‘ I‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³1ŽŽŽŽŽ‘Y&¬andŸü±È“°ŽŽ‘ I‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³2ŽŽŽŽŽ‘±¬,‘¼Ówhere“µpŸÿ³0Ž˜¬and“µpŸÿ³1Ž˜¬are“the“ rst“and“second“­P•®9oin“tsŽ‘'sĬonŽ¡‘ +the‘‡­P®9athŽ‘’ë¬,‘Jand–‡µpŸÿ³2Ž‘}ú¬is“the“next“­P•®9oin“tŽ‘!V¬on“the“­P®9athŽ›”r¬suc¸ãh“that“µbŸÿ³0Ž‘C‹°6¬=‘Ç(0µ;–ª¨¬0µ;“¬0).‘UØIf–‡no“­P•®9oin“tsŽ‘&&’¬on“the“­P®9athŽ˜¬ful llŽ¡‘ +this–UUcondition,“then“all“of“the“­P•®9oin“tsŽ‘&Î.¬are“colinear,“so“±get‘‰ffŽ‘®normalŽ‘3ßɬ(‘ª®)“returns“±originŽ‘Kv¬.ަ°Ž‘ +¬If,›Ñho•¸ãw“ev“er,˜µbŸÿ³0Ž‘C‹°6¬=‘Ç(0µ;–ª¨¬0µ;“¬0)–pexists,˜then“cross“proGducts“µbŸÿ·xŽ‘ T¬are“calculated“usingŸü±È“°ŽŽ‘¤W‘þãŽŽŽ‘gþ!ŽŽŸN8“µpŸÿ³0Ž‘|sµpŸÿ³1ŽŽŽŽŽ‘Ƭand“the“direction“v¸ãectorsŽ¡Ÿü±È‘ +°ŽŽ‘ç!‘þãŽŽŽ‘®6!ŽŽŸN8‘ +µpŸÿ³0Ž‘|sµpŸÿ·xŽŽŽŽŽ‘! ‡¬for–‹/the“rest“of“the“­P•®9oin“tsŽ‘'9âµpŸÿ·xŽ‘”¬on“the“­P®9athŽ‘“¬.‘TIf“and“only“if“µbŸÿ·xŽ›)¼¬=‘ صbŸÿ³0Ž‘|s¬,‘˜¥or“µbŸÿ·xŽ˜¬=‘ ذµbŸÿ³0Ž‘|s¬,‘˜¥or“µbŸÿ·xŽ˜¬=‘ Ø(0µ;–ª¨¬0µ;“¬0)‘‹/forŽ¡‘ +all–òþµbŸÿ·xŽ‘ä¬,›©then“the“­P®9athŽ‘w`¬is“planar,˜and“±get‘‰ffŽ‘®normalŽ‘3}r¬(‘ª®)“returns“°µbŸÿ³0Ž‘oq¬(see“explanation“of“sign“bGelo¸ãw).‘QOtherwise,Ž¡‘ +the‘UU­P®9athŽ‘<¬is–UUnon-planar,“and“±get‘‰ffŽ‘®normalŽ‘3ßɬ(‘ª®)“returns“´INVALID_POINTŽ‘H–¬.ަ‘ +[²LDF‘T2003.06.04.¬]Ž‘XP™Revš¸ãersing–³the“sign“of“µbŸÿ³0Ž‘&¬ensures“that“the“normal“will“pGoin˜t“in“the“direction“of“the“pGositiv˜eŽ¡y-axis,›Ï‚when–® a“plane“ gure“is“created“in“the“x-z“plane,˜using“one“of“the“constructors“taking“a“­P•®9oin“tŽ‘ öb¬argumen¸ãtŽ¡for–˜¾the“cen•¸ãter,‘¾v­realŽ‘µ ¬argumen“ts–˜¾for“the“dimensions,‘¾vand“three“­realŽ‘U¬argumen¸ãts“for“the“rotation“abGout“the“ma‘Ž8jorŽ¡axes.›iIf–ýnon-zero“argumen¸ãts“are“used“for“rotation,‘' +the“normal“will“bGe“rotated“accordingly‘ÿ*ª.˜This“directionŽ¡considered–%jto“bšGe“\outside".‘aÎIn“3DLDF,“the“constructors“generally“generate“­P•®9oin“tsŽ‘&nX¬mo¸ãving“ab˜out“the“ gureŽ¡in–[9the“coun•¸ãter-clošGc“kwise–[9direction“(as“seen“from“a“­P•®9oin“tŽ‘"Pº¬with“a“p˜ositiv¸ãe“y-co˜ordinate).‘ƒrHo•¸ãw“ev“er,‘\²accordingŽ¡to–$ˆHu¸ãw“Jones,‘.K±Computer–gGr›ÿ}'aphics“Thr˜ough“Key“Mathematics¬,–.Kp.›$ˆ197,“\outside"˜is˜considered˜to˜bGe˜the˜sideŽ¡of–Ïta“plane,‘ê;where“the“­P•®9oin“tsŽ‘%Âl¬are“meanš¸ãt“to“bGe“tra˜v˜ersed“in“the“cloGc˜kwise“direction.–E'!!“W‘ÿ*ªatc˜h–Ïtout“for“problemsŽ¡that–UUma¸ãy“arise“from“this“discrepancy!ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.05.¬]Ž‘Y;Rewrote–UUthis“function.Ž¡‘ +[²LDF‘T2003.06.04.¬]Ž‘Y75Changed–„Osign“of“the“normal,› when“it's“returned,˜in“the“cases“where“a“propGer“normal“isŽ¡found–UU(not“´INVALID_POINTŽ‘Kpë¬or“±originŽ‘Kv¬).‘qÇSee“explanation“abGo•¸ãv“e.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔP•®9oin“tŽ‘N}q±get‘‰ffŽ‘®normalŽ‘å¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŸ­941.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­P•®9oin“tŽ‘(ïžP®9athŽ‘B¬::‘±get‘‰ffŽ‘®normalŽ‘1Šx¬(‘ª®)‘UU­constŽ‘*¢°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Path::get_Ž‘kÆÜnormal().\n"Ž’®8°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(±p‘ÿ}'ointsŽ‘$•µ:±sizeŽ‘\¬(‘ª¨)–ǰ“¬0Ž‘Ç)‘°fŽ¡‘(±c‘ÿ}'errŽ‘B“M°‘Ý£´"WARNING!® ´In® ´Path::gŽ‘pÝget_normal():\n"Ž’ÈE°Ž¡‘<´"Path® ´is® ´empty® ´or® ´coŽ’¤ÿÊntains® ´only® ´one® ´PoinŽ’ ÿŽt.® ´"Ž’&M°‘Ç´"Returning® ´INVALID_PŽ‘kÆÜOINT.\n\n"Ž’£”>°Ž¡‘<± ushŽ‘Q¹¬;Ž¡‘(­returnŽ‘Kæ¾´INVALID_POINTŽ’¬ÿ¬;Ž¡‘°gŽŽŽŒ‹ÿ; Šn ý‘ì°x¬942›¯3DLDF-1.1.5.1’­›­P–ÿ +«A“TH‘ÕX¯VERSION˜¬255Ž €n ý•@P­942.‘ ü¬[²LDF‘T2002.11.05.¬]Ž‘ZžWConnectors–kvother“than“the“ones“in“the“conditional“bGelo¸ãw“could“cause“the“­P®9athŽ‘hP¬toޤ bGe–UUnon-linear“or“non-planar,“ev¸ãen“if“the“­P•®9oin“tsŽ‘&Î.¬lie“on“a“line“or“in“a“plane.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­forŽ‘臬(­v®9ectorŽ‘ªH°h­stringŽ‘Ïø°i‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘DZc–ÿ}'onne“ctorsŽ–1ûFµ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZc–ÿ}'onne“ctorsŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘G±iterŽ‘"¬)‘°fŽ¡‘­ifŽ‘´ú¬(°:¬(°Ž‘±iterŽ‘’°‘Ç´".."Ž–†T°_‘8àŽ‘8á±iterŽ›Ê÷°‘Ç´"--"Ž“°_‘8àŽ‘8á±iterŽ˜°‘Ç´"..."Ž‘ÆQ°_‘8àŽ‘8á±iterŽ˜°‘Ç´"---"Ž‘q¬))‘°fŽ¡‘±c‘ÿ}'errŽ‘3|Á°‘Ç´"WARNING!® ´In® ´Path::gŽ‘kÆÜet_normal():\n"Ž’½Ô/°‘Ç´"Connector® ´may® ´make® Ž‘kÆÜ´Path® ´non-linear® ´or® ´nŽ’ÔÆ \ŽŽ¡‘2on-planar:® ´"Ž‘tMa°‘ÇŽ‘DZiterŽ‘Y/°‘DZend‘‚ØlŽ‘ò°‘Ç´"Returning® ´INVALID_PŽ‘kÆÜOINT.\n\n"Ž’£”>°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_POINTŽ’†¬þ¬;Ž¡‘°gŽ¡‘ +gŽŸ­943.‘ ü¬[²LDF‘T2002.11.05.¬]Ž‘Zˆ6Tw•¸ão›UUpGoin“ts˜determine˜a˜line.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±p‘ÿ}'ointsŽ‘$•µ:±sizeŽ‘\¬(‘ª¨)–ǰ“¬2Ž‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘/“°‘`ë´"WARNING!® ´In® ´Path::gŽ‘q`¯et_normal():\n"Ž’ÉÕ°Ž¡‘(´"Path® ´has® ´2® ´Points.® Ž’ÿÈ ´Returning® ´origin.\nŽ’ùÿŒ\n"Ž’ °‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼±originŽ‘RÜݬ;Ž¡‘ +°gŽŽŽŒ‹*6 Šn ý‘ì¬256›­P–ÿ +«A“TH‘ÕX¯VERSION’­›3DLDF-1.1.5.1˜°x¬944Ž €n ý•@P­944.ޤ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž© ‘ +­v®9ectorŽ‘)ªI°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘DZp‘ÿ}'ointsŽ‘ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);Ž¡‘ +­P•®9oin“tŽ‘(ïž±p0Ž‘5^¬(°Ž‘Ž‘ +±iterŽ‘KŸÿ³+‘ÿ+ŽŽ‘' ¬);ަ‘ +­P•®9oin“tŽ‘(ïž±p1Ž‘5^¬(°Ž‘Ž‘ +±iterŽ‘KŸÿ³+‘ÿ+ŽŽ‘' ¬);ަ‘ +­P•®9oin“tŽ‘(ïž±p2Ž‘5^¬;ަ‘ +­P•®9oin“tŽ‘(ïž±a0Ž‘5^¬(±p1Ž–O °‘8à±p0Ž“¬);ަ‘ +­P•®9oin“tŽ‘(ïž±a1Ž‘5^¬;ަ‘ +­P•®9oin“tŽ‘(ïž±b0Ž‘4ƒ…¬;Ž¡‘ +­whileŽ‘(C-¬(±b0Ž‘Zÿ°‘DZoriginŽ‘ö°^‘8à±iterŽ‘Êö°6¬=‘DZp‘ÿ}'ointsŽ‘ë­µ:±endŽ‘ಬ(‘ª¨))‘°fަ‘±p2Ž‘"ÝÚ¬=‘Ç°Ž‘ÇŽ‘ DZiterŽ‘Ÿÿ³+‘ÿ+ŽŽ‘)Ù8¬;ަ‘±a1Ž‘"ÝÚ¬=‘DZp2Ž‘¸°‘8à±p0Ž‘O ¬;ަ‘±b0Ž‘"[¬=‘DZa0Ž‘ÝØµ:±cr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé¬(±a1Ž‘ À¬);ަ‘ +°gަ‘ +­ifŽ‘´ù¬(±iterŽ‘’°‘DZp‘ÿ}'ointsŽ‘ë­µ:±endŽ‘ಬ(‘ª¨)–8à°^“±b0Ž‘“ß°‘DZoriginŽ‘½9¬)‘°fަ‘­ifŽ‘ "®¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘×$°‘}í´"Exiting® ´Path::get_nŽ‘l}±ormal().® ´"Ž’¥è°‘}í´"Points® ´are® ´all® ´coliŽ‘l}±near.\n"Ž’šî°ަ‘2´"Returning® ´origin.\nŽ’šÿÉ\n"Ž’® @°‘DZ ushŽ‘€¬;ަ‘­returnŽ‘7æ¼±originŽ‘RÜݬ;ަ‘ +°gަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±b0Ž‘“çµ:±showŽ‘Šÿ¬(´"b0"Ž‘†\¬);ަ‘ +±b0Ž‘“èµ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);ަ‘ +­ifŽ‘´ù¬(±iterŽ‘’°‘DZp‘ÿ}'ointsŽ‘ë­µ:±endŽ‘ಬ(‘ª¨)–8à°^“±b0Ž‘“ß°6¬=‘DZoriginŽ‘½9¬)‘°fަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fަ‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Exiting® ´Path::get_nŽ‘kÆÜormal().® ´"Ž’£”>°‘Ç´"Points® ´are® ´all® ´coliŽ‘kÆÜnear® ´except® ´for® ´one.Ž’ÔÆ \n"Ž’çÔ°ަ‘2´"Returning® ´normal.\nŽ’šÿÉ\n"Ž’® @°‘DZ ushŽ‘€¬;ަ‘°gަ‘­returnŽ‘7æ¼°Ž‘?­Ú±b0Ž‘KAÁ¬;ަ‘ +°gŽ¡‘ +­P•®9oin“tŽ‘(ïž±b1Ž‘4ƒ…¬;Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´second® ´whiŽ‘kÆÜle.\n"Ž’Ž”J°‘DZ ushŽ‘€¬;ަ‘ +­whileŽ‘(C-¬(±iterŽ‘’°6¬=‘DZp‘ÿ}'ointsŽ‘ë­µ:±endŽ‘ಬ(‘ª¨))‘°fަ‘±p2Ž‘"ÝÚ¬=‘Ç°Ž‘ÇŽ‘ DZiterŽ‘Ÿÿ³+‘ÿ+ŽŽ‘)Ù8¬;ަ‘±a1Ž‘"ÝÚ¬=‘DZp2Ž‘¸°‘8à±p0Ž‘O ¬;ަ‘±b1Ž‘"[¬=‘DZa0Ž‘ÝØµ:±cr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé¬(±a1Ž‘ À¬);ަ‘­ifŽ‘´ú¬(±b1Ž‘Zÿ°6¬=‘DZoriginŽ‘½9¬)ަ‘(µ=°‘ÿý¬[²LDF‘T2002.11.03.¬]Ž‘T7This‘UU­ifŽ‘ +M¬merely›UUprev•¸ãen“ts˜a˜w“arning˜from˜bGeing˜issued˜b“y˜±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘3êʬ(‘ª®).‘o°µ=ަ‘±b1Ž‘)“êµ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±b1Ž‘“çµ:±showŽ‘Šÿ¬(´"b1"Ž‘†\¬);ަ‘­ifŽ‘´ú¬(°:¬(±b1Ž‘Zÿ°‘DZoriginŽ‘ö°_‘8à±b1Ž–“ß°‘DZb0Ž“°_‘8à±b1Ž“°‘ÇŽ‘ +Ž6±b0Ž‘"¬))‘°fަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)ަ‘(±c‘ÿ}'outŽ‘> S°‘Ç´"Exiting® ´Path::get_nŽ‘kÆÜormal().® ´"Ž—£”>°‘Ç´"Returning® ´INVALID_PŽ‘kÆÜOINT.\n\n"Ž“°‘DZ ushŽ‘€¬;ަ‘­returnŽ‘Aæ½´INVALID_POINTŽ’†¬þ¬;ަ‘°gަ‘ gަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPath::get_nŽ‘kÆÜormal().È Ý"Ž’£”>·‘ÇÝ"ReturningÈ Ýnormal.\nŽ‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;ަ‘ -ÂreturnŽ‘-æ»·Ž‘5­ÙÏb0Ž‘AAÀ«;‘UU·gŽŽŽŒ‹ù B› Šn ý‘ì·x«901–­3DLDFPRÃŽG’èPÂPOINT‘ÕX­VERSION“«249Ž €n ý•@PÂ901.› üP•®9oin“t‘  v“ersion.˜P“oin“tŽ‘(H«::‘Ïget‘‰ffŽ‘®normalŽ‘1Šx«(‘ª®)–§­is“declared“Èpoints.web«,›Êibut“it“m¸ãust“bGe“de ned“here,˜bGecauseޤ it–UUcalls“ÂP®9athŽ‘潫::‘Ïget‘‰ffŽ‘®normalŽ‘1Šx«(‘ª®).‘qÇ[¬LDF‘T2003.07.11.«]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.11.«]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê«::‘Ïget‘‰ffŽ‘®normalŽ‘1Šx«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié];‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒ±qŽ‘K^¯«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP®9athŽ‘/æ»±rŽ‘4°Ï«;Ž©‘±rŽ‘Ê:Ïset‘‰ffŽ‘®c–ÿ}'onne“ctorsŽ‘>å«(Ý"--"Ž‘†\«);Ž¡‘±rŽ‘‘.«+=ŽŽ‘-æ‚·Ž‘2æƒÏthisŽ‘CÒ9«;Ž¡‘±rŽ‘‘.«+=ŽŽ‘-悱pŽ‘2î‚«;Ž¡‘±rŽ‘‘.«+=ŽŽ‘-悱qŽ‘2¹,«;Ž¡‘ÂifŽ‘´ú«(·:±rŽ‘Ê:Ïis‘‰ffŽ‘®planarŽ‘(&«(‘ª¨))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘8÷f·‘A½Ý"ERROR!È ÝInÈ ÝPoint::geŽ‘qAt_normal():\n"Ž’Ã‰|·Ž¡‘2Ý"TheÈ ÝPointsÈ ÝdoÈ ÝnotÈ ÝdŽ’šÿÉetermineÈ ÝaÈ Ýplane.\n"Ž’M ·‘ÇÝ"ReturningÈ ÝINVALID_PŽ‘kÆÜOINT.\n\n"Ž’£”>·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáreturnŽ‘O¿›±rŽ‘T‰¯:Ïget‘‰ffŽ‘®normalŽ‘0Št«(‘ª¨);Ž¡‘ -·gŽŸÂ902.‘ üGet‘ÕTplane.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.05.«]Ž‘Y;Rewrote–UUthis“function“to“correspGond“to“the“new“de nition“of“Ïget‘‰ffŽ‘®normalŽ‘3ßÉ«(‘ª®).ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔPlaneŽ‘OÄŒÏget‘‰ffŽ‘®planeŽ‘x;t«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹ú OÒ Šn ý‘ì«250–­GET‘ÕXPLANE’/½43DLDFPRÃŽG“·x«903Ž €n ý•@PÂ903.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -ÂPlaneŽ‘*6¹P®9athŽ‘CÈ!«::‘Ïget‘‰ffŽ‘®planeŽ‘)vì«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2ïŸÏnormalŽ‘SFW«(Ïget‘‰ffŽ‘®normalŽ‘0Št«(‘ª®));ަ‘ÂifŽ‘´ú«(ÏnormalŽ‘#з‘ÇÝINVALID_POINTŽ‘IÆ9·_‘8àÏnormalŽ‘%V°·‘ÇÏoriginŽ‘½9«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘8÷f·‘A½Ý"WARNING!È ÝInÈ ÝPath::gŽ‘qAet_plane().\n"Ž’Ã‰|·Ž¡‘2Ý"PathÈ ÝisÈ ÝnotÈ ÝaÈ ÝPlaneŽ’šÿÉ.È ÝReturningÈ ÝINVALID_Ž’ÿPLANE.\n\n"Ž’A ì·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_PLANEŽ’†¬þ«;Ž¡‘·gަ‘ÂP•®9oin“tŽ‘2ïŸÏp‘ÿ}'ointŽ‘J+«(Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘));ަ‘ÂreturnŽ‘7æ¼PlaneŽ‘TÈ«(Ïp‘ÿ}'ointŽ‘.Œ±;‘ª¨ÏnormalŽ‘"`«);Ž¡‘ -·gŽŸÂ904.› üP•®9oin“t–Ô†lies“within“triangle.˜«[¬LDF‘T2003.06.11.«]Ž‘[fDeclared–3>in“Èpoints.web«.‘ Must“bGe“de ned“here,Ž¡bšGecause‘UUÂP®9athŽ‘<«is–UUan“incompletely“de ned“t¸ãyp˜e“there.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.11.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.06.24.«]Ž‘Y;Remo•¸ãv“ed–UUthe“argumenš¸ãt“Ïtest‘‰ffŽ‘®p‘ÿ}'ointsŽ‘1}J«.‘qÇNo˜w,“planarit˜y“is“alw˜a˜ys“tested.Ž¡‘ -[¬LDF‘T2003.06.24.«]Ž‘Y;BUG–UUFIX:“When“the“ÂP•®9oin“tsŽ‘&Î.«all“la¸ãy“in“the“x-z“plane,“or“a“plane“parallel“to“it,Ž¡Ïlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘^ð+«wš¸ãas–q„0.‘ÆSThis“caused“Ïis‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘>%«(‘ª®)“to“return“ÏfalseŽ‘ È«,‘¸ev˜en“when“·Ž‘ q…ÏthisŽ‘ο«did“lie“in“theŽ¡triangle.‘ -:áNo¸ãw,›¾uif‘CÏlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘e·«or‘CÏmu‘‰ffŽ‘®denominatorŽ‘ThM«is–Cequal“to“0,˜the“y“and“z-coGordinates“areŽ¡exc¸ãhanged,‘,Ùand‘"ºÏlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘`Ä«and‘"ºÏmu‘‰ffŽ‘®denominatorŽ‘P'±«are–"ºrecalculated.‘`éIf“either“of“the“new“v‘ÿqÇalues“is“0,Ž¡the–¢Cx“and“z-cošGordinates“are“exc¸ãhanged“(based“on“the“original“co˜ordinate“v‘ÿqÇalues),‘µand“Ïlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽŽ¡«and‘4Ïmu‘‰ffŽ‘®denominatorŽ‘PK]«are–4again“recalculated.‘fÛOnly“one“excš¸ãhange“has“bGeen“needed“in“the“cases“I'v˜e“tested“soŽ¡far.Ž¡‘ -[¬LDF‘T2003.08.14.«]Ž‘Y;Setting‘UUÏverb‘ÿ}'oseŽ‘'<«to‘UUÏtrueŽ‘oB«if‘UUÝVERBOSE_GLOBALŽ–P°è«is‘UUÏtrueŽ‘í«.‘qÇAdded‘UUÝVERBOSE_GLOBALŽ“«toŽ¡Èpspglb.web‘UU«toGda¸ãy‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#é¤P•®9oin“tŽ‘@ƒð«::‘Ïis‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘:¥«(ÂconstŽ‘rßP•®9oin“tŽ‘=ª¹«&Ž‘Eq×Ïp0Ž‘Qˆ—±;‘ª¨ÂconstŽ‘ ‡P•®9oin“tŽ‘?Ua«&Ž‘GÏp1Ž–S3?±;‘ª¨ÂconstŽ‘ ‡P•®9oin“tŽ‘?Ua«&Ž‘GÏp2Ž“±;‘ª¨Âb•QÇo“olŽ‘”KÏverb‘ÿ}'oseŽ‘<%¨«)Ž¡‘2ÂconstŽ‘LÕR·f‘UUÂb•QÇo“olŽ‘ö»ÝDEBUGŽ‘:„,«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘)´û«(ÝVERBOSE_GLOBALŽ‘J>«)‘Ïverb‘ÿ}'oseŽ‘(Xu«=‘ÇÏtrueŽ‘‹°«;ަ‘ÂP®9athŽ‘9æ¼±qŽ‘>¹f«;ަ‘±qŽ‘%™Å«+=ŽŽ‘7ïÏp0Ž‘DÙ«;Ž¡‘±qŽ‘%™Å«+=ŽŽ‘7ïÏp1Ž‘DÙ«;Ž¡‘±qŽ‘%™Å«+=ŽŽ‘7ïÏp2Ž‘DÙ«;ަ‘ÂPlaneŽ‘>6»Ïq‘‰ffŽ‘®plŽ‘R{ˆ«=‘DZqŽ‘™Â:Ïget‘‰ffŽ‘®planeŽ‘(vè«(‘ª¨);ަ‘ÂifŽ‘)´û«(Ïq‘‰ffŽ‘®plŽ‘DÍ·‘ÇÝINVALID_PLANEŽ‘GY«)‘·fŽ¡‘(ÂifŽ‘3´ü«(Ïverb‘ÿ}'oseŽ‘ ‘]«)‘·fŽ¡‘2Ïc‘ÿ}'errŽ‘K¥]·‘ï²Ý"WARNING!È ÝInÈ ÝPoint::Ž‘oïvis_in_triangle():\n"Ž’àeT·Ž¡‘FÝ"TheÈ ÝPointÈ ÝargumentsŽ’®ÿËÈ ÝdoÈ ÝnotÈ ÝdetermineÈ ÝaÈ Ž’ÿÝplane.\n"Ž’JŒô·‘ÇÝ"ReturningÈ Ýfalse.\n\Ž‘kÆÜn"Ž‘y”V·Ž¡‘FÏ ushŽ‘[¹«;Ž¡‘(·gŽ¡‘(ÂreturnŽ‘Kæ¾ÏfalseŽ‘`–«;Ž¡‘·gŽ¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(·:Ïis‘‰ffŽ–®on‘‰ffŽ“planeŽ‘1‚Ú«(Ïq‘‰ffŽ‘®plŽ‘}µ«))‘·fŽ¡‘(ÂifŽ‘3´ü«(Ïverb‘ÿ}'oseŽ‘ ‘]«)‘·fŽŽŽŒ‹û W' Šn ý‘ì·x«904›­3DLDFPRÃŽG’ÑÝ ÂPOINT–ÕX­LIES“WITHIN“TRIANGLE˜«251Ž €n ý•@P‘2Ïc‘ÿ}'errŽ‘K¥]·‘ï²Ý"WARNING!È ÝInÈ ÝPoint::Ž‘oïvis_in_triangle():\n"Ž’àeT·ޤ ‘FÝ"*thisÈ Ýdoesn'tÈ ÝlieÈ ÝiŽ’®ÿËnÈ ÝtheÈ ÝplaneÈ ÝdeterminŽ’ÿedÈ Ý"Ž’1 /·‘†DÝ"byÈ ÝtheÈ Ýarguments.\nŽ‘l†"Ž‘uÒ±·Ž¡‘FÝ"ReturningÈ Ýfalse.\n\Ž’®ÿËn"Ž’¼ÍE·‘ÇÏ ushŽ‘€«;Ž¡‘(·gŽ¡‘(ÂreturnŽ‘Kæ¾ÏfalseŽ‘`–«;Ž¡‘·gŽ©‘ÂP•®9oin“tŽ‘<ï ±tŽ‘@Œ«(·Ž‘ÏthisŽ‘ë·«);Ž¡‘ÂP•®9oin“tŽ‘<ï ±cŽ‘AC{«(Ïp0Ž‘ À«);Ž¡‘ÂP•®9oin“tŽ‘<ï ±dŽ‘B$«(Ïp1Ž‘ À«);Ž¡‘ÂP•®9oin“tŽ‘<ï ±eŽ‘A—¡«(Ïp2Ž‘ À«);ަ‘±tŽ‘!œu:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±cŽ‘"SÞ:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±dŽ‘#4u:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘±eŽ‘"¨:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(ÏshowŽ‘>‹«(Ý"t:"Ž‘†\«);Ž¡‘(±cŽ‘,Sß:ÏshowŽ‘Šÿ«(Ý"c:"Ž‘†\«);Ž¡‘(±dŽ‘-4v:ÏshowŽ‘Šÿ«(Ý"d:"Ž‘†\«);Ž¡‘(±eŽ‘,¨:ÏshowŽ‘Šÿ«(Ý"e:"Ž‘†\«);Ž¡‘·gަ‘ÂrealŽ‘4³1Ït‘‰ffŽ‘®xŽ‘DÕ‚«=‘DZtŽ‘cŠ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];Ž¡‘ÂrealŽ‘4³1Ït‘‰ffŽ‘®yŽ‘D»1«=‘DZtŽ‘cŠ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘];Ž¡‘ÂrealŽ‘4³1Ït‘‰ffŽ‘®zŽ‘DO«=‘DZtŽ‘cŠ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘];Ž¡‘ÂrealŽ‘4³1Ïc‘‰ffŽ‘®xŽ‘Fž«=‘DZcŽ‘ó:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];Ž¡‘ÂrealŽ‘4³1Ïc‘‰ffŽ‘®yŽ‘FM«=‘DZcŽ‘ó:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘];Ž¡‘ÂrealŽ‘4³1Ïc‘‰ffŽ‘®zŽ‘E–8«=‘DZcŽ‘ó:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘];Ž¡‘ÂrealŽ‘4³1Ïd‘‰ffŽ‘®xŽ‘FŸw«=‘DZdŽ‘ûŠ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];Ž¡‘ÂrealŽ‘4³1Ïd‘‰ffŽ‘®yŽ‘F…&«=‘DZdŽ‘ûŠ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘];Ž¡‘ÂrealŽ‘4³1Ïd‘‰ffŽ‘®zŽ‘F«=‘DZdŽ‘ûŠ:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘];Ž¡‘ÂrealŽ‘4³1Ïe‘‰ffŽ‘®xŽ‘Fž«=‘DZeŽ‘o:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[0Ž‘];Ž¡‘ÂrealŽ‘4³1Ïe‘‰ffŽ‘®yŽ‘FM«=‘DZeŽ‘o:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[1Ž‘];Ž¡‘ÂrealŽ‘4³1Ïe‘‰ffŽ‘®zŽ‘E–8«=‘DZeŽ‘o:Ïworld‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ«[2Ž‘];Ž¡‘ÂrealŽ‘4³1Ïlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ’‘øð«=‘Ç(((Ïe‘‰ffŽ‘®xŽ–Û5·‘8àÏc‘‰ffŽ‘®xŽ“«)–8à·“«(Ïd‘‰ffŽ‘®yŽ‘C½·“Ïc‘‰ffŽ‘®yŽ›Àä«))“·“«((Ïe‘‰ffŽ‘®yŽ˜·“Ïc‘‰ffŽ‘®yŽ˜«)“·“«(Ïd‘‰ffŽ‘®xŽ‘^·“Ïc‘‰ffŽ‘®xŽ‘Û5«)));Ž¡‘ÂrealŽ‘4³1Ïmu‘‰ffŽ‘®denominatorŽ’\†«=‘Ç((Ïe‘‰ffŽ‘®xŽ–Û5·‘8àÏc‘‰ffŽ‘®xŽ“«)–8à·“«(Ïd‘‰ffŽ‘®yŽ‘C½·“Ïc‘‰ffŽ‘®yŽ›Àä«))“·“«((Ïe‘‰ffŽ‘®yŽ˜·“Ïc‘‰ffŽ‘®yŽ˜«)“·“«(Ïd‘‰ffŽ‘®xŽ‘^·“Ïc‘‰ffŽ‘®xŽ‘Û5«));Ž¡‘Âb•QÇo“olŽ‘7¡iÏexchange‘‰ffŽ–®y‘‰ffŽ“zŽ‘sV«=‘ÇÏfalseŽ‘v\«;Ž¡‘Âb•QÇo“olŽ‘7¡iÏexchange‘‰ffŽ–®x‘‰ffŽ“zŽ‘sŠ«=‘ÇÏfalseŽ‘v\«;‘UUÂifŽ‘ -M«(Ïlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘]E¿·‘Ç«0Ž‘ ÿù·_‘8àÏmu‘‰ffŽ‘®denominatorŽ‘Nâ5·‘Ç«0Ž‘Ç)‘UU·fŽ¡‘ÂifŽ‘+Hˆ«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘Àá·‘gªÝ"lambda_denominatorÈ Ž‘ngnÝorÈ Ýmu_denominatorÈ Ý==Ž’×g2È Ý0.È Ý"Ž’÷•5·Ž¡‘<Ý"ExchangingÈ ÝyÈ ÝandÈ Ýz-Ž’¤ÿÊcoordinates.\n"Ž’÷ ·‘ÇÏ ushŽ‘€«;ަ‘ÂrealŽ‘4³1ÏtempŽ‘K ¥«;ަ‘ÏtempŽ‘7!«=‘ÇÏt‘‰ffŽ‘®yŽ‘«;Ž¡‘Ït‘‰ffŽ‘®yŽ‘.«=‘ÇÏt‘‰ffŽ‘®zŽ‘›ë«;Ž¡‘Ït‘‰ffŽ‘®zŽ‘-›î«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ÏtempŽ‘7!«=‘ÇÏc‘‰ffŽ‘®yŽ‘O«;Ž¡‘Ïc‘‰ffŽ‘®yŽ‘/O«=‘ÇÏc‘‰ffŽ‘®zŽ‘ã«;Ž¡‘Ïc‘‰ffŽ‘®zŽ‘.ã -«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ÏtempŽ‘7!«=‘ÇÏd‘‰ffŽ‘®yŽ‘Ñõ«;Ž¡‘Ïd‘‰ffŽ‘®yŽ‘/Ñø«=‘ÇÏd‘‰ffŽ‘®zŽ‘eà«;Ž¡‘Ïd‘‰ffŽ‘®zŽ‘/eã«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ÏtempŽ‘7!«=‘ÇÏe‘‰ffŽ‘®yŽ‘O«;Ž¡‘Ïe‘‰ffŽ‘®yŽ‘/O«=‘ÇÏe‘‰ffŽ‘®zŽ‘ã«;Ž¡‘Ïe‘‰ffŽ‘®zŽ‘.ã -«=‘ÇÏtempŽ‘!Œ«;ŽŽŽŒ‹ü f’ Šn ý‘ì«252›ÂPOINT–ÕX­LIES“WITHIN“TRIANGLE’ÑÝ 3DLDFPRÃŽG˜·x«904Ž €n ý•@P‘Ïlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘{E«=‘Ç(((Ïe‘‰ffŽ‘®xŽ–Û5·‘8àÏc‘‰ffŽ‘®xŽ“«)–8à·“«(Ïd‘‰ffŽ‘®yŽ‘C½·“Ïc‘‰ffŽ‘®yŽ›Àä«))“·“«((Ïe‘‰ffŽ‘®yŽ˜·“Ïc‘‰ffŽ‘®yŽ˜«)“·“«(Ïd‘‰ffŽ‘®xŽ‘^·“Ïc‘‰ffŽ‘®xŽ‘Û5«)));ޤ ‘Ïmu‘‰ffŽ‘®denominatorŽ‘j©X«=‘Ç((Ïe‘‰ffŽ‘®xŽ–Û5·‘8àÏc‘‰ffŽ‘®xŽ“«)–8à·“«(Ïd‘‰ffŽ‘®yŽ‘C½·“Ïc‘‰ffŽ‘®yŽ›Àä«))“·“«((Ïe‘‰ffŽ‘®yŽ˜·“Ïc‘‰ffŽ‘®yŽ˜«)“·“«(Ïd‘‰ffŽ‘®xŽ‘^·“Ïc‘‰ffŽ‘®xŽ‘Û5«));Ž¡‘ÂifŽ‘)´û«(·:«(Ïlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘]E¿·‘Ç«0Ž‘ ÿù·_‘8àÏmu‘‰ffŽ‘®denominatorŽ‘Nâ5·‘Ç«0Ž‘Ç))‘·fŽ¡‘(ÂifŽ‘5^Ö«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘æ ·‘ŒÖÝ"ExchangingÈ ÝyÈ ÝandÈ Ýz-Ž‘nŒšcoordinatesÈ Ýworked.\Ž’×Œ^n"Ž’è–·Ž¡‘FÝ"lambda_denominatorÈ Ž’®ÿËÝandÈ Ýmu_denominatorÈ ÝaŽ’ÿreÈ ÝnoÈ ÝlongerÈ Ý0.\n"Ž’yÌÙ·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïexchange‘‰ffŽ–®y‘‰ffŽ“zŽ‘c´›«=‘ÇÏtrueŽ‘‹°«;Ž¡‘·gŽ¡‘ÂelseŽ‘4.7·fŽ¡‘ÂifŽ‘+Ϋ(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘}·‘#ÊÝ"ExchangingÈ ÝyÈ ÝandÈ Ýz-Ž‘n#ŽcoordinatesÈ Ýdidn'tÈ ÝwŽ’×#Rork.\n"Ž’o·Ž¡‘<Ý"ExchangingÈ ÝxÈ ÝandÈ Ýz-Ž’¤ÿÊcoordinates.\n"Ž’÷ ·‘ÇÏ ushŽ‘€«;ŽŸÂ905.‘ ü«First,–UUput“things“bacš¸ãk“the“w˜a˜y“they“w˜ere.‘qÇIt's“w˜asteful,“but“less“confusing.‘qÇ[¬LDF‘T2003.06.24.«]ŽŽŸ·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·Ž¡‘ -ÏtempŽ‘#!«=‘ÇÏt‘‰ffŽ‘®yŽ‘«;Ž¡‘ -Ït‘‰ffŽ‘®yŽ‘«=‘ÇÏt‘‰ffŽ‘®zŽ‘›ë«;Ž¡‘ -Ït‘‰ffŽ‘®zŽ‘›ì«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ -ÏtempŽ‘#!«=‘ÇÏc‘‰ffŽ‘®yŽ‘O«;Ž¡‘ -Ïc‘‰ffŽ‘®yŽ‘O«=‘ÇÏc‘‰ffŽ‘®zŽ‘ã«;Ž¡‘ -Ïc‘‰ffŽ‘®zŽ‘ã«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ -ÏtempŽ‘#!«=‘ÇÏd‘‰ffŽ‘®yŽ‘Ñõ«;Ž¡‘ -Ïd‘‰ffŽ‘®yŽ‘Ñö«=‘ÇÏd‘‰ffŽ‘®zŽ‘eà«;Ž¡‘ -Ïd‘‰ffŽ‘®zŽ‘eá«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ -ÏtempŽ‘#!«=‘ÇÏe‘‰ffŽ‘®yŽ‘O«;Ž¡‘ -Ïe‘‰ffŽ‘®yŽ‘O«=‘ÇÏe‘‰ffŽ‘®zŽ‘ã«;Ž¡‘ -Ïe‘‰ffŽ‘®zŽ‘ã«=‘ÇÏtempŽ‘!Œ«;ŽŽŽŒ‹ý xZ Šn ý‘ì·x«906›­3DLDFPRÃŽG’ÑÝ ÂPOINT–ÕX­LIES“WITHIN“TRIANGLE˜«253Ž €n ý•@PÂ906.‘ ü«No•¸ãw,›UUexc“hange˜the˜x˜and˜z-coGordinates.‘qÇ[¬LDF‘T2003.06.24.«]ŽŽ©ª·h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·i‘Ç«+·ޤ ‘ -ÏtempŽ‘#!«=‘ÇÏt‘‰ffŽ‘®xŽ‘"Q«;Ž¡‘ -Ït‘‰ffŽ‘®xŽ‘"R«=‘ÇÏt‘‰ffŽ‘®zŽ‘›ë«;Ž¡‘ -Ït‘‰ffŽ‘®zŽ‘›ì«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ -ÏtempŽ‘#!«=‘ÇÏc‘‰ffŽ‘®xŽ‘im«;Ž¡‘ -Ïc‘‰ffŽ‘®xŽ‘in«=‘ÇÏc‘‰ffŽ‘®zŽ‘ã«;Ž¡‘ -Ïc‘‰ffŽ‘®zŽ‘ã«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ -ÏtempŽ‘#!«=‘ÇÏd‘‰ffŽ‘®xŽ‘ìF«;Ž¡‘ -Ïd‘‰ffŽ‘®xŽ‘ìG«=‘ÇÏd‘‰ffŽ‘®zŽ‘eà«;Ž¡‘ -Ïd‘‰ffŽ‘®zŽ‘eá«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ -ÏtempŽ‘#!«=‘ÇÏe‘‰ffŽ‘®xŽ‘im«;Ž¡‘ -Ïe‘‰ffŽ‘®xŽ‘in«=‘ÇÏe‘‰ffŽ‘®zŽ‘ã«;Ž¡‘ -Ïe‘‰ffŽ‘®zŽ‘ã«=‘ÇÏtempŽ‘!Œ«;Ž¡‘ -Ïlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘gEÀ«=‘Ç(((Ïe‘‰ffŽ‘®xŽ–Û5·‘8àÏc‘‰ffŽ‘®xŽ“«)–8à·“«(Ïd‘‰ffŽ‘®yŽ‘C½·“Ïc‘‰ffŽ‘®yŽ›Àä«))“·“«((Ïe‘‰ffŽ‘®yŽ˜·“Ïc‘‰ffŽ‘®yŽ˜«)“·“«(Ïd‘‰ffŽ‘®xŽ‘^·“Ïc‘‰ffŽ‘®xŽ‘Û5«)));Ž¡‘ -Ïmu‘‰ffŽ‘®denominatorŽ‘V©V«=‘Ç((Ïe‘‰ffŽ‘®xŽ–Û5·‘8àÏc‘‰ffŽ‘®xŽ“«)–8à·“«(Ïd‘‰ffŽ‘®yŽ‘C½·“Ïc‘‰ffŽ‘®yŽ›Àä«))“·“«((Ïe‘‰ffŽ‘®yŽ˜·“Ïc‘‰ffŽ‘®yŽ˜«)“·“«(Ïd‘‰ffŽ‘®xŽ‘^·“Ïc‘‰ffŽ‘®xŽ‘Û5«));Ž¡‘ -ÂifŽ‘´ù«(·:«(Ïlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘]E¿·‘Ç«0Ž‘ ÿù·_‘8àÏmu‘‰ffŽ‘®denominatorŽ‘Nâ5·‘Ç«0Ž‘Ç))‘·fŽ¡‘ÂifŽ‘!¬h«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘gW·‘ Ý"ExchangingÈ ÝxÈ ÝandÈ Ýz-Ž‘o äcoordinatesÈ Ýworked.\Ž’Ø ¨n"Ž’é"*·Ž¡‘2Ý"lambda_denominatorÈ Ž’šÿÉÝandÈ Ýmu_denominatorÈ ÝaŽ’ÿreÈ ÝnoÈ ÝlongerÈ Ý0.\n"Ž’eÌ×·‘ÇÏ ushŽ‘€«;Ž¡‘Ïexchange‘‰ffŽ–®x‘‰ffŽ“zŽ‘O}#«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘!Øà·fŽ¡‘ÂifŽ‘´ú«(Ïverb‘ÿ}'oseŽ‘"Ê=·_‘8àÝDEBUGŽ‘ÿ9«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘8(¢·‘rùÝ"WARNING!È ÝInÈ ÝPoint::Ž‘pr½is_in_triangle():\n"Ž’ákâ·Ž¡‘2Ý"lambda_denominatorÈ Ž’šÿÉÝorÈ Ýmu_denominatorÈ ÝisŽ’ÿÈ Ý0.\n"Ž’&Ìû·‘ÇÝ"ReturningÈ Ýfalse.\n\Ž‘kÆÜn"Ž‘y”V·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼ÏfalseŽ‘L–«;Ž¡‘ -·gŽ¡‘ -g–UUg“ÂrealŽ‘ƒÏlamb‘ÿ}'daŽ‘<>ž«=‘Ç(((Ït‘‰ffŽ‘®xŽ‘”·‘8àÏc‘‰ffŽ‘®xŽ‘Û5«)–8à·“«(Ïd‘‰ffŽ‘®yŽ‘C½·“Ïc‘‰ffŽ‘®yŽ›Àä«))“·“«((Ït‘‰ffŽ‘®yŽ‘yÈ·“Ïc‘‰ffŽ‘®yŽ˜«)“·“«(Ïd‘‰ffŽ‘®xŽ‘^·“Ïc‘‰ffŽ‘®xŽ‘Û5«)))±=Ïlamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘Z~§«;Ž¡‘ -ÂrealŽ‘ ³/ÏmuŽ‘2Là«=‘Ç·Ž‘ -Ž6«((((Ït‘‰ffŽ‘®xŽ‘”·‘8àÏc‘‰ffŽ‘®xŽ‘Û5«)–8à·“«(Ïe‘‰ffŽ‘®yŽ›Àä·“Ïc‘‰ffŽ‘®yŽ˜«))“·“«((Ït‘‰ffŽ‘®yŽ‘yÈ·“Ïc‘‰ffŽ‘®yŽ˜«)“·“«(Ïe‘‰ffŽ‘®xŽ›Û5·“Ïc‘‰ffŽ‘®xŽ˜«)))±=Ïmu‘‰ffŽ‘®denominatorŽ‘Iâ=«);ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"lambdaÈ Ý==È Ý"Ž‘Et·‘ÇÏlamb‘ÿ}'daŽ‘$ý3·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"muÈ Ý==È Ý"Ž‘0€·‘ÇÏmuŽ‘`É·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"lambdaÈ Ý+È ÝmuÈ Ý==È Ý"Ž‘_Te·‘ÇÏlamb‘ÿ}'daŽ‘$nû«+‘8àÏmuŽ‘Ò‘·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘*³.·‘YõÝ"(lambdaÈ Ý>=È Ý0È Ý&&È ÝmuÈ Ž‘lY¹Ý>=È Ý0È Ý&&È Ý((lambdaÈ Ý+È ÝmŽ’ÕY}u)È Ý<=È Ý1))È Ý==È Ý"Ž’"¹°·–Yõ«(Ïlamb‘ÿ}'daŽ‘"Èø·“«0Ž‘ -Í•·^‘sŸÏmuŽ‘ -·Ž¡‘(«0Ž‘/8å·^–8à«((Ïlamb‘ÿ}'daŽ‘!§ã«+“ÏmuŽ‘ y«)–Ç·“«1Ž‘Ç))“·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘ -·gަ‘ -Âb•QÇo“olŽ‘#¡g±bŽ‘*³)«=–Ç(Ïlamb‘ÿ}'daŽ‘"6·“«0Ž› ÿù·^‘8àÏmuŽ‘Ò‘·“«0Ž˜·^–8à«((Ïlamb‘ÿ}'daŽ‘!§ã«+“ÏmuŽ‘ y«)–Ç·“«1Ž‘Ç));ަ‘ -ÂifŽ‘´ù«(Ïverb‘ÿ}'oseŽ‘ ‘]«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"InÈ ÝPoint::is_in_triŽ‘kÆÜangle:\n"Ž’›)«;Ž¡‘ÂifŽ‘´ú«(±bŽ‘Jª«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TheÈ ÝPointÈ ÝliesÈ ÝwithŽ‘kÆÜinÈ ÝtheÈ Ýtriangle.È Ý"Ž’Í”&·‘ÇÝ"ReturningÈ Ýtrue."Ž‘\M«;Ž¡‘ÂelseŽ‘+ØáÏc‘ÿ}'outŽ‘Aù0·‘ÇÝ"TheÈ ÝPointÈ Ýdoesn'tÈ ÝlŽ‘kÆÜieÈ ÝwithinÈ ÝtheÈ ÝtriangŽ’ÔÆ le.È Ý"Ž’òT·‘ÇÝ"ReturningÈ Ýfalse."Ž‘aÍJ«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂreturnŽ‘-æ»±bŽ‘21e«;‘qÇ·gޤÂ907.‘ üManipulating‘ÕTP®9aths.Ž¡908.‘ üSet‘ÕTcycle.ŽŸ;Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽŸ ‘ -«[¬LDF‘T2002.4.7.«]Ž‘OÈ?Changed,–UUso“that“the“argumenš¸ãt“Âb•QÇo“olŽ‘ö»±cŽ‘$Ÿë«is“ÏtrueŽ‘oB«b˜y“default.ŽŽŽŒ‹þ ΠŠn ý‘ì«254–­SET‘ÕXCYCLE’1ì3DLDFPRÃŽG“·x«908Ž €n ý•@P‘ -[¬LDF‘T2002.11.05.«]Ž‘Y;Made‘UUÂb•QÇo“olŽ‘ö»±cŽ‘$Ÿë«argumen¸ãt‘UUÂconstŽ‘*¢«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž© ‘ -Âv®9oidŽ‘"ýÙÏset‘‰ffŽ‘®cycleŽ‘I'ó«(ÂconstŽ‘*¢b•QÇo“olŽ‘7̱cŽ‘>æû«=‘ÇÏtrueŽ‘‹°«);ŽŸÂ909.Ž¡·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙP®9athŽ‘“«1Ž‘ ÿù·^‘8àÏc–ÿ}'onne“ctorsŽ‘1m±:ÏsizeŽ˜«(‘ª¨)“·6«=“Ïp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ˜«(‘ª¨)–8à·“«1Ž‘8á)‘·fŽ¡‘ÂstringŽ‘5%OÏlast‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘sF«;ަ‘Ïlast‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘Tçê«=‘ÇÏc–ÿ}'onne“ctorsŽ‘1ûF±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨);Ž¡‘ÂwhileŽ‘2C.«(Ïc–ÿ}'onne“ctorsŽ‘/4.±:ÏsizeŽ›\«(‘ª¨)–DZ<“Ïp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ˜«(‘ª¨)–8à·“«1Ž‘8á)‘Ïc–ÿ}'onne“ctorsŽ‘44.±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ïlast‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘> Ы);Ž¡‘ -·gŽŸÂ914.‘ ü«[¬LDF‘T2002.4.7.«]Ž‘PòþIf–I‘don't“explicitly“refer“to“the“ÂstdŽ‘ù«namespace“here,›%this“function“is“called,˜and“sinceŽ¡the–UUargumenš¸ãts“are“di eren˜t“from“the“one“used“for“this“function,“this“causes“an“error“at“compile“time.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ReversingÈ ÝconnectorŽ‘kÆÜsÈ ÝandÈ Ýpoints.\n"Ž’Ã,·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂstdŽ‘øä«::Ž‘!‡"Ïr‘ÿ}'everseŽ‘A3„«(Ïc–ÿ}'onne“ctorsŽ‘/4.±:Ïb–ÿ}'e“ginŽ‘¾¨«(–ª¨)±;“Ïc–ÿ}'onne“ctorsŽ‘0ÞÖ±:ÏendŽ‘ಫ(“));Ž¡‘ -ÂstdŽ‘øä«::Ž‘!‡"Ïr‘ÿ}'everseŽ‘A3„«(Ïp‘ÿ}'ointsŽ‘$•±:Ïb–ÿ}'e“ginŽ‘¾¨«(–ª¨)±;“Ïp‘ÿ}'ointsŽ‘Ï=±:ÏendŽ‘ಫ(“));Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"ShowingÈ Ýconnectors:Ž‘kÆÜ\n"Ž‘| ;«;Ž¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂstringŽ‘Ïø·i‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7iterŽ‘=+M«=‘ÇÏc–ÿ}'onne“ctorsŽ–1ûF±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏc–ÿ}'onne“ctorsŽ“±:ÏendŽ‘ಫ(˜);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇŽ‘ÇÏiterŽ‘Y/·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"ShowingÈ Ýpoints:\n"Ž‘g G«;Ž¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏiter‘ÿ}'atorŽ‘)™7iterŽ‘=+M«=‘ÇÏp‘ÿ}'ointsŽ–ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:ÏshowŽ‘Šÿ«(˜);Ž¡‘ÏgetcharŽ‘5%þ«(‘ª®);Ž¡‘ -·g‘±=·‘ÿýÂifŽ‘´õ«(ÝDEBUGŽ‘ÆY«)‘ÿý·±=Ž¡‘ -ÂreturnŽ‘-æ»·Ž‘2æ¼ÏthisŽ‘CÒr«;‘UU·gŽŸÂ915.– üNo‘FÌassignmen®9t.“«This–¸vš¸ãersion“merely“copies“·Ž‘¸ÏthisŽ‘[·«and“calls“Ïr‘ÿ}'everseŽ‘#db«(Ïtrueޑƫ)“on“the“cop˜y‘ÿ*ª,‘ЫreturningŽ¡the–UUreturn“v‘ÿqÇalue“of“that“function“call.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.16.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘%æºÏr‘ÿ}'everseŽ‘E“«(Âv®9oidŽ‘¨ƒ«)‘UUÂconstŽ‘*¢«;ŽŸÂ916.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘%æºP®9athŽ‘?x"«::‘Ïr‘ÿ}'everseŽ‘ ¬f«(Âv®9oidŽ‘¨ƒ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP®9athŽ‘/æ»±pŽ‘7µÓ«=‘Ç·Ž‘ÇÏthisŽ‘²Ï«;ަ‘ÂreturnŽ‘7æ¼±pŽ‘<î¼:Ïr‘ÿ}'everseŽ‘¬b«(Ïtrueޑƫ);Ž¡‘ -·gŽŸÂ917.– üEqualit®9y‘ÿ -«.“«TO‘øáDO:–ùMI'll“need“to“makš¸ãe“all“connectors“explicit“in“order“to“mak˜e“this“w˜ork.‘ ]¯SeeŽ¡ÂopQÇeratorŽ‘+–µ«&Ž‘3]Ó(‘ª¨)–UUfor“an“example“of“hoš¸ãw“to“mak˜e“this“w˜ork.ަ·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡«#ÂifŽ‘ ´ø«0ŽŽ¡‘ -ÂvirtualŽ‘/Ôb•QÇo“olŽ‘I/:opQÇeratorŽ‘tÅï·Ž‘| «(ÂP®9athŽ‘湫&Ž‘#­×±pŽ‘(µ×«);Ž¡#ÂendifŽŽŽŽŒ‹ žº Šn ý‘ì«256–­EQUALITY’4ÃD3DLDFPRÃŽG“·x«918Ž €n ý•@PÂ918.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ «#ÂifŽ‘ ´ø«0ŽŽ¡‘ -ÂvirtualŽ‘/Ôb•QÇo“olŽ‘I/:P®9athŽ‘bÀ¢«::Ž‘iNàÂopQÇeratorŽ’”å•·Ž’œ¬³«(ÂP®9athŽ‘湫&Ž‘#­×±pŽ‘(µ×«)Ž¡‘ -·f‘ª¨gŽ¡«#ÂendifŽŽ¤919.‘ üIn®9tersection.Ž¡920.‘ üInš®9tersection–ÕTof“t˜w˜o“linear“P˜aths.‘ ü«If‘UU·Ž‘UVÏthisŽ‘–a«is–UUa“line“and“the“argumen¸ãt“Ïp‘ÿ}'aŽ‘§î«is“a“line,ޤ Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘M–Ö«(‘ª®)–UUcalls“the“v¸ãersion“for“ÂP•®9oin“tsŽ‘&Î.«in“Èpoints.web«.Ž¡‘ -Other–UUkinds“of“ÂP®9athsŽ‘#ÅJ«and“other“classes“will“need“their“oš¸ãwn“v˜ersions“of“this“function.Ž¡‘ -I–UUmaš¸ãy“ha˜v˜e“a“problem“with“the“constancy“of“·Ž‘UVÏthisŽ‘–a«and“Ïp‘ÿ}'aŽ‘R™«.‘qÇIf“I“do,“just“remo˜v˜e“it.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.04.15.«]Ž‘X Changed–_'return“v‘ÿqÇalue“from“Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Q¯¯«to“Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘7±m«,‘csince“I'vš¸ãe“had“to“commen˜t-Ž¡out–UUthe“vš¸ãersion“of“ÂP•®9oin“tŽ‘ï¡«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(‘ª®)“that“uses“the“ÂLineŽ‘-«v˜ersion.Ž¡‘ -[¬LDF‘T2002.04.10.«]Ž‘ZøÜChanged–Eöreturn“t¸ãypšGe“to“Âb•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘W}M«to“corresp˜ond“with“the“same“c¸ãhange“toŽ¡ÂP•®9oin“tŽ‘šL«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(‘ª®).Ž¡‘ -[¬LDF‘T2003.07.04.«]Ž‘ZÐAdded‘6Ïtr–ÿ}'ac“eŽ› Q}«argumen¸ãt.‘ ÉkAdded–6conditional“using“Ïtr–ÿ}'ac“eŽ˜«to“cš¸ãhoGose“whic˜h“v˜ersion“ofŽ¡ÂP•®9oin“tŽ‘šL«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(›ª®)–UUshould“bGe“called.‘qÇChanged“so“that“Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘(jÒ«(˜)“is“used“instead“ofŽ¡Ïget‘‰ffŽ–®line‘‰ffŽ“switchŽ‘?Ö}«(›ª®).‘qÇNo¸ãw–UUusing“Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘=y“«(˜)“instead“of“·Ž‘UVÏp‘ÿ}'ointsŽ‘#yë«[1Ž‘].ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œÏinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ’>r«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØyÏp‘ÿ}'aŽ‘LÕ½±;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°Ïtr–ÿ}'ac“eŽ‘RTÙ«=‘ÇÏfalseŽ‘v\«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹ ®V Šn ý‘ì·x«921‘­3DLDFPRšÃŽG’¬r™INTERSECTION–ÕXOF“TW˜O“LINEAR“ÂP–ÿ -«A“THS‘«257Ž €n ý•@PÂ921.Ž©·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œP®9athŽ‘\9«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØyÏp‘ÿ}'aŽ‘LÕ½±;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°Ïtr–ÿ}'ac“eŽ‘OÁ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïis‘‰ffŽ‘®line‘ÿ}'arŽ›%}«(‘ª¨)–8à·^“Ïp‘ÿ}'aŽ‘ 6$±:Ïis‘‰ffŽ‘®line‘ÿ}'arŽ˜«(‘ª¨))‘·fŽ¡‘ÂifŽ‘)´û«(Ïtr–ÿ}'ac“eŽ‘«)‘ÂreturnŽ‘(æºP•®9oin“tŽ‘E«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(·Ž‘Ïp‘ÿ}'ointsŽ‘ $–«[0Ž›]±;‘ª¨Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘;Îæ«(–ª¨)±;“·Ž‘ª©Ïp‘ÿ}'aŽ‘§í±:Ïp‘ÿ}'ointsŽ‘$•«[0Ž˜]±;Ž¡‘<Ïp‘ÿ}'aŽ‘FýJ±:Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>«(–ª¨)±;“Ïtr–ÿ}'ac“eŽ‘Á¹«);Ž¡‘ÂelseŽ‘5ØâreturnŽ‘YªP•®9oin“tŽ‘vDL«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(·Ž‘Ïp‘ÿ}'ointsŽ‘ $–«[0Ž›]±;‘ª¨Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘;Îæ«(–ª¨)±;“·Ž‘ª©Ïp‘ÿ}'aŽ‘§í±:Ïp‘ÿ}'ointsŽ‘$•«[0Ž˜]±;“Ïp‘ÿ}'aŽ‘ §ì±:Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>«(“)±;Ž¡‘<Ïtr–ÿ}'ac“eŽ‘R«);Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"Haven'tÈ ÝcodedÈ ÝthisÈ Ž‘kÆÜÝcaseÈ Ýyet.È Ý"Ž’¨Ô;·‘ÇÝ"ReturningÈ ÝINVALID_BŽ‘kÆÜOOL_POINT.\n"Ž’³T5·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_BOOL_POINTŽ’ ìï«;Ž¡‘·gŽ¡‘ -gŽŸÂ922.‘ üInš®9tersection–ßof“a“linear“P˜ath“with“a“Plane.‘ ü«[¬LDF‘T2003.06.03.«]Ž‘Z»üThis–‰function“m¸ãust“bGe“de nedŽ¡here,–UUbšGecause“ÂP®9athŽ‘<«is“an“incomplete“t¸ãyp˜e“in“Èplanes.web«.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.03.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œPlaneŽ‘`‰«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(±pŽ–:Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘%}«(›ª¨))‘ÂreturnŽ‘(æºÏinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘v}«(±pŽ“:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘)±;˜pŽ‘²¨:Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>«(˜));Ž¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘5¨·‘òjÝ"ERROR!È ÝInÈ ÝPlane::inŽ‘mò.tersection_point(conŽ’ÖñòstÈ ÝPath&):"Ž’*£·‘òjÏend‘‚Ølޑ֖·Ž¡‘2Ý"PathÈ ÝisÈ ÝnotÈ Ýlinear!Ž’šÿÉÈ ÝReturningÈ ÝINVALID_Ž’ÿBOOL_POINT."Ž’FLé·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_BOOL_POINTŽ’ ìï«;Ž¡‘·gŽ¡‘ -gŽŸÂ923.– üDra®9wing‘Zaxes.“«This–“function“draš¸ãws“and“labGels“arro˜ws“for“the“main“axes“at“the“origin.‘+It“can“bGeŽ¡helpful–UUfor“determining“whether“the“\ÏupŽ‘ ž¾«"“direction“is“correct“for“a“ÂF‘ÿ -«oQÇcusŽ‘ J¡«.Ž¡‘ -[¬LDF‘T2003.04.01.«]Ž‘Yþ®Sometimes–KÈplaceholders“are“needed“for“the“ÏdistŽ›£ý«and“pGosition“argumen¸ãts.‘UIf“ÏdistŽ˜«is“aŽ¡n•¸ãum“bGer›Š5±x–8·“«0,–—mthen˜it's˜set˜to˜the˜default,“curren•¸ãtly˜2.5.‘gIf˜a˜pGosition˜argumen“t˜(Ïp‘ÿ}'os‘‰ffŽ‘®xޑՅ«,‘—mÏp‘ÿ}'os‘‰ffŽ‘®yŽ‘R¡«,‘—mor˜Ïp‘ÿ}'os‘‰ffŽ‘®zŽ‘ÙT«)˜isŽ¡Ý"d"Ž‘F_«,–UUit's“set“to“the“default.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.02.05.«]Ž‘Z±Mo•¸ãv“ed–jËthis“function“from“Èmain.web“«to“here,‘°(so“I‘jƒcan“use“it“in“m¸ãy“examples“for“theŽ¡T‘ÿ*ªexinfo–ü¤doGcumenš¸ãtation.‘T7Also,‘aadded“additional“argumen˜ts“spšGecifying“the“p˜ositions“of“lab˜els“and“suppressingŽ¡dra¸ãwing–UUthe“axes“(and“their“labGels).Ž¡‘ -[¬LDF‘T2003.04.01.«]Ž‘Z<>Added–‰Xargumen¸ãts“for“dash“pattern“(Ïddashe‘ÿ}'dŽ‘#G«)“and“pGen“(Ïpp‘ÿ}'enŽ‘6#«).‘ ÏRearranged“order“ofŽ¡argumenš¸ãts.‘HyAlso,‘tgot–ò;rid“of“the“argumen˜ts“Ïsuppr‘ÿ}'ess‘‰ffŽ‘®xŽ‘2$(«,‘tÏsuppr‘ÿ}'ess‘‰ffŽ‘®yŽ‘21«,‘tand“Ïsuppr‘ÿ}'ess‘‰ffŽ‘®zŽ‘1«.‘HyNo˜w“using“the“empt˜yŽ¡string–hö(Ý""Ž‘ b«)“in“the“argumen¸ãts“Ïp‘ÿ}'os‘‰ffŽ‘®xŽ‘>{«,‘íÝÏp‘ÿ}'os‘‰ffŽ‘®yŽ‘©«,‘íÝand“Ïp‘ÿ}'os‘‰ffŽ‘®zŽ‘"! «to“indicate“that“the“correspGonding“axes“shouldŽ¡bšGe–èsuppressed.‘ ‰Added“error“handling“co˜de“that“prinš¸ãts“a“w˜arning“to“ÏstderrŽ‘%4c«if“all“axes“are“suppressed.Ž¡([¬LDF‘T2003.05.06.«]Ž‘P†Note–a¡that“Ý""Ž‘ɤ«will“nev¸ãer“bšGe“needed“for“lab˜elling“an“axis,‘¤´b˜ecause“putting“the“lab˜el“onŽ¡top–UUof“the“ÂP•®9oin“tŽ‘"Dò«wš¸ãould“in˜terfere“with“the“arro˜w.)Ž¡‘ -[¬LDF‘T2003.04.01.«]Ž‘Y¶ Added–:argumen¸ãts“Ïshift‘‰ffŽ‘®xŽ‘ ³Ã«,‘.³Ïshift‘‰ffŽ‘®yŽ‘ Äë«,‘.³and“Ïshift‘‰ffŽ‘®zŽ‘$0—«for“adjusting“the“pšGosition“of“the“lab˜els.Ž¡Note–1that“the“adjustmen¸ãt“a ects“the“pGosition“of“the“three-dimensional“ÂP•®9oin“tŽ‘#üP«within“the“ÂLabQÇelŽ‘ rg«,‘gïÏnot‘#Ü«theŽ¡t•¸ãw“o-dimensional–¯vpro‘Ž8jected“pšGoin¸ãt.‘€)Therefore,‘Åþit's“not“p˜ossible“to“adjust“the“p˜osition“of“the“ÂLabQÇelŽ‘# O«preciselyŽŽŽŒ‹ ·³ Šn ý‘ì«258–­DRA‘ÿ8WING‘ÕXAXES’´š3DLDFPRÃŽG“·x«923Ž €n ý•@Pwithout–Yc¸ãhanging“the“MetapšGost“co˜de.‘[TO‘HDO:“Change“Ïlab‘ÿ}'elŽ‘…ñ«(‘ª®),‘òso“that“it's“p˜ossible“to“adjust“the“p˜osition“ofޤ the–yºpGoinš¸ãts“in“the“pro‘Ž8jection!‘ÞõThis“ma˜y“opGen“a“can“of“w˜orms,–‚Óthough,“espšGecially–yºif“the“same“co˜de“is“used“toŽ¡generate–UUdraš¸ãwings“using“di eren˜t“pro‘Ž8jections“and/or“di eren˜t“ÏF‘ÿ;¼o‘ÿ}'cusesŽ‘%ÅF«.Ž¡‘ -[¬LDF‘T2003.07.13.«]Ž‘Y;Made‘UUÏddashe‘ÿ}'dŽ‘)ñ»«and‘UUÏpp‘ÿ}'enŽ‘àÍÂconstŽ‘: o«in–UUbGoth“v¸ãersions.ޤŸüÈ„`ÕÁGŽŽ©Â924.‘ üLength–ÕTargumen®9t“ rst.Ž¡·h–ª¨«Declare‘UUÏdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+«(‘ª®)‘@­924“·i‘Çޤ ‘ -Âv®9oidŽ‘$©Ïdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘P%«(ÂrealŽ‘ÔþÏdistŽ‘-‹†«=‘ª2±:«5ŽŽ‘q:±;‘ª¨ÂstringŽ‘#ñÅÏp‘ÿ}'os‘‰ffŽ‘®xŽ‘@qe«=‘ªÝ"bot"Ž–pt±;‘ª¨ÂstringŽ‘#ñÅÏp‘ÿ}'os‘‰ffŽ‘®yŽ‘@W«=‘ªÝ"lft"Ž“±;‘ª¨ÂstringŽŽ¡‘Ïp‘ÿ}'os‘‰ffŽ‘®zŽ‘9Ìå«=‘}ÃÝ"bot"Ž‘D±;‘ª¨ÂconstŽ‘ ÜColorŽ‘Aˆ§«&Ž‘IOÅÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’Ö1«=‘}÷Ž‘ }ÄÂColorsŽ‘+V¢«::Ž‘1äàÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘i`»±;‘ª¨ÂconstŽ‘ ÜstringŽŽ¡‘Ïddashe‘ÿ}'dŽ‘Epj«=‘)VÝ""Ž–/¸±;‘ª¨ÂconstŽ‘ ©ÖstringŽ‘B£¯Ïpp‘ÿ}'enŽ‘\(«=‘)VÝ""Ž“±;‘ª¨ÂconstŽ‘ ©ÖP•®9oin“tŽ‘@mÿ«&Ž‘H5Ïshift‘‰ffŽ‘®xŽ‘iü«=‘)VÏoriginŽ‘w±;‘ª¨ÂconstŽ‘ ©ÖP•®9oin“tŽŽ¡‘«&Ž‘%Ç!Ïshift‘‰ffŽ‘®yŽ‘E$q«=‘ÇÏoriginŽ–½9±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏshift‘‰ffŽ‘®zŽ‘e}@«=‘ÇÏoriginŽ“±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«);ޤ ­See–ÕXalso“section“929.Ž¡This–ÕXcoS-«&Ž‘FKÏshift‘‰ffŽ‘®xŽ‘bÊÔ±;‘ª¨ÂconstŽ‘œmP•®9oin“tŽ‘>S-«&Ž‘FKÏshift‘‰ffŽ‘®yŽ‘b°ƒ±;‘ª¨ÂconstŽ‘œmP•®9oin“tŽŽ¡‘2«&Ž‘9Ç#Ïshift‘‰ffŽ‘®zŽ‘UñF±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘Qkþ«)·fޤ ­See–ÕXalso“sections“926,“927,“928,“and“930.Ž¡This–ÕXco¸Þ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘ÂreturnŽ‘4‘g«;ަ‘ -·gŽŽŽŒ‹ ÌJ Šn ý‘ì·x«928‘­3DLDFPR•ÃŽG’ëBHLENGTH›ÕXAR“GUMENT˜FIRST‘«259Ž €n ý•@PÂ928.Ž©·h–ª¨«De ne‘UUÏdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+«(‘ª®)‘@­925“·i‘Ç«+·ޤ ‘ -ÂifŽ‘´ù«(Ïp‘ÿ}'os‘‰ffŽ‘®xŽ‘œ·6«=‘ÇÝ""Ž‘ Íz«)‘·fŽ¡‘ÂP•®9oin“tŽ‘2ïŸÏx0Ž‘>|«(·Ž‘ÇÏdistޑӋ«);Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏx1Ž‘>|«(ÏdistŽ‘ m«);ަ‘Ïx0ޑ߱:Ïdr–ÿ}'awarr“owŽ‘.òÄ«(Ïx1Ž‘ ݱ;‘ª¨Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Q±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘Ïx1Ž‘"d÷«+=ŽŽ‘4ºKÏshift‘‰ffŽ‘®xŽ‘QjÔ«;Ž¡‘Ïx1ޑ߱:Ïlab‘ÿ}'elŽ‘t˜«(Ý"x"Ž‘F_±;‘ª¨Ïp‘ÿ}'os‘‰ffŽ‘®xŽ‘€-±;‘ª¨ÏfalseŽ‘Yì±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(Ïp‘ÿ}'os‘‰ffŽ‘®yŽ‘‚L·6«=‘ÇÝ""Ž‘ Íz«)‘·fŽ¡‘ÂP•®9oin“tŽ‘2ïŸÏy0Ž‘>Äò«(0Ž‘±;‘ª¨·Ž‘ qÆÏdistŽ‘~3«);Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏy1Ž‘>Äò«(0Ž‘±;‘ª¨ÏdistŽ‘·«);ަ‘Ïy0Ž‘ÕU±:Ïdr–ÿ}'awarr“owŽ‘.òÄ«(Ïy1Ž‘ ÕS±;‘ª¨Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Q±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘Ïy1Ž‘"œm«+=ŽŽ‘4ñÁÏshift‘‰ffŽ‘®yŽ‘Q‡ù«;Ž¡‘Ïy1Ž‘ÕU±:Ïlab‘ÿ}'elŽ‘t˜«(Ý"y"Ž‘F_±;‘ª¨Ïp‘ÿ}'os‘‰ffŽ‘®yŽ‘eܱ;‘ª¨ÏfalseŽ‘Yì±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(Ïp‘ÿ}'os‘‰ffŽ‘®zŽ‘7·6«=‘ÇÝ""Ž‘ Íz«)‘·fŽ¡‘ÂP•®9oin“tŽ‘2ïŸÏz0Ž‘>¯«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆÏdistŽ‘~3«);Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏz1Ž‘>¯«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨ÏdistŽ‘·«);ަ‘Ïz0Ž‘±:Ïdr–ÿ}'awarr“owŽ‘.òÄ«(Ïz1Ž‘ ±;‘ª¨Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Q±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘Ïz1Ž‘!Ø*«+=ŽŽ‘4-~Ïshift‘‰ffŽ‘®zŽ‘PW¡«;Ž¡‘Ïz1Ž‘±:Ïlab‘ÿ}'elŽ‘t˜«(Ý"z"Ž‘F_±;‘ª¨Ïp‘ÿ}'os‘‰ffŽ‘®zŽ‘ùDZ;‘ª¨ÏfalseŽ‘Yì±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gŽ¡‘ -ÂreturnŽ‘*‘f«;‘qÇ·gŽŸÂ929.‘ üColor–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.05.02.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÏdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+«(‘ª®)‘@­924“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#ÑÏdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘OÖì«(ÂconstŽ‘ýßColorŽ‘?v«&Ž‘G=-Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘{EÖ±;‘ª¨ÂrealŽ‘1ÏdistŽ‘.d§«=‘''2±:«5ŽŽ‘îF±;‘ª¨ÂstringŽ‘#£2Ïp‘ÿ}'os‘‰ffŽ‘®xŽ‘?ŸÞ«=‘''Ý"bot"Ž‘퀱;‘ª¨ÂstringŽŽ¡‘Ïp‘ÿ}'os‘‰ffŽ‘®yŽ‘8’,«=‘ÖõÝ"lft"Ž–N±;‘ª¨ÂstringŽ‘"ÙyÏp‘ÿ}'os‘‰ffŽ‘®zŽ‘<ÿ«=‘ÖõÝ"bot"Ž“±;‘ª¨ÂconstŽ‘ÞÎstringŽ‘A ŸÏddashe‘ÿ}'dŽ‘g+¥«=‘ÖõÝ""Ž– ÝW±;‘ª¨ÂconstŽ‘ÞÎstringŽ‘A ŸÏpp‘ÿ}'enŽ‘Y·«=‘ÖõÝ""Ž“±;‘ª¨ÂconstŽŽ¡‘P•®9oin“tŽ‘=&«&Ž‘DËDÏshift‘‰ffŽ‘®xŽ‘de«=‘éLÏoriginŽ–ßm±;‘ª¨ÂconstŽ‘éÐP•®9oin“tŽ‘>íó«&Ž‘FµÏshift‘‰ffŽ‘®yŽ‘f4•«=‘éLÏoriginŽ“±;‘ª¨ÂconstŽ‘éÐP•®9oin“tŽ‘>íó«&Ž‘FµÏshift‘‰ffŽ‘®zŽ‘eÈ€«=‘éLÏoriginŽ“±;‘ª¨ÂPictureŽŽ¡‘«&Ž‘%Ç!Ïpictur‘ÿ}'eŽ‘G—«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«);ŽŽŽŒ‹ Üv Šn ý‘ì«260‘ÂCOLOR–ÕX­ARšÃŽGUMENT“FIRST’æÃ‹3DLDFPR˜G‘·x«930Ž €n ý•@PÂ930.Ž©·h–ª¨«De ne‘UUÏdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+«(‘ª®)‘@­925“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘#5Ïdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘O «(ÂconstŽ‘AþColorŽ‘=þM«&Ž‘EÅkÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘yα;‘ª¨ÂrealŽ‘u2ÏdistŽ‘)Ÿ±;‘ª¨ÂstringŽ‘"çQÏp‘ÿ}'os‘‰ffŽ‘®xŽ‘:¼Ö±;‘ª¨ÂstringŽ‘"çQÏp‘ÿ}'os‘‰ffŽ‘®yŽ‘:¢…±;‘ª¨ÂstringŽ‘"çQÏp‘ÿ}'os‘‰ffŽ‘®zŽ‘:6p±;‘ª¨ÂconstŽŽ¡‘2stringŽ‘RìuÏddashe‘ÿ}'dŽ‘v3†±;‘ª¨ÂconstŽ‘œmstringŽ‘@ˆÝÏpp‘ÿ}'enŽ‘U¿±;‘ª¨ÂconstŽ‘œmP•®9oin“tŽ‘>S-«&Ž‘FKÏshift‘‰ffŽ‘®xŽ‘bÊÔ±;‘ª¨ÂconstŽ‘œmP•®9oin“tŽ‘>S-«&Ž‘FKÏshift‘‰ffŽ‘®yŽ‘b°ƒ±;‘ª¨ÂconstŽ‘œmP•®9oin“tŽŽ¡‘2«&Ž‘9Ç#Ïshift‘‰ffŽ‘®zŽ‘UñF±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘Qkþ«)Ž¡‘ -·fŽ¡‘Ïdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘@Ø«(ÏdistŽ‘ m±;‘ª¨Ïp‘ÿ}'os‘‰ffŽ‘®xŽ‘€-±;‘ª¨Ïp‘ÿ}'os‘‰ffŽ‘®yŽ‘eܱ;‘ª¨Ïp‘ÿ}'os‘‰ffŽ‘®zŽ‘ùDZ;‘ª¨Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Q±;‘ª¨Ïddashe‘ÿ}'dŽ‘$ñ¹±;‘ª¨Ïpp‘ÿ}'enŽ‘à˱;‘ª¨Ïshift‘‰ffŽ‘®xŽ‘[1±;‘ª¨Ïshift‘‰ffŽ‘®yŽ‘@à±;‘ª¨Ïshift‘‰ffŽ‘®zŽ‘Ô˱;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gŽŸÂ931.‘ üP®9aths–ÕTand“Lines.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.06.«]Ž‘Y;Added–UUthis“heading.ަŸüÈ„`ÕÁGŽŽŸÂ932.– üGet‘³´Line.“«Returns–8a“ÂLineŽ‘ȳ«correspGonding“to“·Ž‘8ÏthisŽ‘#Ï«,›=ñif“·Ž‘8ÏthisŽ‘[ç«is“linear.‘hOtherwise,˜Ïget‘‰ffŽ‘®lineŽ‘$ «(‘ª®)“returnsŽ¡ÝINVALID_LINEŽ‘?†D«.ŽŸÁÅŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.06.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9athŽ‘<«functions‘@­656“·i‘Ç«+·Ž¡‘ -ÂLineŽ‘#­ÙÏget‘‰ffŽ‘®lineŽ‘Düñ«(Âv®9oidŽ‘¨ƒ«)‘UUÂconstŽ‘*¢«;ŽŸÂ933.ަ·h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·i‘Ç«+·Ž¡‘ -ÂLineŽ‘#­ÙP®9athŽ‘=?A«::‘Ïget‘‰ffŽ‘®lineŽ‘"O«(Âv®9oidŽ‘¨ƒ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘%}«(‘ª®))‘ÂreturnŽ‘(æºÏp‘ÿ}'ointsŽ‘D O±:Ïfr‘ÿ}'ontŽ‘I‘«(–ª¨)‘þŸ±~ŽŽ‘Ïget‘‰ffŽ‘®lineŽ‘%O«(·Ž‘«(Ïp‘ÿ}'ointsŽ‘$•±:Ïb‘ÿ}'ackŽ‘üë(“)));Ž¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘3ÅË·‘"Ý"ERROR!È ÝInÈ ÝPath::getŽ‘læ_line():\n"Ž’©fO·‘"Ý"PathÈ ÝisÈ ÝnotÈ Ýlinear.Ž‘læÈ ÝReturningÈ ÝINVALID_LŽ’Õª\ŽŽ¡‘2INE.\n\n"Ž‘dj·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_LINEŽ’m«;Ž¡‘·gŽ¡‘ -gŽŸÂ934.– üGet‘·jP®9ath.“«Declared–íin“Èlines.web«.‘¿Must“bšGe“de ned“here,‘Kb˜ecause“ÂP®9athŽ‘ Å>«is“an“incomplete“t¸ãyp˜eŽ¡there.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.06.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂLineŽ‘-«functions‘@­600“·i‘Ç«+·Ž¡‘ -ÂP®9athŽ‘%æºLineŽ‘=?A«::‘Ïget‘‰ffŽ‘®p‘ÿ}'athŽ‘$Ÿï«(Âv®9oidŽ‘¨ƒ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2pŽ‘7÷Ÿ«(Ïp‘ÿ}'ositionŽ‘%}7«+‘8àÏdir–ÿ}'e“ctionŽ‘)1Ñ«);ަ‘ÂreturnŽ‘7æ¼P®9athŽ‘Px «(Ïp‘ÿ}'ositionŽ‘#DW±;‘ª¨pŽ‘²¨«);Ž¡‘ -·gŽŸÂ935.‘ üPutting–ÕTP®9ath“together.ŽŽŽŒ‹ è´ Šn ý‘ì·x«936‘­3DLDFPRÃŽG’ã2ÅPUTTING›ÕXÂP–ÿ -«A“TH˜­TOGETHER‘«261Ž €n ý•@PÂ936.‘ ü«This–UUis“what's“compiled.ŽŸ‘ -·h–ª¨«Include‘UU les‘@­11“·iޤ ‘ -h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·iŽ¡‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦P®9athŽ‘;­654“·iŽ¡‘ -h–ª¨«De ne‘UUÂstaticŽ‘"ž.classŽ‘=~P®9athŽ‘Ye8«data‘UUmem¸ãbGers‘@­655“·iŽ¡‘ -h–ª¨«De ne‘UUÂT‘ÿ -«ransformŽ‘;'«functions‘@­125“·iŽ¡‘ -h–ª¨«De ne‘UUÂP•®9oin“tŽ‘"Dò«functions‘@­285“·iŽ¡‘ -h–ª¨«De ne‘UUÂPlaneŽ‘#Œ «functions‘@­620“·iŽ¡‘ -h–ª¨«De ne‘UUÂP®9athŽ‘<«functions‘@­657“·iŽ¡‘ -h–ª¨«De ne‘UUÂLineŽ‘-«functions‘@­600“·iŽ¡‘ -h–ª¨«De ne‘UUÏdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+«(‘ª®)‘@­925“·iŽŽŽŒ‹ õÆ Šn ý‘ì«262‘­PUTTING›ÕXÂP–ÿ -«A“TH˜­TOGETHER’ã2Å3DLDFPRÃŽG‘·x«937Ž €n ý•@PÂ937.‘ ü«This–UUis“what's“written“to“Èpaths.h«.Ž©·h‘ª¨Ýpaths.hŽ‘0pü­937‘ª¨·i‘Çޤ ‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦P®9athŽ‘;­654“·iŽ¡‘ -h–ª¨«Declare‘UUÏdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+«(‘ª®)‘@­924“·iŽŸÂ938.– üCurv®9es“(Ècurves.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ŽŽ¦‘ -ÂformatŽ‘3c(ÏCurveŽ‘VìPathŽŽ¦·h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚstringŽ‘Jn'Ïr‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(«=‘ÇÝ"$Id:È Ýcurves.web,vÈ Ý1Ž‘kÆÜ.2È Ý2003/12/10È Ý15:27:Ž’ÔÆ 57È Ýlfinsto1È ÝExpÈ Ý$"Ž’3ÌÒ«;ŽŸÂ939.‘ ü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"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"points.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"lines.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"planes.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"paths.h"ŽŽŸÂ940.‘ üRegular–ÕTclosed“plane“curv®9e.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.12.«]Ž‘Z’ÜChanged–ßöthe“name“\ÏR–ÿ}'e“gular‘‰ffŽ›®Close“d‘‰ffŽ˜Plane‘‰ffŽ˜CurveŽ‘{¿«"“to“\ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘h÷˜«",‘BbGe-Ž¡cause–UUthe“former“caused“toGo“manš¸ãy“\Ov˜erfull“bGo˜xes"“when“running“Ècweave«.ަŸüÈ„`ÕÁGŽŽŸÂ941.› üReg‘°¡‰ffs4Ž–#ÕCl‘°¡‰ffs4Ž“Plane‘°¡‰ffs4Ž“Curv®9e–©vclass“de nition.˜«A‘/&ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘oUî«is–/0assumed“to“bGe“closed,‘6Ñpla-Ž¡nar,›UUcon•¸ãv“ex,˜and˜ha“v“e˜at˜least˜3˜pGoin“ts.‘qÇThe˜functions˜that˜create˜and˜moGdifyŽ¡ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9esŽ‘pÖ)«m¸ãust–UUensure“that“these“assumptions“are“correct!Ž¡‘ -[¬LDF‘T2002.11.05.«]Ž‘ZhÃÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’È8«is–µÝinš¸ãtended“to“bGe“used“as“a“base“class.‘“^No“ob‘Ž8jects“of“t˜ypGeŽ¡ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘lLí«should–UUbšGe“de ned,“ho•¸ãw“ev“er,–UUit“is“not“an“abstract“class,“so“it“is“p˜ossible“to“do“so.ަ‘ -ÂformatŽ‘3c(ÏR–ÿ}'e“g‘‰ffŽ–®Cl‘‰ffŽ“Plane‘‰ffŽ“CurveŽ’“Ñ'CurveŽŽ¦·h–ª¨«De ne‘UUÂclassŽ‘5¦Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’‹mB­941“·i‘ÇŽ¡‘ -ÂclassŽ‘$àRRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’‘-?«:‘qÇÂpublicŽ‘'ñP®9athŽ‘B몷fŽ¡‘ -ÂprotectedŽ‘:o™«:‘ÂP•®9oin“tŽ‘#ïÏc‘ÿ}'enterŽ‘?ù(«;Ž¡‘ÂunsignedŽ‘D7shortŽ‘b³Ïnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ’¬Â\«;ަ‘ -ÂpublicŽ‘)=Ö«:‘·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­943“·iŽŽŽŒ‹ øâ Šn ý‘ì·x«941›­3DLDFPRÃŽG’‡·ÂREG‘°¡‰ffs4Ž–#ÕCL‘°¡‰ffs4Ž“PLANE‘°¡‰ffs4Ž“CUR‘þ¸äVE–ÕX­CLASS“DEFINITION˜«263Ž €n ý•@P‘ -·g«;ŽŸ ­This–ÕXcoŸÓVEŽ‘ãxXŽ‘['cošGde“ab˜o•¸ãv“e–ßein“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˜Ý\RVŽ‘ñ «(whic“h˜is˜curren“tly˜\Ý\letŽ‘†\«"˜to˜Ý\ARGŽ‘Û±«).ަ‘ -[¬LDF‘T2003.06.03.«]Ž‘Y;Changed–UUthe“line“where“ÂPlaneŽ‘!6¼«::‘Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½«(‘ª®)“is“called“bGeloš¸ãw.‘qÇIt“no˜w“returns“aަÂrealu½‰™šs4Ž‘ÔwshortŽ‘2i«,–UUso“\±:“Ï rstŽ‘ -ÿ«"“has“to“bGe“added,“in“order“to“get“the“ÂrealŽ‘ƒ«v‘ÿqÇalue.ަ‘ -[¬LDF‘T2003.06.13.«]Ž‘Y;Changed‘UUÏpt0Ž‘¾±:ÏepsilonŽ‘o«(‘ª¨)–UUto“ÂP•®9oin“tŽ‘ï¡«::‘ÏepsilonŽ‘ o«(‘ª®).ަ‘ -[¬LDF‘T2003.06.14.«]Ž‘Y;Added–UUerror“handling“coGde“for“the“case“that“Ïget‘‰ffŽ‘®planeŽ‘+Ì=«(‘ª®)“fails.ަ‘ -[¬LDF‘T2003.06.14.«]Ž‘X^§No–«Álonger“taking“absolute“v›ÿqÇalue“of“the“ÂrealŽ‘µ[«v˜alue“Ïr0Ž‘‰G«returned“b¸ãy“ÂPlaneŽ‘ («::‘Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½«(‘ª®),ަsince–UUit“will“alw•¸ãa“ys–UUbšGe“p˜ositivš¸ãe,“an˜yw˜a˜y‘ÿ*ª.‘qÇCommen˜t“at“place“bGelo˜w,“where“I“made“this“c˜hange.ަ‘ -[¬LDF‘T2003.07.01.«]Ž‘Y;Added–UUargumen¸ãt“Ïsuppr‘ÿ}'ess‘‰ffŽ‘®warningsŽ‘Szf«.ަ‘ -[¬LDF‘T2003.07.16.«]Ž‘YÖChanged–kðname“of“Ïc‘ÿ}'enterŽ‘"ák«argumenš¸ãt“to“Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘]ã«,‘q–bGecause“I'v˜e“made“Ïc‘ÿ}'enterŽ‘"ák«a“data“mem˜bGerަof‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘lLí«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­943“·i‘Ç«+·ަ‘ -ÂvirtualŽ‘/ÔsignedŽ‘RýÊshortŽ‘pÈmÏlo–ÿ}'c“ationŽ’“‰ê«(ÂP•®9oin“tŽ‘ïÏr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘7á±;‘ª¨ÂP•®9oin“tŽ‘ šEÏpt0Ž‘0€±;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°Ïsuppr‘ÿ}'ess‘‰ffŽ‘®warningsŽ’ŒbÙ«=‘ÇÏfalseŽ‘v\«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹  Šn ý‘ì·x«949›­3DLDFPRÃŽG’ýãLOCA‘ÿJªTION–ÕXOF“A“POINT˜«265Ž €n ý•@PÂ949.Ž©·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Çޤ ‘ -ÂsignedŽ‘,îqshortŽ‘J7ŽRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’´/*«::‘Ïlo–ÿ}'c“ationŽ‘#Á«(ÂP•®9oin“tŽ‘nÏr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘7` -±;‘ª¨ÂP•®9oin“tŽ‘ ¿Ïpt0Ž‘/ú±;‘ª¨ÂconstŽ‘SÄb•QÇo“olŽ‘8s¤Ïsuppr‘ÿ}'ess‘‰ffŽ‘®warningsŽ’ˆ˜µ«)Ž¡‘2ÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"EnteringÈ ÝReg_Cl_PlaŽ‘kÆÜne_Curve::location()Ž’ÔÆ \n"Ž’å ÿ«;Ž¡‘Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘6ñö±:ÏshowŽ‘Šÿ«(Ý"ref_pt"Ž‘*†P«);Ž¡‘Ïpt0Ž‘-i>±:ÏshowŽ‘Šÿ«(Ý"pt0"Ž‘ÆY«);Ž¡‘·gަ‘ÂunsignedŽ‘D7shortŽ‘b³ÏorientationŽ’“tò«;Ž¡‘ÂconstŽ‘2*¤unsignedŽ‘ba²shortŽ’€,UÝX_YŽ’“9Ì«=‘Ç0Ž‘Ç;Ž¡‘ÂconstŽ‘2*¤unsignedŽ‘ba²shortŽ’€,UÝX_ZŽ’“9Ì«=‘Ç1Ž‘Ç;Ž¡‘ÂconstŽ‘2*¤unsignedŽ‘ba²shortŽ’€,UÝZ_YŽ’“9Ì«=‘Ç2Ž‘Ç;Ž¡‘ÂPlaneŽ‘46ºÏplŽ‘=lÅ«(Ïget‘‰ffŽ‘®planeŽ‘(vè«(‘ª®));ަ‘ÂifŽ‘´ú«(ÏplŽ‘ ý#·‘ÇÝINVALID_PLANEŽ‘GY«)‘±=·‘ÿý«LDF–UU2003.06.14.‘qÇAdded“this“error“handling“coGde.‘o·±=Ž¡‘·fŽ¡‘Ïc‘ÿ}'errŽ‘7ÁA·‘ ˜Ý"ERROR!È ÝInÈ ÝReg_Cl_PlŽ‘p \ane_Curve::location(Ž’Ù ):"Ž’ð]·Ž¡‘2Ý"TheÈ ÝReg_Cl_Plane_CuŽ’šÿÉrveÈ ÝisÈ Ýnon-planar.\nŽ’ÿ"Ž’ -·‘ÇÝ"ReturningÈ Ý-6\n\n"Ž‘d”b·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½·Ž‘I­Û«6Ž‘N­Ü;Ž¡‘·gަ‘ÂrealŽ‘*³0Ïr0Ž‘8¬ «=‘ÇÏplŽ‘ ý#±:Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹«(Ïpt0Ž‘i;«)±:Ï rstŽ‘µª«;ަ‘ÂifŽ‘´ú«(Ïr0Ž‘ øÝ±>‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÏepsilonŽ‘E^¦«(‘ª¨))Ž¡‘±=·‘âÁ«LDF‘82003.06.14.–h Changed.“Ïr0Ž‘Ñç«will›8alw•¸ãa“ys˜b•Ge˜p“ositiv•¸ãe,‘=òso˜I‘8no“w˜longer˜tak“e˜its˜absolute˜v‘ÿqÇalue.‘±·±=Ž¡‘·fŽ¡‘ÂifŽ‘*9j«(·:Ïsuppr‘ÿ}'ess‘‰ffŽ‘®warningsŽ‘P%«)‘Ïc‘ÿ}'errŽ‘Yv·‘£ÐÝ"WARNING!È ÝInÈ ÝReg_Cl_Ž‘l£”Plane_Curve::locatioŽ’Õ£Xn().\n"Ž’þ{·Ž¡‘<Ý"PointÈ ÝisÈ ÝnotÈ ÝinÈ ÝplaŽ’¤ÿÊneÈ ÝofÈ ÝregularÈ ÝclosedŽ’ ÿŽÈ ÝplaneÈ Ýcurve.\n"Ž’hº·Ž¡‘<Ý"ReturningÈ Ý-2.\n\n"Ž’£ M·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½·Ž‘I­Û«2Ž‘N­Ü;Ž¡‘·gަ‘ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’€LïÏc‘ÿ}'opyŽ’”Üç«(·Ž‘ÏthisŽ‘ë·«);ަ‘ÂifŽ‘´ú«(Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘¹ ·6«=‘ÇÏoriginŽ‘½9«)‘Ïpt0Ž‘0S·«=ŽŽ‘&¾ŠÏr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘Bw•·«=ŽŽ‘RÌÏc‘ÿ}'opyŽ‘f•ı:ÏshiftŽ‘}«(·Ž‘ÇÏr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ ¹«);‘±=·‘ÿý«LDF‘UU2002.11.05.‘qÇSimpli ed.‘o·±=ަ‘ÂP•®9oin“tŽ‘2ïŸÏc‘ÿ}'opy‘‰ffŽ‘®normalŽ‘læ#«=‘ÇÏc‘ÿ}'opyŽ‘W±:Ïget‘‰ffŽ‘®normalŽ‘0Št«(‘ª¨);ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'opy‘‰ffŽ‘®normalŽ‘±:Ïdotlab‘ÿ}'elŽ‘!ÿó«(Ý"pt0"Ž‘ÆY«);ަ‘Ïpt0Ž‘-i>±:ÏshowŽ‘Šÿ«(Ý"pt0"Ž‘ÆY«);ަ‘·gŽ¡‘ÂT‘ÿ -«ransformŽ‘KÈÔÏt3Ž‘VŸ«;ަ‘ÂP•®9oin“tŽ‘2ïŸÏpt1Ž‘Eò«=‘ÇÏc‘ÿ}'opyŽ‘W±:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘);Ž¡‘Ïpt1Ž‘&0U·«=ŽŽ‘8…©Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘Qwœ«;ަ‘Ïpt1Ž‘#i=±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏx‘‰ffŽ‘®axisŽ‘M~«(1Ž‘±;‘ª¨«0Ž–ª©±;‘ª¨«0Ž“);ަ‘ÂP•®9oin“tŽ‘2ïŸÏz‘‰ffŽ‘®axisŽ‘Lñ:«(0Ž‘±;‘ª¨«0Ž–ª©±;‘ª¨«1Ž“);Ž¡‘ÂifŽ‘´ú«(ÏorientationŽ‘4:W·‘ÇÝX_YŽ‘FW·_‘8àÏorientationŽ‘6s7·‘ÇÝX_ZŽ‘ w«)‘·fަ‘ÂifŽ‘)´û«(Ïpt1Ž‘0S·6«=‘ÇÏx‘‰ffŽ‘®axisŽ‘Ž`·^‘8àÏpt1Ž‘i3·6«=‘Ç·Ž‘ -Ž6Ïx‘‰ffŽ‘®axisŽ‘%ž«)‘·fަ‘(Ït3Ž‘2Lϱ:Ïalign‘‰ffŽ–®with‘‰ffŽ“axisŽ‘@²x«(Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ñó±;‘ª¨Ïpt1Ž‘ã±;‘ª¨Ý'x'Ž‘ñ«);ަ‘(Ïc‘ÿ}'opyŽ‘?W·«=ŽŽ‘NåKÏr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘jžV·«=ŽŽ‘z,Ïpt0Ž’Œ\à·«=ŽŽ’›ëÏt3Ž’¦7â«;ަ‘·gަ‘gަ‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏorientationŽ‘4:W·‘ÇÝZ_YŽ‘ w«)‘·fަ‘ÂifŽ‘)´û«(Ïpt1Ž‘0S·6«=‘ÇÏz‘‰ffŽ‘®axisŽ‘“·^‘8àÏpt1Ž‘i3·6«=‘Ç·Ž‘ -Ž6Ïz‘‰ffŽ‘®axisŽ‘$Ñ«)‘·fަ‘(Ït3Ž‘2Lϱ:Ïalign‘‰ffŽ–®with‘‰ffŽ“axisŽ‘@²x«(Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ñó±;‘ª¨Ïpt1Ž‘ã±;‘ª¨Ý'z'Ž‘ñ«);ަ‘(Ïc‘ÿ}'opyŽ‘?W·«=ŽŽ‘NåKÏt3Ž‘Y2«;ަ‘(Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘C¹·«=ŽŽ‘SGFÏt3Ž‘]”«;ަ‘(Ïpt0Ž‘:0W·«=ŽŽ‘I¾ŽÏt3Ž‘T Y«;ަ‘·gަ‘gŽ¡‘Ârealu½‰™šs4Ž‘ÔwpairŽ‘CpƒÏrrŽ‘MuÔ«;ަ‘ÂrealŽ‘*³0Ïpt0‘‰ffŽ‘®vŽ‘Bœ«;‘±=·‘ÿý«[¬LDF‘T2002.11.05.«]Ž‘T7V‘ÿ*ªertical.‘o·±=ަ‘ÂrealŽ‘*³0Ïpt0‘‰ffŽ‘®hŽ‘BPK«;‘±=·‘ÿý«[¬LDF‘T2002.11.05.«]Ž‘T7Horizon¸ãtal.‘o·±=Ž¡‘ÂifŽ‘´ú«(ÏorientationŽ‘4:W·‘ÇÝX_YŽ‘ w«)‘·fަ‘Ïpt0‘‰ffŽ‘®hŽ‘8d6«=‘ÇÏpt0Ž‘0S±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);ަ‘Ïpt0‘‰ffŽ‘®vŽ‘80‡«=‘ÇÏpt0Ž‘0S±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);ŽŽŽŒ‹ ;Ä Šn ý‘ì·x«949›­3DLDFPRÃŽG’ýãLOCA‘ÿJªTION–ÕXOF“A“POINT˜«267Ž €n ý•@P‘·gޤ ‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏorientationŽ‘4:W·‘ÇÝX_ZŽ‘ w«)‘·fŽ¡‘Ïpt0‘‰ffŽ‘®hŽ‘8d6«=‘ÇÏpt0Ž‘0S±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘Ïpt0‘‰ffŽ‘®vŽ‘80‡«=‘ÇÏpt0Ž‘0S±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏorientationŽ‘4:W·‘ÇÝZ_YŽ‘ w«)‘·fŽ¡‘Ïpt0‘‰ffŽ‘®hŽ‘8d6«=‘ÇÏpt0Ž‘0S±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡‘Ïpt0‘‰ffŽ‘®vŽ‘80‡«=‘ÇÏpt0Ž‘0S±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨);Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘7|U·‘ƬÝ"ERROR!È ÝInÈ ÝReg_Cl_PlŽ‘oÆpane_Curve::location(Ž’ØÆ4).\n"Ž’úS9·Ž¡‘2Ý"orientationÈ ÝhasÈ ÝinvŽ’šÿÉalidÈ Ývalue:È Ý"Ž’â"·‘ÇÏorientationŽ‘7o·‘ÇÝ"\nReturningÈ Ý-5\n\n"Ž‘o\·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½·Ž‘I­Û«5Ž‘N­Ü;Ž¡‘·gŽ¡‘ÏrrŽ‘ Ìk«=‘ÇÏsolveŽ‘þã«(Ý'v'Ž‘F_±;‘ª¨Ïpt0‘‰ffŽ‘®hŽ‘Gë);‘±=·‘ÿý«[¬LDF‘T2002.11.05.«]Ž‘T7TO–UUDO:“Explain.‘o·±=Ž¡‘ÂifŽ‘´ú«(ÏrrŽ‘ -Q±:Ï rstŽ‘|·‘ÇÝINVALID_REALŽ‘D†<·^‘8àÏrrŽ‘ >1±:Ïse–ÿ}'c“ondŽ‘ nß·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"PointÈ ÝisÈ ÝoutsideÈ ÝreŽ‘kÆÜgularÈ ÝclosedÈ ÝplaneÈ ÝcŽ’ÔÆ urve.È Ý"Ž’üÔ ·‘ÇÝ"ReturningÈ Ý-1.\n"Ž‘\M«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"ExitingÈ ÝReg_Cl_PlanŽ‘kÆÜe_Curve::location()\Ž’ÔÆ n"Ž’ßÍ«;Ž¡‘·gŽ¡‘ÂreturnŽ‘Aæ½·Ž‘I­Û«1Ž‘N­Ü;Ž¡‘·gŽ¡‘ÂelseŽ‘)ª¼ifŽ‘4Ü:«((ÏfabsŽ–2Ò«(ÏfabsŽ“«(Ïpt0‘‰ffŽ‘®vŽ›il«)–1î·“ÏfabsŽ‘dÀ«(ÏrrŽ‘ -Q±:Ï rstŽ‘µª«))–DZ<“ÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÏepsilonŽ‘E^¦«(‘ª¨))–1î·_“«(ÏfabsŽ–2Ò«(ÏfabsŽ“«(Ïpt0‘‰ffŽ‘®vŽ˜«)–1î·“ÏfabsŽ‘dÀ«(ÏrrŽ‘ -Q±:Ïse–ÿ}'c“ondŽ‘§Ç«))‘DZ<Ž¡‘2ÂP•®9oin“tŽ‘NšQ«::Ž‘U(ÏepsilonŽ‘t—“«(‘ª¨)))‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘?·‘CÇÝ"PointÈ ÝisÈ ÝonÈ ÝregularŽ‘mC‹È ÝclosedÈ ÝplaneÈ Ýcurve.Ž’ÖCOÈ Ý"Ž’åx·‘CÇÝ"ReturningÈ Ý0.\n"Ž‘] Æ·Ž¡‘<Ý"ExitingÈ ÝReg_Cl_PlanŽ’¤ÿÊe_Curve::location()\Ž’ ÿŽn"Ž’ð«;Ž¡‘(ÏgetcharŽ‘I&«(‘ª®);Ž¡‘·gŽ¡‘ÂreturnŽ‘A潫0Ž‘Fæ¾;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏfabsŽ‘2Ò«(Ïpt0‘‰ffŽ‘®vŽ‘il«)–DZ<“ÏfabsŽ‘ùê«(ÏrrŽ‘ -Q±:Ï rstŽ‘µª«))‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"PointÈ ÝisÈ ÝinsideÈ ÝregŽ‘kÆÜularÈ ÝclosedÈ ÝplaneÈ ÝcuŽ’ÔÆ rve.È Ý"Ž’÷”·‘ÇÝ"ReturningÈ Ý1.\n"Ž‘WMP«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"ExitingÈ ÝReg_Cl_PlanŽ‘kÆÜe_Curve::location()\Ž’ÔÆ n"Ž’ßÍ«;Ž¡‘(ÏgetcharŽ‘I&«(‘ª®);Ž¡‘·gŽ¡‘ÂreturnŽ‘A潫1Ž‘Fæ¾;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏfabsŽ‘2Ò«(Ïpt0‘‰ffŽ‘®vŽ‘il«)–DZ>“ÏfabsŽ‘ùê«(ÏrrŽ‘ -Q±:Ï rstŽ‘µª«))Ž¡‘±=·‘ÿý«This–UUcase“should“nev¸ãer“ošGccur,“I“b˜eliev•¸ãe.‘qÇ[¬LDF‘T2002.11.05.«]Ž‘SzWh“y‘UUnot??‘o·±=Ž¡‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘>ØU·‘Ý"PointÈ ÝisÈ ÝoutsideÈ ÝreŽ‘l~ÞgularÈ ÝclosedÈ ÝplaneÈ ÝcŽ’Õ~¢urve.È Ý"Ž’þD·‘Ý"ReturningÈ Ý-1.\n"Ž‘`Äi·Ž¡‘<Ý"ExitingÈ ÝReg_Cl_PlanŽ’¤ÿÊe_Curve::location()\Ž’ ÿŽn"Ž’ð«;Ž¡‘(ÏgetcharŽ‘I&«(‘ª®);Ž¡‘·gŽ¡‘ÂreturnŽ‘Aæ½·Ž‘I­Û«1Ž‘N­Ü;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘7|U·‘ƬÝ"ERROR!È ÝInÈ ÝReg_Cl_PlŽ‘oÆpane_Curve::location(Ž’ØÆ4).\n"Ž’úS9·Ž¡‘2Ý"ThisÈ Ýcan'tÈ Ýhappen!È Ž’šÿÉÝReturningÈ Ý-3.\n"Ž’òM·‘ÇÏ ushŽ‘€«;ŽŽŽŒ‹ L] Šn ý‘ì«268›­LOCA‘ÿJªTION–ÕXOF“A“POINT’ýã3DLDFPRÃŽG˜·x«949Ž €n ý•@P‘ÏgetcharŽ‘?%ÿ«(‘ª®);ޤ ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝReg_Cl_PlanŽ‘kÆÜe_Curve::location()\Ž’ÔÆ n"Ž’ßÍ«;Ž¡‘ÂreturnŽ‘Aæ½·Ž‘I­Û«3Ž‘N­Ü;Ž¡‘·gŽ¡‘ -gޤ ­See–ÕXalso“sections“951,“954,“955,“956,“957,“958,“959,“960,“961,“962,“963,“965,“and“968.Ž¡This–ÕXco S·‘ÇÝ"È Ý***È ÝEnteringÈ ÝReg_CŽ‘kÆÜl_Plane_Curve::"Ž’Ã,·‘ÇÝ"intersection_pointsŽ‘kÆÜ()\n"Ž’‰TM·‘ÇÏ ushŽ‘€«;ަ‘Âb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘odñÏbppŽ’‚"ò«=‘ÇÝINVALID_BOOL_POINT_PAIRŽ‘| ;«;Ž¡‘ÂPlaneŽ‘>6»ÏplŽ‘J3Þ«=‘ÇÏget‘‰ffŽ‘®planeŽ‘+>«(‘ª¨);ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘ÏplŽ‘6 ±:ÏnormalŽ‘ V¸±:ÏshowŽ‘Šÿ«(Ý"pl.normal"Ž‘:FG«);ަ‘ÂP•®9oin“tŽ‘<ï Ïsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘}ud«=‘Ç(Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘)–8à·“Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘*Ó«);ަ‘Ïsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘[¾¯±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);ަ‘ÂP•®9oin“tŽ‘<ï Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘d“Q«(Ïpt1Ž–¢·‘8àÏpt0Ž“«);ަ‘Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘E£´±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);ަ‘ÂP•®9oin“tŽ‘<ï Ïcr‘ÿ}'ossŽ‘V£Ö«=‘ÇÏsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@…ı:Ïcr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé«(Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘'£±«);ަ‘Ïcr‘ÿ}'ossŽ‘4í!±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(ÏtrueŽ‘ʱ;‘ª¨ÏtrueŽ‘o@«);Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘e¾°±:ÏshowŽ‘Šÿ«(Ý"surface_vector"Ž‘T†8«);Ž¡‘(Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘O£µ±:ÏshowŽ‘Šÿ«(Ý"pt_vector"Ž‘:FG«);Ž¡‘(Ïcr‘ÿ}'ossŽ‘>í"±:ÏshowŽ‘Šÿ«(Ý"cross"Ž‘%FS«);Ž¡‘(ÏplŽ‘16±:ÏnormalŽ‘ V¸±:ÏshowŽ‘Šÿ«(Ý"pl.normal"Ž‘:FG«);Ž¡‘·gަ‘ÂshortŽ‘;ʦÏdistanc‘ÿ}'eŽ‘b×»«=‘ÇÏplŽ‘ ý#±:Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹«(Ïpt0Ž‘i;«)±:Ïse–ÿ}'c“ondŽ‘§Ç«;ŽŸÂ955.‘ üDegenerate–ÕTcases,“error“handling.ަ·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·Ž¡‘ -ÂifŽ‘qv«(Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘*jÉ·‘ÇÝINVALID_POINTŽ–I?5·_‘±ÜÏplŽ› -çç±:ÏnormalŽ‘#з‘ÇÝINVALID_POINTŽ“·_‘±ÜÏpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘,¥·‘ÇÏoriginŽ‘o·_‘±ÜÏplŽ˜±:ÏnormalŽ‘#з‘ÇÏoriginŽ‘½9«)Ž¡‘·fŽ¡‘Ïc‘ÿ}'errŽ‘,e]·‘¯µÝ"ERROR!È ÝInÈ ÝReg_Cl_PlŽ‘n¯yane_Curve:intersectiޒם=on_points():\n"Ž’,¥-·Ž¡‘(Ý"SomethingÈ ÝisÈ ÝwrongÈ Ž’ÿÈÝwithÈ ÝtheÈ Ýnormals:\n"Ž’ú…ô«;Ž¡‘Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘;£³±:ÏshowŽ‘Šÿ«(Ý"pt_vector:"Ž‘?†D«);Ž¡‘ÏplŽ‘6 ±:ÏnormalŽ‘ V¸±:ÏshowŽ‘Šÿ«(Ý"pl.normal"Ž‘:FG«);Ž¡‘Ïc‘ÿ}'errŽ‘)|À·‘ÇÝ"ReturningÈ ÝINVALID_BŽ‘kÆÜOOL_POINT_PAIR.\n\n"Ž’Ø ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPolygon::inŽ‘kÆÜtersection_points().Ž’ÔÆ \n\n"Ž’òT·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼ÝINVALID_BOOL_POINT_PAIRŽ’±,ß«;Ž¡‘ -·gŽŸÂ956.‘ üP®9arallel–ÕTand“coplanar“cases.ަ·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·Ž¡‘ -ÂelseŽ‘?ìifŽ‘*›«(Ïsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@…Ä·‘ÇÏpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘*Ç·_\RÏsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@â·‘ÇŽ‘ -Ž6Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘2Ž9·_\RÏcr‘ÿ}'ossŽ–ˆ·‘ÇÏplŽ‘ ý#±:ÏnormalŽ‘ ³ -·_\RÏcr‘ÿ}'ossŽ“·‘ÇŽ‘ -Ž6ÏplŽ‘ÄA±:ÏnormalŽ‘ V¸«)Ž¡‘·fŽŽŽŒ‹ u€ Šn ý‘ì·x«957–­3DLDFPRÃŽG’º COPLANAR‘ÕXCASE“«271Ž €n ý•@PÂ957.‘ üCoplanar‘ÕTcase.Ž©·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·ޤ ‘ -ÂifŽ‘´ù«(Ïdistanc‘ÿ}'eŽ‘' ·‘Ç«0Ž‘Ç)‘UU·fŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"LineÈ ÝandÈ ÝReg_Cl_PlaŽ‘kÆÜne_CurveÈ ÝareÈ ÝcoplanaŽ’ÔÆ r.\n"Ž’ïŒù«;ަ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏt0Ž‘Lž«;Ž¡‘ -ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘vLîÏc‘ÿ}'opyŽ’ŠÜæ«(·Ž‘ÏthisŽ‘ë·«);Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏcurve‘‰ffŽ‘®0Ž‘MÁ/«=‘ÇÏc‘ÿ}'opyŽ‘W±:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘);ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"AfterÈ Ýcopying:"Ž‘Zh·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘ÏshowŽ‘*‹«(Ý"this:"Ž‘%FS«);Ž¡‘Ïc‘ÿ}'opyŽ‘(ú±:ÏshowŽ‘Šÿ«(Ý"copy:"Ž‘%FS«);Ž¡‘Ïcurve‘‰ffŽ‘®0Ž‘6 -{±:ÏshowŽ‘Šÿ«(Ý"curve_0"Ž‘/ÆM«);Ž¡‘ -·gŽ¡‘ -Ït0ޑ䷫=ŽŽ‘&¢Ïcurve‘‰ffŽ‘®0Ž‘Ks¬·«=ŽŽ‘[ãÏpt0Ž‘m26·«=ŽŽ‘|ÀmÏpt1Ž’ŽðÀ·«=ŽŽ’ž~÷Ïc‘ÿ}'opyŽ’³ï±:ÏshiftŽ‘}«(·Ž‘ÇÏr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ ¹«);Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"AfterÈ Ýshift:"Ž‘O”n·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'opyŽ‘(ú±:ÏshowŽ‘Šÿ«(Ý"copy:"Ž‘%FS«);Ž¡‘Ïcurve‘‰ffŽ‘®0Ž‘6 -{±:ÏshowŽ‘Šÿ«(Ý"curve_0"Ž‘/ÆM«);Ž¡‘Ïpt0Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt0"Ž‘ÆY«);Ž¡‘Ïpt1Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt1"Ž‘ÆY«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(Ïcurve‘‰ffŽ‘®0Ž‘" -y±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨)–DZ<“«0Ž‘Ç)‘·fŽ¡‘Ït0Ž‘!å·«=ŽŽ‘0¢Ïcurve‘‰ffŽ‘®0Ž‘Us­·«=ŽŽ‘eäÏpt0Ž‘w27·«=ŽŽ’†ÀnÏpt1Ž’˜ðÁ·«=ŽŽ’¨~øÏc‘ÿ}'opyŽ’½ð±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨«180ŽŽ‘ª«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"AfterÈ ÝrotatingÈ ÝsoÈ ÝcŽ‘kÆÜurve_0È ÝhasÈ ÝpositiveÈ Ž’ÔÆ Ýx:"Ž’çÔ·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'opyŽ‘(ú±:ÏshowŽ‘Šÿ«(Ý"copy:"Ž‘%FS«);Ž¡‘Ïcurve‘‰ffŽ‘®0Ž‘6 -{±:ÏshowŽ‘Šÿ«(Ý"curve_0"Ž‘/ÆM«);Ž¡‘Ïpt0Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt0"Ž‘ÆY«);Ž¡‘Ïpt1Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt1"Ž‘ÆY«);Ž¡‘ -·gަ‘ -ÂP•®9oin“tŽ‘(ïžÏtr–ÿ}'ac“e‘‰ffŽ–®x‘‰ffŽ“z‘‰ffŽ“0Ž‘[Ih«=‘ÇÏcurve‘‰ffŽ‘®0Ž‘$Ñ‘«;ަ‘ -Ïtr–ÿ}'ac“e‘‰ffŽ–®x‘‰ffŽ“z‘‰ffŽ“0Ž‘9’³±:ÏshiftŽ‘}«(0Ž‘±;‘ª¨·Ž‘ qÆ«(Ïcurve‘‰ffŽ‘®0Ž‘" -y±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨)));ަ‘ -ÂP•®9oin“tŽ‘(ïžÏx‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘O»»«(1Ž‘);Ž¡‘ -ÂrealŽ‘ ³/ÏangŽ‘44í«=‘ÇÏtr–ÿ}'ac“e‘‰ffŽ–®x‘‰ffŽ“z‘‰ffŽ“0Ž‘2Yʱ:ÏangleŽ‘ÀS«(Ïx‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘&Ì«);ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"angÈ Ý==È Ý"Ž‘5T}·‘ÇÏangŽ‘HÖ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÏangŽ‘¾·6«=‘Ç0Ž‘Ç)‘·fŽ¡‘ÂifŽ‘´ú«(Ïcurve‘‰ffŽ‘®0Ž‘" -y±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨)–DZ>“«0Ž‘Ç)‘ÏangŽ‘¾·«=ŽŽ‘(õ·Ž‘/׫1Ž‘4×;Ž¡‘Ït0Ž‘!å·«=ŽŽ‘0¢Ïcurve‘‰ffŽ‘®0Ž‘Us­·«=ŽŽ‘eäÏpt0Ž‘w27·«=ŽŽ’†ÀnÏpt1Ž’˜ðÁ·«=ŽŽ’¨~øÏc‘ÿ}'opyŽ’½ð±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨ÏangŽ‘eN«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"AfterÈ ÝrotatingÈ ÝsoÈ ÝtŽ‘kÆÜheÈ ÝtraceÈ ÝofÈ Ýcurve_0È Ž’ÔÆ ÝisÈ ÝonÈ Ýx-axis:"Ž’!“ö·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'opyŽ‘(ú±:ÏshowŽ‘Šÿ«(Ý"copy:"Ž‘%FS«);Ž¡‘Ïcurve‘‰ffŽ‘®0Ž‘6 -{±:ÏshowŽ‘Šÿ«(Ý"curve_0"Ž‘/ÆM«);Ž¡‘Ïpt0Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt0"Ž‘ÆY«);Ž¡‘Ïpt1Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt1"Ž‘ÆY«);Ž¡‘ -·gŽ¡‘ -ÏangŽ‘¿«=‘ÇÏcurve‘‰ffŽ‘®0Ž‘$Ñ‘±:ÏangleŽ‘ÀS«(Ïx‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘&Ì«);ŽŽŽŒ‹ …ß Šn ý‘ì«272–­COPLANAR‘ÕXCASE’º 3DLDFPRÃŽG“·x«957Ž €n ý•@P‘ -ÂifŽ‘´ù«(ÏangŽ‘¾·6«=‘Ç0Ž‘Ç)‘·fޤ ‘ÂifŽ‘´ú«(Ïcurve‘‰ffŽ‘®0Ž‘" -y±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨)–DZ>“«0Ž‘Ç)‘ÏangŽ‘¾·«=ŽŽ‘(õ·Ž‘/׫1Ž‘4×;Ž¡‘Ït0Ž‘!å·«=ŽŽ‘0¢Ïcurve‘‰ffŽ‘®0Ž‘Us­·«=ŽŽ‘eäÏpt0Ž‘w27·«=ŽŽ’†ÀnÏpt1Ž’˜ðÁ·«=ŽŽ’¨~øÏc‘ÿ}'opyŽ’½ð±:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨ÏangŽ‘eN«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"AfterÈ ÝrotatingÈ ÝsoÈ ÝcŽ‘kÆÜurve_0È ÝisÈ ÝonÈ Ýx-axis:Ž’ÔÆ "Ž’ÝT·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'opyŽ‘(ú±:ÏshowŽ‘Šÿ«(Ý"copy:"Ž‘%FS«);Ž¡‘Ïpt0Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt0"Ž‘ÆY«);Ž¡‘Ïpt1Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt1"Ž‘ÆY«);Ž¡‘ -·gŽ©‘ -ÂP•®9oin“tŽ‘(ïžÏcurve‘‰ffŽ‘®4Ž‘MÁ/«=‘ÇÏc‘ÿ}'opyŽ‘W±:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(Ïnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘JÀ©±=«4Ž‘);Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏz‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘O.î«(0Ž‘±;‘ª¨«0Ž–ª©±;‘ª¨«1Ž“);ަ‘ -ÏangŽ‘¿«=‘ÇÏcurve‘‰ffŽ‘®4Ž‘$Ñ‘±:ÏangleŽ‘ÀS«(Ïz‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘&?P«);Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïcurve‘‰ffŽ‘®4Ž‘6 -{±:ÏshowŽ‘Šÿ«(Ý"curve_4"Ž‘/ÆM«);Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"angÈ Ý==È Ý"Ž‘5T}·‘ÇÏangŽ‘HÖ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÏangŽ‘¾·6«=‘Ç0Ž‘Ç)‘·fŽ¡‘ÂifŽ‘´ú«(Ïcurve‘‰ffŽ‘®4Ž‘" -y±:Ïget‘‰ffŽ‘®yŽ‘t«(‘ª¨)–DZ>“«0Ž‘Ç)‘ÏangŽ‘¾·«=ŽŽ‘(õ·Ž‘/׫1Ž‘4×;Ž¡‘Ït0Ž‘!å·«=ŽŽ‘0¢Ïcurve‘‰ffŽ‘®4Ž‘Us­·«=ŽŽ‘eäÏpt0Ž‘w27·«=ŽŽ’†ÀnÏpt1Ž’˜ðÁ·«=ŽŽ’¨~øÏc‘ÿ}'opyŽ’½ð±:Ïr‘ÿ}'otateŽ‘o>«(ÏangŽ‘º¦«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"AfterÈ ÝrotatingÈ ÝsoÈ ÝcŽ‘kÆÜurve_4È ÝisÈ ÝonÈ Ýz-axis:Ž’ÔÆ "Ž’ÝT·‘ÇÏend‘‚ØlŽ‘¸Ú«;Ž¡‘Ïc‘ÿ}'opyŽ‘(ú±:ÏshowŽ‘Šÿ«(Ý"copy:"Ž‘%FS«);Ž¡‘Ïcurve‘‰ffŽ‘®4Ž‘6 -{±:ÏshowŽ‘Šÿ«(Ý"curve_4"Ž‘/ÆM«);Ž¡‘Ïpt0Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt0"Ž‘ÆY«);Ž¡‘Ïpt1Ž‘#i=±:ÏshowŽ‘Šÿ«(Ý"pt1"Ž‘ÆY«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'opyŽ‘(ú±:Ïdr‘ÿ}'awŽ‘(Û«(ÂColorsŽ‘!ØÞ«::Ž‘(gÏblueŽ‘:É“«);Ž¡‘Ïpt0Ž‘#i=±:Ïdr‘ÿ}'awŽ‘(Û«(Ïpt1Ž‘i;±;‘ª¨ÂColorsŽ‘#ƒ†«::Ž‘*ÄÏblackŽ‘A˜±;‘ª¨Ý"evenly"Ž‘,0ø«);Ž¡‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž‘Ç;‘ÿý±iŽ– 9 <‘Ç«16ŽŽ‘ Ç;‘ÿý±iŽ“«+=ŽŽ‘Ž]4Ž‘"Ž^)‘Ïc‘ÿ}'opyŽ‘ø±:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(±iŽ–qô«)±:Ïdotlab‘ÿ}'elŽ‘!ÿó«(±iŽ“«);Ž¡#ÂifŽ‘ ´ø«0ŽŽ¡‘Ïpt0Ž‘#i=±:Ïdotlab‘ÿ}'elŽ‘!ÿó«(Ý"pt0"Ž‘ÆY«);Ž¡‘Ïpt1Ž‘#i=±:Ïdotlab‘ÿ}'elŽ‘!ÿó«(Ý"pt1"Ž‘ÆY«);Ž¡‘Ïc‘ÿ}'opyŽ‘(ú±:Ïget‘‰ffŽ‘®c‘ÿ}'enterŽ‘,=G«(‘ª¨)±:Ïdotlab‘ÿ}'elŽ‘!ÿó«(Ý"copyÈ Ýcenter"Ž‘DÆA«);Ž¡#ÂendifŽŽ¡‘Ïdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘@Ø«(‘ª®);Ž¡‘ -·gަ‘ -ÂrealŽ‘ ³/Ïpt0‘‰ffŽ‘®hŽ‘;b«=‘ÇÏpt0Ž‘0S±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ -ÂrealŽ‘ ³/Ïpt0‘‰ffŽ‘®vŽ‘:㳫=‘ÇÏpt0Ž‘0S±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡‘ -ÂrealŽ‘ ³/Ïpt1‘‰ffŽ‘®hŽ‘;b«=‘ÇÏpt1Ž‘0S±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘ -ÂrealŽ‘ ³/Ïpt1‘‰ffŽ‘®vŽ‘:㳫=‘ÇÏpt1Ž‘0S±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);‘±=·‘ÿýÏpt1‘‰ffŽ‘®vŽ‘¾¾«isn't–UUused.›qÇLea¸ãving“it“here,“just“in“case.˜[¬LDF‘T2003.08.27.«]Ž‘U$©·±=Ž¡‘ -ÂrealŽ‘ ³/ÏSlop‘ÿ}'eŽ‘;:š«=‘ÇÏpt1Ž‘0S±:Ïslop‘ÿ}'eŽ‘7Ë«(Ïpt0Ž‘i;±;‘ª¨Ý'x'Ž–ñ±;‘ª¨Ý'z'Ž“«);ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"SlopeÈ Ý==È Ý"Ž‘?Ôw·‘ÇÏSlop‘ÿ}'eŽ‘Nƒ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘ -Ârealu½‰™šs4Ž‘ÔwpairŽ‘9p‚ÏrrŽ‘CuÓ«;‘±=·–ÿý«BEGIN“·±=ŽŽŽŒ‹ •G Šn ý‘ì·x«958–­3DLDFPRÃŽG’º COPLANAR‘ÕXCASE“«273Ž €n ý•@PÂ958.‘ ü«SlopGe–UUis“0“(line“is“horizon¸ãtal).Ž©·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·ޤ ‘ -ÂifŽ‘´ù«(ÏSlop‘ÿ}'eŽ‘‡k·‘Ç«0Ž‘Ç)‘±=·‘ÿý«v–UUis“knoš¸ãwn,“h“is“unkno˜wn.‘o·±=Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"SlopeÈ Ý==È Ý0"Ž‘Et·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÏrrŽ‘ Ìk«=‘ÇÏsolveŽ‘þã«(Ý'h'Ž‘F_±;‘ª¨Ïpt0‘‰ffŽ‘®vŽ‘«);Ž¡‘ÂifŽ‘´ú«(ÏrrŽ‘ -Q±:Ï rstŽ‘|·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘ÏbppŽ‘-öì±:Ï rstŽ–µª±:ÏptŽ‘ ä±:ÏsetŽ‘ x„«(ÏrrŽ‘ -Q±:Ï rstŽ“±;‘ª¨«0Ž‘ª©±;‘ª¨Ïpt0‘‰ffŽ‘®vŽ‘«);Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏbppŽ‘;Ïʱ:Ï rstŽ‘µª±:ÏptŽ‘ «µ«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘ÂifŽ‘´ú«(ÏrrŽ‘ -Q±:Ïse–ÿ}'c“ondŽ‘ nß·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘ÏbppŽ‘-öì±:Ïse–ÿ}'c“ondŽ–§Ç±:ÏptŽ‘ ä±:ÏsetŽ‘ x„«(ÏrrŽ‘ -Q±:Ïse–ÿ}'c“ondŽ“±;‘ª¨«0Ž‘ª©±;‘ª¨Ïpt0‘‰ffŽ‘®vŽ‘«);Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏbppŽ‘;Ïʱ:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ «µ«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘ÏbppŽ‘-öì±:Ï rstŽ‘µª±:ÏptŽ‘ ä±:ÏshowŽ‘Šÿ«(Ý"bpp.first.pt"Ž‘J>«);Ž¡‘ÏbppŽ‘-öì±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ ä±:ÏshowŽ‘Šÿ«(Ý"bpp.second.pt"Ž‘OF;«);Ž¡‘·gŽ¡‘ -g‘±=·‘ÿý«End‘UUÏSlop‘ÿ}'eŽ‘ÜÀ·‘Ç«0Ž‘Ç.‘o·±=ŽŸÂ959.‘ ü«SlopGe–UUis“unde ned“(line“is“v¸ãertical).ަ·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·Ž¡‘ -ÂelseŽŽ¡‘ifŽ‘´ú«(ÏSlop‘ÿ}'eŽ‘‡k·‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"LineÈ ÝisÈ Ývertical.\nŽ‘kÆÜ"Ž‘qA«;Ž¡‘·gŽ¡‘ÏrrŽ‘*Ìl«=‘ÇÏsolveŽ‘þã«(Ý'v'Ž‘F_±;‘ª¨Ïpt1‘‰ffŽ‘®hŽ‘Gë);Ž¡‘ÂifŽ‘)´û«(ÏrrŽ‘ -Q±:Ï rstŽ‘|·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘(ÏbppŽ‘7öí±:Ï rstŽ–µª±:ÏptŽ‘ ä±:ÏsetŽ‘ x„«(Ïpt0‘‰ffŽ‘®hŽ‘±;‘ª¨«0Ž‘ª©±;‘ª¨ÏrrŽ‘ ¯ù±:Ï rstŽ“«);Ž¡‘·gŽ¡‘ÂelseŽ‘5ØâÏbppŽ‘EÏ˱:Ï rstŽ‘µª±:ÏptŽ‘ «µ«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘ÂifŽ‘)´û«(ÏrrŽ‘ -Q±:Ïse–ÿ}'c“ondŽ‘ nß·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘(ÏbppŽ‘7öí±:Ïse–ÿ}'c“ondŽ–§Ç±:ÏptŽ‘ ä±:ÏsetŽ‘ x„«(Ïpt0‘‰ffŽ‘®hŽ‘±;‘ª¨«0Ž‘ª©±;‘ª¨ÏrrŽ‘ ¯ù±:Ïse–ÿ}'c“ondŽ“«);Ž¡‘·gŽ¡‘ÂelseŽ‘5ØâÏbppŽ‘EÏ˱:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ «µ«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘·g‘±=·‘ÿý«End‘UUÏSlop‘ÿ}'eŽ‘ÜÀ·‘ÇÝINVALID_REALŽ‘BM\«.‘o·±=ŽŽŽŒ‹ ¤y Šn ý‘ì«274–­COPLANAR‘ÕXCASE’º 3DLDFPRÃŽG“·x«960Ž €n ý•@PÂ960.‘ ü«SlopGe–UU·2“ÂrealŽ‘ƒ«is“de ned“and“·6«=‘Ç0.Ž©·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·ޤ ‘ -ÂelseŽ‘!Øà·fŽ¡‘ÂrealŽ‘*³0Ïv‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘YàÒ«;ަ‘Ïv‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘Eô¼«=‘ÇÏpt0‘‰ffŽ‘®vŽ‘id·–8à«(ÏSlop‘ÿ}'eŽ‘ù3·“Ïpt0‘‰ffŽ‘®hŽ‘Õû«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"v_interceptÈ Ý==È Ý"Ž‘_Te·‘ÇÏv‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘4»Ò·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ârealu½‰™šs4Ž‘ÔwtripleŽ‘JÉfÏc–ÿ}'o“e sŽ‘fhD«=‘ÇÏget‘‰ffŽ‘®c–ÿ}'o“ecientsŽ‘C·Š«(ÏSlop‘ÿ}'eŽ‘ÀS±;‘ª¨Ïv‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘0ØJ«);‘±=·‘ÿý«New‘UUh-v‘ÿqÇalues.‘o·±=ަ‘ÂifŽ‘´ú«(Ïis‘‰ffŽ‘®quadr‘ÿ}'aticŽ‘3çô«(‘ª®))‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"SolvingÈ Ýquadratic.\Ž‘kÆÜn"Ž‘y”V·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÏrrŽ‘*Ìl«=‘ÇÏsolve‘‰ffŽ‘®quadr‘ÿ}'aticŽ‘D{Ò«(Ïc–ÿ}'o“e sŽ‘ׯ±:Ï rstŽ‘µª±;‘ª¨Ïc–ÿ}'o“e sŽ–‚n±:Ïse–ÿ}'c“ondŽ‘§Ç±;‘ª¨Ïc–ÿ}'o“e sŽ“±:Ïthir‘ÿ}'dŽ‘Üj«);Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"NotÈ ÝaÈ Ýquadratic.È Ý"Ž‘iÔ_·‘ÇÝ"Haven'tÈ ÝprogrammedÈ Ž‘kÆÜÝthisÈ ÝcaseÈ Ýyet.\n"Ž’ÈT)·‘ÇÏ ushŽ‘€«;Ž¡‘·gަ‘ÂrealŽ‘*³0Ïv‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘K$«;ަ‘ÂifŽ‘´ú«(ÏrrŽ‘ -Q±:Ï rstŽ‘|·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘Ïv‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘A7ù«=‘Ç(ÏSlop‘ÿ}'eŽ‘ù3·‘8àÏrrŽ‘ >1±:Ï rstŽ‘µª«)–8à+“Ïv‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘1f‚«;Ž¡‘ÏbppŽ‘-öì±:Ï rstŽ–µª±:ÏptŽ‘ ä±:ÏsetŽ‘ x„«(ÏrrŽ‘ -Q±:Ï rstŽ“±;‘ª¨«0Ž‘ª©±;‘ª¨Ïv‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘"†«);Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏbppŽ‘;Ïʱ:Ï rstŽ‘µª±:ÏptŽ‘ «µ«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘ÂifŽ‘´ú«(ÏrrŽ‘ -Q±:Ïse–ÿ}'c“ondŽ‘ nß·6«=‘ÇÝINVALID_REALŽ‘BM\«)‘·fŽ¡‘Ïv‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘A7ù«=‘Ç(ÏSlop‘ÿ}'eŽ‘ù3·‘8àÏrrŽ‘ >1±:Ïse–ÿ}'c“ondŽ‘§Ç«)–8à+“Ïv‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘1f‚«;Ž¡‘ÏbppŽ‘-öì±:Ïse–ÿ}'c“ondŽ–§Ç±:ÏptŽ‘ ä±:ÏsetŽ‘ x„«(ÏrrŽ‘ -Q±:Ïse–ÿ}'c“ondŽ“±;‘ª¨«0Ž‘ª©±;‘ª¨Ïv‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘"†«);Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏbppŽ‘;Ïʱ:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ «µ«=‘ÇÝINVALID_POINTŽ‘GY«;Ž¡‘ -·gŽŽŽŒ‹ ®ð Šn ý‘ì·x«961–­3DLDFPRÃŽG’º COPLANAR‘ÕXCASE“«275Ž €n ý•@PÂ961.‘ ü«Common–UUcoGde“for“the“\coplanar"“case.ޤ·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·Ž© ‘ -Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚Ïon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘mŸî«;Ž¡‘ -ÂifŽ‘´ù«(ÏbppŽ‘öé±:Ï rstŽ‘µª±:ÏptŽ‘ «µ·‘ÇÝINVALID_POINTŽ‘GY«)‘·fަ‘Ïon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘F_n±:Ï rstŽ‘|«=‘ÇÏfalseŽ‘v\«;ަ‘Ïon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘F_n±:Ïse–ÿ}'c“ondŽ‘ nß«=‘ÇÝINVALID_REALŽ‘BM\«;ަ‘ -·gަ‘ -ÂelseŽ‘!ØàÏon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘Vÿd«=‘ÇÏbppŽ‘¾±:Ï rstŽ‘µª±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã«);ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"on_segment.firstÈ Ý==Ž‘kÆÜÈ Ý"Ž‘y”V·‘ÇÏon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘5&„±:Ï rstŽ‘|·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"on_segment.secondÈ Ý=Ž‘kÆÜ=È Ý"Ž‘~ÔS·‘ÇÏon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘5&„±:Ïse–ÿ}'c“ondŽ‘ nß·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘ -·gަ‘ -ÂifŽ‘´ù«(Ïon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘2_l±:Ï rstŽ‘|·‘ÇÏtrueŽ–‹°«)‘ÏbppŽ‘öé±:Ï rstŽ‘µª±:bŽ‘«=‘ÇÏtrueŽ“«;ަ‘ -ÂelseŽ‘!ØàÏbppŽ‘1Ïɱ:Ï rstŽ‘µª±:bŽ‘«=‘ÇÏfalseŽ‘v\«;Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓÏt‘‰ffŽ‘®inverseŽ‘h×è«;Ž¡‘ -Ït‘‰ffŽ‘®inverseŽ‘3Ö.«=‘ÇÏt0Ž‘ ã±:ÏinverseŽ‘ ‡«(‘ª¨);ަ‘ -ÂifŽ‘´ù«(ÏbppŽ‘öé±:Ï rstŽ‘µª±:ÏptŽ‘ «µ·6«=‘ÇÝINVALID_POINTŽ‘GY«)‘·fަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TransformingÈ Ýbpp.fiŽ‘kÆÜrst.pt\n"Ž’žTA·‘ÇÏ ushŽ‘€«;ަ‘ÏbppŽ‘#öë±:Ï rstŽ‘µª±:ÏptŽ‘ «µ·«=ŽŽ‘9ìÏt‘‰ffŽ‘®inverseŽ‘CI«;ަ‘ -·gަ‘ -ÂelseŽ‘!Øà·fަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"bpp.first.ptÈ ÝisÈ ÝinvŽ‘kÆÜalid\n"Ž’“ÔG·‘ÇÏ ushŽ‘€«;ަ‘ -·gަ‘ -ÂifŽ‘´ù«(ÏbppŽ‘öé±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ «µ·‘ÇÝINVALID_POINTŽ‘GY«)‘·fަ‘Ïon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘F_n±:Ï rstŽ‘|«=‘ÇÏfalseŽ‘v\«;ަ‘Ïon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘F_n±:Ïse–ÿ}'c“ondŽ‘ nß«=‘ÇÝINVALID_REALŽ‘BM\«;ަ‘ -·gަ‘ -ÂelseŽ‘!ØàÏon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘Vÿd«=‘ÇÏbppŽ‘¾±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã«);ަ‘ -ÂifŽ‘´ù«(Ïon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘2_l±:Ï rstŽ‘|·‘ÇÏtrueŽ–‹°«)‘ÏbppŽ‘öé±:Ïse–ÿ}'c“ondŽ‘§Ç±:bŽ‘«=‘ÇÏtrueŽ“«;ަ‘ -ÂelseŽ‘!ØàÏbppŽ‘1Ïɱ:Ïse–ÿ}'c“ondŽ‘§Ç±:bŽ‘«=‘ÇÏfalseŽ‘v\«;ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"on_segment.firstÈ Ý==Ž‘kÆÜÈ Ý"Ž‘y”V·‘ÇÏon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘5&„±:Ï rstŽ‘|·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"on_segment.secondÈ Ý=Ž‘kÆÜ=È Ý"Ž‘~ÔS·‘ÇÏon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘5&„±:Ïse–ÿ}'c“ondŽ‘ nß·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘ -·gަ‘ -ÂifŽ‘´ù«(ÏbppŽ‘öé±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ «µ·6«=‘ÇÝINVALID_POINTŽ‘GY«)‘·fަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TransformingÈ Ýbpp.seŽ‘kÆÜcond.pt\n"Ž’£”>·‘ÇÏ ushŽ‘€«;ަ‘ÏbppŽ‘#öë±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ «µ·«=ŽŽ‘9ìÏt‘‰ffŽ‘®inverseŽ‘CI«;ަ‘ -·gަ‘ -ÂelseŽ‘!Øà·fަ‘ÏbppŽ‘#öë±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ «µ«=‘ÇÝINVALID_POINTŽ‘GY«;ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"bpp.second.ptÈ ÝisÈ ÝinŽ‘kÆÜvalid\n"Ž’™D·‘ÇÏ ushŽ‘€«;ަ‘ -·gަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"rr.firstÈ Ý==È Ý"Ž‘O”n·‘ÇÏrrŽ‘ Ìi±:Ï rstŽ‘|·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"rr.secondÈ Ý==È Ý"Ž‘TÔk·‘ÇÏrrŽ‘ Ìi±:Ïse–ÿ}'c“ondŽ‘ nß·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"bpp.first.bÈ Ý==È Ý"Ž‘_Te·‘ÇÏbppŽ‘¾±:Ï rstŽ‘µª±:bŽ‘·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"bpp.second.bÈ Ý==È Ý"Ž‘d”b·‘ÇÏbppŽ‘¾±:Ïse–ÿ}'c“ondŽ‘§Ç±:bŽ‘·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;ަ‘ÏbppŽ‘#öë±:Ï rstŽ‘µª±:ÏptŽ‘ ä±:ÏshowŽ‘Šÿ«(Ý"bpp.first.pt"Ž‘J>«);ަ‘ÏbppŽ‘#öë±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ ä±:ÏshowŽ‘Šÿ«(Ý"bpp.second.pt"Ž‘OF;«);ަ‘ -·gަ‘ -ÂreturnŽ‘-æ»ÏbppŽ‘=ݤ«;‘qÇ·g‘±=·‘ÿý«End–UUof“coplanar“case.‘o·±=ŽŽŽŒ‹ ¸§ Šn ý‘ì«276–­P‘ÿJªARALLEL‘ÕXCASE’(&3DLDFPRÃŽG“·x«962Ž €n ý•@PÂ962.‘ üP®9arallel‘ÕTcase.Ž©·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·ޤ ‘ -ÂelseŽ‘!Øà·fŽ¡‘Ïc‘ÿ}'errŽ‘+ýû·‘HSÝ"WARNING!È ÝInÈ ÝReg_Cl_Ž‘nHPlane_Curve::interseŽ’×GÛction_points():\n"Ž’;–`·Ž¡‘(Ý"LineÈ ÝandÈ ÝReg_Cl_PlaŽ’ÿÈne_CurveÈ ÝareÈ ÝinÈ ÝparaŽ’ùÿŒllelÈ Ýplanes.\n"Ž’O€n·Ž¡‘(Ý"NoÈ Ýintersections.È ÝRŽ’ÿÈeturningÈ ÝINVALID_BOOŽ’ùÿŒL_POINT_PAIR."Ž’FÌâ·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼ÝINVALID_BOOL_POINT_PAIRŽ’±,ß«;Ž¡‘ -·gŽ¡‘ -g‘±=·‘ÿý«End–UUof“parallel“and“coplanar“cases.‘o·±=ŽŸÂ963.› üP®9erpQÇendicular–õand“non-coplanar“cases.˜«[¬LDF‘T2003.06.13.«]Ž‘ZÄÂThese–‘ácases“are“handled“in“exactlyŽ¡the–UUsame“w•¸ãa“y‘ÿ*ª.ަ·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·Ž¡‘ -ÂelseŽ‘!Øà·fŽ¡‘ÂifŽ‘´ú«(ÏplŽ‘ 6 ±:ÏnormalŽ–#з‘ÇÏpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘,£©·_‘8àÏplŽ‘ në±:ÏnormalŽ“·‘ÇŽ‘ -Ž6Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘21ç«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"TheÈ ÝlineÈ ÝisÈ ÝperpendŽ‘kÆÜicularÈ ÝtoÈ ÝtheÈ Ý"Ž’½Ô/·‘ÇÝ"Reg_Cl_Plane_Curve.Ž‘kÆÜ\n"Ž‘~ÔS·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"TheÈ ÝlineÈ ÝandÈ ÝtheÈ ÝReŽ‘kÆÜg_Cl_Plane_CurveÈ Ý"Ž’Í”&·‘ÇÝ"areÈ Ýnon-coplanar.\nŽ‘kÆÜ"Ž‘tTY·‘ÇÏ ushŽ‘€«;Ž¡‘·gަ‘Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§ÏbpŽ‘ZI.«=‘ÇÏplŽ‘ ý#±:Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘M–Ö«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã«);ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘ÏbpŽ‘(Ú|±:ÏptŽ‘ ä±:ÏshowŽ‘Šÿ«(Ý"bp.pt"Ž‘%FS«);Ž¡‘·gަ‘ÂshortŽ‘1Ê¥±sŽ‘9A½«=‘ÇÏlo–ÿ}'c“ationŽ‘%ˆ•«(Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ñó±;‘ª¨ÏbpŽ‘ …!±:ÏptŽ‘ ä«);ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"location:È ÝsÈ Ý==È Ý"Ž‘_Te·‘DZsŽ‘ ->0·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(±sŽ‘w>‘Ç·Ž‘ -Ž6«1Ž‘Ž7)‘·fŽ¡‘ÏbppŽ‘-öì±:Ï rstŽ‘µª±:ÏptŽ‘ «µ«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä«;Ž¡‘ÏbppŽ‘-öì±:Ï rstŽ–µª±:bŽ‘«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã«)±:Ï rstŽ“«;Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"OnÈ Ýsegment:È Ý==È Ý"Ž‘_Te·‘ÇÏbppŽ‘¾±:Ï rstŽ‘µª±:bŽ‘·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÏbppŽ‘Qݦ«;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáreturnŽ‘O¿›ÝINVALID_BOOL_POINT_PAIRޒɾ«;Ž¡‘ -·g‘±=·‘ÿý«End–UUof“\P¸ãerpGendicular“and“non-coplanar“cases".‘o·±=Ž¡‘ -·gŽŸÂ964.‘ üP•®9ath‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.20.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.07.16.«]Ž‘YÖChanged–kðname“of“Ïc‘ÿ}'enterŽ‘"ák«argumenš¸ãt“to“Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘]ã«,‘q–bGecause“I'v˜e“made“Ïc‘ÿ}'enterŽ‘"ák«a“data“mem˜bGerŽ¡of‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘lLí«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­943“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[dïÏinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’¬ñΫ(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘]ÓP±;‘ª¨ÂconstŽ‘ÕJP®9athŽ‘;¼«&Ž‘Cƒ!±pŽ‘H‹!«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹ Ê. Šn ý‘ì·x«965‘­3DLDFPRšÃŽG’¯ÂP–ÿ -«A“TH‘ÕX­AR˜GUMENTS‘«277Ž €n ý•@PÂ965.Ž©·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[ïRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’Åy‹«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã«(ÂconstŽ‘G¢P•®9oin“tŽ‘=T?«&Ž‘E]Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘^ P±;‘ª¨ÂconstŽ‘òJP®9athŽ‘;ö«&Ž‘C½!±pŽ‘HÅ!«)Ž¡‘2ÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(·:±pŽ‘:Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘%}«(‘ª¨))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘6D·‘K›Ý"ERROR!È ÝInÈ ÝReg_Cl_PlŽ‘nK_ane_Curve::intersectŽ’×K#ion_points():\n"Ž’1ö·Ž¡‘2Ý"PathÈ ÝargumentÈ ÝpÈ ÝisÈ Ž’šÿÉÝnon-linear.È Ý"Ž’â»ç·‘õÝÝ"ReturningÈ ÝINVALID_BŽ‘kõ¡OOL_POINT_PAIR.\n\n"Ž’Øqª·Ž¡‘2Ï ushŽ‘G¹«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_BOOL_POINT_PAIRŽ’»,à«;Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’‰s›«(Ïr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ñó±;‘ª¨pŽ–²¨:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘)±;‘ª¨pŽ“:Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>«(‘ª¨));Ž¡‘ -·gŽŸÂ966.› üReg‘°¡‰ffs4Ž–#ÕCl‘°¡‰ffs4Ž“Plane‘°¡‰ffs4Ž“Curv•®9e‘ÕTsegmen“ts.˜«The–UUfunctions“in“this“section“require“that“theŽ¡ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘m°;«ha•¸ãv“e–¸£a“meaningful“Ïc‘ÿ}'enterŽ‘ Â.«,‘win“order“to“makš¸ãe“it“pGossible“to“rotate“the“segmen˜ts.Ž¡[¬LDF‘T2003.07.16.«]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.16.«]Ž‘ZFìAdded–”this“section“and“its“subsections,‘ã²including“the“declarations“and“de nitions“ofŽ¡Ïse‘ÿ}'gmentŽ‘#õ¡«(–ª®),‘UUÏhalfŽ‘Îë«(“),–UUand“ÏquarterŽ‘$Z›«(‘ª®).‘qÇThey“wš¸ãere“formerly“mem˜bGers“of“ÂCircleŽ‘!¸«.ަŸüÈ„`ÕÁGŽŽŸÂ967.– üSegmenš®9t.“«[¬LDF‘T2002.11.10.«]Ž‘[ŸëÏse‘ÿ}'gmentŽ‘•Œ«(‘ª®)–m -returns“a“subpath“of“the“ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv˜eŽ‘qѬ«repre-Ž¡senš¸ãting–UUa“segmen˜t“of“·Ž‘UVÏthisŽ‘A «.Ž©Âin®9tŽ‘¤÷ÏfactorŽŽ‘Lºö«Determines–²›hoš¸ãw“large“a“segmen˜t“of“the“ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘p\Ϋis“returned.‘‰˜ÏfactorŽ‘$@«m˜ustŽ¡‘LºöbšGe–UU±>‘Ç«1“and“less“than“or“equal“to“the“n•¸ãum“b˜er–UUof“p˜oin¸ãts“on“the“ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘lLí«.ަÂrealŽ‘³.ÏangleŽŽ‘Lºö«Optional,›with–ã|0“as“the“default.‘=IfÏangleŽ‘£Ï«is“·6«=‘´0,˜a“ÂP•®9oin“tŽ‘#a@«is“found“in“the“direction“of“theŽ¡‘Lºönormal–Ñrto“the“ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘nš|«from“the“cen¸ãter“of“the“ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘kÉ -«,‘ëÒandŽ¡‘Lºöthe–UUsegmenš¸ãt“is“rotated“around“the“cen˜ter“and“this“ÂP•®9oin“tŽ‘ï«.ަÂb•QÇo“olŽ‘¡fÏclose‘ÿ}'dŽŽ‘Lºö«If‘F¨ÏtrueŽ‘ @«,‘|Ëthe‘F¨ÂP®9athŽ‘´«is–F¨made“a“\Âcycle«"“and“the“ends“of“the“segmenš¸ãt“are“joined“b˜y“concatenatingŽ¡‘Lºöthe–Á6curvš¸ãed“ÂP®9athŽ‘ Ыwith“the“straigh˜t“line“segmen˜t“from“its“last“to“its“ rst“ÂP•®9oin“tŽ‘#´«using“theŽ¡‘Lºöconnector‘UUÝ"&"Ž‘›´«.ަ‘ -[¬LDF‘T2003.07.27.«]Ž‘Z{lTO‘È&DO:–ȆMakš¸ãe“argumen˜ts“Âconstޑӫ,‘%Rif“pšGossible.‘ËZÏangleŽ‘%T3«can't“b˜e,‘%Rthough.‘ËZIf“ÏfactorŽ‘$þ ·Ž¡Ïnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘JÀ©«,–UUreturn“·Ž‘UVÏthisŽ‘A «,“cast“to“a“ÂP®9athŽ‘湫,“with“w¸ãarning.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬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.05.20.«]Ž‘Y;Changed–UUthe“w•¸ãa“y–UUthe“last“connector“is“set“when“Ïclose‘ÿ}'dŽ‘!5ý·‘ÇÏtrueŽ‘‹°«.Ž¡‘ -[¬LDF‘T2003.07.27.«]Ž‘Y;Made‘UUÂconstŽ‘*¢«.Ž¡‘ -[¬LDF‘T2003.08.20.«]Ž‘Zm¸BUG‘ºuFIX:–ºÒAdded“ÂunsignedŽ‘6W]shortŽ‘U‡}Ïsubp‘ÿ}'ath‘‰ffŽ‘®sizeŽ’Š„«.‘¢=Changed“the“w•¸ãa“y–ºÒthe“subpath“isŽ¡created,‘ Äwhen‘èáÏclose‘ÿ}'dŽ‘"ëR«is‘èáÏtrueŽ‘­y«.‘,kNoš¸ãw–èáconcatenating“the“curv˜ed“subpath“with“the“straigh˜t“line“segmen˜t“fromŽ¡the–UUlast“to“the“ rst“ÂP•®9oin“tsŽ‘&Î.«of“the“subpath“using“Ý"&"Ž‘›´«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­943“·i‘Ç«+·ŽŸ ‘ -ÂP®9athŽ‘%æºÏse‘ÿ}'gmentŽ‘IÜ[«(ÂunsignedŽ‘07in®9tŽ‘AÜÏfactorŽ‘\ßã±;‘ª¨ÂrealŽ‘]ÖÏangleŽ‘2åA«=‘Ç0Ž‘Ç±;‘ª¨Âb•QÇo“olŽ‘LÏclose‘ÿ}'dŽ‘9,¶«=‘ÇÏtrueŽ‘‹°«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹ Øn Šn ý‘ì«278–­SEGMENT’7…Ä3DLDFPRÃŽG“·x«968Ž €n ý•@PÂ968.Ž©·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·i‘Ç«+·ޤ ‘ -ÂP®9athŽ‘%æºRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’ÞV«::‘Ïse‘ÿ}'gmentŽ‘$õ¥«(ÂunsignedŽ‘07in®9tŽ‘AÜÏfactorŽ‘\ßã±;‘ª¨ÂrealŽ‘]ÖÏangleŽ‘0)±;‘ª¨Âb•QÇo“olŽ‘LÏclose‘ÿ}'dŽ‘6ež«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP®9athŽ‘/æ»±pŽ‘4;ަ‘ÂifŽ‘´ú«(ÏfactorŽ‘Êö·‘Ç«1Ž‘ ÿù·_‘8àÏfactorŽ‘ Ö±>‘ÇÏnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘M‡Á«)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘7žË·‘é"Ý"ERROR!È ÝInÈ ÝReg_Cl_PlŽ‘oèæane_Curve::segment()Ž’Øèª:\n"Ž’õX(·Ž¡‘2Ý"TheÈ ÝargumentÈ ÝfactorŽ’šÿÉÈ ÝhasÈ ÝanÈ ÝinvalidÈ ÝvaluŽ’ÿe:\n"Ž’$ÒÆ·‘ àÏfactorŽ‘'ž·Ž¡‘2Ý"\nReturningÈ ÝemptyÈ ÝPŽ’šÿÉath.\n\n"Ž’ÊÆ«;Ž¡‘ÂreturnŽ‘Aæ½±pŽ‘F;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÏfabsŽ‘2Ò«(ÏangleŽ‘ÀS«)–DZ>“«360ŽŽ‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘7Yß·‘¤6Ý"WARNING!È ÝInÈ ÝReg_Cl_Ž‘o£úPlane_Curve::segmentŽ’Ø£¾():\n"Ž’ÿNJ·Ž¡‘2Ý"TheÈ ÝargumentÈ ÝangleÈ Ž’šÿÉÝisÈ ÝgreaterÈ ÝthanÈ Ý360:Ž’ÿÈ Ý"Ž’ƒ·‘}ÏangleŽ‘"ºy·‘}Ïend‘‚ØlŽ‘ëè·Ž¡‘2Ý"ItÈ ÝwillÈ ÝbeÈ Ýreduced.Ž’šÿÉ\n\n"Ž’¸:·‘ÇÏ ushŽ‘€«;Ž¡‘·gަ‘ÂunsignedŽ‘D7shortŽ‘b³Ïsubp‘ÿ}'ath‘‰ffŽ‘®sizeŽ’™Å_«=‘Ç(Ïnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘JÀ©±=ÏfactorŽ‘Þ«)–8à+“1Ž‘8á;ަ‘±pŽ‘Ï«=‘ÇÏsubp‘ÿ}'athŽ‘$Az«(0Ž‘±;‘ª¨Ïsubp‘ÿ}'ath‘‰ffŽ‘®sizeŽ‘6§<±;‘ª¨ÏfalseŽ‘Yì±;‘ª¨Ý".."Ž‘1«);Ž¡‘ÂforŽ‘%舫(ÂunsignedŽ‘07shortŽ‘N±±iŽ‘T:½«=‘Ç1Ž‘Ç;‘ÿý±iŽ‘ 9 <‘ÇÏsubp‘ÿ}'ath‘‰ffŽ‘®sizeŽ‘9üŒ·‘8à«1Ž‘8á;‘ýŸÿ®+‘ÿ+ŽŽ‘G±iŽ‘¹«)‘±pŽ‘ Ï«+=ŽŽ‘$lÝ".."Ž‘4ªÈ«;Ž¡‘ÂifŽ‘´ú«(Ïclose‘ÿ}'dŽ‘«)‘·fŽ¡‘±pŽ‘%Ï«+=ŽŽ‘8$oÝ"&"Ž‘HjΫ;Ž¡‘±pŽ‘%Ï«+=ŽŽ‘8$o±pŽ‘=,o:Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>«(‘ª¨);Ž¡‘±pŽ‘%Ï«+=ŽŽ‘8$oÝ"--"Ž‘MªË«;Ž¡‘±pŽ‘%Ï«+=ŽŽ‘8$o±pŽ‘=,o:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘);Ž¡‘±pŽ‘%Ï«+=ŽŽ‘8$oÝ"&"Ž‘HjΫ;Ž¡‘±pŽ‘#:Ïset‘‰ffŽ‘®cycleŽ‘&*«(‘ª¨);Ž¡‘·gŽ¡‘ÏangleŽ‘.‡m«=‘ÇÏfmo‘ÿ}'dŽ‘G«(ÏangleŽ‘ÀS±;‘ª¨«360ŽŽ‘ª«);Ž¡‘ÂifŽ‘´ú«(ÏangleŽ‘‡k·6«=‘Ç0Ž‘Ç)‘·fŽ¡‘ÂP•®9oin“tŽ‘<ï ÏnormalŽ‘` p«=‘ÇÏget‘‰ffŽ‘®normalŽ‘3QŒ«(‘ª¨);ަ‘ÏnormalŽ‘>V»±:ÏshiftŽ‘}«(Ïc‘ÿ}'enterŽ‘ ‹«);Ž¡‘±pŽ‘#:Ïr‘ÿ}'otateŽ‘o>«(Ïc‘ÿ}'enterŽ‘ ‹±;‘ª¨ÏnormalŽ‘"`±;‘ª¨ÏangleŽ‘jû«);Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼±pŽ‘<;Ž¡‘ -·gŽŸÂ969.– üHalf.“ÏhalfŽ‘ù’«(‘ª®)–‘}creates“a“curvš¸ãe“using“half“of“the“pGoin˜ts“in“Ïp‘ÿ}'ointsŽ‘ G«starting“from“pGoin˜t“0.‘0€If“the“argumen˜tŽ¡ÏangleŽ‘üþ«is–<«not“zero,‘A™the“resulting“ÂP®9athŽ‘ -º«is“rotated“bš¸ãy“that“amoun˜t“abGout“a“line“from“Ïc‘ÿ}'enterŽ‘"‚á«in“the“direction“ofŽ¡the–ŸÌnormal“to“the“ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘l—d«.‘Q+If“the“argumenš¸ãt“Ïclose‘ÿ}'dŽ‘"Y(«is“ÏtrueŽ‘dd«,‘²ithen“the“segmen˜t“is“closed“andŽ¡can–UUbGe“ lled“using“Ï l‘‚ØlŽ‘H«(›ª®)“or“Ï l‘‚Øldr‘ÿ}'awŽ‘$¼À«(˜).ަ·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­943“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIP®9athŽ‘EqÏhalfŽ‘Wꘫ(ÂrealŽ‘³.ÏangleŽ‘1:™«=‘Ç0Ž‘Ç±;‘ª¨Âb•QÇo“olŽ‘LÏclose‘ÿ}'dŽ‘9,¶«=‘ÇÏtrueŽ‘‹°«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïse‘ÿ}'gmentŽ‘[Ü]«(2Ž‘±;‘ª¨ÏangleŽ‘jû±;‘ª¨Ïclose‘ÿ}'dŽ‘Ä8«);Ž¡‘ -·gŽŸÂ970.– üQuarter.“ÏquarterŽ‘,…B«(‘ª®)–’&creates“a“curvš¸ãe“using“a“quarter“of“the“pGoin˜ts“in“Ïp‘ÿ}'ointsŽ‘"Há«starting“from“pGoin˜t“0.Ž¡If–'the“argumenš¸ãt“ÏangleŽ‘«is“not“zero,‘0\the“resulting“ÂP®9athޑߠ«is“rotated“b˜y“that“amoun˜t“abGout“a“line“from“Ïc‘ÿ}'enterŽ‘"WÇ«inŽ¡the–ïâdirection“of“the“normal“to“the“ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘kçz«.‘OöIf“the“argumenš¸ãt“Ïclose‘ÿ}'dŽ‘ ùT«is“ÏtrueŽ‘´z«,‘,then“the“segmen˜tŽ¡is–UUclosed“and“can“bGe“ lled“using“Ï l‘‚ØlŽ‘H«(›ª®)“or“Ï l‘‚Øldr‘ÿ}'awŽ‘$¼À«(˜).ŽŽŽŒ‹ ëРŠn ý‘ì·x«970–­3DLDFPRÃŽG’7³¢QUAR‘ÿJªTER“«279Ž €n ý•@P·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­943“·i‘Ç«+·ޤ ‘ -ÂinlineŽ‘)ŠIP®9athŽ‘EqÏquarterŽ‘fvH«(ÂrealŽ‘³.ÏangleŽ‘1:™«=‘Ç0Ž‘Ç±;‘ª¨Âb•QÇo“olŽ‘LÏclose‘ÿ}'dŽ‘9,¶«=‘ÇÏtrueŽ‘‹°«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïse‘ÿ}'gmentŽ‘[Ü]«(4Ž‘±;‘ª¨ÏangleŽ‘jû±;‘ª¨Ïclose‘ÿ}'dŽ‘Ä8«);Ž¡‘ -·gŽŸÂ971.‘ üPutting›ÕTReg‘°¡‰ffs4Ž–#ÕCl‘°¡‰ffs4Ž“Plane‘°¡‰ffs4Ž“Curv®9e˜together.Ž¡‘ -«This–UUis“what's“compiled.ŽŸ‘ -·h–ª¨«Include‘UU les‘@­11“·iŽ¡‘ -h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·iŽ¡‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’‹mB­941“·iŽ¡‘ -h–ª¨«De ne‘UUÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B«functions‘@­949“·iŽŽŽŒ‹ üY Šn ý‘ì«280‘­PUTTING›ÕXÂREG‘°¡‰ffs4Ž–#ÕCL‘°¡‰ffs4Ž“PLANE‘°¡‰ffs4Ž“CUR‘þ¸äVE˜­TOGETHER‘}23DLDFPRÃŽG‘·x«972Ž €n ý•@PÂ972.‘ ü«This–UUis“what's“written“to“Ècurves.h«.Ž©øÜ·h‘ª¨Ýcurves.hŽ‘5°ù­972‘ª¨·i‘Çޤ ‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’‹mB­941“·iŽŸÂ973.– üP®9olygon“(Èpolygons.webÂ).ŽŸ?òŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.18.«]Ž‘XÍÀRemo•¸ãv“ed–Úthe“transformation“sections“from“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘D™Ž«,‘&Œand“made“them“mem¸ãbGers“ofŽ¡ÂP®9olygonŽ‘)î«.‘qÇAlso,›UUremo•¸ãv“ed˜the˜ÂRectangleŽ‘8ê?«v“ersions˜in˜Èrectangs.web«.Ž¡‘ -[¬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ŽŽ¦‘ -ÂformatŽ‘3c(ÏPolygonŽ‘_£:PathŽŽ¦·h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚstringŽ‘Jn'Ïr‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(«=‘ÇÝ"$Id:È Ýpolygons.web,vŽ‘kÆÜÈ Ý1.2È Ý2003/12/10È Ý16:2Ž’ÔÆ 4:07È Ýlfinsto1È ÝExpÈ Ý$"Ž’>LÌ«;ŽŸÂ974.‘ ü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"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"points.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"lines.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"planes.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"paths.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"curves.h"ŽŽŸÂ975.› üP®9olygon–ÔŒclass“de nition.˜«LDF‘3 Undated.‘ ÂP®9olygonŽ‘4CÁ«is–3Cderivš¸ãed“from“ÂP®9athŽ‘ħ«.‘ This“mak˜es“sense,Ž¡bGecause–Mèa“ÂP®9olygonŽ‘/ ¾«is“really“just“a“kind“of“ÂP®9athŽ‘ßL«.‘oMThis“w•¸ãa“y‘ÿ*ª,‘Odw“e–Mèdon't“ha•¸ãv“e–Mèto“de ne“the“dra¸ãwing“and“ llingŽ¡functions,–UUor“the“transformations.Ž¡‘ -[¬LDF‘T2003.06.06.«]Ž‘YÔ^ÂP®9olygonŽ’†úÄ«is–!xmean¸ãt“to“bšGe“used“primarily“as“a“base“class“for“more“sp˜ecialized“t¸ãyp˜es“ofŽ¡pGolygons.–ÄpCurrenš¸ãtly‘ÿ*ª,‘wÆÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘Hg]«and‘pãÂRectangleŽ‘9![«are‘pãde ned.“I'v˜e–pãadded“ÂP®9olygonŽ‘/æ´«so“that“I‘pÛcan“de neŽ¡inš¸ãtersection–UUfunctions“that“will“w˜ork“for“bGoth“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«and“ÂRectangleŽ‘5”ê«.ŽŸ±¹Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.06.«]Ž‘Y;Added‘UUÂclassŽ‘5¦P®9olygonŽ‘G:”«.ŽŸŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂclassŽ‘5¦P®9olygonŽ‘Kz˜­975“·i‘ÇŽ¡‘ -ÂclassŽ‘$àRP®9olygonŽ‘Q:•«:‘qÇÂpublicŽ‘'ñP®9athŽ‘B몷fŽ¡‘ -ÂprotectedŽ‘:o™«:‘ÂP•®9oin“tŽ‘#ïÏc‘ÿ}'enterŽ‘?ù(«;ަ‘ -ÂpublicŽ‘)=Ö«:‘·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·iŽ¡‘ -g«;ŽŸ øÜ­This–ÕXco«to“ÂP®9olygonŽ‘,³«.‘Y—Also“remo•¸ãv“ed– Åthe“ÂRectangleŽŽ¡«vš¸ãersions,–UUsince“ÂRectangleŽ‘8ê?«inherits“the“ÂP®9olygonŽ‘/¯˜«v˜ersions.ŽŸŸüÈ„`ÕÁGŽŽ¦Â978.‘ ünon-const‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.04.24.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.05.09.«]Ž‘Y;Changed–UUreturn“v‘ÿqÇalue“from“ÂP•®9oin“tŽ‘"Dò«&Ž‘-aeto“ÂconstŽ‘!÷P•®9oin“tŽ‘@o”«&Ž‘H6².ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘ÇŽŸ ‘ -ÂvirtualŽ‘/ÔconstŽ‘M¸vP•®9oin“tŽ‘l¨«&Ž‘to1Ïget‘‰ffŽ‘®c‘ÿ}'enterŽ’ ¬x«(‘ª¨);ޤ ­See–ÕXalso“sections“980,“984,“993,“995,“1001,“1003,“1006,“1008,“1010,“1012,“1015,“1017,“1020,“and“1022.Ž¡This–ÕXco«(‘ª®)–UUto“generate“Ïsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘A«.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·ަ‘ -Âb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[dïÏinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’¬ñΫ(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïpt0Ž‘TJ˜±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏpt1Ž‘Uõ@«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹– Šn ý‘ì·x«985–­3DLDFPRÃŽG’èPÂPOINT‘ÕX­VERSION“«283Ž €n ý•@PÂ985.Ž©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[~HP®9olygonŽ’…ƒ:«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã«(ÂconstŽ‘CûP•®9oin“tŽ‘=Lñ«&Ž‘EÏpt0Ž‘T}J±;‘ª¨ÂconstŽ‘î£P•®9oin“tŽ‘>÷™«&Ž‘F¾·Ïpt1Ž‘V'ò«)‘n®ÂconstŽ‘Cû·f‘n®Âb•QÇo“olŽŽ¡‘2ÝDEBUGŽ‘Ov«=‘ÇÏfalseŽ‘v\«;‘±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"EnteringÈ ÝPolygon::iŽ‘kÆÜntersection_points()Ž’ÔÆ .\n"Ž’í·‘ÇÏ ushŽ‘€«;Ž¡‘ÝDEBUGŽ‘;t«=‘ÇÏfalseŽ‘v\«;ަ‘Âb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘oHÈÏbppŽ’‚É«=‘ÇÝINVALID_BOOL_POINT_PAIRŽ‘| ;«;‘±=·‘ãÔ«The–9,return“v‘ÿqÇalue.‘hd[¬LDF‘T2003.06.13.«]Ž‘Tÿ·±=Ž¡‘ÂPlaneŽ‘>6»ÏplŽ‘J3Þ«=‘ÇÏget‘‰ffŽ‘®planeŽ‘+>«(‘ª¨);Ž¡‘ÂP•®9oin“tŽ‘<ï Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘d“Q«(Ïpt1Ž–¢·‘8àÏpt0Ž“«);Ž¡‘ÂP•®9oin“tŽ‘<ï Ïsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘z®L«(Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘)–8à·“Ïc‘ÿ}'enterŽ‘Bk«);ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(ÏplŽ‘16±:Ïp‘ÿ}'ointŽ‘.Œ±:ÏshowŽ‘Šÿ«(Ý"pl.point"Ž‘5J«);Ž¡‘(ÏplŽ‘16±:ÏnormalŽ‘ V¸±:ÏshowŽ‘Šÿ«(Ý"pl.normal"Ž‘:FG«);Ž¡‘(Ïpt0Ž‘7i?±:ÏshowŽ‘Šÿ«(Ý"pt0"Ž‘ÆY«);Ž¡‘(Ïpt1Ž‘7i?±:ÏshowŽ‘Šÿ«(Ý"pt1"Ž‘ÆY«);Ž¡‘(Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘O£µ±:ÏshowŽ‘Šÿ«(Ý"pt_vector"Ž‘:FG«);Ž¡‘(Ïsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘e¾°±:ÏshowŽ‘Šÿ«(Ý"surface_vector"Ž‘T†8«);Ž¡‘·gަ‘ÂP•®9oin“tŽ‘<ï Ïcr‘ÿ}'ossŽ‘V£Ö«=‘ÇÏsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@…ı:Ïcr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé«(Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘'£±«);ަ‘Ïcr‘ÿ}'ossŽ‘4í!±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïcr‘ÿ}'ossŽ‘>í"±:ÏshowŽ‘Šÿ«(Ý"cross"Ž‘%FS«);Ž¡‘(ÏplŽ‘16±:ÏnormalŽ‘ V¸±:ÏshowŽ‘Šÿ«(Ý"pl.normal"Ž‘:FG«);Ž¡‘·gަ‘ÂshortŽ‘;ʦÏdistanc‘ÿ}'eŽ‘b×»«=‘ÇÏplŽ‘ ý#±:Ïget‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹«(Ïpt0Ž‘i;«)±:Ïse–ÿ}'c“ondŽ‘§Ç«;ŽŸÂ986.‘ üDegenerate–ÕTcases,“error“handling.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂifŽ‘qv«(Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘*jÉ·‘ÇÝINVALID_POINTŽ–I?5·_‘±ÜÏplŽ› -çç±:ÏnormalŽ‘#з‘ÇÝINVALID_POINTŽ“·_‘±ÜÏpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘,¥·‘ÇÏoriginŽ‘o·_‘±ÜÏplŽ˜±:ÏnormalŽ‘#з‘ÇÏoriginŽ‘½9«)Ž¡‘·fŽ¡‘Ïc‘ÿ}'errŽ‘-½ø·‘PÝ"ERROR!È ÝInÈ ÝPolygon::Ž‘pintersection_points(Ž’ÙØ):\n"Ž’úÖ·Ž¡‘(Ý"SomethingÈ ÝisÈ ÝwrongÈ Ž’ÿÈÝwithÈ ÝtheÈ Ýnormals:\n"Ž’ú…ô«;Ž¡‘Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘;£³±:ÏshowŽ‘Šÿ«(Ý"pt_vector:"Ž‘?†D«);Ž¡‘ÏplŽ‘6 ±:ÏnormalŽ‘ V¸±:ÏshowŽ‘Šÿ«(Ý"pl.normal"Ž‘:FG«);Ž¡‘Ïc‘ÿ}'errŽ‘)|À·‘ÇÝ"ReturningÈ ÝINVALID_BŽ‘kÆÜOOL_POINT_PAIR.\n\n"Ž’Ø ·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPolygon::inŽ‘kÆÜtersection_points().Ž’ÔÆ \n\n"Ž’òT·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼ÝINVALID_BOOL_POINT_PAIRŽ’±,ß«;Ž¡‘ -·gŽŸÂ987.‘ üP®9arallel–ÕTand“coplanar“cases.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.20.«]Ž‘Y;No•¸ãw›UUc“hec“king˜Ïsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘DiV«against˜Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘.N[«in˜the˜follo“wing˜conditional.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂelseŽ‘?ìifŽ‘*›«(Ïsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@…Ä·‘ÇÏpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘*Ç·_\RÏsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@â·‘ÇŽ‘ -Ž6Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘2Ž9·_\RÏcr‘ÿ}'ossŽ–ˆ·‘ÇÏplŽ‘ ý#±:ÏnormalŽ‘ ³ -·_\RÏcr‘ÿ}'ossŽ“·‘ÇŽ‘ -Ž6ÏplŽ‘ÄA±:ÏnormalŽ‘ V¸«)Ž¡‘·fŽŽŽŒ‹ ÷ Šn ý‘ì«284–­COPLANAR‘ÕXCASE’º 3DLDFPRÃŽG“·x«988Ž €n ý•@PÂ988.– üCoplanar‘‚case.“«[¬LDF‘T2003.06.13.«]Ž‘[·Only–]Öthose“inš¸ãtersection“pGoin˜ts“that“are“on“the“line“segmen˜tsޤ making–M-of“the“ÂP®9olygonŽ‘/ŸH«are“returned“in“ÏbppŽ‘D«.‘oIf“an“inš¸ãtersection“ÂP•®9oin“tŽ‘"4¢«lies“on“bGoth“segmen˜ts,‘NÏthe“Âb•QÇo“olŽ‘æk«partŽ¡of–ÅÅthe“Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘:ÝЫwill“bšGe“ÏtrueŽ‘Š]«,‘â{otherwise“ÏfalseŽ‘u «.‘AíIf“a“ÂP•®9oin“tŽ‘!%Ò«lies“on“a“line“segmen¸ãt“b˜elonging“to“the“ÂP®9olygonŽ‘+ʳ«,Ž¡but–dZnot“to“the“line“segmenš¸ãtŸúÙf“·ŽŽ‘ Ú”‘þãŽŽŽ‘Ž>‘þãŽŽŽ‘=Q!ŽŽŸ&š“±ptŸÿ®0Ž‘|s±ptŸÿ®1ŽŽŽŽŽ‘¦$«,‘hthe“ÂP•®9oin“tŽ‘"bü«will“bGe“put“in˜to“the“Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘8¶ «,‘hbut“the“Âb•QÇo“olޑūwill“bGe“ÏfalseŽ‘ž«.Ž¡The–ùreason“for“this“is,‘>that“the“angles“of“the“sides“of“the“ÂP®9olygonŽ‘/ à«can“cause“inš¸ãtersection“pGoin˜ts“to“bGe“found,Ž¡that–UUthe“user“probably“wš¸ãon't“w˜an˜t.Ž©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïdistanc‘ÿ}'eŽ‘' ·‘Ç«0Ž‘Ç)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"LineÈ ÝandÈ ÝPolygonÈ ÝarŽ‘kÆÜeÈ Ýcoplanar.\n"Ž’µÍ«;ަ‘Âb•QÇo“olŽ‘-¡hÏfoundŽ‘J:÷«=‘ÇÏfalseŽ‘v\«;Ž¡‘Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§ÏbpŽ‘W‚«;Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏq0Ž‘>ƒ†«;Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏq1Ž‘>ƒ†«;ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘ÏshowŽ‘Šÿ«(Ý"this"Ž‘ V«);Ž¡‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'ointsŽ–ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘·fŽ¡‘ÂifŽ‘)´û«((ÏiterŽ‘Þ«+‘8à1Ž‘8á)–Ç·“Ïp‘ÿ}'ointsŽ‘ë­±:ÏendŽ‘ಫ(‘ª¨))‘·fŽ¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"DoingÈ ÝlastÈ Ýsegment.Ž‘kÆÜ\n"Ž‘| ;«;Ž¡‘(Ïq0Ž‘6[«=‘Ç·Ž‘Ç«(Ïp‘ÿ}'ointsŽ‘$•±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨));Ž¡‘(Ïq1Ž‘6[«=‘Ç·Ž‘Ç«(Ïp‘ÿ}'ointsŽ‘$•±:Ïfr‘ÿ}'ontŽ‘I‘«(‘ª¨));Ž¡‘·gŽ¡‘ÂelseŽ‘5Øâ·fŽ¡‘(ÂifŽ‘3´ü«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"DoingÈ ÝnormalÈ ÝsegmenŽ‘kÆÜt.\n"Ž’†5«;Ž¡‘(Ïq0Ž‘6[«=‘Ç·Ž‘ÇŽ‘ ÇÏiterŽ‘’«;Ž¡‘(Ïq1Ž‘6[«=‘Ç·Ž‘ÇŽ‘ Ç«(ÏiterŽ‘Þ«+‘8à1Ž‘8á);Ž¡‘·gŽ¡‘ÏbpŽ‘+¡”«=‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘s†x«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã±;‘ª¨Ïq0Ž– >±;‘ª¨Ïq1Ž“«);Ž¡‘ÂifŽ‘)´û«(ÏbpŽ‘ -Úy±:bŽ‘Jª«)‘±=·‘ÿý«In•¸ãtersection›UUpGoin“t˜is˜on˜bGoth˜segmen“ts.‘o·±=Ž¡‘·fŽ¡‘(ÂifŽ‘3´ü«(·:ÏfoundŽ‘Òw«)‘·fŽ¡‘2ÏbppŽ‘Aöî±:Ï rstŽ‘µª±:bŽ‘«=‘ÇÏtrueŽ‘‹°«;Ž¡‘2ÏbppŽ‘Aöî±:Ï rstŽ‘µª±:ÏptŽ‘ «µ«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä«;Ž¡‘2ÏfoundŽ‘N™”«=‘ÇÏtrueŽ‘‹°«;Ž¡‘2ÂifŽ‘=´ý«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"FoundÈ ÝfirstÈ ÝinterseŽ‘kÆÜction.\n"Ž’›)«;Ž¡‘(·gŽ¡‘(ÂelseŽ‘?Øã·fŽ¡‘2ÏbppŽ‘Aöî±:Ïse–ÿ}'c“ondŽ‘§Ç±:bŽ‘«=‘ÇÏtrueŽ‘‹°«;Ž¡‘2ÏbppŽ‘Aöî±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ «µ«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä«;Ž¡‘2ÂifŽ‘=´ý«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"FoundÈ ÝsecondÈ ÝintersŽ‘kÆÜection.È ÝReturning.\nŽ’ÔÆ "Ž’Ú«;Ž¡‘2ÂreturnŽ‘Uæ¿ÏbppŽ‘eݨ«;Ž¡‘(·gŽ¡‘gŽ¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(ÏbpŽ‘ -Úy±:ÏptŽ‘ «µ·6«=‘ÇÝINVALID_POINTŽ‘IÆ9·^‘8àÏbpŽ‘ Y±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïq0Ž‘ “ç±;‘ª¨Ïq1Ž‘ >«)±:Ï rstŽ‘µª«)‘·fŽ¡‘(ÂifŽ‘3´ü«(·:ÏfoundŽ‘Òw«)‘·fŽ¡‘2ÏbppŽ‘Aöî±:Ï rstŽ‘µª±:bŽ‘«=‘ÇÏfalseŽ‘v\«;Ž¡‘2ÏbppŽ‘Aöî±:Ï rstŽ‘µª±:ÏptŽ‘ «µ«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä«;Ž¡‘2ÏfoundŽ‘N™”«=‘ÇÏtrueŽ‘‹°«;Ž¡‘2ÂifŽ‘=´ý«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"FoundÈ ÝfirstÈ ÝinterseŽ‘kÆÜction.\n"Ž’›)«;Ž¡‘(·gŽ¡‘(ÂelseŽ‘?Øã·fŽ¡‘2ÏbppŽ‘Aöî±:Ïse–ÿ}'c“ondŽ‘§Ç±:bŽ‘«=‘ÇÏfalseŽ‘v\«;Ž¡‘2ÏbppŽ‘Aöî±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ «µ«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä«;ŽŽŽŒ‹0R Šn ý‘ì·x«988–­3DLDFPRÃŽG’º COPLANAR‘ÕXCASE“«285Ž €n ý•@P‘2ÂifŽ‘=´ý«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"FoundÈ ÝsecondÈ ÝintersŽ‘kÆÜection.È ÝReturning.\nŽ’ÔÆ "Ž’Ú«;ޤ ‘2ÂreturnŽ‘Uæ¿ÏbppŽ‘eݨ«;Ž¡‘(·gŽ¡‘gŽ¡‘ÂelseŽ‘5Øâcon•®9tin“ueŽ‘`¿—«;Ž¡‘·g‘±=·‘ÿýÂforŽ‘“+·±=Ž¡‘ÂreturnŽ‘7æ¼ÏbppŽ‘GÝ¥«;Ž¡‘ -·g‘±=·‘ÿý«End–UUof“coplanar“case.‘o·±=ŽŸÂ989.‘ üP®9arallel‘ÕTcase.ŽŸ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂelseŽ‘!Øà·fŽ¡‘Ïc‘ÿ}'errŽ‘-y ·‘ÃdÝ"WARNING!È ÝInÈ ÝPolygonŽ‘oÃ(::intersection_pointŽ’ØÂìs():\n"Ž’Ì£·Ž¡‘(Ý"LineÈ ÝandÈ ÝPolygonÈ ÝarŽ’ÿÈeÈ ÝinÈ ÝparallelÈ ÝplanesŽ’ùÿŒ.\n"Ž’P·Ž¡‘(Ý"NoÈ Ýintersections.È ÝRŽ’ÿÈeturningÈ ÝINVALID_BOOŽ’ùÿŒL_POINT_PAIR."Ž’FÌâ·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼ÝINVALID_BOOL_POINT_PAIRŽ’±,ß«;Ž¡‘ -·gŽ¡‘ -g‘±=·‘ÿý«End–UUof“parallel“and“coplanar“cases.‘o·±=ŽŽŽŒ‹@. Šn ý‘ì«286›­PERPENDICULAR–ÕXAND“NON-COPLANAR“CASES’˜6˜3DLDFPRÃŽG˜·x«990Ž €n ý•@PÂ990.› üP®9erpQÇendicular–õand“non-coplanar“cases.˜«[¬LDF‘T2003.06.13.«]Ž‘ZÄÂThese–‘ácases“are“handled“in“exactlyޤ the–UUsame“w•¸ãa“y‘ÿ*ª.Ž©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂelseŽ‘ .5·fŽ¡‘ -ÂifŽ‘´ù«(ÏplŽ‘ 6 ±:ÏnormalŽ–#з‘ÇÏpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘,£©·_‘8àÏplŽ‘ në±:ÏnormalŽ“·‘ÇŽ‘ -Ž6Ïpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘21ç«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TheÈ ÝlineÈ ÝisÈ ÝperpendŽ‘kÆÜicularÈ ÝtoÈ ÝtheÈ ÝPolygoŽ’ÔÆ n.\n"Ž’òT·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂelseŽ‘!Øà·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TheÈ ÝlineÈ ÝandÈ ÝtheÈ ÝPoŽ‘kÆÜlygonÈ ÝareÈ Ýnon-coplanŽ’ÔÆ ar.\n"Ž’÷”·‘ÇÏ ushŽ‘€«;Ž¡‘ -·gަ‘ -Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œÏbpŽ‘PI-«=‘ÇÏplŽ‘ ý#±:Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘M–Ö«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã«);ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘ÏbpŽ‘Ú{±:ÏptŽ‘ ä±:ÏshowŽ‘Šÿ«(Ý"bp.pt"Ž‘%FS«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÏbpŽ‘ -Úy±:ÏptŽ‘ «µ·‘ÇÏc‘ÿ}'enterŽ‘У«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"bp.ptÈ Ý==È Ýcenter."Ž‘d”b·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÏbppŽ‘#öë±:Ï rstŽ‘µª±:ÏptŽ‘ «µ«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä«;Ž¡‘ÏbppŽ‘#öë±:Ï rstŽ–µª±:bŽ‘«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã«)±:Ï rstŽ“«;Ž¡‘ÂreturnŽ‘7æ¼ÏbppŽ‘GÝ¥«;Ž¡‘ -·gަ‘ -ÂP•®9oin“tŽ‘(ïžÏr0Ž‘4!c«;Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏr1Ž‘4!c«;ަ‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘ÏshowŽ‘*‹«(Ý"this:"Ž‘%FS«);Ž¡‘Ïc‘ÿ}'enterŽ‘0 ±:ÏshowŽ‘Šÿ«(Ý"center"Ž‘*†P«);Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"points.size()È Ý==È Ý"Ž‘iÔ_·‘ÇÏp‘ÿ}'ointsŽ‘ë­±:ÏsizeŽ‘\«(‘ª¨)–Ç·“Ïend‘‚ØlŽ‘ò·“Ï ushŽ‘€«;Ž¡‘ -·gŽ¡‘ -ÂforŽ‘臫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'ointsŽ–ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘UU·fŽ¡‘ -ÂifŽ‘´ù«((ÏiterŽ‘Þ«+‘8à1Ž‘8á)–Ç·“Ïp‘ÿ}'ointsŽ‘ë­±:ÏendŽ‘ಫ(‘ª¨))‘·fŽ¡‘Ïr0Ž‘!øß«=‘Ç·Ž‘Ç«(Ïp‘ÿ}'ointsŽ‘$•±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨));Ž¡‘Ïr1Ž‘!øß«=‘Ç·Ž‘Ç«(Ïp‘ÿ}'ointsŽ‘$•±:Ïfr‘ÿ}'ontŽ‘I‘«(‘ª¨));Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïr0Ž‘)1ȱ:ÏshowŽ‘Šÿ«(Ý"r0"Ž‘†\«);Ž¡‘Ïr1Ž‘)1ȱ:ÏshowŽ‘Šÿ«(Ý"r1"Ž‘†\«);Ž¡‘·gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Path::get_nŽ‘kÆÜormal().® ´"Ž’£”>°‘Ç´"Returning® ´normal.\nŽ‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;ަ‘ +­returnŽ‘-æ»°Ž‘5­Ù±b0Ž‘AAÀ¬;‘UU°gŽŽŽŒ‹0Ù Šn ý‘ì°x¬945–¯3DLDF-1.1.5.1’ +tº­POINT‘ÕX¯VERSION“¬257Ž €n ý•@P­945.› üP•®9oin“t‘  v“ersion.˜P“oin“tŽ‘(H¬::‘±get‘‰ffŽ‘®normalŽ‘1Šx¬(‘ª®)–§­is“declared“®points.web¬,›Êibut“it“m¸ãust“bGe“de ned“here,˜bGecauseޤ it–UUcalls“­P®9athŽ‘潬::‘±get‘‰ffŽ‘®normalŽ‘1Šx¬(‘ª®).‘qÇ[²LDF‘T2003.07.11.¬]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.11.¬]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +­P•®9oin“tŽ‘(ïžP•®9oin“tŽ‘E‰ê¬::‘±get‘‰ffŽ‘®normalŽ‘1Šx¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié];‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒµqŽ‘K^¯¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P®9athŽ‘/滵rŽ‘4°Ï¬;Ž©‘µrŽ‘Ê:±set‘‰ffŽ‘®c–ÿ}'onne“ctorsŽ‘>å¬(´"--"Ž‘†\¬);Ž¡‘µrŽ‘‘.¬+=ŽŽ‘-æ‚°Ž‘2惱thisŽ‘CÒ9¬;Ž¡‘µrŽ‘‘.¬+=ŽŽ‘-悵pŽ‘2;Ž¡‘µrŽ‘‘.¬+=ŽŽ‘-悵qŽ‘2¹,¬;Ž¡‘­ifŽ‘´ú¬(°:µrŽ‘Ê:±is‘‰ffŽ‘®planarŽ‘(&¬(‘ª¨))‘°fŽ¡‘±c‘ÿ}'errŽ‘8÷f°‘A½´"ERROR!® ´In® ´Point::geŽ‘qAt_normal():\n"Ž’Ã‰|°Ž¡‘2´"The® ´Points® ´do® ´not® ´dŽ’šÿÉetermine® ´a® ´plane.\n"Ž’M °‘Ç´"Returning® ´INVALID_PŽ‘kÆÜOINT.\n\n"Ž’£”>°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_POINTŽ’†¬þ¬;Ž¡‘°gŽ¡‘­elseŽ‘+ØáreturnŽ‘O¿›µrŽ‘T‰¯:±get‘‰ffŽ‘®normalŽ‘0Št¬(‘ª¨);Ž¡‘ +°gŽŸ­946.‘ üGet‘ÕTplane.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.05.¬]Ž‘Y;Rewrote–UUthis“function“to“correspGond“to“the“new“de nition“of“±get‘‰ffŽ‘®normalŽ‘3ßɬ(‘ª®).ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔPlaneŽ‘OÄŒ±get‘‰ffŽ‘®planeŽ‘x;t¬(‘ª®)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹> Šn ý‘ì¬258–¯GET‘ÕXPLANE’'Iž3DLDF-1.1.5.1“°x¬947Ž €n ý•@P­947.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­PlaneŽ‘*6¹P®9athŽ‘CÈ!¬::‘±get‘‰ffŽ‘®planeŽ‘)vì¬(‘ª®)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2normalŽ‘SFW¬(±get‘‰ffŽ‘®normalŽ‘0Št¬(‘ª®));ަ‘­ifŽ‘´ú¬(±normalŽ‘#а‘Ç´INVALID_POINTŽ‘IÆ9°_‘8à±normalŽ‘%V°°‘DZoriginŽ‘½9¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘8÷f°‘A½´"WARNING!® ´In® ´Path::gŽ‘qAet_plane().\n"Ž’Ã‰|°Ž¡‘2´"Path® ´is® ´not® ´a® ´PlaneŽ’šÿÉ.® ´Returning® ´INVALID_Ž’ÿPLANE.\n\n"Ž’A 찑DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_PLANEŽ’†¬þ¬;Ž¡‘°gަ‘­P•®9oin“tŽ‘2p‘ÿ}'ointŽ‘J+¬(±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘));ަ‘­returnŽ‘7æ¼PlaneŽ‘TȬ(±p‘ÿ}'ointŽ‘.Œµ;‘ª¨±normalŽ‘"`¬);Ž¡‘ +°gŽŸ­948.› üP•®9oin“t–Ô†lies“within“triangle.˜¬[²LDF‘T2003.06.11.¬]Ž‘[fDeclared–3>in“®points.web¬.‘ Must“bGe“de ned“here,Ž¡bšGecause‘UU­P®9athŽ‘<¬is–UUan“incompletely“de ned“t¸ãyp˜e“there.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.11.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2003.06.24.¬]Ž‘Y;Remo•¸ãv“ed–UUthe“argumenš¸ãt“±test‘‰ffŽ‘®p‘ÿ}'ointsŽ‘1}J¬.‘qÇNo˜w,“planarit˜y“is“alw˜a˜ys“tested.Ž¡‘ +[²LDF‘T2003.06.24.¬]Ž‘Y;BUG–UUFIX:“When“the“­P•®9oin“tsŽ‘&Î.¬all“la¸ãy“in“the“x-z“plane,“or“a“plane“parallel“to“it,Ž¡±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘^ð+¬wš¸ãas–q„0.‘ÆSThis“caused“±is‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘>%¬(‘ª®)“to“return“±falseŽ‘ Ȭ,‘¸ev˜en“when“°Ž‘ q…±thisŽ‘ο¬did“lie“in“theŽ¡triangle.‘ +:áNo¸ãw,›¾uif‘C±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘e·¬or‘C±mu‘‰ffŽ‘®denominatorŽ‘ThM¬is–Cequal“to“0,˜the“y“and“z-coGordinates“areŽ¡exc¸ãhanged,‘,Ùand‘"º±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘`Ĭand‘"º±mu‘‰ffŽ‘®denominatorŽ‘P'±¬are–"ºrecalculated.‘`éIf“either“of“the“new“v‘ÿqÇalues“is“0,Ž¡the–¢Cx“and“z-cošGordinates“are“exc¸ãhanged“(based“on“the“original“co˜ordinate“v‘ÿqÇalues),‘µand“±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽŽ¡¬and‘4±mu‘‰ffŽ‘®denominatorŽ‘PK]¬are–4again“recalculated.‘fÛOnly“one“excš¸ãhange“has“bGeen“needed“in“the“cases“I'v˜e“tested“soŽ¡far.Ž¡‘ +[²LDF‘T2003.08.14.¬]Ž‘Y;Setting‘UU±verb‘ÿ}'oseŽ‘'<¬to‘UU±trueŽ‘oB¬if‘UU´VERBOSE_GLOBALŽ–P°è¬is‘UU±trueŽ‘í¬.‘qÇAdded‘UU´VERBOSE_GLOBALŽ“¬toŽ¡®pspglb.web‘UU¬toGda¸ãy‘ÿ*ª.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olŽ‘#é¤P•®9oin“tŽ‘@ƒð¬::‘±is‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘:¥¬(­constŽ‘rßP•®9oin“tŽ‘=ª¹¬&Ž‘Eq×±p0Ž‘Qˆ—µ;‘ª¨­constŽ‘ ‡P•®9oin“tŽ‘?Ua¬&Ž‘G±p1Ž–S3?µ;‘ª¨­constŽ‘ ‡P•®9oin“tŽ‘?Ua¬&Ž‘G±p2Ž“µ;‘ª¨­b•QÇo“olŽ‘”K±verb‘ÿ}'oseŽ‘<%¨¬)Ž¡‘2­constŽ‘LÕR°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘)´û¬(´VERBOSE_GLOBALŽ‘J>¬)‘±verb‘ÿ}'oseŽ‘(Xu¬=‘DZtrueŽ‘‹°¬;ަ‘­P®9athŽ‘9æ¼µqŽ‘>¹f¬;ަ‘µqŽ‘%™Å¬+=ŽŽ‘7ï±p0Ž‘DÙ¬;Ž¡‘µqŽ‘%™Å¬+=ŽŽ‘7ï±p1Ž‘DÙ¬;Ž¡‘µqŽ‘%™Å¬+=ŽŽ‘7ï±p2Ž‘DÙ¬;ަ‘­PlaneŽ‘>6»±q‘‰ffŽ‘®plŽ‘R{ˆ¬=‘ǵqŽ‘™Â:±get‘‰ffŽ‘®planeŽ‘(vè¬(‘ª¨);ަ‘­ifŽ‘)´û¬(±q‘‰ffŽ‘®plŽ‘DͰ‘Ç´INVALID_PLANEŽ‘GY¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽ¡‘2±c‘ÿ}'errŽ‘K¥]°‘ï²´"WARNING!® ´In® ´Point::Ž‘oïvis_in_triangle():\n"Ž’àeT°Ž¡‘F´"The® ´Point® ´argumentsŽ’®ÿË® ´do® ´not® ´determine® ´a® Ž’ÿ´plane.\n"Ž’JŒô°‘Ç´"Returning® ´false.\n\Ž‘kÆÜn"Ž‘y”V°Ž¡‘F± ushŽ‘[¹¬;Ž¡‘(°gŽ¡‘(­returnŽ‘Kæ¾±falseŽ‘`–¬;Ž¡‘°gŽ¡‘­elseŽ‘4.7ifŽ‘?ã/¬(°:±is‘‰ffŽ–®on‘‰ffŽ“planeŽ‘1‚Ú¬(±q‘‰ffŽ‘®plŽ‘}µ¬))‘°fŽ¡‘(­ifŽ‘3´ü¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽŽŽŒ‹Ei Šn ý‘ì°x¬948›¯3DLDF-1.1.5.1’Éiv­POINT–ÕX¯LIES“WITHIN“TRIANGLE˜¬259Ž €n ý•@P‘2±c‘ÿ}'errŽ‘K¥]°‘ï²´"WARNING!® ´In® ´Point::Ž‘oïvis_in_triangle():\n"Ž’àeT°ޤ ‘F´"*this® ´doesn't® ´lie® ´iŽ’®ÿËn® ´the® ´plane® ´determinŽ’ÿed® ´"Ž’1 /°‘†D´"by® ´the® ´arguments.\nŽ‘l†"Ž‘uÒ±°Ž¡‘F´"Returning® ´false.\n\Ž’®ÿËn"Ž’¼ÍE°‘DZ ushŽ‘€¬;Ž¡‘(°gŽ¡‘(­returnŽ‘Kæ¾±falseŽ‘`–¬;Ž¡‘°gŽ©‘­P•®9oin“tŽ‘<ï µtŽ‘@Œ¬(°Ž‘±thisŽ‘ë·¬);Ž¡‘­P•®9oin“tŽ‘<ï µcŽ‘AC{¬(±p0Ž‘ À¬);Ž¡‘­P•®9oin“tŽ‘<ï µdŽ‘B$¬(±p1Ž‘ À¬);Ž¡‘­P•®9oin“tŽ‘<ï µeŽ‘A—¡¬(±p2Ž‘ À¬);ަ‘µtŽ‘!œu:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘µcŽ‘"SÞ:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘µdŽ‘#4u:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘µeŽ‘"¨:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±showŽ‘>‹¬(´"t:"Ž‘†\¬);Ž¡‘(µcŽ‘,Sß:±showŽ‘Šÿ¬(´"c:"Ž‘†\¬);Ž¡‘(µdŽ‘-4v:±showŽ‘Šÿ¬(´"d:"Ž‘†\¬);Ž¡‘(µeŽ‘,¨:±showŽ‘Šÿ¬(´"e:"Ž‘†\¬);Ž¡‘°gަ‘­realŽ‘4³1±t‘‰ffŽ‘®xŽ‘DÕ‚¬=‘ǵtŽ‘cŠ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];Ž¡‘­realŽ‘4³1±t‘‰ffŽ‘®yŽ‘D»1¬=‘ǵtŽ‘cŠ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘];Ž¡‘­realŽ‘4³1±t‘‰ffŽ‘®zŽ‘DO¬=‘ǵtŽ‘cŠ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘];Ž¡‘­realŽ‘4³1±c‘‰ffŽ‘®xŽ‘Fž¬=‘ǵcŽ‘ó:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];Ž¡‘­realŽ‘4³1±c‘‰ffŽ‘®yŽ‘FM¬=‘ǵcŽ‘ó:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘];Ž¡‘­realŽ‘4³1±c‘‰ffŽ‘®zŽ‘E–8¬=‘ǵcŽ‘ó:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘];Ž¡‘­realŽ‘4³1±d‘‰ffŽ‘®xŽ‘FŸw¬=‘ǵdŽ‘ûŠ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];Ž¡‘­realŽ‘4³1±d‘‰ffŽ‘®yŽ‘F…&¬=‘ǵdŽ‘ûŠ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘];Ž¡‘­realŽ‘4³1±d‘‰ffŽ‘®zŽ‘F¬=‘ǵdŽ‘ûŠ:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘];Ž¡‘­realŽ‘4³1±e‘‰ffŽ‘®xŽ‘Fž¬=‘ǵeŽ‘o:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[0Ž‘];Ž¡‘­realŽ‘4³1±e‘‰ffŽ‘®yŽ‘FM¬=‘ǵeŽ‘o:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[1Ž‘];Ž¡‘­realŽ‘4³1±e‘‰ffŽ‘®zŽ‘E–8¬=‘ǵeŽ‘o:±world‘‰ffŽ‘®c–ÿ}'o“or“dinatesŽ‘Mþ¬[2Ž‘];Ž¡‘­realŽ‘4³1±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ’‘øð¬=‘Ç(((±e‘‰ffŽ‘®xŽ–Û5°‘8à±c‘‰ffŽ‘®xŽ“¬)–8à°“¬(±d‘‰ffŽ‘®yŽ‘C½°“±c‘‰ffŽ‘®yŽ›Àä¬))“°“¬((±e‘‰ffŽ‘®yŽ˜°“±c‘‰ffŽ‘®yŽ˜¬)“°“¬(±d‘‰ffŽ‘®xŽ‘^°“±c‘‰ffŽ‘®xŽ‘Û5¬)));Ž¡‘­realŽ‘4³1±mu‘‰ffŽ‘®denominatorŽ’\†¬=‘Ç((±e‘‰ffŽ‘®xŽ–Û5°‘8à±c‘‰ffŽ‘®xŽ“¬)–8à°“¬(±d‘‰ffŽ‘®yŽ‘C½°“±c‘‰ffŽ‘®yŽ›Àä¬))“°“¬((±e‘‰ffŽ‘®yŽ˜°“±c‘‰ffŽ‘®yŽ˜¬)“°“¬(±d‘‰ffŽ‘®xŽ‘^°“±c‘‰ffŽ‘®xŽ‘Û5¬));Ž¡‘­b•QÇo“olŽ‘7¡i±exchange‘‰ffŽ–®y‘‰ffŽ“zŽ‘sV¬=‘DZfalseŽ‘v\¬;Ž¡‘­b•QÇo“olŽ‘7¡i±exchange‘‰ffŽ–®x‘‰ffŽ“zŽ‘sЬ=‘DZfalseŽ‘v\¬;‘UU­ifŽ‘ +M¬(±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘]E¿°‘Ǭ0Ž‘ ÿù°_‘8à±mu‘‰ffŽ‘®denominatorŽ‘Nâ5°‘Ǭ0Ž‘Ç)‘UU°fŽ¡‘­ifŽ‘+Hˆ¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘Àá°‘gª´"lambda_denominator® Ž‘ngn´or® ´mu_denominator® ´==Ž’×g2® ´0.® ´"Ž’÷•5°Ž¡‘<´"Exchanging® ´y® ´and® ´z-Ž’¤ÿÊcoordinates.\n"Ž’÷ °‘DZ ushŽ‘€¬;ަ‘­realŽ‘4³1±tempŽ‘K ¥¬;ަ‘±tempŽ‘7!¬=‘DZt‘‰ffŽ‘®yŽ‘¬;Ž¡‘±t‘‰ffŽ‘®yŽ‘.¬=‘DZt‘‰ffŽ‘®zŽ‘›ë¬;Ž¡‘±t‘‰ffŽ‘®zŽ‘-›î¬=‘DZtempŽ‘!Œ¬;Ž¡‘±tempŽ‘7!¬=‘DZc‘‰ffŽ‘®yŽ‘O¬;Ž¡‘±c‘‰ffŽ‘®yŽ‘/O¬=‘DZc‘‰ffŽ‘®zŽ‘ã¬;Ž¡‘±c‘‰ffŽ‘®zŽ‘.ã +¬=‘DZtempŽ‘!Œ¬;Ž¡‘±tempŽ‘7!¬=‘DZd‘‰ffŽ‘®yŽ‘Ñõ¬;Ž¡‘±d‘‰ffŽ‘®yŽ‘/Ñø¬=‘DZd‘‰ffŽ‘®zŽ‘eà¬;Ž¡‘±d‘‰ffŽ‘®zŽ‘/eã¬=‘DZtempŽ‘!Œ¬;Ž¡‘±tempŽ‘7!¬=‘DZe‘‰ffŽ‘®yŽ‘O¬;Ž¡‘±e‘‰ffŽ‘®yŽ‘/O¬=‘DZe‘‰ffŽ‘®zŽ‘ã¬;Ž¡‘±e‘‰ffŽ‘®zŽ‘.ã +¬=‘DZtempŽ‘!Œ¬;ŽŽŽŒ‹TÖ Šn ý‘ì¬260›­POINT–ÕX¯LIES“WITHIN“TRIANGLE’Éiv3DLDF-1.1.5.1˜°x¬948Ž €n ý•@P‘±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘{E¬=‘Ç(((±e‘‰ffŽ‘®xŽ–Û5°‘8à±c‘‰ffŽ‘®xŽ“¬)–8à°“¬(±d‘‰ffŽ‘®yŽ‘C½°“±c‘‰ffŽ‘®yŽ›Àä¬))“°“¬((±e‘‰ffŽ‘®yŽ˜°“±c‘‰ffŽ‘®yŽ˜¬)“°“¬(±d‘‰ffŽ‘®xŽ‘^°“±c‘‰ffŽ‘®xŽ‘Û5¬)));ޤ ‘±mu‘‰ffŽ‘®denominatorŽ‘j©X¬=‘Ç((±e‘‰ffŽ‘®xŽ–Û5°‘8à±c‘‰ffŽ‘®xŽ“¬)–8à°“¬(±d‘‰ffŽ‘®yŽ‘C½°“±c‘‰ffŽ‘®yŽ›Àä¬))“°“¬((±e‘‰ffŽ‘®yŽ˜°“±c‘‰ffŽ‘®yŽ˜¬)“°“¬(±d‘‰ffŽ‘®xŽ‘^°“±c‘‰ffŽ‘®xŽ‘Û5¬));Ž¡‘­ifŽ‘)´û¬(°:¬(±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘]E¿°‘Ǭ0Ž‘ ÿù°_‘8à±mu‘‰ffŽ‘®denominatorŽ‘Nâ5°‘Ǭ0Ž‘Ç))‘°fŽ¡‘(­ifŽ‘5^Ö¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘æ °‘ŒÖ´"Exchanging® ´y® ´and® ´z-Ž‘nŒšcoordinates® ´worked.\Ž’×Œ^n"Ž’è–°Ž¡‘F´"lambda_denominator® Ž’®ÿË´and® ´mu_denominator® ´aŽ’ÿre® ´no® ´longer® ´0.\n"Ž’yÌÙ°‘DZ ushŽ‘€¬;Ž¡‘(±exchange‘‰ffŽ–®y‘‰ffŽ“zŽ‘c´›¬=‘DZtrueŽ‘‹°¬;Ž¡‘°gŽ¡‘­elseŽ‘4.7°fŽ¡‘­ifŽ‘+ά(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘}°‘#Ê´"Exchanging® ´y® ´and® ´z-Ž‘n#Žcoordinates® ´didn't® ´wŽ’×#Rork.\n"Ž’o°Ž¡‘<´"Exchanging® ´x® ´and® ´z-Ž’¤ÿÊcoordinates.\n"Ž’÷ °‘DZ ushŽ‘€¬;ŽŸ­949.‘ ü¬First,–UUput“things“bacš¸ãk“the“w˜a˜y“they“w˜ere.‘qÇIt's“w˜asteful,“but“less“confusing.‘qÇ[²LDF‘T2003.06.24.¬]ŽŽŸ°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°Ž¡‘ +±tempŽ‘#!¬=‘DZt‘‰ffŽ‘®yŽ‘¬;Ž¡‘ +±t‘‰ffŽ‘®yŽ‘¬=‘DZt‘‰ffŽ‘®zŽ‘›ë¬;Ž¡‘ +±t‘‰ffŽ‘®zŽ‘›ì¬=‘DZtempŽ‘!Œ¬;Ž¡‘ +±tempŽ‘#!¬=‘DZc‘‰ffŽ‘®yŽ‘O¬;Ž¡‘ +±c‘‰ffŽ‘®yŽ‘O¬=‘DZc‘‰ffŽ‘®zŽ‘ã¬;Ž¡‘ +±c‘‰ffŽ‘®zŽ‘ã¬=‘DZtempŽ‘!Œ¬;Ž¡‘ +±tempŽ‘#!¬=‘DZd‘‰ffŽ‘®yŽ‘Ñõ¬;Ž¡‘ +±d‘‰ffŽ‘®yŽ‘Ñö¬=‘DZd‘‰ffŽ‘®zŽ‘eà¬;Ž¡‘ +±d‘‰ffŽ‘®zŽ‘eá¬=‘DZtempŽ‘!Œ¬;Ž¡‘ +±tempŽ‘#!¬=‘DZe‘‰ffŽ‘®yŽ‘O¬;Ž¡‘ +±e‘‰ffŽ‘®yŽ‘O¬=‘DZe‘‰ffŽ‘®zŽ‘ã¬;Ž¡‘ +±e‘‰ffŽ‘®zŽ‘ã¬=‘DZtempŽ‘!Œ¬;ŽŽŽŒ‹f  Šn ý‘ì°x¬950›¯3DLDF-1.1.5.1’Éiv­POINT–ÕX¯LIES“WITHIN“TRIANGLE˜¬261Ž €n ý•@P­950.‘ ü¬No•¸ãw,›UUexc“hange˜the˜x˜and˜z-coGordinates.‘qÇ[²LDF‘T2003.06.24.¬]ŽŽ©ª°h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°i‘Ǭ+°ޤ ‘ +±tempŽ‘#!¬=‘DZt‘‰ffŽ‘®xŽ‘"Q¬;Ž¡‘ +±t‘‰ffŽ‘®xŽ‘"R¬=‘DZt‘‰ffŽ‘®zŽ‘›ë¬;Ž¡‘ +±t‘‰ffŽ‘®zŽ‘›ì¬=‘DZtempŽ‘!Œ¬;Ž¡‘ +±tempŽ‘#!¬=‘DZc‘‰ffŽ‘®xŽ‘im¬;Ž¡‘ +±c‘‰ffŽ‘®xŽ‘in¬=‘DZc‘‰ffŽ‘®zŽ‘ã¬;Ž¡‘ +±c‘‰ffŽ‘®zŽ‘ã¬=‘DZtempŽ‘!Œ¬;Ž¡‘ +±tempŽ‘#!¬=‘DZd‘‰ffŽ‘®xŽ‘ìF¬;Ž¡‘ +±d‘‰ffŽ‘®xŽ‘ìG¬=‘DZd‘‰ffŽ‘®zŽ‘eà¬;Ž¡‘ +±d‘‰ffŽ‘®zŽ‘eá¬=‘DZtempŽ‘!Œ¬;Ž¡‘ +±tempŽ‘#!¬=‘DZe‘‰ffŽ‘®xŽ‘im¬;Ž¡‘ +±e‘‰ffŽ‘®xŽ‘in¬=‘DZe‘‰ffŽ‘®zŽ‘ã¬;Ž¡‘ +±e‘‰ffŽ‘®zŽ‘ã¬=‘DZtempŽ‘!Œ¬;Ž¡‘ +±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘gEÀ¬=‘Ç(((±e‘‰ffŽ‘®xŽ–Û5°‘8à±c‘‰ffŽ‘®xŽ“¬)–8à°“¬(±d‘‰ffŽ‘®yŽ‘C½°“±c‘‰ffŽ‘®yŽ›Àä¬))“°“¬((±e‘‰ffŽ‘®yŽ˜°“±c‘‰ffŽ‘®yŽ˜¬)“°“¬(±d‘‰ffŽ‘®xŽ‘^°“±c‘‰ffŽ‘®xŽ‘Û5¬)));Ž¡‘ +±mu‘‰ffŽ‘®denominatorŽ‘V©V¬=‘Ç((±e‘‰ffŽ‘®xŽ–Û5°‘8à±c‘‰ffŽ‘®xŽ“¬)–8à°“¬(±d‘‰ffŽ‘®yŽ‘C½°“±c‘‰ffŽ‘®yŽ›Àä¬))“°“¬((±e‘‰ffŽ‘®yŽ˜°“±c‘‰ffŽ‘®yŽ˜¬)“°“¬(±d‘‰ffŽ‘®xŽ‘^°“±c‘‰ffŽ‘®xŽ‘Û5¬));Ž¡‘ +­ifŽ‘´ù¬(°:¬(±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘]E¿°‘Ǭ0Ž‘ ÿù°_‘8à±mu‘‰ffŽ‘®denominatorŽ‘Nâ5°‘Ǭ0Ž‘Ç))‘°fŽ¡‘­ifŽ‘!¬h¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘gW°‘ ´"Exchanging® ´x® ´and® ´z-Ž‘o äcoordinates® ´worked.\Ž’Ø ¨n"Ž’é"*°Ž¡‘2´"lambda_denominator® Ž’šÿÉ´and® ´mu_denominator® ´aŽ’ÿre® ´no® ´longer® ´0.\n"Ž’eÌ×°‘DZ ushŽ‘€¬;Ž¡‘±exchange‘‰ffŽ–®x‘‰ffŽ“zŽ‘O}#¬=‘DZtrueŽ‘‹°¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘!Øà°fŽ¡‘­ifŽ‘´ú¬(±verb‘ÿ}'oseŽ‘"Ê=°_‘8à´DEBUGŽ‘ÿ9¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘8(¢°‘rù´"WARNING!® ´In® ´Point::Ž‘pr½is_in_triangle():\n"Ž’ákâ°Ž¡‘2´"lambda_denominator® Ž’šÿÉ´or® ´mu_denominator® ´isŽ’ÿ® ´0.\n"Ž’&Ìû°‘Ç´"Returning® ´false.\n\Ž‘kÆÜn"Ž‘y”V°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­returnŽ‘7æ¼±falseŽ‘L–¬;Ž¡‘ +°gŽ¡‘ +g–UUg“­realŽ‘ƒ±lamb‘ÿ}'daŽ‘<>ž¬=‘Ç(((±t‘‰ffŽ‘®xŽ‘”°‘8à±c‘‰ffŽ‘®xŽ‘Û5¬)–8à°“¬(±d‘‰ffŽ‘®yŽ‘C½°“±c‘‰ffŽ‘®yŽ›Àä¬))“°“¬((±t‘‰ffŽ‘®yŽ‘yȰ“±c‘‰ffŽ‘®yŽ˜¬)“°“¬(±d‘‰ffŽ‘®xŽ‘^°“±c‘‰ffŽ‘®xŽ‘Û5¬)))µ=±lamb‘ÿ}'da‘‰ffŽ‘®denominatorŽ‘Z~§¬;Ž¡‘ +­realŽ‘ ³/±muŽ‘2Là¬=‘Ç°Ž‘ +Ž6¬((((±t‘‰ffŽ‘®xŽ‘”°‘8à±c‘‰ffŽ‘®xŽ‘Û5¬)–8à°“¬(±e‘‰ffŽ‘®yŽ›Àä°“±c‘‰ffŽ‘®yŽ˜¬))“°“¬((±t‘‰ffŽ‘®yŽ‘yȰ“±c‘‰ffŽ‘®yŽ˜¬)“°“¬(±e‘‰ffŽ‘®xŽ›Û5°“±c‘‰ffŽ‘®xŽ˜¬)))µ=±mu‘‰ffŽ‘®denominatorŽ‘Iâ=¬);ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"lambda® ´==® ´"Ž‘Et°‘DZlamb‘ÿ}'daŽ‘$ý3°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"mu® ´==® ´"Ž‘0€°‘DZmuŽ‘`ɰ‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"lambda® ´+® ´mu® ´==® ´"Ž‘_Te°‘DZlamb‘ÿ}'daŽ‘$nû¬+‘8à±muŽ‘Ò‘°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'outŽ‘*³.°‘Yõ´"(lambda® ´>=® ´0® ´&&® ´mu® Ž‘lY¹´>=® ´0® ´&&® ´((lambda® ´+® ´mŽ’ÕY}u)® ´<=® ´1))® ´==® ´"Ž’"¹°°–Yõ¬(±lamb‘ÿ}'daŽ‘"Èø°“¬0Ž‘ +Í•°^‘sŸ±muŽ‘ -°Ž¡‘(¬0Ž‘/8å°^–8à¬((±lamb‘ÿ}'daŽ‘!§ã¬+“±muŽ‘ y¬)–ǰ“¬1Ž‘Ç))“°“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘ +°gަ‘ +­b•QÇo“olŽ‘#¡gµbŽ‘*³)¬=–Ç(±lamb‘ÿ}'daŽ‘"6°“¬0Ž› ÿù°^‘8à±muŽ‘Ò‘°“¬0Ž˜°^–8à¬((±lamb‘ÿ}'daŽ‘!§ã¬+“±muŽ‘ y¬)–ǰ“¬1Ž‘Ç));ަ‘ +­ifŽ‘´ù¬(±verb‘ÿ}'oseŽ‘ ‘]¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"In® ´Point::is_in_triŽ‘kÆÜangle:\n"Ž’›)¬;Ž¡‘­ifŽ‘´ú¬(µbŽ‘Jª¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"The® ´Point® ´lies® ´withŽ‘kÆÜin® ´the® ´triangle.® ´"Ž’Í”&°‘Ç´"Returning® ´true."Ž‘\M¬;Ž¡‘­elseŽ‘+Øá±c‘ÿ}'outŽ‘Aù0°‘Ç´"The® ´Point® ´doesn't® ´lŽ‘kÆÜie® ´within® ´the® ´triangŽ’ÔÆ le.® ´"Ž’òT°‘Ç´"Returning® ´false."Ž‘aÍJ¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘DZend‘‚ØlŽ–ò°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­returnŽ‘-滵bŽ‘21e¬;‘qǰgޤ­951.‘ üManipulating‘ÕTP®9aths.Ž¡952.‘ üSet‘ÕTcycle.ŽŸ;Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽŸ ‘ +¬[²LDF‘T2002.4.7.¬]Ž‘OÈ?Changed,–UUso“that“the“argumenš¸ãt“­b•QÇo“olŽ‘ö»µcŽ‘$Ÿë¬is“±trueŽ‘oB¬b˜y“default.ŽŽŽŒ‹p Šn ý‘ì¬262–¯SET‘ÕXCYCLE’)V3DLDF-1.1.5.1“°x¬952Ž €n ý•@P‘ +[²LDF‘T2002.11.05.¬]Ž‘Y;Made‘UU­b•QÇo“olŽ‘ö»µcŽ‘$Ÿë¬argumen¸ãt‘UU­constŽ‘*¢¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž© ‘ +­v®9oidŽ‘"ýÙ±set‘‰ffŽ‘®cycleŽ‘I'ó¬(­constŽ‘*¢b•QÇo“olŽ‘7̵cŽ‘>æû¬=‘DZtrueŽ‘‹°¬);ŽŸ­953.Ž¡°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ަ‘ +­v®9oidŽ‘"ýÙP®9athŽ‘“¬1Ž‘ ÿù°^‘8à±c–ÿ}'onne“ctorsŽ‘1mµ:±sizeŽ˜¬(‘ª¨)“°6¬=“±p‘ÿ}'ointsŽ‘ë­µ:±sizeŽ˜¬(‘ª¨)–8à°“¬1Ž‘8á)‘°fŽ¡‘­stringŽ‘5%O±last‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘sF¬;ަ‘±last‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘Tçê¬=‘DZc–ÿ}'onne“ctorsŽ‘1ûFµ:±b‘ÿ}'ackŽ‘üì(‘ª¨);Ž¡‘­whileŽ‘2C.¬(±c–ÿ}'onne“ctorsŽ‘/4.µ:±sizeŽ›\¬(‘ª¨)–ǵ<“±p‘ÿ}'ointsŽ‘ë­µ:±sizeŽ˜¬(‘ª¨)–8à°“¬1Ž‘8á)‘±c–ÿ}'onne“ctorsŽ‘44.µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±last‘‰ffŽ‘®c–ÿ}'onne“ctorŽ‘> Ь);Ž¡‘ +°gŽŸ­958.‘ ü¬[²LDF‘T2002.4.7.¬]Ž‘PòþIf–I‘don't“explicitly“refer“to“the“­stdŽ‘ù¬namespace“here,›%this“function“is“called,˜and“sinceŽ¡the–UUargumenš¸ãts“are“di eren˜t“from“the“one“used“for“this“function,“this“causes“an“error“at“compile“time.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Reversing® ´connectorŽ‘kÆÜs® ´and® ´points.\n"Ž’Ã,°‘DZ ushŽ‘€¬;Ž¡‘ +­stdŽ‘øä¬::Ž‘!‡"±r‘ÿ}'everseŽ‘A3„¬(±c–ÿ}'onne“ctorsŽ‘/4.µ:±b–ÿ}'e“ginŽ‘¾¨¬(–ª¨)µ;“±c–ÿ}'onne“ctorsŽ‘0ÞÖµ:±endŽ‘ಬ(“));Ž¡‘ +­stdŽ‘øä¬::Ž‘!‡"±r‘ÿ}'everseŽ‘A3„¬(±p‘ÿ}'ointsŽ‘$•µ:±b–ÿ}'e“ginŽ‘¾¨¬(–ª¨)µ;“±p‘ÿ}'ointsŽ‘Ï=µ:±endŽ‘ಬ(“));Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"Showing® ´connectors:Ž‘kÆÜ\n"Ž‘| ;¬;Ž¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­stringŽ‘Ïø°i‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7iterŽ‘=+M¬=‘DZc–ÿ}'onne“ctorsŽ–1ûFµ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZc–ÿ}'onne“ctorsŽ“µ:±endŽ‘ಬ(˜);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)Ž¡‘±c‘ÿ}'outŽ‘4 R°‘ÇŽ‘DZiterŽ‘Y/°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"Showing® ´points:\n"Ž‘g G¬;Ž¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±iter‘ÿ}'atorŽ‘)™7iterŽ‘=+M¬=‘DZp‘ÿ}'ointsŽ–ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZp‘ÿ}'ointsŽ“µ:±endŽ‘ಬ(˜);‘ÿý±iterŽ‘JûŸÿ³+‘ÿ+ŽŽ‘"¬)‘(°Ž‘Ž‘ +±iterŽ‘ˬ)µ:±showŽ‘Šÿ¬(˜);Ž¡‘±getcharŽ‘5%þ¬(‘ª®);Ž¡‘ +°g‘µ=°‘ÿý­ifŽ‘´õ¬(´DEBUGŽ‘ÆY¬)‘ÿý°µ=Ž¡‘ +­returnŽ‘-æ»°Ž‘2æ¼±thisŽ‘CÒr¬;‘UU°gŽŸ­959.– üNo‘FÌassignmen®9t.“¬This–¸vš¸ãersion“merely“copies“°Ž‘¸±thisŽ‘[·¬and“calls“±r‘ÿ}'everseŽ‘#db¬(±trueŽ‘ʬ)“on“the“cop˜y‘ÿ*ª,‘ЫreturningŽ¡the–UUreturn“v‘ÿqÇalue“of“that“function“call.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.16.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­P®9athŽ‘%溱r‘ÿ}'everseŽ‘E“¬(­v®9oidŽ‘¨ƒ¬)‘UU­constŽ‘*¢¬;ŽŸ­960.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­P®9athŽ‘%æºP®9athŽ‘?x"¬::‘±r‘ÿ}'everseŽ‘ ¬f¬(­v®9oidŽ‘¨ƒ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P®9athŽ‘/滵pŽ‘7µÓ¬=‘Ç°Ž‘Ç±thisŽ‘²Ï¬;ަ‘­returnŽ‘7æ¼µpŽ‘<î¼:±r‘ÿ}'everseŽ‘¬b¬(±trueŽ‘ʬ);Ž¡‘ +°gŽŸ­961.– üEqualit®9y‘ÿ +«.“¬TO‘øáDO:–ùMI'll“need“to“makš¸ãe“all“connectors“explicit“in“order“to“mak˜e“this“w˜ork.‘ ]¯SeeŽ¡­opQÇeratorŽ‘+–µ¬&Ž‘3]Ó(‘ª¨)–UUfor“an“example“of“hoš¸ãw“to“mak˜e“this“w˜ork.ަ°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡¬#­ifŽ‘ ´ø¬0ŽŽ¡‘ +­virtualŽ‘/Ôb•QÇo“olŽ‘I/:opQÇeratorŽ‘tÅï°Ž‘| ¬(­P®9athŽ‘湬&Ž‘#­×µpŽ‘(µ×¬);Ž¡#­endifŽŽŽŽŒ‹ Šn ý‘ì¬264–¯EQUALITY’,O®3DLDF-1.1.5.1“°x¬962Ž €n ý•@P­962.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ¬#­ifŽ‘ ´ø¬0ŽŽ¡‘ +­virtualŽ‘/Ôb•QÇo“olŽ‘I/:P®9athŽ‘bÀ¢¬::Ž‘iNà­opQÇeratorŽ’”å•°Ž’œ¬³¬(­P®9athŽ‘湬&Ž‘#­×µpŽ‘(µ×¬)Ž¡‘ +°f‘ª¨gŽ¡¬#­endifŽŽ¤963.‘ üIn®9tersection.Ž¡964.‘ üInš®9tersection–ÕTof“t˜w˜o“linear“P˜aths.‘ ü¬If‘UU°Ž‘UV±thisŽ‘–a¬is–UUa“line“and“the“argumen¸ãt“±p‘ÿ}'aŽ‘§î¬is“a“line,ޤ ±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘M–Ö¬(‘ª®)–UUcalls“the“v¸ãersion“for“­P•®9oin“tsŽ‘&Î.¬in“®points.web¬.Ž¡‘ +Other–UUkinds“of“­P®9athsŽ‘#ÅJ¬and“other“classes“will“need“their“oš¸ãwn“v˜ersions“of“this“function.Ž¡‘ +I–UUmaš¸ãy“ha˜v˜e“a“problem“with“the“constancy“of“°Ž‘UV±thisŽ‘–a¬and“±p‘ÿ}'aŽ‘R™¬.‘qÇIf“I“do,“just“remo˜v˜e“it.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.04.15.¬]Ž‘X Changed–_'return“v‘ÿqÇalue“from“­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘Q¯¯¬to“­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘7±m¬,‘csince“I'vš¸ãe“had“to“commen˜t-Ž¡out–UUthe“vš¸ãersion“of“­P•®9oin“tŽ‘::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(‘ª®)“that“uses“the“­LineŽ‘-¬v˜ersion.Ž¡‘ +[²LDF‘T2002.04.10.¬]Ž‘ZøÜChanged–Eöreturn“t¸ãypšGe“to“­b•QÇo“olu½‰™šs4Ž–Ôwrealu½‰™šs4Ž“pQÇoin®9tŽ‘W}M¬to“corresp˜ond“with“the“same“c¸ãhange“toŽ¡­P•®9oin“tŽ‘šL¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(‘ª®).Ž¡‘ +[²LDF‘T2003.07.04.¬]Ž‘ZÐAdded‘6±tr–ÿ}'ac“eŽ› Q}¬argumen¸ãt.‘ ÉkAdded–6conditional“using“±tr–ÿ}'ac“eŽ˜¬to“cš¸ãhoGose“whic˜h“v˜ersion“ofŽ¡­P•®9oin“tŽ‘šL¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(›ª®)–UUshould“bGe“called.‘qÇChanged“so“that“±is‘‰ffŽ‘®line‘ÿ}'arŽ‘(jÒ¬(˜)“is“used“instead“ofŽ¡±get‘‰ffŽ–®line‘‰ffŽ“switchŽ‘?Ö}¬(›ª®).‘qÇNo¸ãw–UUusing“±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘=y“¬(˜)“instead“of“°Ž‘UV±p‘ÿ}'ointsŽ‘#yë¬[1Ž‘].ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œ±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ’>r¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØy±p‘ÿ}'aŽ‘LÕ½µ;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°±tr–ÿ}'ac“eŽ‘RTÙ¬=‘DZfalseŽ‘v\¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹ œ¤ Šn ý‘ì°x¬965›¯3DLDF-1.1.5.1’£ÿINTERSECTION–ÕXOF“TWÃŽO“LINEAR“­P–ÿ +«A“THS˜¬265Ž €n ý•@P­965.Ž©°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œP®9athŽ‘\9¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØy±p‘ÿ}'aŽ‘LÕ½µ;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°±tr–ÿ}'ac“eŽ‘OÁ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±is‘‰ffŽ‘®line‘ÿ}'arŽ›%}¬(‘ª¨)–8à°^“±p‘ÿ}'aŽ‘ 6$µ:±is‘‰ffŽ‘®line‘ÿ}'arŽ˜¬(‘ª¨))‘°fŽ¡‘­ifŽ‘)´û¬(±tr–ÿ}'ac“eŽ‘¬)‘­returnŽ‘(æºP•®9oin“tŽ‘E¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(°Ž‘±p‘ÿ}'ointsŽ‘ $–¬[0Ž›]µ;‘ª¨±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘;Îæ¬(–ª¨)µ;“°Ž‘ª©±p‘ÿ}'aŽ‘§íµ:±p‘ÿ}'ointsŽ‘$•¬[0Ž˜]µ;Ž¡‘<±p‘ÿ}'aŽ‘FýJµ:±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>¬(–ª¨)µ;“±tr–ÿ}'ac“eŽ‘Á¹¬);Ž¡‘­elseŽ‘5ØâreturnŽ‘YªP•®9oin“tŽ‘vDL¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(°Ž‘±p‘ÿ}'ointsŽ‘ $–¬[0Ž›]µ;‘ª¨±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘;Îæ¬(–ª¨)µ;“°Ž‘ª©±p‘ÿ}'aŽ‘§íµ:±p‘ÿ}'ointsŽ‘$•¬[0Ž˜]µ;“±p‘ÿ}'aŽ‘ §ìµ:±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>¬(“)µ;Ž¡‘<±tr–ÿ}'ac“eŽ‘R¬);Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Haven't® ´coded® ´this® Ž‘kÆÜ´case® ´yet.® ´"Ž’¨Ô;°‘Ç´"Returning® ´INVALID_BŽ‘kÆÜOOL_POINT.\n"Ž’³T5°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_BOOL_POINTŽ’ ìï¬;Ž¡‘°gŽ¡‘ +gŽŸ­966.‘ üInš®9tersection–ßof“a“linear“P˜ath“with“a“Plane.‘ ü¬[²LDF‘T2003.06.03.¬]Ž‘Z»üThis–‰function“m¸ãust“bGe“de nedŽ¡here,–UUbšGecause“­P®9athŽ‘<¬is“an“incomplete“t¸ãyp˜e“in“®planes.web¬.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.03.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œPlaneŽ‘`‰¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘N–Ú¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(µpŽ–:±is‘‰ffŽ‘®line‘ÿ}'arŽ‘%}¬(›ª¨))‘­returnŽ‘(溱interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘v}¬(µpŽ“:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘)µ;˜pŽ‘²¨:±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>¬(˜));Ž¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘5¨°‘òj´"ERROR!® ´In® ´Plane::inŽ‘mò.tersection_point(conŽ’Öñòst® ´Path&):"Ž’*£°‘òj±end‘‚Ølޑ֖°Ž¡‘2´"Path® ´is® ´not® ´linear!Ž’šÿÉ® ´Returning® ´INVALID_Ž’ÿBOOL_POINT."Ž’FL鰑DZend‘‚ØlŽ–ò°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_BOOL_POINTŽ’ ìï¬;Ž¡‘°gŽ¡‘ +gŽŸ­967.– üDra®9wing‘Zaxes.“¬This–“function“draš¸ãws“and“labGels“arro˜ws“for“the“main“axes“at“the“origin.‘+It“can“bGeŽ¡helpful–UUfor“determining“whether“the“\±upŽ‘ ž¾¬"“direction“is“correct“for“a“­F‘ÿ +«oQÇcusŽ‘ J¡¬.Ž¡‘ +[²LDF‘T2003.04.01.¬]Ž‘Yþ®Sometimes–KÈplaceholders“are“needed“for“the“±distŽ›£ý¬and“pGosition“argumen¸ãts.‘UIf“±distŽ˜¬is“aŽ¡n•¸ãum“bGer›Š5µx–8°“¬0,–—mthen˜it's˜set˜to˜the˜default,“curren•¸ãtly˜2.5.‘gIf˜a˜pGosition˜argumen“t˜(±p‘ÿ}'os‘‰ffŽ‘®xޑՅ¬,‘—m±p‘ÿ}'os‘‰ffŽ‘®yŽ‘R¡¬,‘—mor˜±p‘ÿ}'os‘‰ffŽ‘®zŽ‘ÙT¬)˜isŽ¡´"d"Ž‘F_¬,–UUit's“set“to“the“default.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.02.05.¬]Ž‘Z±Mo•¸ãv“ed–jËthis“function“from“®main.web“¬to“here,‘°(so“I‘jƒcan“use“it“in“m¸ãy“examples“for“theŽ¡T‘ÿ*ªexinfo–ü¤doGcumenš¸ãtation.‘T7Also,‘aadded“additional“argumen˜ts“spšGecifying“the“p˜ositions“of“lab˜els“and“suppressingŽ¡dra¸ãwing–UUthe“axes“(and“their“labGels).Ž¡‘ +[²LDF‘T2003.04.01.¬]Ž‘Z<>Added–‰Xargumen¸ãts“for“dash“pattern“(±ddashe‘ÿ}'dŽ‘#G¬)“and“pGen“(±pp‘ÿ}'enŽ‘6#¬).‘ ÏRearranged“order“ofŽ¡argumenš¸ãts.‘HyAlso,‘tgot–ò;rid“of“the“argumen˜ts“±suppr‘ÿ}'ess‘‰ffŽ‘®xŽ‘2$(¬,‘t±suppr‘ÿ}'ess‘‰ffŽ‘®yŽ‘21¬,‘tand“±suppr‘ÿ}'ess‘‰ffŽ‘®zŽ‘1¬.‘HyNo˜w“using“the“empt˜yŽ¡string–hö(´""Ž‘ b¬)“in“the“argumen¸ãts“±p‘ÿ}'os‘‰ffŽ‘®xŽ‘>{¬,‘íݱp‘ÿ}'os‘‰ffŽ‘®yŽ‘©¬,‘íÝand“±p‘ÿ}'os‘‰ffŽ‘®zŽ‘"! ¬to“indicate“that“the“correspGonding“axes“shouldŽ¡bšGe–èsuppressed.‘ ‰Added“error“handling“co˜de“that“prinš¸ãts“a“w˜arning“to“±stderrŽ‘%4c¬if“all“axes“are“suppressed.Ž¡([²LDF‘T2003.05.06.¬]Ž‘P†Note–a¡that“´""Ž‘ɤ¬will“nev¸ãer“bšGe“needed“for“lab˜elling“an“axis,‘¤´b˜ecause“putting“the“lab˜el“onŽ¡top–UUof“the“­P•®9oin“tŽ‘"Dò¬wš¸ãould“in˜terfere“with“the“arro˜w.)Ž¡‘ +[²LDF‘T2003.04.01.¬]Ž‘Y¶ Added–:argumen¸ãts“±shift‘‰ffŽ‘®xŽ‘ ³Ã¬,‘.³±shift‘‰ffŽ‘®yŽ‘ Äë¬,‘.³and“±shift‘‰ffŽ‘®zŽ‘$0—¬for“adjusting“the“pšGosition“of“the“lab˜els.Ž¡Note–1that“the“adjustmen¸ãt“a ects“the“pGosition“of“the“three-dimensional“­P•®9oin“tŽ‘#üP¬within“the“­LabQÇelŽ‘ rg¬,‘gï±not‘#ܬtheŽ¡t•¸ãw“o-dimensional–¯vpro‘Ž8jected“pšGoin¸ãt.‘€)Therefore,‘Åþit's“not“p˜ossible“to“adjust“the“p˜osition“of“the“­LabQÇelŽ‘# O¬preciselyŽŽŽŒ‹ +¦ Šn ý‘ì¬266–¯DRA‘ÿ8WING‘ÕXAXES’A3DLDF-1.1.5.1“°x¬967Ž €n ý•@Pwithout–Yc¸ãhanging“the“MetapšGost“co˜de.‘[TO‘HDO:“Change“±lab‘ÿ}'elŽ‘…ñ¬(‘ª®),‘òso“that“it's“p˜ossible“to“adjust“the“p˜osition“ofޤ the–yºpGoinš¸ãts“in“the“pro‘Ž8jection!‘ÞõThis“ma˜y“opGen“a“can“of“w˜orms,–‚Óthough,“espšGecially–yºif“the“same“co˜de“is“used“toŽ¡generate–UUdraš¸ãwings“using“di eren˜t“pro‘Ž8jections“and/or“di eren˜t“±F‘ÿ;¼o‘ÿ}'cusesŽ‘%ÅF¬.Ž¡‘ +[²LDF‘T2003.07.13.¬]Ž‘Y;Made‘UU±ddashe‘ÿ}'dŽ‘)ñ»¬and‘UU±pp‘ÿ}'enŽ‘àÍ­constŽ‘: o¬in–UUbGoth“v¸ãersions.ޤŸüÈ„`ÕÁGŽŽ©­968.‘ üLength–ÕTargumen®9t“ rst.Ž¡°h–ª¨¬Declare‘UU±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+¬(‘ª®)‘@¯968“°i‘Çޤ ‘ +­v®9oidŽ‘$©±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘P%¬(­realŽ‘Ôþ±distŽ‘-‹†¬=‘ª2µ:¬5ŽŽ‘q:µ;‘ª¨­stringŽ‘#ñűp‘ÿ}'os‘‰ffŽ‘®xŽ‘@qe¬=‘ª´"bot"Ž–ptµ;‘ª¨­stringŽ‘#ñűp‘ÿ}'os‘‰ffŽ‘®yŽ‘@W¬=‘ª´"lft"Ž“µ;‘ª¨­stringŽŽ¡‘±p‘ÿ}'os‘‰ffŽ‘®zŽ‘9Ìå¬=‘}ô"bot"Ž‘Dµ;‘ª¨­constŽ‘ ÜColorŽ‘Aˆ§¬&Ž‘IOűddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’Ö1¬=‘}ðŽ‘ }Ä­ColorsŽ‘+V¢¬::Ž‘1äà±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘i`»µ;‘ª¨­constŽ‘ ÜstringŽŽ¡‘±ddashe‘ÿ}'dŽ‘Epj¬=‘)V´""Ž–/¸µ;‘ª¨­constŽ‘ ©ÖstringŽ‘B£¯±pp‘ÿ}'enŽ‘\(¬=‘)V´""Ž“µ;‘ª¨­constŽ‘ ©ÖP•®9oin“tŽ‘@mÿ¬&Ž‘H5±shift‘‰ffŽ‘®xŽ‘iü¬=‘)V±originŽ‘wµ;‘ª¨­constŽ‘ ©ÖP•®9oin“tŽŽ¡‘¬&Ž‘%Ç!±shift‘‰ffŽ‘®yŽ‘E$q¬=‘DZoriginŽ–½9µ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±shift‘‰ffŽ‘®zŽ‘e}@¬=‘DZoriginŽ“µ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘T3¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬);ޤ ¯See–ÕXalso“section“973.Ž¡This–ÕXcoS-¬&Ž‘FK±shift‘‰ffŽ‘®xŽ‘bÊÔµ;‘ª¨­constŽ‘œmP•®9oin“tŽ‘>S-¬&Ž‘FK±shift‘‰ffŽ‘®yŽ‘b°ƒµ;‘ª¨­constŽ‘œmP•®9oin“tŽŽ¡‘2¬&Ž‘9Ç#±shift‘‰ffŽ‘®zŽ‘UñFµ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘Qkþ¬)°fޤ ¯See–ÕXalso“sections“970,“971,“972,“and“974.Ž¡This–ÕXco¸Þ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘­returnŽ‘4‘g¬;ަ‘ +°gŽŽŽŒ‹ º› Šn ý‘ì°x¬972›¯3DLDF-1.1.5.1’âβLENGTH–ÕXARÃŽGUMENT“FIRST˜¬267Ž €n ý•@P­972.Ž©°h–ª¨¬De ne‘UU±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+¬(‘ª®)‘@¯969“°i‘Ǭ+°ޤ ‘ +­ifŽ‘´ù¬(±p‘ÿ}'os‘‰ffŽ‘®xŽ‘œ°6¬=‘Ç´""Ž‘ Íz¬)‘°fŽ¡‘­P•®9oin“tŽ‘2x0Ž‘>|¬(°Ž‘DZdistޑӋ¬);Ž¡‘­P•®9oin“tŽ‘2x1Ž‘>|¬(±distŽ‘ m¬);ަ‘±x0ޑߵ:±dr–ÿ}'awarr“owŽ‘.òĬ(±x1Ž‘ ݵ;‘ª¨±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Qµ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘±x1Ž‘"d÷¬+=ŽŽ‘4ºK±shift‘‰ffŽ‘®xŽ‘QjÔ¬;Ž¡‘±x1ޑߵ:±lab‘ÿ}'elŽ‘t˜¬(´"x"Ž‘F_µ;‘ª¨±p‘ÿ}'os‘‰ffŽ‘®xŽ‘€-µ;‘ª¨±falseŽ‘Yìµ;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±p‘ÿ}'os‘‰ffŽ‘®yŽ‘‚L°6¬=‘Ç´""Ž‘ Íz¬)‘°fŽ¡‘­P•®9oin“tŽ‘2y0Ž‘>Äò¬(0Ž‘µ;‘ª¨°Ž‘ qƱdistŽ‘~3¬);Ž¡‘­P•®9oin“tŽ‘2y1Ž‘>Äò¬(0Ž‘µ;‘ª¨±distŽ‘·¬);ަ‘±y0Ž‘ÕUµ:±dr–ÿ}'awarr“owŽ‘.òĬ(±y1Ž‘ ÕSµ;‘ª¨±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Qµ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘±y1Ž‘"œm¬+=ŽŽ‘4ñÁ±shift‘‰ffŽ‘®yŽ‘Q‡ù¬;Ž¡‘±y1Ž‘ÕUµ:±lab‘ÿ}'elŽ‘t˜¬(´"y"Ž‘F_µ;‘ª¨±p‘ÿ}'os‘‰ffŽ‘®yŽ‘eܵ;‘ª¨±falseŽ‘Yìµ;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±p‘ÿ}'os‘‰ffŽ‘®zŽ‘7°6¬=‘Ç´""Ž‘ Íz¬)‘°fŽ¡‘­P•®9oin“tŽ‘2z0Ž‘>¯¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱdistŽ‘~3¬);Ž¡‘­P•®9oin“tŽ‘2z1Ž‘>¯¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±distŽ‘·¬);ަ‘±z0Ž‘µ:±dr–ÿ}'awarr“owŽ‘.òĬ(±z1Ž‘ µ;‘ª¨±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Qµ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘±z1Ž‘!Ø*¬+=ŽŽ‘4-~±shift‘‰ffŽ‘®zŽ‘PW¡¬;Ž¡‘±z1Ž‘µ:±lab‘ÿ}'elŽ‘t˜¬(´"z"Ž‘F_µ;‘ª¨±p‘ÿ}'os‘‰ffŽ‘®zŽ‘ùǵ;‘ª¨±falseŽ‘Yìµ;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gŽ¡‘ +­returnŽ‘*‘f¬;‘qǰgŽŸ­973.‘ üColor–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.05.02.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+¬(‘ª®)‘@¯968“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘#ѱdr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘OÖì¬(­constŽ‘ýßColorŽ‘?v¬&Ž‘G=-±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘{EÖµ;‘ª¨­realŽ‘1±distŽ‘.d§¬=‘''2µ:¬5ŽŽ‘îFµ;‘ª¨­stringŽ‘#£2±p‘ÿ}'os‘‰ffŽ‘®xŽ‘?ŸÞ¬=‘''´"bot"Ž‘퀵;‘ª¨­stringŽŽ¡‘±p‘ÿ}'os‘‰ffŽ‘®yŽ‘8’,¬=‘Öõ´"lft"Ž–Nµ;‘ª¨­stringŽ‘"Ùy±p‘ÿ}'os‘‰ffŽ‘®zŽ‘<ÿ¬=‘Öõ´"bot"Ž“µ;‘ª¨­constŽ‘ÞÎstringŽ‘A Ÿ±ddashe‘ÿ}'dŽ‘g+¥¬=‘Öõ´""Ž– ÝWµ;‘ª¨­constŽ‘ÞÎstringŽ‘A Ÿ±pp‘ÿ}'enŽ‘Y·¬=‘Öõ´""Ž“µ;‘ª¨­constŽŽ¡‘P•®9oin“tŽ‘=&¬&Ž‘DËD±shift‘‰ffŽ‘®xŽ‘de¬=‘éL±originŽ–ßmµ;‘ª¨­constŽ‘éÐP•®9oin“tŽ‘>íó¬&Ž‘Fµ±shift‘‰ffŽ‘®yŽ‘f4•¬=‘éL±originŽ“µ;‘ª¨­constŽ‘éÐP•®9oin“tŽ‘>íó¬&Ž‘Fµ±shift‘‰ffŽ‘®zŽ‘eÈ€¬=‘éL±originŽ“µ;‘ª¨­PictureŽŽ¡‘¬&Ž‘%Ç!±pictur‘ÿ}'eŽ‘G—¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬);ŽŽŽŒ‹ ÊÉ Šn ý‘ì¬268›­COLOR–ÕX¯ARÃŽGUMENT“FIRST’ÞOõ3DLDF-1.1.5.1˜°x¬974Ž €n ý•@P­974.Ž©°h–ª¨¬De ne‘UU±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+¬(‘ª®)‘@¯969“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘#5±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘O ¬(­constŽ‘AþColorŽ‘=þM¬&Ž‘EÅk±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘yε;‘ª¨­realŽ‘u2±distŽ‘)Ÿµ;‘ª¨­stringŽ‘"çQ±p‘ÿ}'os‘‰ffŽ‘®xŽ‘:¼Öµ;‘ª¨­stringŽ‘"çQ±p‘ÿ}'os‘‰ffŽ‘®yŽ‘:¢…µ;‘ª¨­stringŽ‘"çQ±p‘ÿ}'os‘‰ffŽ‘®zŽ‘:6pµ;‘ª¨­constŽŽ¡‘2stringŽ‘Rìu±ddashe‘ÿ}'dŽ‘v3†µ;‘ª¨­constŽ‘œmstringŽ‘@ˆÝ±pp‘ÿ}'enŽ‘U¿µ;‘ª¨­constŽ‘œmP•®9oin“tŽ‘>S-¬&Ž‘FK±shift‘‰ffŽ‘®xŽ‘bÊÔµ;‘ª¨­constŽ‘œmP•®9oin“tŽ‘>S-¬&Ž‘FK±shift‘‰ffŽ‘®yŽ‘b°ƒµ;‘ª¨­constŽ‘œmP•®9oin“tŽŽ¡‘2¬&Ž‘9Ç#±shift‘‰ffŽ‘®zŽ‘UñFµ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘Qkþ¬)Ž¡‘ +°fŽ¡‘±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘@ج(±distŽ‘ mµ;‘ª¨±p‘ÿ}'os‘‰ffŽ‘®xŽ‘€-µ;‘ª¨±p‘ÿ}'os‘‰ffŽ‘®yŽ‘eܵ;‘ª¨±p‘ÿ}'os‘‰ffŽ‘®zŽ‘ùǵ;‘ª¨±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘5³Qµ;‘ª¨±ddashe‘ÿ}'dŽ‘$ñ¹µ;‘ª¨±pp‘ÿ}'enŽ‘à˵;‘ª¨±shift‘‰ffŽ‘®xŽ‘[1µ;‘ª¨±shift‘‰ffŽ‘®yŽ‘@àµ;‘ª¨±shift‘‰ffŽ‘®zŽ‘Ô˵;‘ª¨±pictur‘ÿ}'eŽ‘ ³~¬);Ž¡‘ +°gŽŸ­975.‘ üP®9aths–ÕTand“Lines.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.06.¬]Ž‘Y;Added–UUthis“heading.ަŸüÈ„`ÕÁGŽŽŸ­976.– üGet‘³´Line.“¬Returns–8a“­LineŽ‘ȳ¬correspGonding“to“°Ž‘8±thisŽ‘#Ϭ,›=ñif“°Ž‘8±thisŽ‘[ç¬is“linear.‘hOtherwise,˜±get‘‰ffŽ‘®lineŽ‘$ ¬(‘ª®)“returnsŽ¡´INVALID_LINEŽ‘?†D¬.ŽŸÁÅŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.06.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9athŽ‘<¬functions‘@¯700“°i‘Ǭ+°Ž¡‘ +­LineŽ‘#­Ù±get‘‰ffŽ‘®lineŽ‘Düñ¬(­v®9oidŽ‘¨ƒ¬)‘UU­constŽ‘*¢¬;ŽŸ­977.ަ°h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°i‘Ǭ+°Ž¡‘ +­LineŽ‘#­ÙP®9athŽ‘=?A¬::‘±get‘‰ffŽ‘®lineŽ‘"O¬(­v®9oidŽ‘¨ƒ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(±is‘‰ffŽ‘®line‘ÿ}'arŽ‘%}¬(‘ª®))‘­returnŽ‘(溱p‘ÿ}'ointsŽ‘D Oµ:±fr‘ÿ}'ontŽ‘I‘¬(–ª¨)‘þŸµ~ŽŽ‘±get‘‰ffŽ‘®lineŽ‘%O¬(°Ž‘¬(±p‘ÿ}'ointsŽ‘$•µ:±b‘ÿ}'ackŽ‘üì(“)));Ž¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘3Å˰‘"´"ERROR!® ´In® ´Path::getŽ‘læ_line():\n"Ž’©fO°‘"´"Path® ´is® ´not® ´linear.Ž‘læ® ´Returning® ´INVALID_LŽ’Õª\ŽŽ¡‘2INE.\n\n"Ž‘dj°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_LINEŽ’m¬;Ž¡‘°gŽ¡‘ +gŽŸ­978.– üGet‘·jP®9ath.“¬Declared–íin“®lines.web¬.‘¿Must“bšGe“de ned“here,‘Kb˜ecause“­P®9athŽ‘ Å>¬is“an“incomplete“t¸ãyp˜eŽ¡there.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.06.¬]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­LineŽ‘-¬functions‘@¯644“°i‘Ǭ+°Ž¡‘ +­P®9athŽ‘%æºLineŽ‘=?A¬::‘±get‘‰ffŽ‘®p‘ÿ}'athŽ‘$Ÿï¬(­v®9oidŽ‘¨ƒ¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P•®9oin“tŽ‘2pŽ‘7÷Ÿ¬(±p‘ÿ}'ositionŽ‘%}7¬+‘8à±dir–ÿ}'e“ctionŽ‘)1Ѭ);ަ‘­returnŽ‘7æ¼P®9athŽ‘Px ¬(±p‘ÿ}'ositionŽ‘#DWµ;‘ª¨pŽ‘²¨¬);Ž¡‘ +°gŽŸ­979.‘ üPutting–ÕTP®9ath“together.ŽŽŽŒ‹ × Šn ý‘ì°x¬980‘¯3DLDF-1.1.5.1’Ú¿/PUTTING›ÕX­P–ÿ +«A“TH˜¯TOGETHER‘¬269Ž €n ý•@P­980.‘ ü¬This–UUis“what's“compiled.ŽŸ‘ +°h–ª¨¬Include‘UU les‘@¯6“°iޤ ‘ +h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°iŽ¡‘ +h–ª¨¬De ne‘UU­classŽ‘5¦P®9athŽ‘;¯698“°iŽ¡‘ +h–ª¨¬De ne‘UU­staticŽ‘"ž.classŽ‘=~P®9athŽ‘Ye8¬data‘UUmem¸ãbGers‘@¯699“°iŽ¡‘ +h–ª¨¬De ne‘UU­T‘ÿ +«ransformŽ‘;'¬functions‘@¯169“°iŽ¡‘ +h–ª¨¬De ne‘UU­P•®9oin“tŽ‘"Dò¬functions‘@¯330“°iŽ¡‘ +h–ª¨¬De ne‘UU­PlaneŽ‘#Œ ¬functions‘@¯664“°iŽ¡‘ +h–ª¨¬De ne‘UU­P®9athŽ‘<¬functions‘@¯701“°iŽ¡‘ +h–ª¨¬De ne‘UU­LineŽ‘-¬functions‘@¯644“°iŽ¡‘ +h–ª¨¬De ne‘UU±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+¬(‘ª®)‘@¯969“°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­P®9athŽ‘ &½¯724˜°iŽŽŽŒ‹ä Šn ý‘ì¬270‘¯PUTTING›ÕX­P–ÿ +«A“TH˜¯TOGETHER’Ú¿/3DLDF-1.1.5.1‘°x¬981Ž €n ý•@P­981.‘ ü¬This–UUis“what's“written“to“®paths.h¬.Ž©ÊQ°h‘ª¨´paths.hŽ‘0pü¯981‘ª¨°i‘Çޤ ‘ +h–ª¨¬De ne‘UU­classŽ‘5¦P®9athŽ‘;¯698“°iŽ¡‘ +h–ª¨¬Declare‘UU±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘/[+¬(‘ª®)‘@¯968“°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­P®9athŽ‘ &½¯724˜°iŽŸ­982.– üCurv®9es“(®curves.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ŽŽ¦‘ +­formatŽ‘3c(±CurveŽ‘VìPathŽŽ¦°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘Ǭ+°Ž¡‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´curves.web,v® ´1Ž‘kÆÜ.5® ´2004/01/12® ´21:27:Ž’ÔÆ 59® ´lfinsto1® ´Exp® ´$"Ž’3ÌÒ¬;ŽŸ­983.‘ ü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"ŽŽ¡¬#­includeŽ‘'Ø~´"pictures.h"ŽŽ¡¬#­includeŽ‘'Ø~´"points.h"ŽŽ¡¬#­includeŽ‘'Ø~´"lines.h"ŽŽ¡¬#­includeŽ‘'Ø~´"planes.h"ŽŽ¡¬#­includeŽ‘'Ø~´"paths.h"ŽŽ©­984.‘ üRegular–ÕTclosed“plane“curv®9e.ŽŸT¡Ÿû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.12.¬]Ž‘Z’ÜChanged–ßöthe“name“\±R–ÿ}'e“gular‘‰ffŽ›®Close“d‘‰ffŽ˜Plane‘‰ffŽ˜CurveŽ‘{¿¬"“to“\­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘h÷˜¬",‘BbGe-Ž¡cause–UUthe“former“caused“toGo“manš¸ãy“\Ov˜erfull“bGo˜xes"“when“running“®cweave¬.ŽŸŸüÈ„`ÕÁGŽŽ¦­985.› üReg‘°¡‰ffs4Ž–#ÕCl‘°¡‰ffs4Ž“Plane‘°¡‰ffs4Ž“Curv®9e–©vclass“de nition.˜¬A‘/&­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘oUî¬is–/0assumed“to“bGe“closed,‘6Ñpla-Ž¡nar,›UUcon•¸ãv“ex,˜and˜ha“v“e˜at˜least˜3˜pGoin“ts.‘qÇThe˜functions˜that˜create˜and˜moGdifyŽ¡­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9esŽ‘pÖ)¬m¸ãust–UUensure“that“these“assumptions“are“correct!Ž¡‘ +[²LDF‘T2002.11.05.¬]Ž‘ZhíRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’È8¬is–µÝinš¸ãtended“to“bGe“used“as“a“base“class.‘“^No“ob‘Ž8jects“of“t˜ypGeŽ¡­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘lLí¬should–UUbšGe“de ned,“ho•¸ãw“ev“er,–UUit“is“not“an“abstract“class,“so“it“is“p˜ossible“to“do“so.ޤÊQ‘ +­formatŽ‘3c(±R–ÿ}'e“g‘‰ffŽ–®Cl‘‰ffŽ“Plane‘‰ffŽ“CurveŽ’“Ñ'CurveŽŽ¡°h–ª¨¬De ne‘UU­classŽ‘5¦Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’‹mB¯985“°i‘Çޤ ‘ +­classŽ‘$àRRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’‘-?¬:‘qÇ­publicŽ‘'ñP®9athŽ‘B몰fŽ¡‘ +­protectedŽ‘:o™¬:‘­P•®9oin“tŽ‘#ï±c‘ÿ}'enterŽ‘?ù(¬;Ž¡‘­unsignedŽ‘D7shortŽ‘b³±numb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ’¬Â\¬;ŽŸÊQ‘ +­publicŽ‘)=Ö¬:‘°h–ª¨¬Declare‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯987“°iŽŽŽŒ‹猠Šn ý‘ì°x¬985›¯3DLDF-1.1.5.1‘C€­REG‘°¡‰ffs4Ž–#ÕCL‘°¡‰ffs4Ž“PLANE‘°¡‰ffs4Ž“CUR‘þ¸äVE–ÕX¯CLASS“DEFINITION˜¬271Ž €n ý•@P‘ +°g¬;ŽŸ ¯This–ÕXcoŸÓVEŽ‘ãxXŽ‘['cošGde“ab˜o•¸ãv“e–ßein“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˜´\RVŽ‘ñ ¬(whic“h˜is˜curren“tly˜\´\letŽ‘†\¬"˜to˜´\ARGŽ‘Û±¬).ަ‘ +[²LDF‘T2003.06.03.¬]Ž‘Y;Changed–UUthe“line“where“­PlaneŽ‘!6¼¬::‘±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½¬(‘ª®)“is“called“bGeloš¸ãw.‘qÇIt“no˜w“returns“aަ­realu½‰™šs4Ž‘ÔwshortŽ‘2i¬,–UUso“\µ:“± rstŽ‘ +ÿ¬"“has“to“bGe“added,“in“order“to“get“the“­realŽ‘ƒ¬v‘ÿqÇalue.ަ‘ +[²LDF‘T2003.06.13.¬]Ž‘Y;Changed‘UU±pt0Ž‘¾µ:±epsilonŽ‘o¬(‘ª¨)–UUto“­P•®9oin“tŽ‘::‘±epsilonŽ‘ o¬(‘ª®).ަ‘ +[²LDF‘T2003.06.14.¬]Ž‘Y;Added–UUerror“handling“coGde“for“the“case“that“±get‘‰ffŽ‘®planeŽ‘+Ì=¬(‘ª®)“fails.ަ‘ +[²LDF‘T2003.06.14.¬]Ž‘X^§No–«Álonger“taking“absolute“v›ÿqÇalue“of“the“­realŽ‘µ[¬v˜alue“±r0Ž‘‰G¬returned“b¸ãy“­PlaneŽ‘ (¬::‘±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘5y½¬(‘ª®),ަsince–UUit“will“alw•¸ãa“ys–UUbšGe“p˜ositivš¸ãe,“an˜yw˜a˜y‘ÿ*ª.‘qÇCommen˜t“at“place“bGelo˜w,“where“I“made“this“c˜hange.ަ‘ +[²LDF‘T2003.07.01.¬]Ž‘Y;Added–UUargumen¸ãt“±suppr‘ÿ}'ess‘‰ffŽ‘®warningsŽ‘Szf¬.ަ‘ +[²LDF‘T2003.07.16.¬]Ž‘YÖChanged–kðname“of“±c‘ÿ}'enterŽ‘"ák¬argumenš¸ãt“to“±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘]ã¬,‘q–bGecause“I'v˜e“made“±c‘ÿ}'enterŽ‘"ák¬a“data“mem˜bGerަof‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘lLí¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯987“°i‘Ǭ+°ަ‘ +­virtualŽ‘/ÔsignedŽ‘RýÊshortŽ‘pÈm±lo–ÿ}'c“ationŽ’“‰ê¬(­P•®9oin“tŽ‘ï±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘7áµ;‘ª¨­P•®9oin“tŽ‘ šE±pt0Ž‘0€µ;‘ª¨­constŽ‘ÕJb•QÇo“olŽ‘9v°±suppr‘ÿ}'ess‘‰ffŽ‘®warningsŽ’ŒbÙ¬=‘DZfalseŽ‘v\¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹‘ Šn ý‘ì°x¬993›¯3DLDF-1.1.5.1’õozLOCA‘ÿJªTION–ÕXOF“A“POINT˜¬273Ž €n ý•@P­993.Ž©°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Çޤ ‘ +­signedŽ‘,îqshortŽ‘J7ŽRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’´/*¬::‘±lo–ÿ}'c“ationŽ‘#Á¬(­P•®9oin“tŽ‘n±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘7` +µ;‘ª¨­P•®9oin“tŽ‘ ¿±pt0Ž‘/úµ;‘ª¨­constŽ‘SÄb•QÇo“olŽ‘8s¤±suppr‘ÿ}'ess‘‰ffŽ‘®warningsŽ’ˆ˜µ¬)Ž¡‘2­constŽŽ¡‘ +°fŽ¡‘­b•QÇo“olŽ‘-¡h´DEBUGŽ‘K.Ù¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Entering® ´Reg_Cl_PlaŽ‘kÆÜne_Curve::location()Ž’ÔÆ \n"Ž’å ÿ¬;Ž¡‘±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘6ñöµ:±showŽ‘Šÿ¬(´"ref_pt"Ž‘*†P¬);Ž¡‘±pt0Ž‘-i>µ:±showŽ‘Šÿ¬(´"pt0"Ž‘ÆY¬);Ž¡‘°gަ‘­unsignedŽ‘D7shortŽ‘b³±orientationŽ’“tò¬;Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´X_YŽ’“9̬=‘Ç0Ž‘Ç;Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´X_ZŽ’“9̬=‘Ç1Ž‘Ç;Ž¡‘­constŽ‘2*¤unsignedŽ‘ba²shortŽ’€,U´Z_YŽ’“9̬=‘Ç2Ž‘Ç;Ž¡‘­PlaneŽ‘46º±plŽ‘=lŬ(±get‘‰ffŽ‘®planeŽ‘(vè¬(‘ª®));ަ‘­ifŽ‘´ú¬(±plŽ‘ ý#°‘Ç´INVALID_PLANEŽ‘GY¬)‘µ=°‘ÿý¬LDF–UU2003.06.14.‘qÇAdded“this“error“handling“coGde.‘o°µ=Ž¡‘°fŽ¡‘±c‘ÿ}'errŽ‘7ÁA°‘ ˜´"ERROR!® ´In® ´Reg_Cl_PlŽ‘p \ane_Curve::location(Ž’Ù ):"Ž’ð]°Ž¡‘2´"The® ´Reg_Cl_Plane_CuŽ’šÿÉrve® ´is® ´non-planar.\nŽ’ÿ"Ž’ +°‘Ç´"Returning® ´-6\n\n"Ž‘d”b°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½°Ž‘I­Û¬6Ž‘N­Ü;Ž¡‘°gަ‘­realŽ‘*³0±r0Ž‘8¬ ¬=‘DZplŽ‘ ý#µ:±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹¬(±pt0Ž‘i;¬)µ:± rstŽ‘µª¬;ަ‘­ifŽ‘´ú¬(±r0Ž‘ øÝµ>‘Ç­P•®9oin“tŽ‘ad¬::Ž‘%epsilonŽ‘E^¦¬(‘ª¨))Ž¡‘µ=°‘âÁ¬LDF‘82003.06.14.–h Changed.“±r0Ž‘Ñç¬will›8alw•¸ãa“ys˜b•Ge˜p“ositiv•¸ãe,‘=òso˜I‘8no“w˜longer˜tak“e˜its˜absolute˜v‘ÿqÇalue.‘±°µ=Ž¡‘°fŽ¡‘­ifŽ‘*9j¬(°:±suppr‘ÿ}'ess‘‰ffŽ‘®warningsŽ‘P%¬)‘±c‘ÿ}'errŽ‘Yv°‘£Ð´"WARNING!® ´In® ´Reg_Cl_Ž‘l£”Plane_Curve::locatioŽ’Õ£Xn().\n"Ž’þ{°Ž¡‘<´"Point® ´is® ´not® ´in® ´plaŽ’¤ÿÊne® ´of® ´regular® ´closedŽ’ ÿŽ® ´plane® ´curve.\n"Ž’hº°Ž¡‘<´"Returning® ´-2.\n\n"Ž’£ M°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½°Ž‘I­Û¬2Ž‘N­Ü;Ž¡‘°gަ‘­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’€Lï±c‘ÿ}'opyŽ’”Üç¬(°Ž‘±thisŽ‘ë·¬);ަ‘­ifŽ‘´ú¬(±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘¹ °6¬=‘DZoriginŽ‘½9¬)‘±pt0Ž‘0S°¬=ŽŽ‘&¾Š±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘Bw•°¬=ŽŽ‘Ṟc‘ÿ}'opyŽ‘f•ĵ:±shiftŽ‘}¬(°Ž‘DZr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ ¹¬);‘µ=°‘ÿý¬LDF‘UU2002.11.05.‘qÇSimpli ed.‘o°µ=ަ‘­P•®9oin“tŽ‘2c‘ÿ}'opy‘‰ffŽ‘®normalŽ‘læ#¬=‘DZc‘ÿ}'opyŽ‘Wµ:±get‘‰ffŽ‘®normalŽ‘0Št¬(‘ª¨);ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'opy‘‰ffŽ‘®normalŽ‘µ:±dotlab‘ÿ}'elŽ‘!ÿó¬(´"pt0"Ž‘ÆY¬);ަ‘±pt0Ž‘-i>µ:±showŽ‘Šÿ¬(´"pt0"Ž‘ÆY¬);ަ‘°gŽ¡‘­T‘ÿ +«ransformŽ‘KÈÔ±t3Ž‘VŸ¬;ަ‘­P•®9oin“tŽ‘2pt1Ž‘Eò¬=‘DZc‘ÿ}'opyŽ‘Wµ:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘);Ž¡‘±pt1Ž‘&0U°¬=ŽŽ‘8…©±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘Qwœ¬;ަ‘±pt1Ž‘#i=µ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);Ž¡‘­P•®9oin“tŽ‘2x‘‰ffŽ‘®axisŽ‘M~¬(1Ž‘µ;‘ª¨¬0Ž–ª©µ;‘ª¨¬0Ž“);ަ‘­P•®9oin“tŽ‘2z‘‰ffŽ‘®axisŽ‘Lñ:¬(0Ž‘µ;‘ª¨¬0Ž–ª©µ;‘ª¨¬1Ž“);Ž¡‘­ifŽ‘´ú¬(±orientationŽ‘4:W°‘Ç´X_YŽ‘FW°_‘8à±orientationŽ‘6s7°‘Ç´X_ZŽ‘ w¬)‘°fަ‘­ifŽ‘)´û¬(±pt1Ž‘0S°6¬=‘DZx‘‰ffŽ‘®axisŽ‘Ž`°^‘8à±pt1Ž‘i3°6¬=‘Ç°Ž‘ +Ž6±x‘‰ffŽ‘®axisŽ‘%ž¬)‘°fަ‘(±t3Ž‘2Lϵ:±align‘‰ffŽ–®with‘‰ffŽ“axisŽ‘@²x¬(±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ñóµ;‘ª¨±pt1Ž‘ãµ;‘ª¨´'x'Ž‘ñ¬);ަ‘(±c‘ÿ}'opyŽ‘?W°¬=ŽŽ‘NåK±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘jžV°¬=ŽŽ‘z,±pt0Ž’Œ\à°¬=ŽŽ’›ë±t3Ž’¦7â¬;ަ‘°gަ‘gަ‘­elseŽ‘*.6ifŽ‘5ã.¬(±orientationŽ‘4:W°‘Ç´Z_YŽ‘ w¬)‘°fަ‘­ifŽ‘)´û¬(±pt1Ž‘0S°6¬=‘DZz‘‰ffŽ‘®axisŽ‘“°^‘8à±pt1Ž‘i3°6¬=‘Ç°Ž‘ +Ž6±z‘‰ffŽ‘®axisŽ‘$Ѭ)‘°fަ‘(±t3Ž‘2Lϵ:±align‘‰ffŽ–®with‘‰ffŽ“axisŽ‘@²x¬(±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ñóµ;‘ª¨±pt1Ž‘ãµ;‘ª¨´'z'Ž‘ñ¬);ަ‘(±c‘ÿ}'opyŽ‘?W°¬=ŽŽ‘NåK±t3Ž‘Y2¬;ަ‘(±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘C¹°¬=ŽŽ‘SGF±t3Ž‘]”¬;ަ‘(±pt0Ž‘:0W°¬=ŽŽ‘I¾Ž±t3Ž‘T Y¬;ަ‘°gަ‘gŽ¡‘­realu½‰™šs4Ž‘ÔwpairŽ‘Cpƒ±rrŽ‘MuÔ¬;ަ‘­realŽ‘*³0±pt0‘‰ffŽ‘®vŽ‘Bœ¬;‘µ=°‘ÿý¬[²LDF‘T2002.11.05.¬]Ž‘T7V‘ÿ*ªertical.‘o°µ=ަ‘­realŽ‘*³0±pt0‘‰ffŽ‘®hŽ‘BPK¬;‘µ=°‘ÿý¬[²LDF‘T2002.11.05.¬]Ž‘T7Horizon¸ãtal.‘o°µ=Ž¡‘­ifŽ‘´ú¬(±orientationŽ‘4:W°‘Ç´X_YŽ‘ w¬)‘°fަ‘±pt0‘‰ffŽ‘®hŽ‘8d6¬=‘DZpt0Ž‘0Sµ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨);ަ‘±pt0‘‰ffŽ‘®vŽ‘80‡¬=‘DZpt0Ž‘0Sµ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨);ŽŽŽŒ‹*Ú Šn ý‘ì°x¬993›¯3DLDF-1.1.5.1’õozLOCA‘ÿJªTION–ÕXOF“A“POINT˜¬275Ž €n ý•@P‘°gޤ ‘­elseŽ‘*.6ifŽ‘5ã.¬(±orientationŽ‘4:W°‘Ç´X_ZŽ‘ w¬)‘°fŽ¡‘±pt0‘‰ffŽ‘®hŽ‘8d6¬=‘DZpt0Ž‘0Sµ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨);Ž¡‘±pt0‘‰ffŽ‘®vŽ‘80‡¬=‘DZpt0Ž‘0Sµ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨);Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±orientationŽ‘4:W°‘Ç´Z_YŽ‘ w¬)‘°fŽ¡‘±pt0‘‰ffŽ‘®hŽ‘8d6¬=‘DZpt0Ž‘0Sµ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨);Ž¡‘±pt0‘‰ffŽ‘®vŽ‘80‡¬=‘DZpt0Ž‘0Sµ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨);Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘7|U°‘Ƭ´"ERROR!® ´In® ´Reg_Cl_PlŽ‘oÆpane_Curve::location(Ž’ØÆ4).\n"Ž’úS9°Ž¡‘2´"orientation® ´has® ´invŽ’šÿÉalid® ´value:® ´"Ž’â"°‘DZorientationŽ‘7o°‘Ç´"\nReturning® ´-5\n\n"Ž‘o\°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½°Ž‘I­Û¬5Ž‘N­Ü;Ž¡‘°gŽ¡‘±rrŽ‘ Ìk¬=‘DZsolveŽ‘þã¬(´'v'Ž‘F_µ;‘ª¨±pt0‘‰ffŽ‘®hŽ‘Gì);‘µ=°‘ÿý¬[²LDF‘T2002.11.05.¬]Ž‘T7TO–UUDO:“Explain.‘o°µ=Ž¡‘­ifŽ‘´ú¬(±rrŽ‘ +Qµ:± rstŽ‘|°‘Ç´INVALID_REALŽ‘D†<°^‘8à±rrŽ‘ >1µ:±se–ÿ}'c“ondŽ‘ nß°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"Point® ´is® ´outside® ´reŽ‘kÆÜgular® ´closed® ´plane® ´cŽ’ÔÆ urve.® ´"Ž’üÔ °‘Ç´"Returning® ´-1.\n"Ž‘\M¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"Exiting® ´Reg_Cl_PlanŽ‘kÆÜe_Curve::location()\Ž’ÔÆ n"Ž’ßͬ;Ž¡‘°gŽ¡‘­returnŽ‘Aæ½°Ž‘I­Û¬1Ž‘N­Ü;Ž¡‘°gŽ¡‘­elseŽ‘)ª¼ifŽ‘4Ü:¬((±fabsŽ–2Ò¬(±fabsŽ“¬(±pt0‘‰ffŽ‘®vŽ›il¬)–1î°“±fabsŽ‘dÀ¬(±rrŽ‘ +Qµ:± rstŽ‘µª¬))–ǵ<“­P•®9oin“tŽ‘ad¬::Ž‘%epsilonŽ‘E^¦¬(‘ª¨))–1î°_“¬(±fabsŽ–2Ò¬(±fabsŽ“¬(±pt0‘‰ffŽ‘®vŽ˜¬)–1î°“±fabsŽ‘dÀ¬(±rrŽ‘ +Qµ:±se–ÿ}'c“ondŽ‘§Ç¬))‘ǵ<Ž¡‘2­P•®9oin“tŽ‘NšQ¬::Ž‘U(±epsilonŽ‘t—“¬(‘ª¨)))‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±c‘ÿ}'outŽ‘?°‘CÇ´"Point® ´is® ´on® ´regularŽ‘mC‹® ´closed® ´plane® ´curve.Ž’ÖCO® ´"Ž’åx°‘CÇ´"Returning® ´0.\n"Ž‘] ưŽ¡‘<´"Exiting® ´Reg_Cl_PlanŽ’¤ÿÊe_Curve::location()\Ž’ ÿŽn"Ž’ð¬;Ž¡‘(±getcharŽ‘I&¬(‘ª®);Ž¡‘°gŽ¡‘­returnŽ‘A潬0Ž‘Fæ¾;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±fabsŽ‘2Ò¬(±pt0‘‰ffŽ‘®vŽ‘il¬)–ǵ<“±fabsŽ‘ùê¬(±rrŽ‘ +Qµ:± rstŽ‘µª¬))‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"Point® ´is® ´inside® ´regŽ‘kÆÜular® ´closed® ´plane® ´cuŽ’ÔÆ rve.® ´"Ž’÷”°‘Ç´"Returning® ´1.\n"Ž‘WMP¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"Exiting® ´Reg_Cl_PlanŽ‘kÆÜe_Curve::location()\Ž’ÔÆ n"Ž’ßͬ;Ž¡‘(±getcharŽ‘I&¬(‘ª®);Ž¡‘°gŽ¡‘­returnŽ‘A潬1Ž‘Fæ¾;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±fabsŽ‘2Ò¬(±pt0‘‰ffŽ‘®vŽ‘il¬)–ǵ>“±fabsŽ‘ùê¬(±rrŽ‘ +Qµ:± rstŽ‘µª¬))Ž¡‘µ=°‘ÿý¬This–UUcase“should“nev¸ãer“ošGccur,“I“b˜eliev•¸ãe.‘qÇ[²LDF‘T2002.11.05.¬]Ž‘SzWh“y‘UUnot??‘o°µ=Ž¡‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±c‘ÿ}'outŽ‘>ØU°‘´"Point® ´is® ´outside® ´reŽ‘l~Þgular® ´closed® ´plane® ´cŽ’Õ~¢urve.® ´"Ž’þD°‘´"Returning® ´-1.\n"Ž‘`Äi°Ž¡‘<´"Exiting® ´Reg_Cl_PlanŽ’¤ÿÊe_Curve::location()\Ž’ ÿŽn"Ž’ð¬;Ž¡‘(±getcharŽ‘I&¬(‘ª®);Ž¡‘°gŽ¡‘­returnŽ‘Aæ½°Ž‘I­Û¬1Ž‘N­Ü;Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'errŽ‘7|U°‘Ƭ´"ERROR!® ´In® ´Reg_Cl_PlŽ‘oÆpane_Curve::location(Ž’ØÆ4).\n"Ž’úS9°Ž¡‘2´"This® ´can't® ´happen!® Ž’šÿÉ´Returning® ´-3.\n"Ž’òM°‘DZ ushŽ‘€¬;ŽŽŽŒ‹;u Šn ý‘ì¬276›¯LOCA‘ÿJªTION–ÕXOF“A“POINT’õoz3DLDF-1.1.5.1˜°x¬993Ž €n ý•@P‘±getcharŽ‘?%ÿ¬(‘ª®);ޤ ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Reg_Cl_PlanŽ‘kÆÜe_Curve::location()\Ž’ÔÆ n"Ž’ßͬ;Ž¡‘­returnŽ‘Aæ½°Ž‘I­Û¬3Ž‘N­Ü;Ž¡‘°gŽ¡‘ +gޤ ¯See–ÕXalso“sections“995,“998,“999,“1000,“1001,“1002,“1003,“1004,“1005,“1006,“1007,“1009,“and“1012.Ž¡This–ÕXco S°‘Ç´"® ´***® ´Entering® ´Reg_CŽ‘kÆÜl_Plane_Curve::"Ž’Ã,°‘Ç´"intersection_pointsŽ‘kÆÜ()\n"Ž’‰TM°‘DZ ushŽ‘€¬;ަ‘­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘odñ±bppŽ’‚"ò¬=‘Ç´INVALID_BOOL_POINT_PAIRŽ‘| ;¬;Ž¡‘­PlaneŽ‘>6»±plŽ‘J3Þ¬=‘DZget‘‰ffŽ‘®planeŽ‘+>¬(‘ª¨);ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±plŽ‘6 µ:±normalŽ‘ V¸µ:±showŽ‘Šÿ¬(´"pl.normal"Ž‘:FG¬);ަ‘­P•®9oin“tŽ‘<ï ±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘}ud¬=‘Ç(±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘)–8à°“±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘*Ó¬);ަ‘±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘[¾¯µ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);ަ‘­P•®9oin“tŽ‘<ï ±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘d“Q¬(±pt1Ž–¢°‘8à±pt0Ž“¬);ަ‘±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘E£´µ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);ަ‘­P•®9oin“tŽ‘<ï ±cr‘ÿ}'ossŽ‘V£Ö¬=‘DZsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@…ĵ:±cr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé¬(±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘'£±¬);ަ‘±cr‘ÿ}'ossŽ‘4í!µ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʵ;‘ª¨±trueŽ‘o@¬);Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘e¾°µ:±showŽ‘Šÿ¬(´"surface_vector"Ž‘T†8¬);Ž¡‘(±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘O£µµ:±showŽ‘Šÿ¬(´"pt_vector"Ž‘:FG¬);Ž¡‘(±cr‘ÿ}'ossŽ‘>í"µ:±showŽ‘Šÿ¬(´"cross"Ž‘%FS¬);Ž¡‘(±plŽ‘16µ:±normalŽ‘ V¸µ:±showŽ‘Šÿ¬(´"pl.normal"Ž‘:FG¬);Ž¡‘°gަ‘­shortŽ‘;ʦ±distanc‘ÿ}'eŽ‘b×»¬=‘DZplŽ‘ ý#µ:±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹¬(±pt0Ž‘i;¬)µ:±se–ÿ}'c“ondŽ‘§Ç¬;ŽŸ­999.‘ üDegenerate–ÕTcases,“error“handling.ަ°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°Ž¡‘ +­ifŽ‘qv¬(±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘*jɰ‘Ç´INVALID_POINTŽ–I?5°_‘±Ü±plŽ› +ççµ:±normalŽ‘#а‘Ç´INVALID_POINTŽ“°_‘±Ü±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘,¥°‘DZoriginŽ‘o°_‘±Ü±plŽ˜µ:±normalŽ‘#а‘DZoriginŽ‘½9¬)Ž¡‘°fŽ¡‘±c‘ÿ}'errŽ‘,e]°‘¯µ´"ERROR!® ´In® ´Reg_Cl_PlŽ‘n¯yane_Curve:intersectiޒם=on_points():\n"Ž’,¥-°Ž¡‘(´"Something® ´is® ´wrong® Ž’ÿÈ´with® ´the® ´normals:\n"Ž’ú…ô¬;Ž¡‘±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘;£³µ:±showŽ‘Šÿ¬(´"pt_vector:"Ž‘?†D¬);Ž¡‘±plŽ‘6 µ:±normalŽ‘ V¸µ:±showŽ‘Šÿ¬(´"pl.normal"Ž‘:FG¬);Ž¡‘±c‘ÿ}'errŽ‘)|À°‘Ç´"Returning® ´INVALID_BŽ‘kÆÜOOL_POINT_PAIR.\n\n"Ž’Ø °‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Polygon::inŽ‘kÆÜtersection_points().Ž’ÔÆ \n\n"Ž’òT°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼´INVALID_BOOL_POINT_PAIRŽ’±,߬;Ž¡‘ +°gŽŸ­1000.‘ üP®9arallel–ÕTand“coplanar“cases.ަ°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°Ž¡‘ +­elseŽ‘?ìifŽ‘*›¬(±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@…ݑDZpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘*ǰ_\R±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@â°‘ÇŽ‘ +Ž6±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘2Ž9°_\R±cr‘ÿ}'ossŽ–ˆ°‘DZplŽ‘ ý#µ:±normalŽ‘ ³ +°_\R±cr‘ÿ}'ossŽ“°‘ÇŽ‘ +Ž6±plŽ‘ÄAµ:±normalŽ‘ V¸¬)Ž¡‘°fŽŽŽŒ‹d© Šn ý‘ì°x¬1001–¯3DLDF-1.1.5.1’ +G COPLANAR‘ÕXCASE“¬279Ž €n ý•@P­1001.‘ üCoplanar‘ÕTcase.Ž©°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°ޤ ‘ +­ifŽ‘´ù¬(±distanc‘ÿ}'eŽ‘' °‘Ǭ0Ž‘Ç)‘UU°fŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Line® ´and® ´Reg_Cl_PlaŽ‘kÆÜne_Curve® ´are® ´coplanaŽ’ÔÆ r.\n"Ž’ïŒù¬;ަ‘ +­T‘ÿ +«ransformŽ‘AÈÓ±t0Ž‘Lž¬;Ž¡‘ +­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘vLî±c‘ÿ}'opyŽ’ŠÜæ¬(°Ž‘±thisŽ‘ë·¬);Ž¡‘ +­P•®9oin“tŽ‘(ïž±curve‘‰ffŽ‘®0Ž‘MÁ/¬=‘DZc‘ÿ}'opyŽ‘Wµ:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘);ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"After® ´copying:"Ž‘Zh°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±showŽ‘*‹¬(´"this:"Ž‘%FS¬);Ž¡‘±c‘ÿ}'opyŽ‘(úµ:±showŽ‘Šÿ¬(´"copy:"Ž‘%FS¬);Ž¡‘±curve‘‰ffŽ‘®0Ž‘6 +{µ:±showŽ‘Šÿ¬(´"curve_0"Ž‘/ÆM¬);Ž¡‘ +°gŽ¡‘ +±t0ޑ䰬=ŽŽ‘&¢±curve‘‰ffŽ‘®0Ž‘Ks¬°¬=ŽŽ‘[ã±pt0Ž‘m26°¬=ŽŽ‘|Àm±pt1Ž’ŽðÀ°¬=ŽŽ’ž~÷±c‘ÿ}'opyŽ’³ïµ:±shiftŽ‘}¬(°Ž‘DZr‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ ¹¬);Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"After® ´shift:"Ž‘O”n°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'opyŽ‘(úµ:±showŽ‘Šÿ¬(´"copy:"Ž‘%FS¬);Ž¡‘±curve‘‰ffŽ‘®0Ž‘6 +{µ:±showŽ‘Šÿ¬(´"curve_0"Ž‘/ÆM¬);Ž¡‘±pt0Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt0"Ž‘ÆY¬);Ž¡‘±pt1Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt1"Ž‘ÆY¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±curve‘‰ffŽ‘®0Ž‘" +yµ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨)–ǵ<“¬0Ž‘Ç)‘°fŽ¡‘±t0Ž‘!å°¬=ŽŽ‘0¢±curve‘‰ffŽ‘®0Ž‘Us­°¬=ŽŽ‘eä±pt0Ž‘w27°¬=ŽŽ’†Àn±pt1Ž’˜ðÁ°¬=ŽŽ’¨~ø±c‘ÿ}'opyŽ’½ðµ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨¬180ŽŽ‘ª«);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"After® ´rotating® ´so® ´cŽ‘kÆÜurve_0® ´has® ´positive® Ž’ÔÆ ´x:"Ž’çÔ°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'opyŽ‘(úµ:±showŽ‘Šÿ¬(´"copy:"Ž‘%FS¬);Ž¡‘±curve‘‰ffŽ‘®0Ž‘6 +{µ:±showŽ‘Šÿ¬(´"curve_0"Ž‘/ÆM¬);Ž¡‘±pt0Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt0"Ž‘ÆY¬);Ž¡‘±pt1Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt1"Ž‘ÆY¬);Ž¡‘ +°gަ‘ +­P•®9oin“tŽ‘(ïž±tr–ÿ}'ac“e‘‰ffŽ–®x‘‰ffŽ“z‘‰ffŽ“0Ž‘[Ih¬=‘DZcurve‘‰ffŽ‘®0Ž‘$Ñ‘¬;ަ‘ +±tr–ÿ}'ac“e‘‰ffŽ–®x‘‰ffŽ“z‘‰ffŽ“0Ž‘9’³µ:±shiftŽ‘}¬(0Ž‘µ;‘ª¨°Ž‘ qƬ(±curve‘‰ffŽ‘®0Ž‘" +yµ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨)));ަ‘ +­P•®9oin“tŽ‘(ïž±x‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘O»»¬(1Ž‘);Ž¡‘ +­realŽ‘ ³/±angŽ‘44í¬=‘DZtr–ÿ}'ac“e‘‰ffŽ–®x‘‰ffŽ“z‘‰ffŽ“0Ž‘2Yʵ:±angleŽ‘ÀS¬(±x‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘&̬);ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"ang® ´==® ´"Ž‘5T}°‘DZangŽ‘HÖ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±angŽ‘¾°6¬=‘Ç0Ž‘Ç)‘°fŽ¡‘­ifŽ‘´ú¬(±curve‘‰ffŽ‘®0Ž‘" +yµ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨)–ǵ>“¬0Ž‘Ç)‘±angŽ‘¾°¬=ŽŽ‘(õ°Ž‘/׬1Ž‘4×;Ž¡‘±t0Ž‘!å°¬=ŽŽ‘0¢±curve‘‰ffŽ‘®0Ž‘Us­°¬=ŽŽ‘eä±pt0Ž‘w27°¬=ŽŽ’†Àn±pt1Ž’˜ðÁ°¬=ŽŽ’¨~ø±c‘ÿ}'opyŽ’½ðµ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨±angŽ‘eN¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"After® ´rotating® ´so® ´tŽ‘kÆÜhe® ´trace® ´of® ´curve_0® Ž’ÔÆ ´is® ´on® ´x-axis:"Ž’!“ö°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'opyŽ‘(úµ:±showŽ‘Šÿ¬(´"copy:"Ž‘%FS¬);Ž¡‘±curve‘‰ffŽ‘®0Ž‘6 +{µ:±showŽ‘Šÿ¬(´"curve_0"Ž‘/ÆM¬);Ž¡‘±pt0Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt0"Ž‘ÆY¬);Ž¡‘±pt1Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt1"Ž‘ÆY¬);Ž¡‘ +°gŽ¡‘ +±angŽ‘¿¬=‘DZcurve‘‰ffŽ‘®0Ž‘$Ñ‘µ:±angleŽ‘ÀS¬(±x‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘&̬);ŽŽŽŒ‹u  Šn ý‘ì¬280–¯COPLANAR‘ÕXCASE’ +G 3DLDF-1.1.5.1“°x¬1001Ž €n ý•@P‘ +­ifŽ‘´ù¬(±angŽ‘¾°6¬=‘Ç0Ž‘Ç)‘°fޤ ‘­ifŽ‘´ú¬(±curve‘‰ffŽ‘®0Ž‘" +yµ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨)–ǵ>“¬0Ž‘Ç)‘±angŽ‘¾°¬=ŽŽ‘(õ°Ž‘/׬1Ž‘4×;Ž¡‘±t0Ž‘!å°¬=ŽŽ‘0¢±curve‘‰ffŽ‘®0Ž‘Us­°¬=ŽŽ‘eä±pt0Ž‘w27°¬=ŽŽ’†Àn±pt1Ž’˜ðÁ°¬=ŽŽ’¨~ø±c‘ÿ}'opyŽ’½ðµ:±r‘ÿ}'otateŽ‘o>¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±angŽ‘eN¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"After® ´rotating® ´so® ´cŽ‘kÆÜurve_0® ´is® ´on® ´x-axis:Ž’ÔÆ "Ž’ÝT°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'opyŽ‘(úµ:±showŽ‘Šÿ¬(´"copy:"Ž‘%FS¬);Ž¡‘±pt0Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt0"Ž‘ÆY¬);Ž¡‘±pt1Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt1"Ž‘ÆY¬);Ž¡‘ +°gŽ©‘ +­P•®9oin“tŽ‘(ïž±curve‘‰ffŽ‘®4Ž‘MÁ/¬=‘DZc‘ÿ}'opyŽ‘Wµ:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(±numb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘JÀ©µ=¬4Ž‘);Ž¡‘ +­P•®9oin“tŽ‘(ïž±z‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘O.î¬(0Ž‘µ;‘ª¨¬0Ž–ª©µ;‘ª¨¬1Ž“);ަ‘ +±angŽ‘¿¬=‘DZcurve‘‰ffŽ‘®4Ž‘$Ñ‘µ:±angleŽ‘ÀS¬(±z‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘&?P¬);Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±curve‘‰ffŽ‘®4Ž‘6 +{µ:±showŽ‘Šÿ¬(´"curve_4"Ž‘/ÆM¬);Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"ang® ´==® ´"Ž‘5T}°‘DZangŽ‘HÖ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±angŽ‘¾°6¬=‘Ç0Ž‘Ç)‘°fŽ¡‘­ifŽ‘´ú¬(±curve‘‰ffŽ‘®4Ž‘" +yµ:±get‘‰ffŽ‘®yŽ‘t¬(‘ª¨)–ǵ>“¬0Ž‘Ç)‘±angŽ‘¾°¬=ŽŽ‘(õ°Ž‘/׬1Ž‘4×;Ž¡‘±t0Ž‘!å°¬=ŽŽ‘0¢±curve‘‰ffŽ‘®4Ž‘Us­°¬=ŽŽ‘eä±pt0Ž‘w27°¬=ŽŽ’†Àn±pt1Ž’˜ðÁ°¬=ŽŽ’¨~ø±c‘ÿ}'opyŽ’½ðµ:±r‘ÿ}'otateŽ‘o>¬(±angŽ‘º¦¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"After® ´rotating® ´so® ´cŽ‘kÆÜurve_4® ´is® ´on® ´z-axis:Ž’ÔÆ "Ž’ÝT°‘DZend‘‚ØlŽ‘¸Ú¬;Ž¡‘±c‘ÿ}'opyŽ‘(úµ:±showŽ‘Šÿ¬(´"copy:"Ž‘%FS¬);Ž¡‘±curve‘‰ffŽ‘®4Ž‘6 +{µ:±showŽ‘Šÿ¬(´"curve_4"Ž‘/ÆM¬);Ž¡‘±pt0Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt0"Ž‘ÆY¬);Ž¡‘±pt1Ž‘#i=µ:±showŽ‘Šÿ¬(´"pt1"Ž‘ÆY¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'opyŽ‘(úµ:±dr‘ÿ}'awŽ‘(Û¬(­ColorsŽ‘!ØÞ¬::Ž‘(g±blueŽ‘:É“¬);Ž¡‘±pt0Ž‘#i=µ:±dr‘ÿ}'awŽ‘(Û¬(±pt1Ž‘i;µ;‘ª¨­ColorsŽ‘#ƒ†¬::Ž‘*ıblackŽ‘A˜µ;‘ª¨´"evenly"Ž‘,0ø¬);Ž¡‘­forŽ‘%般(­in®9tŽ‘¤÷µiŽ‘Þ¬=‘Ç0Ž‘Ç;‘ÿýµiŽ– 9 <‘Ǭ16ŽŽ‘ Ç;‘ÿýµiŽ“¬+=ŽŽ‘Ž]4Ž‘"Ž^)‘±c‘ÿ}'opyŽ‘øµ:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(µiŽ–qô¬)µ:±dotlab‘ÿ}'elŽ‘!ÿó¬(µiŽ“¬);Ž¡#­ifŽ‘ ´ø¬0ŽŽ¡‘±pt0Ž‘#i=µ:±dotlab‘ÿ}'elŽ‘!ÿó¬(´"pt0"Ž‘ÆY¬);Ž¡‘±pt1Ž‘#i=µ:±dotlab‘ÿ}'elŽ‘!ÿó¬(´"pt1"Ž‘ÆY¬);Ž¡‘±c‘ÿ}'opyŽ‘(úµ:±get‘‰ffŽ‘®c‘ÿ}'enterŽ‘,=G¬(‘ª¨)µ:±dotlab‘ÿ}'elŽ‘!ÿó¬(´"copy® ´center"Ž‘DÆA¬);Ž¡#­endifŽŽ¡‘±dr‘ÿ}'aw‘‰ffŽ‘®axesŽ‘@ج(‘ª®);Ž¡‘ +°gަ‘ +­realŽ‘ ³/±pt0‘‰ffŽ‘®hŽ‘;b¬=‘DZpt0Ž‘0Sµ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨);Ž¡‘ +­realŽ‘ ³/±pt0‘‰ffŽ‘®vŽ‘:㳬=‘DZpt0Ž‘0Sµ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨);Ž¡‘ +­realŽ‘ ³/±pt1‘‰ffŽ‘®hŽ‘;b¬=‘DZpt1Ž‘0Sµ:±get‘‰ffŽ‘®xŽ‘Žg¬(‘ª¨);Ž¡‘ +­realŽ‘ ³/±pt1‘‰ffŽ‘®vŽ‘:㳬=‘DZpt1Ž‘0Sµ:±get‘‰ffŽ‘®zŽ‘¬(‘ª¨);‘µ=°‘ÿý±pt1‘‰ffŽ‘®vŽ‘¾¾¬isn't–UUused.›qÇLea¸ãving“it“here,“just“in“case.˜[²LDF‘T2003.08.27.¬]Ž‘U$©°µ=Ž¡‘ +­realŽ‘ ³/±Slop‘ÿ}'eŽ‘;:š¬=‘DZpt1Ž‘0Sµ:±slop‘ÿ}'eŽ‘7ˬ(±pt0Ž‘i;µ;‘ª¨´'x'Ž–ñµ;‘ª¨´'z'Ž“¬);ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Slope® ´==® ´"Ž‘?Ôw°‘DZSlop‘ÿ}'eŽ‘Nƒ°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘ +­realu½‰™šs4Ž‘ÔwpairŽ‘9p‚±rrŽ‘CuÓ¬;‘µ=°–ÿý¬BEGIN“°µ=ŽŽŽŒ‹„y Šn ý‘ì°x¬1002–¯3DLDF-1.1.5.1’ +G COPLANAR‘ÕXCASE“¬281Ž €n ý•@P­1002.‘ ü¬SlopGe–UUis“0“(line“is“horizon¸ãtal).Ž©°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°ޤ ‘ +­ifŽ‘´ù¬(±Slop‘ÿ}'eŽ‘‡k°‘Ǭ0Ž‘Ç)‘µ=°‘ÿý¬v–UUis“knoš¸ãwn,“h“is“unkno˜wn.‘o°µ=Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Slope® ´==® ´0"Ž‘Et°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘±rrŽ‘ Ìk¬=‘DZsolveŽ‘þã¬(´'h'Ž‘F_µ;‘ª¨±pt0‘‰ffŽ‘®vŽ‘¬);Ž¡‘­ifŽ‘´ú¬(±rrŽ‘ +Qµ:± rstŽ‘|°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘±bppŽ‘-öìµ:± rstŽ–µªµ:±ptŽ‘ äµ:±setŽ‘ x„¬(±rrŽ‘ +Qµ:± rstŽ“µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±pt0‘‰ffŽ‘®vŽ‘¬);Ž¡‘°gŽ¡‘­elseŽ‘+Øá±bppŽ‘;Ïʵ:± rstŽ‘µªµ:±ptŽ‘ «µ¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘­ifŽ‘´ú¬(±rrŽ‘ +Qµ:±se–ÿ}'c“ondŽ‘ nß°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘±bppŽ‘-öìµ:±se–ÿ}'c“ondŽ–§Çµ:±ptŽ‘ äµ:±setŽ‘ x„¬(±rrŽ‘ +Qµ:±se–ÿ}'c“ondŽ“µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±pt0‘‰ffŽ‘®vŽ‘¬);Ž¡‘°gŽ¡‘­elseŽ‘+Øá±bppŽ‘;Ïʵ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ «µ¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±bppŽ‘-öìµ:± rstŽ‘µªµ:±ptŽ‘ äµ:±showŽ‘Šÿ¬(´"bpp.first.pt"Ž‘J>¬);Ž¡‘±bppŽ‘-öìµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ äµ:±showŽ‘Šÿ¬(´"bpp.second.pt"Ž‘OF;¬);Ž¡‘°gŽ¡‘ +g‘µ=°‘ÿý¬End‘UU±Slop‘ÿ}'eŽ‘ÜÀ°‘Ǭ0Ž‘Ç.‘o°µ=ŽŸ­1003.‘ ü¬SlopGe–UUis“unde ned“(line“is“v¸ãertical).ަ°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°Ž¡‘ +­elseŽŽ¡‘ifŽ‘´ú¬(±Slop‘ÿ}'eŽ‘‡k°‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"Line® ´is® ´vertical.\nŽ‘kÆÜ"Ž‘qA¬;Ž¡‘°gŽ¡‘±rrŽ‘*Ìl¬=‘DZsolveŽ‘þã¬(´'v'Ž‘F_µ;‘ª¨±pt1‘‰ffŽ‘®hŽ‘Gì);Ž¡‘­ifŽ‘)´û¬(±rrŽ‘ +Qµ:± rstŽ‘|°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘(±bppŽ‘7öíµ:± rstŽ–µªµ:±ptŽ‘ äµ:±setŽ‘ x„¬(±pt0‘‰ffŽ‘®hŽ‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±rrŽ‘ ¯ùµ:± rstŽ“¬);Ž¡‘°gŽ¡‘­elseŽ‘5Øâ±bppŽ‘EÏ˵:± rstŽ‘µªµ:±ptŽ‘ «µ¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘­ifŽ‘)´û¬(±rrŽ‘ +Qµ:±se–ÿ}'c“ondŽ‘ nß°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘(±bppŽ‘7öíµ:±se–ÿ}'c“ondŽ–§Çµ:±ptŽ‘ äµ:±setŽ‘ x„¬(±pt0‘‰ffŽ‘®hŽ‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±rrŽ‘ ¯ùµ:±se–ÿ}'c“ondŽ“¬);Ž¡‘°gŽ¡‘­elseŽ‘5Øâ±bppŽ‘EÏ˵:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ «µ¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘°g‘µ=°‘ÿý¬End‘UU±Slop‘ÿ}'eŽ‘ÜÀ°‘Ç´INVALID_REALŽ‘BM\¬.‘o°µ=ŽŽŽŒ‹“® Šn ý‘ì¬282–¯COPLANAR‘ÕXCASE’ +G 3DLDF-1.1.5.1“°x¬1004Ž €n ý•@P­1004.‘ ü¬SlopGe–UU°2“­realŽ‘ƒ¬is“de ned“and“°6¬=‘Ç0.Ž©°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°ޤ ‘ +­elseŽ‘!Øà°fŽ¡‘­realŽ‘*³0±v‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘YàÒ¬;ަ‘±v‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘Eô¼¬=‘DZpt0‘‰ffŽ‘®vŽ‘id°–8à¬(±Slop‘ÿ}'eŽ‘ù3°“±pt0‘‰ffŽ‘®hŽ‘Õû¬);Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"v_intercept® ´==® ´"Ž‘_Te°‘DZv‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘4»Ò°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘­realu½‰™šs4Ž‘ÔwtripleŽ‘JÉf±c–ÿ}'o“e sŽ‘fhD¬=‘DZget‘‰ffŽ‘®c–ÿ}'o“ecientsŽ‘C·Š¬(±Slop‘ÿ}'eŽ‘ÀSµ;‘ª¨±v‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘0ØJ¬);‘µ=°‘ÿý¬New‘UUh-v‘ÿqÇalues.‘o°µ=ަ‘­ifŽ‘´ú¬(±is‘‰ffŽ‘®quadr‘ÿ}'aticŽ‘3çô¬(‘ª®))‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"Solving® ´quadratic.\Ž‘kÆÜn"Ž‘y”V°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘±rrŽ‘*Ìl¬=‘DZsolve‘‰ffŽ‘®quadr‘ÿ}'aticŽ‘D{Ò¬(±c–ÿ}'o“e sŽ‘ׯµ:± rstŽ‘µªµ;‘ª¨±c–ÿ}'o“e sŽ–‚nµ:±se–ÿ}'c“ondŽ‘§Çµ;‘ª¨±c–ÿ}'o“e sŽ“µ:±thir‘ÿ}'dŽ‘Üj¬);Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"Not® ´a® ´quadratic.® ´"Ž‘iÔ_°‘Ç´"Haven't® ´programmed® Ž‘kÆÜ´this® ´case® ´yet.\n"Ž’ÈT)°‘DZ ushŽ‘€¬;Ž¡‘°gަ‘­realŽ‘*³0±v‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘K$¬;ަ‘­ifŽ‘´ú¬(±rrŽ‘ +Qµ:± rstŽ‘|°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘±v‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘A7ù¬=‘Ç(±Slop‘ÿ}'eŽ‘ù3°‘8à±rrŽ‘ >1µ:± rstŽ‘µª¬)–8à+“±v‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘1f‚¬;Ž¡‘±bppŽ‘-öìµ:± rstŽ–µªµ:±ptŽ‘ äµ:±setŽ‘ x„¬(±rrŽ‘ +Qµ:± rstŽ“µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±v‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘"†¬);Ž¡‘°gŽ¡‘­elseŽ‘+Øá±bppŽ‘;Ïʵ:± rstŽ‘µªµ:±ptŽ‘ «µ¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘­ifŽ‘´ú¬(±rrŽ‘ +Qµ:±se–ÿ}'c“ondŽ‘ nß°6¬=‘Ç´INVALID_REALŽ‘BM\¬)‘°fŽ¡‘±v‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘A7ù¬=‘Ç(±Slop‘ÿ}'eŽ‘ù3°‘8à±rrŽ‘ >1µ:±se–ÿ}'c“ondŽ‘§Ç¬)–8à+“±v‘‰ffŽ‘®inter–ÿ}'c“eptŽ‘1f‚¬;Ž¡‘±bppŽ‘-öìµ:±se–ÿ}'c“ondŽ–§Çµ:±ptŽ‘ äµ:±setŽ‘ x„¬(±rrŽ‘ +Qµ:±se–ÿ}'c“ondŽ“µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±v‘‰ffŽ‘®c–ÿ}'o“or“dŽ‘"†¬);Ž¡‘°gŽ¡‘­elseŽ‘+Øá±bppŽ‘;Ïʵ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ «µ¬=‘Ç´INVALID_POINTŽ‘GY¬;Ž¡‘ +°gŽŽŽŒ‹ž* Šn ý‘ì°x¬1005–¯3DLDF-1.1.5.1’ +G COPLANAR‘ÕXCASE“¬283Ž €n ý•@P­1005.‘ ü¬Common–UUcoGde“for“the“\coplanar"“case.ޤ°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°Ž© ‘ +­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘;@‚±on‘‰ffŽ‘®se‘ÿ}'gmentŽ‘mŸî¬;Ž¡‘ +­ifŽ‘´ù¬(±bppŽ‘öéµ:± rstŽ‘µªµ:±ptŽ‘ «µ°‘Ç´INVALID_POINTŽ‘GY¬)‘°fަ‘±on‘‰ffŽ‘®se‘ÿ}'gmentŽ‘F_nµ:± rstŽ‘|¬=‘DZfalseŽ‘v\¬;ަ‘±on‘‰ffŽ‘®se‘ÿ}'gmentŽ‘F_nµ:±se–ÿ}'c“ondŽ‘ n߬=‘Ç´INVALID_REALŽ‘BM\¬;ަ‘ +°gަ‘ +­elseŽ‘!Øà±on‘‰ffŽ‘®se‘ÿ}'gmentŽ‘Vÿd¬=‘DZbppŽ‘¾µ:± rstŽ‘µªµ:±ptŽ‘ äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ã¬);ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"on_segment.first® ´==Ž‘kÆÜ® ´"Ž‘y”V°‘DZon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘5&„µ:± rstŽ‘|°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"on_segment.second® ´=Ž‘kÆÜ=® ´"Ž‘~ÔS°‘DZon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘5&„µ:±se–ÿ}'c“ondŽ‘ nß°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘ +°gަ‘ +­ifŽ‘´ù¬(±on‘‰ffŽ‘®se‘ÿ}'gmentŽ‘2_lµ:± rstŽ‘|°‘DZtrueŽ–‹°¬)‘±bppŽ‘öéµ:± rstŽ‘µªµ:bŽ‘¬=‘DZtrueŽ“¬;ަ‘ +­elseŽ‘!Øà±bppŽ‘1Ïɵ:± rstŽ‘µªµ:bŽ‘¬=‘DZfalseŽ‘v\¬;Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓ±t‘‰ffŽ‘®inverseŽ‘h×è¬;Ž¡‘ +±t‘‰ffŽ‘®inverseŽ‘3Ö.¬=‘DZt0Ž‘ ãµ:±inverseŽ‘ ‡¬(‘ª¨);ަ‘ +­ifŽ‘´ù¬(±bppŽ‘öéµ:± rstŽ‘µªµ:±ptŽ‘ «µ°6¬=‘Ç´INVALID_POINTŽ‘GY¬)‘°fަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Transforming® ´bpp.fiŽ‘kÆÜrst.pt\n"Ž’žTA°‘DZ ushŽ‘€¬;ަ‘±bppŽ‘#öëµ:± rstŽ‘µªµ:±ptŽ‘ «µ°¬=ŽŽ‘9ì±t‘‰ffŽ‘®inverseŽ‘CI¬;ަ‘ +°gަ‘ +­elseŽ‘!Øà°fަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"bpp.first.pt® ´is® ´invŽ‘kÆÜalid\n"Ž’“ÔG°‘DZ ushŽ‘€¬;ަ‘ +°gަ‘ +­ifŽ‘´ù¬(±bppŽ‘öéµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ «µ°‘Ç´INVALID_POINTŽ‘GY¬)‘°fަ‘±on‘‰ffŽ‘®se‘ÿ}'gmentŽ‘F_nµ:± rstŽ‘|¬=‘DZfalseŽ‘v\¬;ަ‘±on‘‰ffŽ‘®se‘ÿ}'gmentŽ‘F_nµ:±se–ÿ}'c“ondŽ‘ n߬=‘Ç´INVALID_REALŽ‘BM\¬;ަ‘ +°gަ‘ +­elseŽ‘!Øà±on‘‰ffŽ‘®se‘ÿ}'gmentŽ‘Vÿd¬=‘DZbppŽ‘¾µ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ã¬);ަ‘ +­ifŽ‘´ù¬(±on‘‰ffŽ‘®se‘ÿ}'gmentŽ‘2_lµ:± rstŽ‘|°‘DZtrueŽ–‹°¬)‘±bppŽ‘öéµ:±se–ÿ}'c“ondŽ‘§Çµ:bŽ‘¬=‘DZtrueŽ“¬;ަ‘ +­elseŽ‘!Øà±bppŽ‘1Ïɵ:±se–ÿ}'c“ondŽ‘§Çµ:bŽ‘¬=‘DZfalseŽ‘v\¬;ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"on_segment.first® ´==Ž‘kÆÜ® ´"Ž‘y”V°‘DZon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘5&„µ:± rstŽ‘|°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"on_segment.second® ´=Ž‘kÆÜ=® ´"Ž‘~ÔS°‘DZon‘‰ffŽ‘®se‘ÿ}'gmentŽ‘5&„µ:±se–ÿ}'c“ondŽ‘ nß°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘ +°gަ‘ +­ifŽ‘´ù¬(±bppŽ‘öéµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ «µ°6¬=‘Ç´INVALID_POINTŽ‘GY¬)‘°fަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Transforming® ´bpp.seŽ‘kÆÜcond.pt\n"Ž’£”>°‘DZ ushŽ‘€¬;ަ‘±bppŽ‘#öëµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ «µ°¬=ŽŽ‘9ì±t‘‰ffŽ‘®inverseŽ‘CI¬;ަ‘ +°gަ‘ +­elseŽ‘!Øà°fަ‘±bppŽ‘#öëµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ «µ¬=‘Ç´INVALID_POINTŽ‘GY¬;ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"bpp.second.pt® ´is® ´inŽ‘kÆÜvalid\n"Ž’™D°‘DZ ushŽ‘€¬;ަ‘ +°gަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"rr.first® ´==® ´"Ž‘O”n°‘DZrrŽ‘ Ìiµ:± rstŽ‘|°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"rr.second® ´==® ´"Ž‘TÔk°‘DZrrŽ‘ Ìiµ:±se–ÿ}'c“ondŽ‘ nß°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"bpp.first.b® ´==® ´"Ž‘_Te°‘DZbppŽ‘¾µ:± rstŽ‘µªµ:bŽ‘°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±c‘ÿ}'outŽ‘* Q°‘Ç´"bpp.second.b® ´==® ´"Ž‘d”b°‘DZbppŽ‘¾µ:±se–ÿ}'c“ondŽ‘§Çµ:bŽ‘°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;ަ‘±bppŽ‘#öëµ:± rstŽ‘µªµ:±ptŽ‘ äµ:±showŽ‘Šÿ¬(´"bpp.first.pt"Ž‘J>¬);ަ‘±bppŽ‘#öëµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ äµ:±showŽ‘Šÿ¬(´"bpp.second.pt"Ž‘OF;¬);ަ‘ +°gަ‘ +­returnŽ‘-æ»±bppŽ‘=ݤ¬;‘qǰg‘µ=°‘ÿý¬End–UUof“coplanar“case.‘o°µ=ŽŽŽŒ‹§å Šn ý‘ì¬284–¯P‘ÿJªARALLEL‘ÕXCASE’ ´3DLDF-1.1.5.1“°x¬1006Ž €n ý•@P­1006.‘ üP®9arallel‘ÕTcase.Ž©°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°ޤ ‘ +­elseŽ‘!Øà°fŽ¡‘±c‘ÿ}'errŽ‘+ýû°‘HS´"WARNING!® ´In® ´Reg_Cl_Ž‘nHPlane_Curve::interseŽ’×GÛction_points():\n"Ž’;–`°Ž¡‘(´"Line® ´and® ´Reg_Cl_PlaŽ’ÿÈne_Curve® ´are® ´in® ´paraŽ’ùÿŒllel® ´planes.\n"Ž’O€n°Ž¡‘(´"No® ´intersections.® ´RŽ’ÿÈeturning® ´INVALID_BOOŽ’ùÿŒL_POINT_PAIR."Ž’FÌⰑDZend‘‚ØlŽ–ò°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼´INVALID_BOOL_POINT_PAIRŽ’±,߬;Ž¡‘ +°gŽ¡‘ +g‘µ=°‘ÿý¬End–UUof“parallel“and“coplanar“cases.‘o°µ=ŽŸ­1007.› üP®9erpQÇendicular–gÔand“non-coplanar“cases.˜¬[²LDF‘T2003.06.13.¬]Ž‘Z(þThese–öcases“are“handled“in“exactlyŽ¡the–UUsame“w•¸ãa“y‘ÿ*ª.ަ°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°Ž¡‘ +­elseŽ‘!Øà°fŽ¡‘­ifŽ‘´ú¬(±plŽ‘ 6 µ:±normalŽ–#а‘DZpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘,£©°_‘8à±plŽ‘ nëµ:±normalŽ“°‘ÇŽ‘ +Ž6±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘21ç¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"The® ´line® ´is® ´perpendŽ‘kÆÜicular® ´to® ´the® ´"Ž’½Ô/°‘Ç´"Reg_Cl_Plane_Curve.Ž‘kÆÜ\n"Ž‘~ÔS°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"The® ´line® ´and® ´the® ´ReŽ‘kÆÜg_Cl_Plane_Curve® ´"Ž’Í”&°‘Ç´"are® ´non-coplanar.\nŽ‘kÆÜ"Ž‘tTY°‘DZ ushŽ‘€¬;Ž¡‘°gަ‘­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§±bpŽ‘ZI.¬=‘DZplŽ‘ ý#µ:±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘M–Ö¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ã¬);ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±bpŽ‘(Ú|µ:±ptŽ‘ äµ:±showŽ‘Šÿ¬(´"bp.pt"Ž‘%FS¬);Ž¡‘°gަ‘­shortŽ‘1Ê¥µsŽ‘9A½¬=‘DZlo–ÿ}'c“ationŽ‘%ˆ•¬(±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ñóµ;‘ª¨±bpŽ‘ …!µ:±ptŽ‘ ä¬);ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"location:® ´s® ´==® ´"Ž‘_Te°‘ǵsŽ‘ +>0°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(µsŽ‘w>‘Ç°Ž‘ +Ž6¬1Ž‘Ž7)‘°fŽ¡‘±bppŽ‘-öìµ:± rstŽ‘µªµ:±ptŽ‘ «µ¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ ä¬;Ž¡‘±bppŽ‘-öìµ:± rstŽ–µªµ:bŽ‘¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ã¬)µ:± rstŽ“¬;Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"On® ´segment:® ´==® ´"Ž‘_Te°‘DZbppŽ‘¾µ:± rstŽ‘µªµ:bŽ‘°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½±bppŽ‘Qݦ¬;Ž¡‘°gŽ¡‘­elseŽ‘+ØáreturnŽ‘O¿›´INVALID_BOOL_POINT_PAIRޒɾ¬;Ž¡‘ +°g‘µ=°‘ÿý¬End–UUof“\P¸ãerpGendicular“and“non-coplanar“cases".‘o°µ=Ž¡‘ +°gŽŸ­1008.‘ üP•®9ath‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.20.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2003.07.16.¬]Ž‘YÖChanged–kðname“of“±c‘ÿ}'enterŽ‘"ák¬argumenš¸ãt“to“±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘]ã¬,‘q–bGecause“I'v˜e“made“±c‘ÿ}'enterŽ‘"ák¬a“data“mem˜bGerŽ¡of‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘lLí¬.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯987“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[dï±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’¬ñά(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘]ÓPµ;‘ª¨­constŽ‘ÕJP®9athŽ‘;¼¬&Ž‘Cƒ!µpŽ‘H‹!¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹¹p Šn ý‘ì°x¬1009›¯3DLDF-1.1.5.1’ú¡­P–ÿ +«A“TH‘ÕX¯ARÃŽGUMENTS˜¬285Ž €n ý•@P­1009.Ž©°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[ïRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’Åy‹¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã¬(­constŽ‘G¢P•®9oin“tŽ‘=T?¬&Ž‘E]±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘^ Pµ;‘ª¨­constŽ‘òJP®9athŽ‘;ö¬&Ž‘C½!µpŽ‘HÅ!¬)Ž¡‘2­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(°:µpŽ‘:±is‘‰ffŽ‘®line‘ÿ}'arŽ‘%}¬(‘ª¨))‘°fŽ¡‘±c‘ÿ}'errŽ‘6D°‘K›´"ERROR!® ´In® ´Reg_Cl_PlŽ‘nK_ane_Curve::intersectŽ’×K#ion_points():\n"Ž’1ö°Ž¡‘2´"Path® ´argument® ´p® ´is® Ž’šÿÉ´non-linear.® ´"Ž’â»ç°‘õÝ´"Returning® ´INVALID_BŽ‘kõ¡OOL_POINT_PAIR.\n\n"Ž’Øqª°Ž¡‘2± ushŽ‘G¹¬;Ž¡‘­returnŽ‘Aæ½´INVALID_BOOL_POINT_PAIRŽ’»,à¬;Ž¡‘°gŽ¡‘­returnŽ‘7æ¼±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’‰s›¬(±r‘ÿ}'ef‘‰ffŽ‘®ptŽ‘ñóµ;‘ª¨pŽ–²¨:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘)µ;‘ª¨pŽ“:±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>¬(‘ª¨));Ž¡‘ +°gŽŸ­1010.› üReg‘°¡‰ffs4Ž–#ÕCl‘°¡‰ffs4Ž“Plane‘°¡‰ffs4Ž“Curv•®9e‘ÕTsegmen“ts.˜¬The–UUfunctions“in“this“section“require“that“theŽ¡­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘m°;¬ha•¸ãv“e–¸£a“meaningful“±c‘ÿ}'enterŽ‘ Â.¬,‘win“order“to“makš¸ãe“it“pGossible“to“rotate“the“segmen˜ts.Ž¡[²LDF‘T2003.07.16.¬]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.16.¬]Ž‘ZFìAdded–”this“section“and“its“subsections,‘ã²including“the“declarations“and“de nitions“ofŽ¡±se‘ÿ}'gmentŽ‘#õ¡¬(–ª®),‘UU±halfŽ‘Îë¬(“),–UUand“±quarterŽ‘$Z›¬(‘ª®).‘qÇThey“wš¸ãere“formerly“mem˜bGers“of“­CircleŽ‘!¸¬.ަŸüÈ„`ÕÁGŽŽŸ­1011.– üSegmenš®9t.“¬[²LDF‘T2002.11.10.¬]Ž‘Zçë±se‘ÿ}'gmentŽ‘~ÝŒ¬(‘ª®)–µ +returns“a“subpath“of“the“­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv˜eŽ‘pa¬¬repre-Ž¡senš¸ãting–UUa“segmen˜t“of“°Ž‘UV±thisŽ‘A ¬.Ž©­in®9tŽ‘¤÷±factorŽŽ‘Lºö¬Determines–²›hoš¸ãw“large“a“segmen˜t“of“the“­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘p\άis“returned.‘‰˜±factorŽ‘$@¬m˜ustŽ¡‘LºöbšGe–UUµ>‘Ǭ1“and“less“than“or“equal“to“the“n•¸ãum“b˜er–UUof“p˜oin¸ãts“on“the“­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘lLí¬.ަ­realŽ‘³.±angleŽŽ‘Lºö¬Optional,›with–ã|0“as“the“default.‘=If±angleŽ‘£Ï¬is“°6¬=‘´0,˜a“­P•®9oin“tŽ‘#a@¬is“found“in“the“direction“of“theŽ¡‘Lºönormal–Ñrto“the“­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘nš|¬from“the“cen¸ãter“of“the“­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘kÉ +¬,‘ëÒandŽ¡‘Lºöthe–UUsegmenš¸ãt“is“rotated“around“the“cen˜ter“and“this“­P•®9oin“tŽ‘ï¬.ަ­b•QÇo“olŽ‘¡f±close‘ÿ}'dŽŽ‘Lºö¬If‘F¨±trueŽ‘ @¬,‘|Ëthe‘F¨­P®9athŽ‘´¬is–F¨made“a“\­cycle¬"“and“the“ends“of“the“segmenš¸ãt“are“joined“b˜y“concatenatingŽ¡‘Lºöthe–Á6curvš¸ãed“­P®9athŽ‘ Ьwith“the“straigh˜t“line“segmen˜t“from“its“last“to“its“ rst“­P•®9oin“tŽ‘#´¬using“theŽ¡‘Lºöconnector‘UU´"&"Ž‘›´¬.ަ‘ +[²LDF‘T2003.07.27.¬]Ž‘Z{lTO‘È&DO:–ȆMakš¸ãe“argumen˜ts“­constޑӬ,‘%Rif“pšGossible.‘ËZ±angleŽ‘%T3¬can't“b˜e,‘%Rthough.‘ËZIf“±factorŽ‘$þ °Ž¡±numb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘JÀ©¬,–UUreturn“°Ž‘UV±thisŽ‘A ¬,“cast“to“a“­P®9athŽ‘湬,“with“w¸ãarning.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²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.05.20.¬]Ž‘Y;Changed–UUthe“w•¸ãa“y–UUthe“last“connector“is“set“when“±close‘ÿ}'dŽ‘!5ý°‘DZtrueŽ‘‹°¬.Ž¡‘ +[²LDF‘T2003.07.27.¬]Ž‘Y;Made‘UU­constŽ‘*¢¬.Ž¡‘ +[²LDF‘T2003.08.20.¬]Ž‘Zm¸BUG‘ºuFIX:–ºÒAdded“­unsignedŽ‘6W]shortŽ‘U‡}±subp‘ÿ}'ath‘‰ffŽ‘®sizeŽ’Š„¬.‘¢=Changed“the“w•¸ãa“y–ºÒthe“subpath“isŽ¡created,‘ Äwhen‘èá±close‘ÿ}'dŽ‘"ëR¬is‘èá±trueŽ‘­y¬.‘,kNoš¸ãw–èáconcatenating“the“curv˜ed“subpath“with“the“straigh˜t“line“segmen˜t“fromŽ¡the–UUlast“to“the“ rst“­P•®9oin“tsŽ‘&Î.¬of“the“subpath“using“´"&"Ž‘›´¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯987“°i‘Ǭ+°ŽŸ ‘ +­P®9athŽ‘%溱se‘ÿ}'gmentŽ‘IÜ[¬(­unsignedŽ‘07in®9tŽ‘AܱfactorŽ‘\ßãµ;‘ª¨­realŽ‘]Ö±angleŽ‘2åA¬=‘Ç0Ž‘Çµ;‘ª¨­b•QÇo“olŽ‘L±close‘ÿ}'dŽ‘9,¶¬=‘DZtrueŽ‘‹°¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹Ƕ Šn ý‘ì¬286–¯SEGMENT’*-3DLDF-1.1.5.1“°x¬1012Ž €n ý•@P­1012.Ž©°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°i‘Ǭ+°ޤ ‘ +­P®9athŽ‘%æºRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’ÞV¬::‘±se‘ÿ}'gmentŽ‘$õ¥¬(­unsignedŽ‘07in®9tŽ‘AܱfactorŽ‘\ßãµ;‘ª¨­realŽ‘]Ö±angleŽ‘0)µ;‘ª¨­b•QÇo“olŽ‘L±close‘ÿ}'dŽ‘6ež¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­P®9athŽ‘/滵pŽ‘4;ަ‘­ifŽ‘´ú¬(±factorŽ‘Êö°‘Ǭ1Ž‘ ÿù°_‘8à±factorŽ‘ Öµ>‘DZnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘M‡Á¬)‘°fŽ¡‘±c‘ÿ}'errŽ‘7žË°‘é"´"ERROR!® ´In® ´Reg_Cl_PlŽ‘oèæane_Curve::segment()Ž’Øèª:\n"Ž’õX(°Ž¡‘2´"The® ´argument® ´factorŽ’šÿÉ® ´has® ´an® ´invalid® ´valuŽ’ÿe:\n"Ž’$ÒÆ°‘ à±factorŽ‘'ž°Ž¡‘2´"\nReturning® ´empty® ´PŽ’šÿÉath.\n\n"Ž’ÊÆ¬;Ž¡‘­returnŽ‘Aæ½µpŽ‘F;Ž¡‘°gŽ¡‘­ifŽ‘´ú¬(±fabsŽ‘2Ò¬(±angleŽ‘ÀS¬)–ǵ>“¬360ŽŽ‘Ç)‘°fŽ¡‘±c‘ÿ}'errŽ‘7Yß°‘¤6´"WARNING!® ´In® ´Reg_Cl_Ž‘o£úPlane_Curve::segmentŽ’Ø£¾():\n"Ž’ÿNJ°Ž¡‘2´"The® ´argument® ´angle® Ž’šÿÉ´is® ´greater® ´than® ´360:Ž’ÿ® ´"Ž’ƒ°‘}±angleŽ‘"ºy°‘}±end‘‚ØlŽ‘ëè°Ž¡‘2´"It® ´will® ´be® ´reduced.Ž’šÿÉ\n\n"Ž’¸:°‘DZ ushŽ‘€¬;Ž¡‘°gަ‘­unsignedŽ‘D7shortŽ‘b³±subp‘ÿ}'ath‘‰ffŽ‘®sizeŽ’™Å_¬=‘Ç(±numb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘JÀ©µ=±factorŽ‘Þ¬)–8à+“1Ž‘8á;ަ‘µpŽ‘Ï¬=‘DZsubp‘ÿ}'athŽ‘$Az¬(0Ž‘µ;‘ª¨±subp‘ÿ}'ath‘‰ffŽ‘®sizeŽ‘6§<µ;‘ª¨±falseŽ‘Yìµ;‘ª¨´".."Ž‘1¬);Ž¡‘­forŽ‘%般(­unsignedŽ‘07shortŽ‘N±µiŽ‘T:½¬=‘Ç1Ž‘Ç;‘ÿýµiŽ‘ 9 <‘DZsubp‘ÿ}'ath‘‰ffŽ‘®sizeŽ‘9üŒ°‘8à¬1Ž‘8á;‘ýŸÿ³+‘ÿ+ŽŽ‘GµiŽ‘¹¬)‘µpŽ‘ Ϭ+=ŽŽ‘$l´".."Ž‘4ªÈ¬;Ž¡‘­ifŽ‘´ú¬(±close‘ÿ}'dŽ‘¬)‘°fŽ¡‘µpŽ‘%Ϭ+=ŽŽ‘8$o´"&"Ž‘Hjά;Ž¡‘µpŽ‘%Ϭ+=ŽŽ‘8$oµpŽ‘=,o:±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>¬(‘ª¨);Ž¡‘µpŽ‘%Ϭ+=ŽŽ‘8$o´"--"Ž‘MªË¬;Ž¡‘µpŽ‘%Ϭ+=ŽŽ‘8$oµpŽ‘=,o:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘);Ž¡‘µpŽ‘%Ϭ+=ŽŽ‘8$o´"&"Ž‘Hjά;Ž¡‘µpŽ‘#:±set‘‰ffŽ‘®cycleŽ‘&*¬(‘ª¨);Ž¡‘°gŽ¡‘±angleŽ‘.‡m¬=‘DZfmo‘ÿ}'dŽ‘G¬(±angleŽ‘ÀSµ;‘ª¨¬360ŽŽ‘ª«);Ž¡‘­ifŽ‘´ú¬(±angleŽ‘‡k°6¬=‘Ç0Ž‘Ç)‘°fŽ¡‘­P•®9oin“tŽ‘<ï ±normalŽ‘` p¬=‘DZget‘‰ffŽ‘®normalŽ‘3QŒ¬(‘ª¨);ަ‘±normalŽ‘>V»µ:±shiftŽ‘}¬(±c‘ÿ}'enterŽ‘ ‹¬);Ž¡‘µpŽ‘#:±r‘ÿ}'otateŽ‘o>¬(±c‘ÿ}'enterŽ‘ ‹µ;‘ª¨±normalŽ‘"`µ;‘ª¨±angleŽ‘jû¬);Ž¡‘°gŽ¡‘­returnŽ‘7æ¼µpŽ‘<;Ž¡‘ +°gŽŸ­1013.– üHalf.“±halfŽ‘ù’¬(‘ª®)–ÎKcreates“a“curvš¸ãe“using“half“of“the“pGoin˜ts“in“±p‘ÿ}'ointsŽ‘$Á+¬starting“from“pGoin˜t“0.‘ܨIf“theŽ¡argumenš¸ãt‘ªÉ±angleŽ‘å¬is–ªÉnot“zero,‘À&the“resulting“­P®9athŽ‘æö¬is“rotated“b˜y“that“amoun˜t“abGout“a“line“from“±c‘ÿ}'enterŽ‘#_¬in“theŽ¡direction–e½of“the“normal“to“the“­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘l]U¬.‘¢þIf“the“argumenš¸ãt“±close‘ÿ}'dŽ‘!å +¬is“±trueŽ‘*U¬,‘i×then“the“segmen˜t“isŽ¡closed–UUand“can“bGe“ lled“using“± l‘‚ØlŽ‘H¬(›ª®)“or“± l‘‚Øldr‘ÿ}'awŽ‘$¼À¬(˜).ަ°h–ª¨¬Declare‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯987“°i‘Ǭ+°Ž¡‘ +­inlineŽ‘)ŠIP®9athŽ‘Eq±halfŽ‘W꘬(­realŽ‘³.±angleŽ‘1:™¬=‘Ç0Ž‘Çµ;‘ª¨­b•QÇo“olŽ‘L±close‘ÿ}'dŽ‘9,¶¬=‘DZtrueŽ‘‹°¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±se‘ÿ}'gmentŽ‘[Ü]¬(2Ž‘µ;‘ª¨±angleŽ‘jûµ;‘ª¨±close‘ÿ}'dŽ‘Ä8¬);Ž¡‘ +°gŽŸ­1014.– üQuarter.“±quarterŽ‘,…B¬(‘ª®)–0creates“a“curvš¸ãe“using“a“quarter“of“the“pGoin˜ts“in“±p‘ÿ}'ointsŽ‘!„¬starting“from“pGoin˜t“0.Ž¡If–'the“argumenš¸ãt“±angleŽ‘¬is“not“zero,‘0\the“resulting“­P®9athޑߠ¬is“rotated“b˜y“that“amoun˜t“abGout“a“line“from“±c‘ÿ}'enterŽ‘"WǬinŽ¡the–ïâdirection“of“the“normal“to“the“­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘kçz¬.‘OöIf“the“argumenš¸ãt“±close‘ÿ}'dŽ‘ ùT¬is“±trueŽ‘´z¬,‘,then“the“segmen˜tŽ¡is–UUclosed“and“can“bGe“ lled“using“± l‘‚ØlŽ‘H¬(›ª®)“or“± l‘‚Øldr‘ÿ}'awŽ‘$¼À¬(˜).ŽŽŽŒ‹Û Šn ý‘ì°x¬1014–¯3DLDF-1.1.5.1’*@ QUAR‘ÿJªTER“¬287Ž €n ý•@P°h–ª¨¬Declare‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯987“°i‘Ǭ+°ޤ ‘ +­inlineŽ‘)ŠIP®9athŽ‘Eq±quarterŽ‘fvH¬(­realŽ‘³.±angleŽ‘1:™¬=‘Ç0Ž‘Çµ;‘ª¨­b•QÇo“olŽ‘L±close‘ÿ}'dŽ‘9,¶¬=‘DZtrueŽ‘‹°¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­returnŽ‘7æ¼±se‘ÿ}'gmentŽ‘[Ü]¬(4Ž‘µ;‘ª¨±angleŽ‘jûµ;‘ª¨±close‘ÿ}'dŽ‘Ä8¬);Ž¡‘ +°gŽŸ­1015.‘ üPutting›ÕTReg‘°¡‰ffs4Ž–#ÕCl‘°¡‰ffs4Ž“Plane‘°¡‰ffs4Ž“Curv®9e˜together.Ž¡‘ +¬This–UUis“what's“compiled.ŽŸ‘ +°h–ª¨¬Include‘UU les‘@¯6“°iŽ¡‘ +h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°iŽ¡‘ +h–ª¨¬De ne‘UU­classŽ‘5¦Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’‹mB¯985“°iŽ¡‘ +h–ª¨¬De ne‘UU­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘o¢B¬functions‘@¯993“°iŽŽŽŒ‹ 믠Šn ý‘ì¬288‘¯PUTTING›ÕX­REG‘°¡‰ffs4Ž–#ÕCL‘°¡‰ffs4Ž“PLANE‘°¡‰ffs4Ž“CUR‘þ¸äVE˜¯TOGETHER‘o¾{3DLDF-1.1.5.1‘°x¬1016Ž €n ý•@P­1016.‘ ü¬This–UUis“what's“written“to“®curves.h¬.Ž©øÜ°h‘ª¨´curves.hŽ‘5°ù¯1016‘ª¨°i‘Çޤ ‘ +h–ª¨¬De ne‘UU­classŽ‘5¦Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’‹mB¯985“°iŽŸ­1017.– üP®9olygon“(®polygons.web­).ŽŸ?òŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.18.¬]Ž‘XÍÀRemo•¸ãv“ed–Úthe“transformation“sections“from“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘D™Ž¬,‘&Œand“made“them“mem¸ãbGers“ofŽ¡­P®9olygonŽ‘)î¬.‘qÇAlso,›UUremo•¸ãv“ed˜the˜­RectangleŽ‘8ê?¬v“ersions˜in˜®rectangs.web¬.Ž¡‘ +[²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ŽŽ¦‘ +­formatŽ‘3c(±PolygonŽ‘_£:PathŽŽ¦°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘Ǭ+°Ž¡‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´polygons.web,vŽ‘kÆÜ® ´1.4® ´2004/01/12® ´21:3Ž’ÔÆ 2:08® ´lfinsto1® ´Exp® ´$"Ž’>L̬;ŽŸ­1018.‘ ü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"ŽŽ¡¬#­includeŽ‘'Ø~´"points.h"ŽŽ¡¬#­includeŽ‘'Ø~´"lines.h"ŽŽ¡¬#­includeŽ‘'Ø~´"planes.h"ŽŽ¡¬#­includeŽ‘'Ø~´"paths.h"ŽŽ¡¬#­includeŽ‘'Ø~´"curves.h"ŽŽŸ­1019.› üP®9olygon–eæclass“de nition.˜¬LDF‘ÒëUndated.‘êë­P®9olygonŽ‘2Âå¬is–Ó derivš¸ãed“from“­P®9athŽ‘dp¬.‘êëThis“mak˜es“sense,Ž¡bGecause–Mèa“­P®9olygonŽ‘/ ¾¬is“really“just“a“kind“of“­P®9athŽ‘ßL¬.‘oMThis“w•¸ãa“y‘ÿ*ª,‘Odw“e–Mèdon't“ha•¸ãv“e–Mèto“de ne“the“dra¸ãwing“and“ llingŽ¡functions,–UUor“the“transformations.Ž¡‘ +[²LDF‘T2003.06.06.¬]Ž‘YÔ^­P®9olygonŽ’†úĬis–!xmean¸ãt“to“bšGe“used“primarily“as“a“base“class“for“more“sp˜ecialized“t¸ãyp˜es“ofŽ¡pGolygons.–ÄpCurrenš¸ãtly‘ÿ*ª,‘wÆ­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘Hg]¬and‘pã­RectangleŽ‘9![¬are‘pãde ned.“I'v˜e–pãadded“­P®9olygonŽ‘/æ´¬so“that“I‘pÛcan“de neŽ¡inš¸ãtersection–UUfunctions“that“will“w˜ork“for“bGoth“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬and“­RectangleŽ‘5”ê¬.ŽŸ±¹Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.06.¬]Ž‘Y;Added‘UU­classŽ‘5¦P®9olygonŽ‘G:”¬.ŽŸŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­classŽ‘5¦P®9olygonŽ‘Kz˜¯1019“°i‘ÇŽ¡‘ +­classŽ‘$àRP®9olygonŽ‘Q:•¬:‘qÇ­publicŽ‘'ñP®9athŽ‘B몰fŽ¡‘ +­protectedŽ‘:o™¬:‘­P•®9oin“tŽ‘#ï±c‘ÿ}'enterŽ‘?ù(¬;ަ‘ +­publicŽ‘)=Ö¬:‘°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°iŽ¡‘ +g¬;ŽŸ øÜ¯This–ÕXco¬to“­P®9olygonŽ‘,³¬.‘Y—Also“remo•¸ãv“ed– Åthe“­RectangleŽŽ¡¬vš¸ãersions,–UUsince“­RectangleŽ‘8ê?¬inherits“the“­P®9olygonŽ‘/¯˜¬v˜ersions.ŽŸŸüÈ„`ÕÁGŽŽ¦­1022.‘ ünon-const‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.04.24.¬]Ž‘Y;Added–UUthis“function.Ž¡‘ +[²LDF‘T2003.05.09.¬]Ž‘Y;Changed–UUreturn“v‘ÿqÇalue“from“­P•®9oin“tŽ‘"Dò¬&Ž‘-aeto“­constŽ‘!÷P•®9oin“tŽ‘@o”¬&Ž‘H6².ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘ÇŽŸ ‘ +­virtualŽ‘/ÔconstŽ‘M¸vP•®9oin“tŽ‘l¨¬&Ž‘to1±get‘‰ffŽ‘®c‘ÿ}'enterŽ’ ¬x¬(‘ª¨);ޤ ¯See–ÕXalso“sections“1024,“1028,“1037,“1039,“1045,“1047,“1050,“1052,“1054,“1056,“1059,“1061,“1064,“and“1066.Ž¡This–ÕXco¬(‘ª®)–UUto“generate“±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘A¬.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°ަ‘ +­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[dï±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’¬ñά(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±pt0Ž‘TJ˜µ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±pt1Ž‘Uõ@¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹#5 Šn ý‘ì°x¬1029–¯3DLDF-1.1.5.1’t¹­POINT‘ÕX¯VERSION“¬291Ž €n ý•@P­1029.Ž©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°ޤ ‘ +­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[~HP®9olygonŽ’…ƒ:¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã¬(­constŽ‘CûP•®9oin“tŽ‘=Lñ¬&Ž‘E±pt0Ž‘T}Jµ;‘ª¨­constŽ‘î£P•®9oin“tŽ‘>÷™¬&Ž‘F¾·±pt1Ž‘V'ò¬)‘n®­constŽ‘Cû°f‘n®­b•QÇo“olŽŽ¡‘2´DEBUGŽ‘Ov¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Entering® ´Polygon::iŽ‘kÆÜntersection_points()Ž’ÔÆ .\n"Ž’í°‘Ç± ushŽ‘€¬;Ž¡‘´DEBUGŽ‘;t¬=‘DZfalseŽ‘v\¬;ަ‘­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘oHȱbppŽ’‚ɬ=‘Ç´INVALID_BOOL_POINT_PAIRŽ‘| ;¬;‘µ=°‘ãÔ¬The–9,return“v‘ÿqÇalue.‘hd[²LDF‘T2003.06.13.¬]Ž‘Tÿ°µ=Ž¡‘­PlaneŽ‘>6»±plŽ‘J3Þ¬=‘DZget‘‰ffŽ‘®planeŽ‘+>¬(‘ª¨);Ž¡‘­P•®9oin“tŽ‘<ï ±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘d“Q¬(±pt1Ž–¢°‘8à±pt0Ž“¬);Ž¡‘­P•®9oin“tŽ‘<ï ±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘z®L¬(±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘)–8à°“±c‘ÿ}'enterŽ‘Bk¬);ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±plŽ‘16µ:±p‘ÿ}'ointŽ‘.Œµ:±showŽ‘Šÿ¬(´"pl.point"Ž‘5J¬);Ž¡‘(±plŽ‘16µ:±normalŽ‘ V¸µ:±showŽ‘Šÿ¬(´"pl.normal"Ž‘:FG¬);Ž¡‘(±pt0Ž‘7i?µ:±showŽ‘Šÿ¬(´"pt0"Ž‘ÆY¬);Ž¡‘(±pt1Ž‘7i?µ:±showŽ‘Šÿ¬(´"pt1"Ž‘ÆY¬);Ž¡‘(±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘O£µµ:±showŽ‘Šÿ¬(´"pt_vector"Ž‘:FG¬);Ž¡‘(±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘e¾°µ:±showŽ‘Šÿ¬(´"surface_vector"Ž‘T†8¬);Ž¡‘°gަ‘­P•®9oin“tŽ‘<ï ±cr‘ÿ}'ossŽ‘V£Ö¬=‘DZsurfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@…ĵ:±cr–ÿ}'oss‘‰ffŽ‘®pr“o“ductŽ‘:Œé¬(±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘'£±¬);ަ‘±cr‘ÿ}'ossŽ‘4í!µ:±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u¬(±trueŽ‘ʬ);Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±cr‘ÿ}'ossŽ‘>í"µ:±showŽ‘Šÿ¬(´"cross"Ž‘%FS¬);Ž¡‘(±plŽ‘16µ:±normalŽ‘ V¸µ:±showŽ‘Šÿ¬(´"pl.normal"Ž‘:FG¬);Ž¡‘°gަ‘­shortŽ‘;ʦ±distanc‘ÿ}'eŽ‘b×»¬=‘DZplŽ‘ ý#µ:±get‘‰ffŽ‘®distanc‘ÿ}'eŽ‘4y¹¬(±pt0Ž‘i;¬)µ:±se–ÿ}'c“ondŽ‘§Ç¬;ŽŸ­1030.‘ üDegenerate–ÕTcases,“error“handling.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­ifŽ‘qv¬(±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘*jɰ‘Ç´INVALID_POINTŽ–I?5°_‘±Ü±plŽ› +ççµ:±normalŽ‘#а‘Ç´INVALID_POINTŽ“°_‘±Ü±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘,¥°‘DZoriginŽ‘o°_‘±Ü±plŽ˜µ:±normalŽ‘#а‘DZoriginŽ‘½9¬)Ž¡‘°fŽ¡‘±c‘ÿ}'errŽ‘-½ø°‘P´"ERROR!® ´In® ´Polygon::Ž‘pintersection_points(Ž’ÙØ):\n"Ž’úÖ°Ž¡‘(´"Something® ´is® ´wrong® Ž’ÿÈ´with® ´the® ´normals:\n"Ž’ú…ô¬;Ž¡‘±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘;£³µ:±showŽ‘Šÿ¬(´"pt_vector:"Ž‘?†D¬);Ž¡‘±plŽ‘6 µ:±normalŽ‘ V¸µ:±showŽ‘Šÿ¬(´"pl.normal"Ž‘:FG¬);Ž¡‘±c‘ÿ}'errŽ‘)|À°‘Ç´"Returning® ´INVALID_BŽ‘kÆÜOOL_POINT_PAIR.\n\n"Ž’Ø °‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Polygon::inŽ‘kÆÜtersection_points().Ž’ÔÆ \n\n"Ž’òT°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼´INVALID_BOOL_POINT_PAIRŽ’±,߬;Ž¡‘ +°gŽŸ­1031.‘ üP®9arallel–ÕTand“coplanar“cases.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.20.¬]Ž‘Y;No•¸ãw›UUc“hec“king˜±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘DiV¬against˜±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘.N[¬in˜the˜follo“wing˜conditional.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­elseŽ‘?ìifŽ‘*›¬(±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@…ݑDZpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘*ǰ_\R±surfac–ÿ}'e‘‰ffŽ‘®ve“ctorŽ‘@â°‘ÇŽ‘ +Ž6±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘2Ž9°_\R±cr‘ÿ}'ossŽ–ˆ°‘DZplŽ‘ ý#µ:±normalŽ‘ ³ +°_\R±cr‘ÿ}'ossŽ“°‘ÇŽ‘ +Ž6±plŽ‘ÄAµ:±normalŽ‘ V¸¬)Ž¡‘°fŽŽŽŒ‹$Ÿ Šn ý‘ì¬292–¯COPLANAR‘ÕXCASE’ +G 3DLDF-1.1.5.1“°x¬1032Ž €n ý•@P­1032.– üCoplanar‘m°case.“¬[²LDF‘T2003.06.13.¬]Ž‘[ ²Only–ÙÑthose“inš¸ãtersection“pGoin˜ts“that“are“on“the“line“segmen˜tsޤ making–M-of“the“­P®9olygonŽ‘/ŸH¬are“returned“in“±bppŽ‘D¬.‘oIf“an“inš¸ãtersection“­P•®9oin“tŽ‘"4¢¬lies“on“bGoth“segmen˜ts,‘NÏthe“­b•QÇo“olŽ‘æk¬partŽ¡of–ÅÅthe“­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘:ÝЬwill“bšGe“±trueŽ‘Š]¬,‘â{otherwise“±falseŽ‘u ¬.‘AíIf“a“­P•®9oin“tŽ‘!%Ò¬lies“on“a“line“segmen¸ãt“b˜elonging“to“the“­P®9olygonŽ‘+ʳ¬,Ž¡but–dZnot“to“the“line“segmenš¸ãtŸúÙf“°ŽŽ‘ Ú”‘þãŽŽŽ‘Ž>‘þãŽŽŽ‘=Q!ŽŽŸ&š“µptŸÿ³0Ž‘|sµptŸÿ³1ŽŽŽŽŽ‘¦$¬,‘hthe“­P•®9oin“tŽ‘"bü¬will“bGe“put“in˜to“the“­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘8¶ ¬,‘hbut“the“­b•QÇo“olŽ‘Ŭwill“bGe“±falseŽ‘ž¬.Ž¡The–ùreason“for“this“is,‘>that“the“angles“of“the“sides“of“the“­P®9olygonŽ‘/ à¬can“cause“inš¸ãtersection“pGoin˜ts“to“bGe“found,Ž¡that–UUthe“user“probably“wš¸ãon't“w˜an˜t.Ž©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±distanc‘ÿ}'eŽ‘' °‘Ǭ0Ž‘Ç)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Line® ´and® ´Polygon® ´arŽ‘kÆÜe® ´coplanar.\n"Ž’µÍ¬;ަ‘­b•QÇo“olŽ‘-¡h±foundŽ‘J:÷¬=‘DZfalseŽ‘v\¬;Ž¡‘­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§±bpŽ‘W‚¬;Ž¡‘­P•®9oin“tŽ‘2q0Ž‘>ƒ†¬;Ž¡‘­P•®9oin“tŽ‘2q1Ž‘>ƒ†¬;ަ‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±showŽ‘Šÿ¬(´"this"Ž‘ V¬);Ž¡‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘DZp‘ÿ}'ointsŽ–ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZp‘ÿ}'ointsŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘G±iterŽ‘"¬)‘°fŽ¡‘­ifŽ‘)´û¬((±iterŽ‘Þ¬+‘8à1Ž‘8á)–ǰ“±p‘ÿ}'ointsŽ‘ë­µ:±endŽ‘ಬ(‘ª¨))‘°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Doing® ´last® ´segment.Ž‘kÆÜ\n"Ž‘| ;¬;Ž¡‘(±q0Ž‘6[¬=‘Ç°Ž‘Ç¬(±p‘ÿ}'ointsŽ‘$•µ:±b‘ÿ}'ackŽ‘üì(‘ª¨));Ž¡‘(±q1Ž‘6[¬=‘Ç°Ž‘Ç¬(±p‘ÿ}'ointsŽ‘$•µ:±fr‘ÿ}'ontŽ‘I‘¬(‘ª¨));Ž¡‘°gŽ¡‘­elseŽ‘5Øâ°fŽ¡‘(­ifŽ‘3´ü¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Doing® ´normal® ´segmenŽ‘kÆÜt.\n"Ž’†5¬;Ž¡‘(±q0Ž‘6[¬=‘Ç°Ž‘ÇŽ‘ DZiterŽ‘’¬;Ž¡‘(±q1Ž‘6[¬=‘Ç°Ž‘ÇŽ‘ Ǭ(±iterŽ‘Þ¬+‘8à1Ž‘8á);Ž¡‘°gŽ¡‘±bpŽ‘+¡”¬=‘Ç­P•®9oin“tŽ‘ad¬::Ž‘%interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘s†x¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ãµ;‘ª¨±q0Ž– >µ;‘ª¨±q1Ž“¬);Ž¡‘­ifŽ‘)´û¬(±bpŽ‘ +Úyµ:bŽ‘Jª¬)‘µ=°‘ÿý¬In•¸ãtersection›UUpGoin“t˜is˜on˜bGoth˜segmen“ts.‘o°µ=Ž¡‘°fŽ¡‘(­ifŽ‘3´ü¬(°:±foundŽ‘Òw¬)‘°fŽ¡‘2±bppŽ‘Aöîµ:± rstŽ‘µªµ:bŽ‘¬=‘DZtrueŽ‘‹°¬;Ž¡‘2±bppŽ‘Aöîµ:± rstŽ‘µªµ:±ptŽ‘ «µ¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ ä¬;Ž¡‘2±foundŽ‘N™”¬=‘DZtrueŽ‘‹°¬;Ž¡‘2­ifŽ‘=´ý¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Found® ´first® ´interseŽ‘kÆÜction.\n"Ž’›)¬;Ž¡‘(°gŽ¡‘(­elseŽ‘?Øã°fŽ¡‘2±bppŽ‘Aöîµ:±se–ÿ}'c“ondŽ‘§Çµ:bŽ‘¬=‘DZtrueŽ‘‹°¬;Ž¡‘2±bppŽ‘Aöîµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ «µ¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ ä¬;Ž¡‘2­ifŽ‘=´ý¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Found® ´second® ´intersŽ‘kÆÜection.® ´Returning.\nŽ’ÔÆ "Ž’Ú¬;Ž¡‘2­returnŽ‘U濱bppŽ‘eݨ¬;Ž¡‘(°gŽ¡‘gŽ¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±bpŽ‘ +Úyµ:±ptŽ‘ «µ°6¬=‘Ç´INVALID_POINTŽ‘IÆ9°^‘8à±bpŽ‘ Yµ:±ptŽ‘ äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±q0Ž‘ “çµ;‘ª¨±q1Ž‘ >¬)µ:± rstŽ‘µª¬)‘°fŽ¡‘(­ifŽ‘3´ü¬(°:±foundŽ‘Òw¬)‘°fŽ¡‘2±bppŽ‘Aöîµ:± rstŽ‘µªµ:bŽ‘¬=‘DZfalseŽ‘v\¬;Ž¡‘2±bppŽ‘Aöîµ:± rstŽ‘µªµ:±ptŽ‘ «µ¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ ä¬;Ž¡‘2±foundŽ‘N™”¬=‘DZtrueŽ‘‹°¬;Ž¡‘2­ifŽ‘=´ý¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Found® ´first® ´interseŽ‘kÆÜction.\n"Ž’›)¬;Ž¡‘(°gŽ¡‘(­elseŽ‘?Øã°fŽ¡‘2±bppŽ‘Aöîµ:±se–ÿ}'c“ondŽ‘§Çµ:bŽ‘¬=‘DZfalseŽ‘v\¬;Ž¡‘2±bppŽ‘Aöîµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ «µ¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ ä¬;ŽŽŽŒ‹%  Šn ý‘ì°x¬1032–¯3DLDF-1.1.5.1’ +G COPLANAR‘ÕXCASE“¬293Ž €n ý•@P‘2­ifŽ‘=´ý¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Found® ´second® ´intersŽ‘kÆÜection.® ´Returning.\nŽ’ÔÆ "Ž’Ú¬;ޤ ‘2­returnŽ‘U濱bppŽ‘eݨ¬;Ž¡‘(°gŽ¡‘gŽ¡‘­elseŽ‘5Øâcon•®9tin“ueŽ‘`¿—¬;Ž¡‘°g‘µ=°‘ÿý­forŽ‘“+°µ=Ž¡‘­returnŽ‘7æ¼±bppŽ‘GÝ¥¬;Ž¡‘ +°g‘µ=°‘ÿý¬End–UUof“coplanar“case.‘o°µ=ŽŸ­1033.‘ üP®9arallel‘ÕTcase.ŽŸ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­elseŽ‘!Øà°fŽ¡‘±c‘ÿ}'errŽ‘-y °‘Ãd´"WARNING!® ´In® ´PolygonŽ‘oÃ(::intersection_pointŽ’ØÂìs():\n"Ž’Ì£°Ž¡‘(´"Line® ´and® ´Polygon® ´arŽ’ÿÈe® ´in® ´parallel® ´planesŽ’ùÿŒ.\n"Ž’P°Ž¡‘(´"No® ´intersections.® ´RŽ’ÿÈeturning® ´INVALID_BOOŽ’ùÿŒL_POINT_PAIR."Ž’FÌⰑDZend‘‚ØlŽ–ò°‘DZend‘‚ØlŽ“°‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘7æ¼´INVALID_BOOL_POINT_PAIRŽ’±,߬;Ž¡‘ +°gŽ¡‘ +g‘µ=°‘ÿý¬End–UUof“parallel“and“coplanar“cases.‘o°µ=ŽŽŽŒ‹&/ä Šn ý‘ì¬294›¯PERPENDICULAR–ÕXAND“NON-COPLANAR“CASES’ŠÃ3DLDF-1.1.5.1˜°x¬1034Ž €n ý•@P­1034.› üP®9erpQÇendicular–gÔand“non-coplanar“cases.˜¬[²LDF‘T2003.06.13.¬]Ž‘Z(þThese–öcases“are“handled“in“exactlyޤ the–UUsame“w•¸ãa“y‘ÿ*ª.Ž©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­elseŽ‘ .5°fŽ¡‘ +­ifŽ‘´ù¬(±plŽ‘ 6 µ:±normalŽ–#а‘DZpt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘,£©°_‘8à±plŽ‘ nëµ:±normalŽ“°‘ÇŽ‘ +Ž6±pt‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘21ç¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"The® ´line® ´is® ´perpendŽ‘kÆÜicular® ´to® ´the® ´PolygoŽ’ÔÆ n.\n"Ž’òT°‘DZ ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­elseŽ‘!Øà°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"The® ´line® ´and® ´the® ´PoŽ‘kÆÜlygon® ´are® ´non-coplanŽ’ÔÆ ar.\n"Ž’÷”°‘DZ ushŽ‘€¬;Ž¡‘ +°gަ‘ +­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘B§œ±bpŽ‘PI-¬=‘DZplŽ‘ ý#µ:±interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘M–Ö¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ã¬);ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±bpŽ‘Ú{µ:±ptŽ‘ äµ:±showŽ‘Šÿ¬(´"bp.pt"Ž‘%FS¬);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±bpŽ‘ +Úyµ:±ptŽ‘ «µ°‘DZc‘ÿ}'enterŽ‘У¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±c‘ÿ}'outŽ‘4 R°‘Ç´"bp.pt® ´==® ´center."Ž‘d”b°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘±bppŽ‘#öëµ:± rstŽ‘µªµ:±ptŽ‘ «µ¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ ä¬;Ž¡‘±bppŽ‘#öëµ:± rstŽ–µªµ:bŽ‘¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ã¬)µ:± rstŽ“¬;Ž¡‘­returnŽ‘7æ¼±bppŽ‘GÝ¥¬;Ž¡‘ +°gަ‘ +­P•®9oin“tŽ‘(ïž±r0Ž‘4!c¬;Ž¡‘ +­P•®9oin“tŽ‘(ïž±r1Ž‘4!c¬;ަ‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±showŽ‘*‹¬(´"this:"Ž‘%FS¬);Ž¡‘±c‘ÿ}'enterŽ‘0 µ:±showŽ‘Šÿ¬(´"center"Ž‘*†P¬);Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"points.size()® ´==® ´"Ž‘iÔ_°‘DZp‘ÿ}'ointsŽ‘ë­µ:±sizeŽ‘\¬(‘ª¨)–ǰ“±end‘‚ØlŽ‘ò°“± ushŽ‘€¬;Ž¡‘ +°gŽ¡‘ +­forŽ‘臬(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘DZp‘ÿ}'ointsŽ–ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZp‘ÿ}'ointsŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘G±iterŽ‘"¬)‘UU°fŽ¡‘ +­ifŽ‘´ù¬((±iterŽ‘Þ¬+‘8à1Ž‘8á)–ǰ“±p‘ÿ}'ointsŽ‘ë­µ:±endŽ‘ಬ(‘ª¨))‘°fŽ¡‘±r0Ž‘!øß¬=‘Ç°Ž‘Ç¬(±p‘ÿ}'ointsŽ‘$•µ:±b‘ÿ}'ackŽ‘üì(‘ª¨));Ž¡‘±r1Ž‘!øß¬=‘Ç°Ž‘Ç¬(±p‘ÿ}'ointsŽ‘$•µ:±fr‘ÿ}'ontŽ‘I‘¬(‘ª¨));Ž¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘±r0Ž‘)1ȵ:±showŽ‘Šÿ¬(´"r0"Ž‘†\¬);Ž¡‘±r1Ž‘)1ȵ:±showŽ‘Šÿ¬(´"r1"Ž‘†\¬);Ž¡‘°gŽ¡‘ gŽ¡‘ -ÂelseŽ‘!Øà·fŽ¡‘Ïr0Ž‘!øß«=‘Ç·Ž‘ÇŽ‘ ÇÏiterŽ‘’«;Ž¡‘Ïr1Ž‘!øß«=‘Ç·Ž‘ÇŽ‘ Ç«(ÏiterŽ‘Þ«+‘8à1Ž‘8á);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÏbpŽ‘ -Úy±:ÏptŽ– «µ·‘ÇÏr0Ž‘1½·_‘8àÏbpŽ‘ Y±:ÏptŽ“·‘ÇÏr1Ž‘ øÝ«)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘ÂifŽ‘)´û«(ÏbpŽ‘ -Úy±:ÏptŽ‘ «µ·‘ÇÏr0Ž‘ øÝ«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"bp.ptÈ Ý==È Ýr0."Ž‘O”n·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂelseŽ‘4.7ifŽ‘?ã/«(ÏbpŽ‘ -Úy±:ÏptŽ‘ «µ·‘ÇÏr1Ž‘ øÝ«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"bp.ptÈ Ý==È Ýr1."Ž‘O”n·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘ÏbppŽ‘#öë±:Ï rstŽ‘µª±:ÏptŽ‘ «µ«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä«;Ž¡‘ÏbppŽ‘#öë±:Ï rstŽ–µª±:bŽ‘«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã«)±:Ï rstŽ“«;Ž¡‘ÂreturnŽ‘7æ¼ÏbppŽ‘GÝ¥«;Ž¡‘ -·gŽŽŽŒ‹DC Šn ý‘ì·x«991›­3DLDFPRÃŽG’˜6˜PERPENDICULAR–ÕXAND“NON-COPLANAR“CASES˜«287Ž €n ý•@PÂ991.‘ ü«[¬LDF‘T2003.06.24.«]Ž‘Zˆ6ÝDEBUGŽ‘x£ä«is–UUpassed“as“the“Ïverb‘ÿ}'oseŽ‘'<«argumen¸ãt“to“Ïis‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘<äö«(‘ª®).‘qÇSo,“ifޤ Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘QŒß«(›ª®)–Dis“bGeing“debugged,‘ÆÏis‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘>g«(˜)“will“prinš¸ãt“more“information.‘> Ho˜w˜ev˜er,‘ÆÝDEBUGŽ‘#Š5«inŽ¡Ïis‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘9¡«(‘ª®)–UUwill“not“bGe“set“to“ÏtrueŽ‘í«.Ž©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂelseŽŽ¡‘ifŽ‘´ú«(ÏbpŽ‘ -Úy±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘9¡«(Ïc‘ÿ}'enterŽ‘ ‹±;‘ª¨Ïr0Ž– Üm±;‘ª¨Ïr1Ž“±;‘ª¨ÝDEBUGŽ‘q«))‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"IntersectionÈ ÝpointÈ Ž‘kÆÜÝisÈ ÝwithinÈ Ýtriangle.\Ž’ÔÆ n"Ž’ßÍ«;Ž¡‘ÏbppŽ‘-öì±:Ï rstŽ‘µª±:ÏptŽ‘ «µ«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä«;Ž¡‘ÏbppŽ‘-öì±:Ï rstŽ–µª±:bŽ‘«=‘ÇÏbpŽ‘ ¡‘±:ÏptŽ‘ ä±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž‘ã«)±:Ï rstŽ“«;Ž¡‘ÂreturnŽ‘Aæ½ÏbppŽ‘Qݦ«;Ž¡‘·gŽ¡‘ -g–UUg‘±=·‘ÿý«End“of“\P¸ãerpGendicular“and“non-coplanar“cases".‘o·±=ŽŸÂ992.‘ üEnd–ÕTof“de nition.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"ExitingÈ ÝPolygon::inŽ‘kÆÜtersection_points().Ž’ÔÆ \n\n"Ž’òT·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂreturnŽ‘-æ»ÏbppŽ‘=ݤ«;‘qÇ·gŽŸÂ993.‘ üP•®9ath‘ÕTv“ersion.ަ·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[dïÏinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’¬ñΫ(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày«)‘UUÂconstŽ‘*¢«;ŽŸÂ994.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[dïP®9olygonŽ’…iá«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(·:±pŽ‘:Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘%}«(‘ª¨))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘5¼Y·‘°Ý"ERROR!È ÝInÈ ÝPolygon::Ž‘ntintersection_points(Ž’×8constÈ ÝPath&È Ýp):\n"Ž’;·Ž¡‘2Ý"PathÈ ÝpÈ ÝisÈ Ýnon-lineaŽ’šÿÉr.È ÝReturningÈ ÝINVALIŽ’ÿD_BOOL_POINT_PAIR.\nŽ’lÿQ\n"Ž’€ È·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_BOOL_POINT_PAIRŽ’»,à«;Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’‰s›«(±pŽ‘:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘)±;‘ª¨pŽ‘²¨:Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>«(‘ª¨));Ž¡‘ -·gŽŸÂ995.‘ üInš®9tersection–ê˜with“another“P˜olygon.‘ ü«TO‘‰DO:–‰7Explain“what“this“function“doGes“and“hoš¸ãw“it“w˜orks.Ž¡[¬LDF‘T2003.06.29.«]ŽŽ¡‘ -TO‘KDO:–ZFind“out“where“Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘3­Ï«(‘ª®)“gets“called,›$Œwhen“this“function“is“called,˜and“try“to“pass“ÏtrueŽ‘õL«as“itsŽ¡ÏsilentŽ‘ i«argumen¸ãt.‘qÇ[¬LDF‘T2003.07.16.«]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.29.«]Ž‘Y;Replaced–UUthe“dumm¸ãy“de nition“of“this“function“with“a“real“one.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·Ž¡‘ -Âv®9ectorŽ‘)ªI·hÂP•®9oin“tŽ‘šH·i‘UUÏinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘Tâ4«(ÂconstŽ‘*¢P®9olygonŽ‘J„å«&Ž‘RL±rŽ‘W«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹ R Šn ý‘ì«288›­INTERSECTION–ÕXWITH“ANOTHER“ÂPOL‘ÿ -«YGON’™ÔÄ­3DLDFPRÃŽG˜·x«996Ž €n ý•@PÂ996.Ž©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·ޤ ‘ -Âv®9ectorŽ‘)ªI·hÂP•®9oin“tŽ‘šH·i‘UUÂP®9olygonŽ‘-ZG«::‘Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã«(ÂconstŽ‘*¢P®9olygonŽ‘J„å«&Ž‘RL±rŽ‘W«)‘UUÂconstŽ‘*¢·f‘UUÂb•QÇo“olŽ‘ö»ÝDEBUGŽ‘:„,«=‘ÇÏfalseŽ‘v\«;Ž¡‘(±=·‘ÿýÏtrueޑĒ·±=Ž¡‘Âv®9ectorŽ‘=ªK·hÂP•®9oin“tŽ‘šH·i‘UU±vޑЫ;Ž¡‘ÂPlaneŽ‘>6»ÏplŽ‘J3Þ«=‘ÇÏget‘‰ffŽ‘®planeŽ‘+>«(‘ª¨);Ž¡‘ÂPlaneŽ‘>6»Ïr‘‰ffŽ‘®plŽ‘Rf«=‘DZrŽ‘‘,:Ïget‘‰ffŽ‘®planeŽ‘(vè«(‘ª¨);ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(ÏplŽ‘16±:ÏnormalŽ‘ V¸±:ÏshowŽ‘Šÿ«(Ý"pl.normal"Ž‘:FG«);Ž¡‘(Ïr‘‰ffŽ‘®plŽ‘9—±:ÏnormalŽ‘ V¸±:ÏshowŽ‘Šÿ«(Ý"r_pl.normal"Ž‘DÆA«);Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"pl.distanceÈ Ý==È Ý"Ž‘_Te·‘ÇÏplŽ‘ ý#±:Ïdistanc‘ÿ}'eŽ‘' ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"r_pl.distanceÈ Ý==È Ý"Ž‘iÔ_·‘ÇÏr‘‰ffŽ‘®plŽ‘⫱:Ïdistanc‘ÿ}'eŽ‘' ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·gަ‘ÂrealŽ‘4³1Ïdistanc‘ÿ}'eŽ‘[ÀF«=‘ÇÏfabsŽ‘ùê«(ÏfabsŽ‘2Ò«(ÏplŽ‘ 6 ±:Ïdistanc‘ÿ}'eŽ›$Eý«)–8à·“ÏfabsŽ‘k²«(Ïr‘‰ffŽ‘®plŽ‘“±:Ïdistanc‘ÿ}'eŽ˜«));ަ‘ÂifŽ‘)´û«(Ïdistanc‘ÿ}'eŽ‘' ±<‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÏepsilonŽ‘E^¦«(‘ª¨))‘Ïdistanc‘ÿ}'eŽ‘, «=‘Ç0Ž‘Ç;Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"distanceÈ Ý==È Ý"Ž‘O”n·‘ÇÏdistanc‘ÿ}'eŽ‘)Ô-·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘)´û«(ÏplŽ‘ 6 ±:ÏnormalŽ‘#з‘ÇÏr‘‰ffŽ‘®plŽ‘⫱:ÏnormalŽ‘ V¸«)‘UU·fŽŸÂ997.‘ üCoplanar‘ÕTcase.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂifŽ‘´ù«(Ïdistanc‘ÿ}'eŽ‘' ·‘Ç«0Ž‘Ç)‘·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"Coplanar.\n"Ž‘GY«;ަ‘Âb•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§ÏbpŽ‘W‚«;Ž¡‘ÂP•®9oin“tŽ‘2Ž‘7ï ÏptrŽ‘F,g«;Ž¡‘ÂP•®9oin“tŽ‘2Ž‘7ï Ïr‘‰ffŽ‘®ptrŽ‘Nï«;ަ‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'ointsŽ–ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘·fŽ¡‘ÂifŽ‘)´û«((ÏiterŽ‘Þ«+‘8à1Ž‘8á)–Ç·“Ïp‘ÿ}'ointsŽ›ë­±:ÏendŽ‘ಫ(‘ª¨))‘Ïptrޑ߫=“Ïp‘ÿ}'ointsŽ˜±:Ïfr‘ÿ}'ontŽ‘I‘«(‘ª¨);Ž¡‘ÂelseŽ‘5ØâÏptrŽ‘FÜÁ«=‘Ç·Ž‘Ç«(ÏiterŽ‘Þ«+‘8à1Ž‘8á);Ž¡‘ÂforŽ‘/×C«(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ÞW·Ž‘#ÞXi‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûr‘‰ffŽ‘®iterŽ‘^ú™«=‘DZrŽ–‘,:Ïp‘ÿ}'ointsŽ›$•±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘î·Ïr‘‰ffŽ‘®iterŽ‘ fU·6«=‘DZrŽ“:Ïp‘ÿ}'ointsŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘n·Ÿÿ®+‘ÿ+ŽŽ‘5×Ïr‘‰ffŽ‘®iterŽ‘)æ]«)‘·fŽ¡‘(ÂifŽ‘3´ü«((Ïr‘‰ffŽ‘®iterŽ‘éf«+‘8à1Ž‘8á)–Ç·“±rŽ›‘,:Ïp‘ÿ}'ointsŽ‘$•±:ÏendŽ‘ಫ(‘ª¨))‘Ïr‘‰ffŽ‘®ptrŽ‘ég«=“±rŽ˜:Ïp‘ÿ}'ointsŽ‘$•±:Ïfr‘ÿ}'ontŽ‘I‘«(‘ª¨);Ž¡‘(ÂelseŽ‘?ØãÏr‘‰ffŽ‘®ptrŽ‘XÂJ«=‘Ç·Ž‘Ç«(Ïr‘‰ffŽ‘®iterŽ‘éf«+‘8à1Ž‘8á);Ž¡‘(ÏbpŽ‘5¡•«=‘ÇÂP•®9oin“tŽ‘ad«::Ž‘%ï¢Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘s†x«(·Ž‘Ž‘ -ÏiterŽ‘˱;‘ª¨·Ž‘ª©ÏptrŽ‘çp±;‘ª¨·Ž‘ª©Ž‘ ªªÏr‘‰ffŽ‘®iterŽ‘$[0±;‘ª¨·Ž‘ª©Ïr‘‰ffŽ‘®ptrŽ‘Ìø«);Ž¡‘(ÂifŽ‘3´ü«(ÏbpŽ– -Úy±:bŽ‘Jª«)‘±vŽ‘ -4½:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÏbpŽ“±:ÏptŽ‘ ä«);Ž¡‘·g‘±=·‘ÿý«Inner‘UUÂforŽ‘胷±=Ž¡‘·g‘±=·‘ÿý«Outer‘UUÂforŽ‘胷±=Ž¡‘ÂreturnŽ‘7æ¼±vŽ‘=y«;Ž¡‘ -·gŽŸÂ998.‘ üP®9arallel‘ÕTcase.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂelseŽ‘0Øá±=·‘ÿý«P¸ãarallel.‘o·±=Ž¡‘ -·fŽ¡‘Ïc‘ÿ}'errŽ‘-V–·‘ îÝ"WARNING!È ÝInÈ ÝPolygoŽ‘o ²n::intersection_poinŽ’Ø vts():\n"Ž’ Ç´·Ž¡‘(Ý"TheÈ ÝPolygonsÈ ÝlieÈ ÝinŽ’ÿÈÈ ÝparallelÈ Ýplanes.È Ý"Ž’ø8Œ·‘ò•Ý"ReturningÈ ÝemptyÈ ÝvecŽ‘kòYtor.\n\n"Ž’Ãk&·Ž¡‘(Ï ushŽ‘=¹«;Ž¡‘ÂreturnŽ‘7æ¼±vŽ‘=y«;Ž¡‘ -·gŽ¡‘ -gŽŽŽŒ‹!`0 Šn ý‘ì·x«999›­3DLDFPRÃŽG’¸iêNON-P‘ÿJªARALLEL,–ÕXNON-COPLANAR“CASE˜«289Ž €n ý•@PÂ999.– üNon-parallel,‘non-coplanar‘kþcase.“±vŽ‘®u«will–ù¼conš¸ãtain“the“in˜tersection“pGoin˜ts“of“the“ÂLineŽ‘Kû±lŽ‘"sñ«with“·Ž‘ù½ÏthisŽŽ¤ «and‘µ‚±rŽ‘–«,‘Íif–µ‚anš¸ãy‘ÿ*ª.‘’M±vŽ‘|Œ«can“con˜tain“a“maxim˜um“of“four“ÂP•®9oin“tsŽ‘'Žˆ«in“this“case.‘’M±vŽ‘ -Ç -«[0Ž›]“and“±vŽ‘ê?«[1Ž˜]“will“bGe“the“in¸ãtersectionŽ¡pGoin¸ãts–Ücof“the“ÂLineŽ‘ I±lŽ‘(æ«with“·Ž‘ ÜdÏthisŽ‘È«,‘>&and“±vŽ› - «[2Ž‘]“and“±vŽ˜«[3Ž‘]“the“inš¸ãtersection“pGoin˜ts“of“±lŽ‘ ç«and“±rŽ‘ ¦w«,‘>&if“they“exist.‘ ðIfŽ¡an•¸ãy›Эin“tersection˜pGoin“t˜do•Gesn't˜exist,‘ïƒÝINVALID_POINTŽ‘L†q«will˜b“e˜stored˜in˜the˜corresp“onding˜elemen¸ãt˜of˜±vŽ‘ Ö«as˜aŽ¡placeholder.‘qÇ[¬LDF‘T2003.06.29.«]ŽŽ¡‘ -The–Ölv‘ÿqÇalues“in“±vŽ‘ -á•«proš¸ãvide“information“abGout“the“relativ˜e“pGositions“of“the“ÏPolygonsŽ‘*å§«,–ïÎe.g.,“whether–Ölthey“touc˜h,Ž¡whether–EÇlies“within“the“pGerimeter“of“the“other,›Häetc.‘l˜Ho•¸ãw“ev“er,˜it's–EÇnot“pGossible“to“include“this“information“inŽ¡the–ϸreturn“v‘ÿqÇalue,‘îQsince“the“latter“is“merely“a“Âv®9ectorŽ‘#z·hÂP•®9oin“tŽ‘šH·i«.‘àðThe“routine“bGeloš¸ãw“ma˜y“need“to“bGe“put“in˜toŽ¡another–ýbfunction“in“order“to“use“this“information.‘iíIt“ma¸ãy“bšGe“of“imp˜ortance“in“breaking“up“ÏPolygonsŽ‘0 ÿ«andŽ¡ÂSolidsŽ‘!\h«for–UUan“impro•¸ãv“ed–UUsurface“hiding“routine.‘qÇ[¬LDF‘T2003.06.29.«]ŽŽ©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂelseŽ‘!Øà·fŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"Non-coplanar,È Ýnon-pŽ‘kÆÜarallel.\n"Ž’¦ #«;ަ‘ÂLineŽ‘-­Ú±lŽ‘3£,«=‘ÇÏplŽ‘ ý#±:Ïinterse‘ÿ}'ction‘‰ffŽ‘®lineŽ‘Gƒ¦«(Ïr‘‰ffŽ‘®plŽ‘“«);Ž¡‘Âb•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘edðÏbppŽ‘x"ñ«=‘ÇÏinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘TS÷«(±lŽ–.::Ïp‘ÿ}'ositionŽ‘#DW±;‘ª¨«(±lŽ“:Ïp‘ÿ}'ositionŽ‘%}7«+‘8à±lŽ‘g:Ïdir–ÿ}'e“ctionŽ‘&øñ«));ަ‘±vŽ‘4¿:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÏbppŽ‘öé±:Ï rstŽ‘µª±:ÏptŽ‘ ä«);Ž¡‘ÂifŽ‘´ú«(ÏbppŽ‘öé±:Ï rstŽ‘µª±:ÏptŽ‘ «µ·‘ÇÏbppŽ‘¾±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ ä«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"bpp.first.ptÈ ÝandÈ ÝbpŽ‘kÆÜp.second.ptÈ ÝareÈ ÝequaŽ’ÔÆ lÈ ÝforÈ Ý*this.\n"Ž’$ Û«;Ž¡‘±vŽ‘#4À:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÝINVALID_POINTŽ‘DÆA«);Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá±vŽ‘1 ž:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÏbppŽ‘öé±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ ä«);Ž¡‘ÏbppŽ‘&¾«=‘DZrŽ‘‘,:Ïinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘QŒß«(±lŽ–.::Ïp‘ÿ}'ositionŽ‘#DW±;‘ª¨«(±lŽ“:Ïp‘ÿ}'ositionŽ‘%}7«+‘8à±lŽ‘g:Ïdir–ÿ}'e“ctionŽ‘&øñ«));Ž¡‘±vŽ‘4¿:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÏbppŽ‘öé±:Ï rstŽ‘µª±:ÏptŽ‘ ä«);Ž¡‘ÂifŽ‘´ú«(ÏbppŽ‘öé±:Ï rstŽ‘µª±:ÏptŽ‘ «µ·‘ÇÏbppŽ‘¾±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ ä«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"bpp.first.ptÈ ÝandÈ ÝbpŽ‘kÆÜp.second.ptÈ ÝareÈ ÝequaŽ’ÔÆ lÈ ÝforÈ Ýr.\n"Ž’ ç«;Ž¡‘±vŽ‘#4À:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÝINVALID_POINTŽ‘DÆA«);Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá±vŽ‘1 ž:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÏbppŽ‘öé±:Ïse–ÿ}'c“ondŽ‘§Ç±:ÏptŽ‘ ä«);Ž¡‘ÂifŽ‘Ln«(·:«(±vŽ‘4½«[0Ž›]–Ç·6«=“ÝINVALID_POINTŽ‘Hõ#·_‘gʱvŽ‘œ‡«[1Ž˜]“·6«=“ÝINVALID_POINTŽ‘Hõ#·_‘gʱvŽ‘œ‡«[2Ž˜]“·6«=“ÝINVALID_POINTŽ‘Hõ#·_‘gʱvŽ‘œ‡«[3Ž˜]“·6«=“ÝINVALID_POINTŽ‘GY«))Ž¡‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)Ž¡‘(Ïc‘ÿ}'outŽ‘>U7·‘ûüÝ"NoÈ ÝintersectionÈ ÝpoiŽ‘kûÀntsÈ Ýfound.È Ý"Ž’³½ý·‘ûüÝ"ReturningÈ ÝemptyÈ ÝvecŽ‘kûÀtor\n\n"Ž’¾=÷·Ž¡‘<Ï ushŽ‘Q¹«;Ž¡‘±vŽ‘#4À:Ïcle‘ÿ}'arŽ‘(Ù«(‘ª¨);Ž¡‘ÂreturnŽ‘Aæ½±vŽ‘Gz«;Ž¡‘·gަ‘Âb•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘E@ƒÏbrŽ‘O§ö«[4Ž‘];ަ‘ÂifŽ‘´ú«(·:«(±vŽ‘4½«[2Ž›]–Ç·“ÝINVALID_POINTŽ‘IÆ9·_‘8à±vŽ‘m«[3Ž˜]“·“ÝINVALID_POINTŽ‘GY«))‘·fŽ¡‘ÂifŽ‘)´û«(±vŽ‘4½«[0Ž›]–Ç·6«=“ÝINVALID_POINTŽ‘GY«)‘ÏbrŽ‘gs«[0Ž˜]“=“±vŽ‘ûÕ«[0Ž˜]±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(±vŽ‘4½«[2Ž˜]±;‘ª¨vŽ‘ße«[3Ž˜]);Ž¡‘ÂelseŽ‘5Øâ·fŽ¡‘(ÏbrŽ‘2gw«[0Ž‘]±:Ï rstŽ‘|«=‘ÇÏfalseŽ‘v\«;Ž¡‘(ÏbrŽ‘2gw«[0Ž‘]±:Ïse–ÿ}'c“ondŽ‘ nß«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂifŽ‘)´û«(±vŽ‘4½«[1Ž›]–Ç·6«=“ÝINVALID_POINTŽ‘GY«)‘ÏbrŽ‘gs«[1Ž˜]“=“±vŽ‘ûÕ«[1Ž˜]±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(±vŽ‘4½«[2Ž˜]±;‘ª¨vŽ‘ße«[3Ž˜]);Ž¡‘ÂelseŽ‘5Øâ·fŽ¡‘(ÏbrŽ‘2gw«[1Ž‘]±:Ï rstŽ‘|«=‘ÇÏfalseŽ‘v\«;Ž¡‘(ÏbrŽ‘2gw«[1Ž‘]±:Ïse–ÿ}'c“ondŽ‘ nß«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘gŽ¡‘ÂifŽ‘´ú«(·:«(±vŽ‘4½«[0Ž›]–Ç·“ÝINVALID_POINTŽ‘IÆ9·_‘8à±vŽ‘m«[1Ž˜]“·“ÝINVALID_POINTŽ‘GY«))‘·fŽ¡‘ÂifŽ‘)´û«(±vŽ‘4½«[2Ž›]–Ç·6«=“ÝINVALID_POINTŽ‘GY«)‘ÏbrŽ‘gs«[2Ž˜]“=“±vŽ‘ûÕ«[2Ž˜]±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(±vŽ‘4½«[0Ž˜]±;‘ª¨vŽ‘ße«[1Ž˜]);ŽŽŽŒ‹"pÛ Šn ý‘ì«290›­NON-P‘ÿJªARALLEL,–ÕXNON-COPLANAR“CASE’¸iê3DLDFPRÃŽG˜·x«999Ž €n ý•@P‘ÂelseŽ‘5Øâ·fޤ ‘(ÏbrŽ‘2gw«[2Ž‘]±:Ï rstŽ‘|«=‘ÇÏfalseŽ‘v\«;Ž¡‘(ÏbrŽ‘2gw«[2Ž‘]±:Ïse–ÿ}'c“ondŽ‘ nß«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘ÂifŽ‘)´û«(±vŽ‘4½«[3Ž›]–Ç·6«=“ÝINVALID_POINTŽ‘GY«)‘ÏbrŽ‘gs«[3Ž˜]“=“±vŽ‘ûÕ«[3Ž˜]±:Ïis‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O«(±vŽ‘4½«[0Ž˜]±;‘ª¨vŽ‘ße«[1Ž˜]);Ž¡‘ÂelseŽ‘5Øâ·fŽ¡‘(ÏbrŽ‘2gw«[3Ž‘]±:Ï rstŽ‘|«=‘ÇÏfalseŽ‘v\«;Ž¡‘(ÏbrŽ‘2gw«[3Ž‘]±:Ïse–ÿ}'c“ondŽ‘ nß«=‘Ç0Ž‘Ç;Ž¡‘·gŽ¡‘gŽ¡‘ÂifŽ‘´ú«(ÏbrŽ‘ -gs«[0Ž–]±:Ï rstŽ‘^‘8àÏbrŽ‘  S«[1Ž“]±:Ï rstŽ‘µª«)‘·fŽ¡‘ÂifŽ‘+Ϋ(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘}·‘#ÊÝ"TheÈ ÝintersectionÈ ÝofŽ‘n#ŽÈ Ý*thisÈ ÝwithÈ ÝlÈ ÝliesÈ ÝwŽ’×#RithinÈ Ý"Ž’o·Ž¡‘<Ý"theÈ ÝintersectionÈ ÝofŽ’¤ÿÊÈ ÝrÈ ÝwithÈ Ýl.\n"Ž’éÆ «;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏbrŽ‘ -gs«[2Ž–]±:Ï rstŽ‘^‘8àÏbrŽ‘  S«[3Ž“]±:Ï rstŽ‘µª«)‘·fŽ¡‘ÂifŽ‘+qB«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘·‘«‹Ý"TheÈ ÝintersectionÈ ÝofŽ‘n«OÈ ÝrÈ ÝwithÈ ÝlÈ ÝliesÈ Ýwithiޒ׫nÈ Ý"Ž’íœý·Ž¡‘<Ý"theÈ ÝintersectionÈ ÝofŽ’¤ÿÊÈ Ý*thisÈ ÝwithÈ Ýl.\n"Ž’þÅÿ«;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(ÏbrŽ‘ -gs«[0Ž–]±:Ï rstŽ›_‘8àÏbrŽ‘  S«[1Ž“]±:Ï rstŽ˜·_‘8àÏbrŽ‘  S«[2Ž“]±:Ï rstŽ˜·_‘8àÏbrŽ‘  S«[3Ž“]±:Ï rstŽ‘µª«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TheÈ ÝintersectionsÈ ÝoŽ‘kÆÜfÈ Ý*thisÈ ÝandÈ ÝrÈ ÝwithÈ ÝlŽ’ÔÆ È ÝoverlapÈ Ýpartially.\Ž’=Ædn"Ž’HÌÆ«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"TheÈ ÝintersectionsÈ ÝoŽ‘kÆÜfÈ Ý*thisÈ ÝandÈ ÝrÈ ÝwithÈ ÝlŽ’ÔÆ È Ýdon'tÈ ÝoverlapÈ ÝatÈ ÝalŽ’=Ædl.\n"Ž’XŒ½«;Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼±vŽ‘=y«;Ž¡‘ -·g‘±=·‘ÿýÂelseŽ‘ØÜ«.‘qÇEnd–UUof“non-parallel,“non-coplanar“case.‘o·±=Ž¡‘ -·gŽ©Â1000.‘ üT‘ÿ +­elseŽ‘!Øà°fŽ¡‘±r0Ž‘!øß¬=‘Ç°Ž‘ÇŽ‘ DZiterŽ‘’¬;Ž¡‘±r1Ž‘!øß¬=‘Ç°Ž‘ÇŽ‘ Ǭ(±iterŽ‘Þ¬+‘8à1Ž‘8á);Ž¡‘ +°gŽ¡‘ +­ifŽ‘´ù¬(±bpŽ‘ +Úyµ:±ptŽ– «µ°‘DZr0Ž‘1½°_‘8à±bpŽ‘ Yµ:±ptŽ“°‘DZr1Ž‘ øÝ¬)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘­ifŽ‘)´û¬(±bpŽ‘ +Úyµ:±ptŽ‘ «µ°‘DZr0Ž‘ øÝ¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"bp.pt® ´==® ´r0."Ž‘O”n°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­elseŽ‘4.7ifŽ‘?ã/¬(±bpŽ‘ +Úyµ:±ptŽ‘ «µ°‘DZr1Ž‘ øÝ¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"bp.pt® ´==® ´r1."Ž‘O”n°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘°gŽ¡‘±bppŽ‘#öëµ:± rstŽ‘µªµ:±ptŽ‘ «µ¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ ä¬;Ž¡‘±bppŽ‘#öëµ:± rstŽ–µªµ:bŽ‘¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ã¬)µ:± rstŽ“¬;Ž¡‘­returnŽ‘7æ¼±bppŽ‘GÝ¥¬;Ž¡‘ +°gŽŽŽŒ‹'3þ Šn ý‘ì°x¬1035›¯3DLDF-1.1.5.1’ŠÃPERPENDICULAR–ÕXAND“NON-COPLANAR“CASES˜¬295Ž €n ý•@P­1035.‘ ü¬[²LDF‘T2003.06.24.¬]Ž‘Zˆ6´DEBUGŽ‘x£ä¬is–UUpassed“as“the“±verb‘ÿ}'oseŽ‘'<¬argumen¸ãt“to“±is‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘<äö¬(‘ª®).‘qÇSo,“ifޤ ±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘QŒß¬(›ª®)–Dis“bGeing“debugged,‘Ʊis‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘>g¬(˜)“will“prinš¸ãt“more“information.‘> Ho˜w˜ev˜er,‘Æ´DEBUGŽ‘#Š5¬inŽ¡±is‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘9¡¬(‘ª®)–UUwill“not“bGe“set“to“±trueŽ‘í¬.Ž©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­elseŽŽ¡‘ifŽ‘´ú¬(±bpŽ‘ +Úyµ:±ptŽ‘ äµ:±is‘‰ffŽ–®in‘‰ffŽ“triangleŽ‘9¡¬(±c‘ÿ}'enterŽ‘ ‹µ;‘ª¨±r0Ž– Ümµ;‘ª¨±r1Ž“µ;‘ª¨´DEBUGŽ‘q¬))‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Intersection® ´point® Ž‘kÆÜ´is® ´within® ´triangle.\Ž’ÔÆ n"Ž’ßͬ;Ž¡‘±bppŽ‘-öìµ:± rstŽ‘µªµ:±ptŽ‘ «µ¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ ä¬;Ž¡‘±bppŽ‘-öìµ:± rstŽ–µªµ:bŽ‘¬=‘DZbpŽ‘ ¡‘µ:±ptŽ‘ äµ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(±pt0Ž‘i;µ;‘ª¨±pt1Ž‘ã¬)µ:± rstŽ“¬;Ž¡‘­returnŽ‘Aæ½±bppŽ‘Qݦ¬;Ž¡‘°gŽ¡‘ +g–UUg‘µ=°‘ÿý¬End“of“\P¸ãerpGendicular“and“non-coplanar“cases".‘o°µ=ŽŸ­1036.‘ üEnd–ÕTof“de nition.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Exiting® ´Polygon::inŽ‘kÆÜtersection_points().Ž’ÔÆ \n\n"Ž’òT°‘DZ ushŽ‘€¬;Ž¡‘ +­returnŽ‘-æ»±bppŽ‘=ݤ¬;‘qǰgŽŸ­1037.‘ üP•®9ath‘ÕTv“ersion.ަ°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[dï±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’¬ñά(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày¬)‘UU­constŽ‘*¢¬;ŽŸ­1038.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘[dïP®9olygonŽ’…iá¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày¬)‘UU­constŽŽ¡‘ +°fŽ¡‘­ifŽ‘´ú¬(°:µpŽ‘:±is‘‰ffŽ‘®line‘ÿ}'arŽ‘%}¬(‘ª¨))‘°fŽ¡‘±c‘ÿ}'errŽ‘5¼Y°‘°´"ERROR!® ´In® ´Polygon::Ž‘ntintersection_points(Ž’×8const® ´Path&® ´p):\n"Ž’;°Ž¡‘2´"Path® ´p® ´is® ´non-lineaŽ’šÿÉr.® ´Returning® ´INVALIŽ’ÿD_BOOL_POINT_PAIR.\nŽ’lÿQ\n"Ž’€ Ȱ‘DZ ushŽ‘€¬;Ž¡‘­returnŽ‘Aæ½´INVALID_BOOL_POINT_PAIRŽ’»,à¬;Ž¡‘°gŽ¡‘­returnŽ‘7æ¼±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ’‰s›¬(µpŽ‘:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘)µ;‘ª¨pŽ‘²¨:±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>¬(‘ª¨));Ž¡‘ +°gŽŸ­1039.‘ üInš®9tersection–1mwith“another“P˜olygon.‘ ü¬TO‘ƒ¸DO:–„Explain“what“this“function“doGes“and“ho¸ãw“itŽ¡w¸ãorks.‘qÇ[²LDF‘T2003.06.29.¬]ŽŽ¡‘ +TO‘KDO:–ZFind“out“where“±unit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘3­Ï¬(‘ª®)“gets“called,›$Œwhen“this“function“is“called,˜and“try“to“pass“±trueŽ‘õL¬as“itsŽ¡±silentŽ‘ i¬argumen¸ãt.‘qÇ[²LDF‘T2003.07.16.¬]ŽŽŸN9Ÿû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.06.29.¬]Ž‘Y;Replaced–UUthe“dumm¸ãy“de nition“of“this“function“with“a“real“one.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°Ž¡‘ +­v®9ectorŽ‘)ªI°h­P•®9oin“tŽ‘šH°i‘UU±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘Tâ4¬(­constŽ‘*¢P®9olygonŽ‘J„å¬&Ž‘RLµrŽ‘W¬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹(AÏ Šn ý‘ì¬296›¯INTERSECTION–ÕXWITH“ANOTHER“­POL‘ÿ +«YGON’Œa-¯3DLDF-1.1.5.1˜°x¬1040Ž €n ý•@P­1040.Ž©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°ޤ ‘ +­v®9ectorŽ‘)ªI°h­P•®9oin“tŽ‘šH°i‘UU­P®9olygonŽ‘-ZG¬::‘±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘RŒã¬(­constŽ‘*¢P®9olygonŽ‘J„å¬&Ž‘RLµrŽ‘W¬)‘UU­constŽ‘*¢°f‘UU­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;Ž¡‘(µ=°‘ÿý±trueޑǰµ=Ž¡‘­v®9ectorŽ‘=ªK°h­P•®9oin“tŽ‘šH°i‘UUµvޑЬ;Ž¡‘­PlaneŽ‘>6»±plŽ‘J3Þ¬=‘DZget‘‰ffŽ‘®planeŽ‘+>¬(‘ª¨);Ž¡‘­PlaneŽ‘>6»±r‘‰ffŽ‘®plŽ‘Rf¬=‘ǵrŽ‘‘,:±get‘‰ffŽ‘®planeŽ‘(vè¬(‘ª¨);ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘°fŽ¡‘(±plŽ‘16µ:±normalŽ‘ V¸µ:±showŽ‘Šÿ¬(´"pl.normal"Ž‘:FG¬);Ž¡‘(±r‘‰ffŽ‘®plŽ‘9—µ:±normalŽ‘ V¸µ:±showŽ‘Šÿ¬(´"r_pl.normal"Ž‘DÆA¬);Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"pl.distance® ´==® ´"Ž‘_Te°‘DZplŽ‘ ý#µ:±distanc‘ÿ}'eŽ‘' °‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘(±c‘ÿ}'outŽ‘> S°‘Ç´"r_pl.distance® ´==® ´"Ž‘iÔ_°‘DZr‘‰ffŽ‘®plŽ‘⫵:±distanc‘ÿ}'eŽ‘' °‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘°gަ‘­realŽ‘4³1±distanc‘ÿ}'eŽ‘[ÀF¬=‘DZfabsŽ‘ùê¬(±fabsŽ‘2Ò¬(±plŽ‘ 6 µ:±distanc‘ÿ}'eŽ›$Eý¬)–8à°“±fabsŽ‘k²¬(±r‘‰ffŽ‘®plŽ‘“µ:±distanc‘ÿ}'eŽ˜¬));ަ‘­ifŽ‘)´û¬(±distanc‘ÿ}'eŽ‘' µ<‘Ç­P•®9oin“tŽ‘ad¬::Ž‘%epsilonŽ‘E^¦¬(‘ª¨))‘±distanc‘ÿ}'eŽ‘, ¬=‘Ç0Ž‘Ç;Ž¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"distance® ´==® ´"Ž‘O”n°‘DZdistanc‘ÿ}'eŽ‘)Ô-°‘DZend‘‚ØlŽ‘ò°‘DZ ushŽ‘€¬;Ž¡‘­ifŽ‘)´û¬(±plŽ‘ 6 µ:±normalŽ‘#а‘DZr‘‰ffŽ‘®plŽ‘⫵:±normalŽ‘ V¸¬)‘UU°fŽŸ­1041.‘ üCoplanar‘ÕTcase.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­ifŽ‘´ù¬(±distanc‘ÿ}'eŽ‘' °‘Ǭ0Ž‘Ç)‘°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Coplanar.\n"Ž‘GY¬;ަ‘­b•QÇo“olu½‰™šs4Ž‘Ôwp“oin®9tŽ‘L§±bpŽ‘W‚¬;Ž¡‘­P•®9oin“tŽ‘2Ž‘7ï ±ptrŽ‘F,g¬;Ž¡‘­P•®9oin“tŽ‘2Ž‘7ï ±r‘‰ffŽ‘®ptrŽ‘Nï¬;ަ‘­forŽ‘%般(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘ï°Ž‘#ïži‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W¬=‘DZp‘ÿ}'ointsŽ–ë­µ:±b–ÿ}'e“ginŽ‘¾¨¬(›ª¨);‘ÿý±iterŽ‘’°6¬=‘DZp‘ÿ}'ointsŽ“µ:±endŽ‘ಬ(˜);‘ýŸÿ³+‘ÿ+ŽŽ‘G±iterŽ‘"¬)‘°fŽ¡‘­ifŽ‘)´û¬((±iterŽ‘Þ¬+‘8à1Ž‘8á)–ǰ“±p‘ÿ}'ointsŽ›ë­µ:±endŽ‘ಬ(‘ª¨))‘±ptrŽ‘߬=“±p‘ÿ}'ointsŽ˜µ:±fr‘ÿ}'ontŽ‘I‘¬(‘ª¨);Ž¡‘­elseŽ‘5Øâ±ptrŽ‘FÜÁ¬=‘Ç°Ž‘Ç¬(±iterŽ‘Þ¬+‘8à1Ž‘8á);Ž¡‘­forŽ‘/×C¬(­v®9ectorŽ‘ªH°h­P•®9oin“tŽ‘ÞW°Ž‘#ÞXi‘¬::Ž‘ŽB±c–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûr‘‰ffŽ‘®iterŽ‘^ú™¬=‘ǵrŽ–‘,:±p‘ÿ}'ointsŽ›$•µ:±b–ÿ}'e“ginŽ‘¾¨¬(‘ª¨);‘î·±r‘‰ffŽ‘®iterŽ‘ fU°6¬=‘ǵrŽ“:±p‘ÿ}'ointsŽ˜µ:±endŽ‘ಬ(‘ª¨);‘n·Ÿÿ³+‘ÿ+ŽŽ‘5×±r‘‰ffŽ‘®iterŽ‘)æ]¬)‘°fŽ¡‘(­ifŽ‘3´ü¬((±r‘‰ffŽ‘®iterŽ‘éf¬+‘8à1Ž‘8á)–ǰ“µrŽ›‘,:±p‘ÿ}'ointsŽ‘$•µ:±endŽ‘ಬ(‘ª¨))‘±r‘‰ffŽ‘®ptrŽ‘ég¬=“µrŽ˜:±p‘ÿ}'ointsŽ‘$•µ:±fr‘ÿ}'ontŽ‘I‘¬(‘ª¨);Ž¡‘(­elseŽ‘?Øã±r‘‰ffŽ‘®ptrŽ‘XÂJ¬=‘Ç°Ž‘Ç¬(±r‘‰ffŽ‘®iterŽ‘éf¬+‘8à1Ž‘8á);Ž¡‘(±bpŽ‘5¡•¬=‘Ç­P•®9oin“tŽ‘ad¬::Ž‘%interse–ÿ}'ction‘‰ffŽ‘®p“ointŽ‘s†x¬(°Ž‘Ž‘ +±iterŽ‘˵;‘ª¨°Ž‘ª©±ptrŽ‘çpµ;‘ª¨°Ž‘ª©Ž‘ ªª±r‘‰ffŽ‘®iterŽ‘$[0µ;‘ª¨°Ž‘ª©±r‘‰ffŽ‘®ptrŽ‘Ìø¬);Ž¡‘(­ifŽ‘3´ü¬(±bpŽ– +Úyµ:bŽ‘Jª¬)‘µvŽ‘ +4½:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±bpŽ“µ:±ptŽ‘ ä¬);Ž¡‘°g‘µ=°‘ÿý¬Inner‘UU­forŽ‘胰µ=Ž¡‘°g‘µ=°‘ÿý¬Outer‘UU­forŽ‘胰µ=Ž¡‘­returnŽ‘7æ¼µvŽ‘=y¬;Ž¡‘ +°gŽŸ­1042.‘ üP®9arallel‘ÕTcase.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­elseŽ‘0Øáµ=°‘ÿý¬P¸ãarallel.‘o°µ=Ž¡‘ +°fŽ¡‘±c‘ÿ}'errŽ‘-V–°‘ î´"WARNING!® ´In® ´PolygoŽ‘o ²n::intersection_poinŽ’Ø vts():\n"Ž’ Ç´°Ž¡‘(´"The® ´Polygons® ´lie® ´inŽ’ÿÈ® ´parallel® ´planes.® ´"Ž’ø8Œ°‘ò•´"Returning® ´empty® ´vecŽ‘kòYtor.\n\n"Ž’Ãk&°Ž¡‘(± ushŽ‘=¹¬;Ž¡‘­returnŽ‘7æ¼µvŽ‘=y¬;Ž¡‘ +°gŽ¡‘ +gŽŽŽŒ‹)P Šn ý‘ì°x¬1043›¯3DLDF-1.1.5.1’ªöSNON-P‘ÿJªARALLEL,–ÕXNON-COPLANAR“CASE˜¬297Ž €n ý•@P­1043.– üNon-parallel,‘†Ònon-coplanar‘0case.“µvŽ‘7¬will–‚äconš¸ãtain“the“in˜tersection“pGoin˜ts“of“the“­LineŽ‘^KµlŽ‘'i¬withޤ °Ž‘±thisŽ‘Á‘¬and‘ÕÚµrŽ‘ Ÿî¬,‘5ûif–ÕÚanš¸ãy‘ÿ*ª.‘óWµvŽ‘ýî¬can“con˜tain“a“maxim˜um“of“four“­P•®9oin“tsŽ‘)Ï8¬in“this“case.‘óWµvŽ‘(¬[0Ž›]“and“µvŽ‘ + +—¬[1Ž˜]“will“bGe“theŽ¡in•¸ãtersection›?pGoin“ts˜of˜the˜­LineŽ‘]µlŽ‘"z¬with˜°Ž‘@±thisŽ‘íö¬,‘Ýand˜µvŽ–6ü¬[2Ž‘]˜and˜µvŽ“¬[3Ž‘]˜the˜in•¸ãtersection˜pGoin“ts˜of˜µlŽ‘ 2¸¬and˜µrŽ‘ÌS¬,‘Ýif˜they˜exist.Ž¡If–4Banš¸ãy“in˜tersection“pGoin˜t“došGesn't“exist,‘:ß´INVALID_POINTŽ‘K5b¬will“b˜e“stored“in“the“corresp˜onding“elemen¸ãt“of“µvŽ‘ A¬as“aŽ¡placeholder.‘qÇ[²LDF‘T2003.06.29.¬]ŽŽ¡‘ +The–Ölv‘ÿqÇalues“in“µvŽ‘ +ᕬproš¸ãvide“information“abGout“the“relativ˜e“pGositions“of“the“±PolygonsŽ‘*姬,–ïÎe.g.,“whether–Ölthey“touc˜h,Ž¡whether–EÇlies“within“the“pGerimeter“of“the“other,›Häetc.‘l˜Ho•¸ãw“ev“er,˜it's–EÇnot“pGossible“to“include“this“information“inŽ¡the–ϸreturn“v‘ÿqÇalue,‘îQsince“the“latter“is“merely“a“­v®9ectorŽ‘#z°h­P•®9oin“tŽ‘šH°i¬.‘àðThe“routine“bGeloš¸ãw“ma˜y“need“to“bGe“put“in˜toŽ¡another–ýbfunction“in“order“to“use“this“information.‘iíIt“ma¸ãy“bšGe“of“imp˜ortance“in“breaking“up“±PolygonsŽ‘0 ÿ¬andŽ¡­SolidsŽ‘!\h¬for–UUan“impro•¸ãv“ed–UUsurface“hiding“routine.‘qÇ[²LDF‘T2003.06.29.¬]ŽŽ©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­elseŽ‘!Øà°fŽ¡‘­ifŽ‘´ú¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"Non-coplanar,® ´non-pŽ‘kÆÜarallel.\n"Ž’¦ #¬;ަ‘­LineŽ‘-­ÚµlŽ‘3£,¬=‘DZplŽ‘ ý#µ:±interse‘ÿ}'ction‘‰ffŽ‘®lineŽ‘Gƒ¦¬(±r‘‰ffŽ‘®plŽ‘“¬);Ž¡‘­b•QÇo“olu½‰™šs4Ž›Ôwp“oin®9tu½‰™šs4Ž˜pairŽ‘edð±bppŽ‘x"ñ¬=‘DZinterse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘TS÷¬(µlŽ–.::±p‘ÿ}'ositionŽ‘#DWµ;‘ª¨¬(µlŽ“:±p‘ÿ}'ositionŽ‘%}7¬+‘8àµlŽ‘g:±dir–ÿ}'e“ctionŽ‘&øñ¬));ަ‘µvŽ‘4¿:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±bppŽ‘öéµ:± rstŽ‘µªµ:±ptŽ‘ ä¬);Ž¡‘­ifŽ‘´ú¬(±bppŽ‘öéµ:± rstŽ‘µªµ:±ptŽ‘ «µ°‘DZbppŽ‘¾µ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ ä¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"bpp.first.pt® ´and® ´bpŽ‘kÆÜp.second.pt® ´are® ´equaŽ’ÔÆ l® ´for® ´*this.\n"Ž’$ Û¬;Ž¡‘µvŽ‘#4À:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(´INVALID_POINTŽ‘DÆA¬);Ž¡‘°gŽ¡‘­elseŽ‘+ØáµvŽ‘1 ž:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±bppŽ‘öéµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ ä¬);Ž¡‘±bppŽ‘&¾¬=‘ǵrŽ‘‘,:±interse–ÿ}'ction‘‰ffŽ‘®p“ointsŽ‘QŒß¬(µlŽ–.::±p‘ÿ}'ositionŽ‘#DWµ;‘ª¨¬(µlŽ“:±p‘ÿ}'ositionŽ‘%}7¬+‘8àµlŽ‘g:±dir–ÿ}'e“ctionŽ‘&øñ¬));Ž¡‘µvŽ‘4¿:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±bppŽ‘öéµ:± rstŽ‘µªµ:±ptŽ‘ ä¬);Ž¡‘­ifŽ‘´ú¬(±bppŽ‘öéµ:± rstŽ‘µªµ:±ptŽ‘ «µ°‘DZbppŽ‘¾µ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ ä¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"bpp.first.pt® ´and® ´bpŽ‘kÆÜp.second.pt® ´are® ´equaŽ’ÔÆ l® ´for® ´r.\n"Ž’ ç¬;Ž¡‘µvŽ‘#4À:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(´INVALID_POINTŽ‘DÆA¬);Ž¡‘°gŽ¡‘­elseŽ‘+ØáµvŽ‘1 ž:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±bppŽ‘öéµ:±se–ÿ}'c“ondŽ‘§Çµ:±ptŽ‘ ä¬);Ž¡‘­ifŽ‘Ln¬(°:¬(µvŽ‘4½¬[0Ž›]–ǰ6¬=“´INVALID_POINTŽ‘Hõ#°_‘gʵvŽ‘œ‡¬[1Ž˜]“°6¬=“´INVALID_POINTŽ‘Hõ#°_‘gʵvŽ‘œ‡¬[2Ž˜]“°6¬=“´INVALID_POINTŽ‘Hõ#°_‘gʵvŽ‘œ‡¬[3Ž˜]“°6¬=“´INVALID_POINTŽ‘GY¬))Ž¡‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)Ž¡‘(±c‘ÿ}'outŽ‘>U7°‘ûü´"No® ´intersection® ´poiŽ‘kûÀnts® ´found.® ´"Ž’³½ý°‘ûü´"Returning® ´empty® ´vecŽ‘kûÀtor\n\n"Ž’¾=÷°Ž¡‘<± ushŽ‘Q¹¬;Ž¡‘µvŽ‘#4À:±cle‘ÿ}'arŽ‘(Ù¬(‘ª¨);Ž¡‘­returnŽ‘Aæ½µvŽ‘Gz¬;Ž¡‘°gަ‘­b•QÇo“olu½‰™šs4Ž‘ÔwrealŽ‘E@ƒ±brŽ‘O§ö¬[4Ž‘];ަ‘­ifŽ‘´ú¬(°:¬(µvŽ‘4½¬[2Ž›]–ǰ“´INVALID_POINTŽ‘IÆ9°_‘8àµvŽ‘m¬[3Ž˜]“°“´INVALID_POINTŽ‘GY¬))‘°fŽ¡‘­ifŽ‘)´û¬(µvŽ‘4½¬[0Ž›]–ǰ6¬=“´INVALID_POINTŽ‘GY¬)‘±brŽ‘gs¬[0Ž˜]“=“µvŽ‘ûÕ¬[0Ž˜]µ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(µvŽ‘4½¬[2Ž˜]µ;‘ª¨vŽ‘ße¬[3Ž˜]);Ž¡‘­elseŽ‘5Øâ°fŽ¡‘(±brŽ‘2gw¬[0Ž‘]µ:± rstŽ‘|¬=‘DZfalseŽ‘v\¬;Ž¡‘(±brŽ‘2gw¬[0Ž‘]µ:±se–ÿ}'c“ondŽ‘ n߬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­ifŽ‘)´û¬(µvŽ‘4½¬[1Ž›]–ǰ6¬=“´INVALID_POINTŽ‘GY¬)‘±brŽ‘gs¬[1Ž˜]“=“µvŽ‘ûÕ¬[1Ž˜]µ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(µvŽ‘4½¬[2Ž˜]µ;‘ª¨vŽ‘ße¬[3Ž˜]);Ž¡‘­elseŽ‘5Øâ°fŽ¡‘(±brŽ‘2gw¬[1Ž‘]µ:± rstŽ‘|¬=‘DZfalseŽ‘v\¬;Ž¡‘(±brŽ‘2gw¬[1Ž‘]µ:±se–ÿ}'c“ondŽ‘ n߬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘gŽ¡‘­ifŽ‘´ú¬(°:¬(µvŽ‘4½¬[0Ž›]–ǰ“´INVALID_POINTŽ‘IÆ9°_‘8àµvŽ‘m¬[1Ž˜]“°“´INVALID_POINTŽ‘GY¬))‘°fŽ¡‘­ifŽ‘)´û¬(µvŽ‘4½¬[2Ž›]–ǰ6¬=“´INVALID_POINTŽ‘GY¬)‘±brŽ‘gs¬[2Ž˜]“=“µvŽ‘ûÕ¬[2Ž˜]µ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(µvŽ‘4½¬[0Ž˜]µ;‘ª¨vŽ‘ße¬[1Ž˜]);ŽŽŽŒ‹*`¶ Šn ý‘ì¬298›¯NON-P‘ÿJªARALLEL,–ÕXNON-COPLANAR“CASE’ªöS3DLDF-1.1.5.1˜°x¬1043Ž €n ý•@P‘­elseŽ‘5Øâ°fޤ ‘(±brŽ‘2gw¬[2Ž‘]µ:± rstŽ‘|¬=‘DZfalseŽ‘v\¬;Ž¡‘(±brŽ‘2gw¬[2Ž‘]µ:±se–ÿ}'c“ondŽ‘ n߬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘­ifŽ‘)´û¬(µvŽ‘4½¬[3Ž›]–ǰ6¬=“´INVALID_POINTŽ‘GY¬)‘±brŽ‘gs¬[3Ž˜]“=“µvŽ‘ûÕ¬[3Ž˜]µ:±is‘‰ffŽ–®on‘‰ffŽ“se‘ÿ}'gmentŽ‘=5O¬(µvŽ‘4½¬[0Ž˜]µ;‘ª¨vŽ‘ße¬[1Ž˜]);Ž¡‘­elseŽ‘5Øâ°fŽ¡‘(±brŽ‘2gw¬[3Ž‘]µ:± rstŽ‘|¬=‘DZfalseŽ‘v\¬;Ž¡‘(±brŽ‘2gw¬[3Ž‘]µ:±se–ÿ}'c“ondŽ‘ n߬=‘Ç0Ž‘Ç;Ž¡‘°gŽ¡‘gŽ¡‘­ifŽ‘´ú¬(±brŽ‘ +gs¬[0Ž–]µ:± rstŽ‘^‘8à±brŽ‘  S¬[1Ž“]µ:± rstŽ‘µª¬)‘°fŽ¡‘­ifŽ‘+ά(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘}°‘#Ê´"The® ´intersection® ´ofŽ‘n#Ž® ´*this® ´with® ´l® ´lies® ´wŽ’×#Rithin® ´"Ž’o°Ž¡‘<´"the® ´intersection® ´ofŽ’¤ÿÊ® ´r® ´with® ´l.\n"Ž’éÆ ¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±brŽ‘ +gs¬[2Ž–]µ:± rstŽ‘^‘8à±brŽ‘  S¬[3Ž“]µ:± rstŽ‘µª¬)‘°fŽ¡‘­ifŽ‘+qB¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘°‘«‹´"The® ´intersection® ´ofŽ‘n«O® ´r® ´with® ´l® ´lies® ´withiޒ׫n® ´"Ž’íœý°Ž¡‘<´"the® ´intersection® ´ofŽ’¤ÿÊ® ´*this® ´with® ´l.\n"Ž’þÅÿ¬;Ž¡‘°gŽ¡‘­elseŽ‘*.6ifŽ‘5ã.¬(±brŽ‘ +gs¬[0Ž–]µ:± rstŽ›_‘8à±brŽ‘  S¬[1Ž“]µ:± rstŽ˜°_‘8à±brŽ‘  S¬[2Ž“]µ:± rstŽ˜°_‘8à±brŽ‘  S¬[3Ž“]µ:± rstŽ‘µª¬)‘°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"The® ´intersections® ´oŽ‘kÆÜf® ´*this® ´and® ´r® ´with® ´lŽ’ÔÆ ® ´overlap® ´partially.\Ž’=Ædn"Ž’HÌÆ¬;Ž¡‘°gŽ¡‘­elseŽ‘+Øá°fŽ¡‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘ O°‘Ç´"The® ´intersections® ´oŽ‘kÆÜf® ´*this® ´and® ´r® ´with® ´lŽ’ÔÆ ® ´don't® ´overlap® ´at® ´alŽ’=Ædl.\n"Ž’XŒ½¬;Ž¡‘°gŽ¡‘­returnŽ‘7æ¼µvŽ‘=y¬;Ž¡‘ +°g‘µ=°‘ÿý­elseŽ‘ØÜ¬.‘qÇEnd–UUof“non-parallel,“non-coplanar“case.‘o°µ=Ž¡‘ +°gŽ©­1044.‘ üT‘ÿ «ransformations.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.08.07.«]Ž‘Y3Copied–€©the“en¸ãtire“\T‘ÿ*ªransformations"“section“from“Èellipses.web“«and“made“the“appro-Ž¡priate‘UUc¸ãhanges.Ž¡‘ -[¬LDF‘T2003.04.27.«]Ž‘YReThe–Ÿprevious“commenš¸ãt“w˜as“out-of-date.‘PDI‘Ÿlma˜y“ha˜v˜e“remo˜v˜ed“the“transformation“func-Ž¡tions.‘PëA•¸ãt›Ÿ¶an“y˜rate,‘²Othere˜w“ere˜only˜a˜couple˜here.‘PëI‘Ÿ£ha“v“e˜no“w˜copied˜the˜rest˜of˜them˜from˜Èellipses.webŽ¡«and–UUmade“the“appropriate“c¸ãhanges.Ž¡‘ -[¬LDF‘T2003.07.18.«]Ž‘Y;[¬LDF‘T2003.07.18.«]Ž’¨uMo•¸ãv“ed–UU\T‘ÿ*ªransformations"“section,“includingŽ¡ÂopQÇeratorŽ‘+–µ·«=ŽŽŽ‘8]Ô(ÂconstŽ‘T‘ÿ -«ransformŽ‘VØl«&Ž‘^ŸŠ)–ÇÑfrom“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘IV«to“ÂP®9olygonŽ‘,Ì¿«.‘É:Also“remo•¸ãv“ed–ÇÑthe“ÂRectangleŽ‘9Ï7«v¸ãer-Ž¡sions–UUin“Èrectangs.web«.‘qÇThe“ÂP®9olygonŽ‘/¯˜«vš¸ãersions“are“no˜w“inherited“b˜y“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«and“ÂRectangleŽ‘5”ê«.ŽŸŸüÈ„`ÕÁGŽŽ¦Â1001.‘ üApplying–ÕTa“transformation.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.06.«]Ž‘ZÛNoš¸ãw–Mõcalling“ÂP®9athŽ‘ß]«::Ž‘$m›ÂopQÇeratorŽ‘PP·«=ŽŽŽ‘\Ëo(‘ª¨)“instead“of“loGoping“through“Ïp‘ÿ}'ointsŽ‘rŠ«.‘[¦This“w˜a˜y‘ÿ*ª,‘Œif“IŽ¡cš¸ãhange‘UUÂP®9athŽ‘潫::Ž‘#tûÂopQÇeratorŽ‘O °·«=ŽŽŽ‘[ÒÏ(‘ª¨),–UUthe“c˜hange“will“automatically“bGe“re ected“here.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·ŽŸ ‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦opQÇeratorŽ’’í[·«=ŽŽŽ’Ÿ´z(ÂconstŽ‘*¢T‘ÿ -«ransformŽ‘Uót«&Ž‘]º’±tŽ‘aW«);ŽŽŽŒ‹#„³ Šn ý‘ì·x«1002‘­3DLDFPRšÃŽG’ÑOAPPL‘ÿJªYING–ÕXA“TRANSF˜ORMA‘ÿJªTION‘«291Ž €n ý•@PÂ1002.Ž©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9olygonŽ‘kÍÅ«::Ž‘r\ÂopQÇeratorŽ’ò¸·«=ŽŽŽ’ª¹×(ÂconstŽ‘*¢T‘ÿ -«ransformŽ‘Uót«&Ž‘]º’±tŽ‘aW«)Ž¡‘ -·fŽ¡‘ÂP®9athŽ‘-‘j«::Ž‘4¨ÂopQÇeratorŽ‘_¶]·«=ŽŽŽ‘l}|(±tŽ‘œr«);Ž¡‘ÂreturnŽ‘7漫(Ïc‘ÿ}'enterŽ‘У·«=ŽŽ‘.^Ú±tŽ‘1ûL«);Ž¡‘ -·gŽŸÂ1003.‘ üRotatation–ÕTaround“the“main“axes.ަ·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦Ïr‘ÿ}'otateŽ’Åä«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘>’ˆ«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘>f®«=‘Ç0Ž“);ŽŸÂ1004.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9olygonŽ‘kÍÅ«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢realŽ‘4ÝбxŽ‘:”ì;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±yŽ‘;Ëp;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆx±zŽ‘;Ÿ–«)Ž¡‘ -·fŽ¡‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ަ‘±tŽ‘œt:Ïr‘ÿ}'otateŽ‘o>«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);Ž¡‘ -·gޤÂ1005.‘ üRotate–ÕTaround“an“arbitrary“axis.Ž¡1006.‘ üP•®9oin“t‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬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®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦Ïr‘ÿ}'otateŽ’Åä«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏp1Ž‘R¢Å±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘Qã«=‘Ç180ŽŽ‘Ç);ŽŸÂ1007.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9olygonŽ‘kÍÅ«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïp0Ž‘Pø±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘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û«);Ž¡‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);Ž¡‘ -·gŽŸÂ1008.‘ üP•®9ath‘ÕTargumen“t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬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®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦Ïr‘ÿ}'otateŽ’Åä«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘Qã«=‘Ç180ŽŽ‘Ç);ŽŽŽŒ‹$’á Šn ý‘ì«292›ÂP–ÿ -«A“TH‘ÕX­AR•ÃŽGUMENT’Í–3DLDFPR“G˜·x«1009Ž €n ý•@PÂ1009.Ž©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9olygonŽ‘kÍÅ«::‘Ïr‘ÿ}'otateŽ‘oB«(ÂconstŽ‘*¢P®9athŽ‘:[«&Ž‘AØy±pŽ‘Fày;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangleŽ‘NHË«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(·:±pŽ‘:Ïis‘‰ffŽ‘®line‘ÿ}'arŽ‘%}«(‘ª¨))‘·fŽ¡‘Ïc‘ÿ}'errŽ‘7ã··‘.Ý"ERROR!È ÝInÈ ÝEllipse::Ž‘p-Òrotate(Path,È Ýreal).\Ž’Ù-–n"Ž’ëb·Ž¡‘2Ý"PathÈ ÝisÈ ÝnotÈ ÝaÈ Ýline.Ž’šÿÉÈ ÝReturningÈ ÝINVALID_Ž’ÿTRANSFORM.\n\n"Ž’SEÈ«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_TRANSFORMŽ’›¬ò«;Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼Ïr‘ÿ}'otateŽ‘RUú«(±pŽ‘:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘)±;‘ª¨pŽ‘²¨:Ïget‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>«(–ª¨)±;“ÏangleŽ‘jû«);Ž¡‘ -·gŽŸÂ1010.‘ üScale.ަ·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦Ïsc‘ÿ}'aleŽ‘} ˜«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç1Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç1Ž“);ŽŸÂ1011.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9olygonŽ‘kÍÅ«::‘Ïsc‘ÿ}'aleŽ‘´ö«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)Ž¡‘ -·fŽ¡‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ަ‘±tŽ‘œt:Ïsc‘ÿ}'aleŽ‘´ò«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);Ž¡‘ -·gŽŸÂ1012.‘ üShear.ަ·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦Ïshe‘ÿ}'arŽ‘Šà«(ÂrealŽ‘³.ÏxyŽ‘!—±;‘ª¨ÂrealŽ‘]ÖÏxzŽ‘%œÀ«=‘Ç0Ž–Ç±;‘ª¨ÂrealŽ‘]ÖÏyxŽ‘&Zœ«=‘Ç0Ž“±;‘ª¨ÂrealŽ‘]ÖÏyzŽ‘%Ô6«=‘Ç0Ž“±;‘ª¨ÂrealŽ‘]ÖÏzxŽ‘%–Y«=‘Ç0Ž“±;‘ª¨ÂrealŽ‘]ÖÏzyŽ‘%|«=‘Ç0Ž“);ŽŸÂ1013.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9olygonŽ‘kÍÅ«::‘Ïshe‘ÿ}'arŽ‘4>«(ÂrealŽ‘³.ÏxyŽ‘!—±;‘ª¨ÂrealŽ‘]ÖÏxzŽ‘"Õ¨±;‘ª¨ÂrealŽ‘]ÖÏyxŽ‘#“„±;‘ª¨ÂrealŽ‘]ÖÏyzŽ‘# ±;‘ª¨ÂrealŽ‘]ÖÏzxŽ‘"ÏA±;‘ª¨ÂrealŽ‘]ÖÏzyŽ‘"´ð«)Ž¡‘ -·fŽ¡‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ަ‘±tŽ‘œt:Ïshe‘ÿ}'arŽ‘4:«(ÏxyŽ‘ -ãç±;‘ª¨ÏxzŽ‘ "z±;‘ª¨ÏyxŽ‘ àV±;‘ª¨ÏyzŽ‘ Yð±;‘ª¨ÏzxŽ‘ ±;‘ª¨ÏzyŽ‘ «);Ž¡‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);Ž¡‘ -·gޤÂ1014.‘ üShift.Ž¡1015.‘ üreal‘ÕTargumen®9ts.ަ·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·ŽŸ ‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦ÏshiftŽ‘{t#«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç0Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç0Ž“);ŽŽŽŒ‹%ž´ Šn ý‘ì·x«1016›­3DLDFPR•ÃŽG’í’ÂREAL‘ÕX­AR“GUMENTS˜«293Ž €n ý•@PÂ1016.Ž©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·ޤ ‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9olygonŽ‘kÍÅ«::‘ÏshiftŽ‘«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)Ž¡‘ -·fŽ¡‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ަ‘±tŽ‘œt:ÏshiftŽ‘}«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ÂreturnŽ‘7漫(·Ž‘ÏthisŽ‘²Ï·«=ŽŽ‘(A±tŽ‘+Ýx«);Ž¡‘ -·gŽŸÂ1017.‘ üP•®9oin“t‘ÕTargumen“t.ަ·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/ÔT‘ÿ -«ransformŽ‘gV¦ÏshiftŽ‘{t#«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«);ŽŸÂ1018.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·Ž¡‘ -ÂT‘ÿ -«ransformŽ‘AÈÓP®9olygonŽ‘kÍÅ«::‘Ï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ޤÂ1019.‘ üShift‘ÕTtimes.Ž¡1020.‘ üreal‘ÕTargumen®9ts.ަ·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·ŽŸ ‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïshift‘‰ffŽ‘®timesŽ‘wwç«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ gæ«=‘Ç1Ž–Ç±;‘ª¨ÂrealŽ‘]Ö±zŽ‘ < «=‘Ç1Ž“);Ž¡Â1021.ަ·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9olygonŽ‘MË«::‘Ïshift‘‰ffŽ‘®timesŽ‘/ì?«(ÂrealŽ‘³.±xŽ‘jJ;‘ª¨ÂrealŽ‘]Ö±yŽ‘ Î;‘ª¨ÂrealŽ‘]Ö±zŽ‘tô«)Ž¡‘ -·fŽ¡‘ÂP®9athŽ‘-‘j«::Ž‘4¨Ïshift‘‰ffŽ‘®timesŽ‘c ã«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘Ïc‘ÿ}'enterŽ‘0 ±:Ïshift‘‰ffŽ‘®timesŽ‘.ì;«(±xŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁÆ«);Ž¡‘ÂreturnŽ‘4‘g«;Ž¡‘ -·gŽŸÂ1022.‘ üP•®9oin“t‘ÕTargumen“t.ަ·h–ª¨«Declare‘UUÂP®9olygonŽ‘/¯˜«functions‘@­978“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/Ôv®9oidŽ‘H‹¬Ïshift‘‰ffŽ‘®timesŽ‘wwç«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«);ŽŽŽŒ‹&©F Šn ý‘ì«294›ÂPOINT‘ÕX­AR•ÃŽGUMENT’”µ3DLDFPR“G˜·x«1023Ž €n ý•@PÂ1023.Ž©·h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙP®9olygonŽ‘MË«::‘Ïshift‘‰ffŽ‘®timesŽ‘/ì?«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]±pŽ‘Ié]«)Ž¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïshift‘‰ffŽ‘®timesŽ‘fÒ÷«(±pŽ‘:Ïget‘‰ffŽ‘®xŽ‘Žg«(–ª¨)±;“pŽ›²¨:Ïget‘‰ffŽ‘®yŽ‘t«(“)±;“pŽ˜:Ïget‘‰ffŽ‘®zŽ‘«(“));Ž¡‘ -·gŽŸÂ1024.– üReg‘°¡‰ffs4Ž‘#ÕP®9olygon“(Èpolygons.webÂ).‘AÅy«[¬LDF‘T2003.04.15.«]Ž’Í³TO–UUDO:“It“will“bGe“necessary“toŽ¡supply‘Ÿ/ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H½«with–Ÿ/a“complete“set“of“transformation“functions,‘±¦so“that“Ïc‘ÿ}'enterŽ‘#Gé«will“bGe“transformedŽ¡along–UUwith“the“ÂP•®9oin“tsŽ‘&Î.«pGoinš¸ãted“to“b˜y“the“pGoin˜ters“on“Ïp‘ÿ}'ointsŽ‘yê«.‘qÇSome“are“presen˜t“already‘ÿ*ª,“but“not“all.Ž¡‘ -[¬LDF‘T2003.04.15.«]Ž‘Y¹TO‘DO:–3Add“Ïin‘‰ffŽ‘®cir‘ÿ}'cleŽ‘(È|«(–ª®),‘2kÏout‘‰ffŽ‘®cir‘ÿ}'cleŽ‘.#«(“).‘„bAlign–3a“line“from“Ïc‘ÿ}'enterŽ‘$ñ«in“the“direction“of“aŽ¡normal–UUwith“the“y-axis.‘qÇUse“the“in•¸ãv“erse–UUof“the“ÂT‘ÿ -«ransformŽ‘;'«to“transform“the“ÂCircleŽ‘!¸«.ަ‘ -ÂformatŽ‘3c(ÏR–ÿ}'e“g‘‰ffŽ‘®PolygonŽ‘rÊ'PolygonŽŽŸÂ1025.› üReg‘°¡‰ffs4Ž‘#ÕP®9olygon–ÕTclass“de nition.˜Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘PT«is–UUderiv¸ãed“from“ÂP®9olygonŽ‘,ZC«.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.04.15.«]Ž‘XÐChanged,›(fso–*that“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘G¹«is“deriv¸ãed“from“ÂP®9athŽ‘®Ž«.‘_Previously‘ÿ*ª,˜it“wš¸ãas“deriv˜ed“fromŽ¡ÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘h÷˜«.Ž¡‘ -[¬LDF‘T2003.04.27.«]Ž‘XÉWChanged‘qÂprotectedŽ‘6œz«data–qmem¸ãbšGers“to“Âpriv‘ÿ\rateŽ‘&¾ï«.‘\ÑThey“no“longer“need“to“b˜e“ÂprotectedŽ‘3† «,Ž¡bGecause‘UUÂRectangleŽ‘8ê?«is–UUno“longer“deriv¸ãed“from“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘DÔ «.Ž¡‘ -[¬LDF‘T2003.06.06.«]Ž‘X#9Changed,›ž!so–pSthat“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘F_Z«is“deriv¸ãed“from“ÂP®9olygonŽ‘+uA«,˜whicš¸ãh“I'v˜e“just“added“abGo˜v˜e.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂclassŽ‘5¦Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘cô^­1025“·i‘ÇŽ¡‘ -ÂclassŽ‘$àRRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘i´[«:‘qÇÂpublicŽ‘'ñP®9olygonŽ‘S_4·fŽ¡‘ÂrealŽ‘*³0Ïinternal‘‰ffŽ‘®angleŽ‘h?e«;Ž¡‘ÂrealŽ‘*³0Ïr‘ÿ}'adiusŽ‘F{S«;Ž¡‘ÂunsignedŽ‘D7shortŽ‘b³ÏsidesŽ‘xKE«;Ž¡‘Âb•QÇo“olŽ‘-¡hÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘eFZ«;ަ‘ -ÂpublicŽ‘)=Ö«:‘·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·iŽ¡‘ -g«;ŽŸ ­This–ÕXco‘Ç«0Ž‘Ç)‘±=·‘ÿý«[¬LDF‘T2002.11.06.«]Ž‘T7Only–UUrotate“if“the“angle“·6«=‘Ç0,“i.e.,“don't“rotate“the“ rst“time.‘o·±=Ž¡‘ÏvertexŽ‘7±cŸ±~ŽŽ‘=±dÏr‘ÿ}'otateŽ‘X ¢«(0Ž‘±;‘ª¨iŽ‘U|·‘8àÏinternal‘‰ffŽ‘®angleŽ‘?ű;‘ª¨«0Ž‘ª©);Ž¡‘ÂifŽ‘´ú«(Ïangle‘‰ffŽ‘®xŽ‘#Lô·6«=‘Ç0Ž– ÿù·_‘8àÏangle‘‰ffŽ‘®yŽ‘%kƒ·6«=‘Ç0Ž“·_‘8àÏangle‘‰ffŽ‘®zŽ‘$ÿn·6«=‘Ç0Ž‘Ç)Ž¡‘(±=·‘ÿý«Rotation–UUaround“the“x-axis,“y-axis,“and“z-axis,“if“applicable.‘o·±=Ž¡‘ÏvertexŽ‘7±cŸ±~ŽŽ‘=±dÏr‘ÿ}'otateŽ‘X ¢«(Ïangle‘‰ffŽ‘®xŽ‘ …ܱ;‘ª¨Ïangle‘‰ffŽ‘®yŽ‘"3±;‘ª¨Ïangle‘‰ffŽ‘®zŽ‘!ª«);Ž¡‘ÏvertexŽ‘-±bŸ±~ŽŽ‘3±cÏshiftŽ‘GÎà«(Ïc‘ÿ}'enterŽ‘ ‹«);‘±=·‘ÿý«Put–UUin“pGosition“around“Ïc‘ÿ}'enterŽ‘^à«.‘o·±=Ž¡‘Ïp‘ÿ}'ointsŽ‘/$—±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÏvertexŽ‘±`«);Ž¡‘ -·gŽ¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"ExitingÈ ÝReg_PolygonŽ‘kÆÜ::Reg_Polygon()È Ý"Ž’ÈT)·‘ÇÝ"(center,È Ýsides,È ÝdiaŽ‘kÆÜmeter,È Ýangles).\n"Ž’Í”&·Ž¡‘(Ï ushŽ‘=¹«;Ž¡‘ -ÂreturnŽ‘*‘f«;‘qÇ·gŽŸÌüÂ1035.‘ üSetting‘ÕTfunction.ަ·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#L‹ÏsetŽ‘0Å«(ÂconstŽ‘yTP•®9oin“tŽ‘=·£«&Ž‘E~ÁÏc–ÿ}'c“enterŽ‘eŸ -±;‘ª¨ÂconstŽ‘ #üunsignedŽ‘P©¼shortŽ‘nÃÏssidesŽ’‰#c±;‘ª¨ÂconstŽ‘ #ürealŽ‘7%ÜÏddiameterŽ‘d A±;‘ª¨ÂconstŽ‘ #ürealŽŽ¡‘Ïangle‘‰ffŽ‘®xŽ‘AL÷«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangle‘‰ffŽ‘®yŽ‘Y»«=‘Ç0Ž“±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangle‘‰ffŽ‘®zŽ‘YO«=‘Ç0Ž“);ŽŸÌüÂ1036.‘ ü«??‘qÇ[¬LDF‘T2002.10.07.«]Ž‘SzSee‘UUbGelo¸ãw.ަ·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1027“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#¾SRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘f= «::‘ÏsetŽ‘xˆ«(ÂconstŽ‘ëP•®9oin“tŽ‘>›3«&Ž‘FbQÏc–ÿ}'c“enterŽ‘f‚š±;‘ª¨ÂconstŽ‘ •ÄunsignedŽ‘QLshortŽ‘piÏssidesŽ’Šx»±;‘ª¨ÂconstŽ‘ •ÄrealŽŽ¡‘2ÏddiameterŽ‘^çj±;‘ª¨ÂconstŽ‘ΔrealŽ‘6{ Ïangle‘‰ffŽ‘®xŽ‘Wè±;‘ª¨ÂconstŽ‘ΔrealŽ‘6{ Ïangle‘‰ffŽ‘®yŽ‘Væ—±;‘ª¨ÂconstŽ‘ΔrealŽ‘6{ Ïangle‘‰ffŽ‘®zŽ‘Vz‚«)·f‘NŸÂb•QÇo“olŽ‘éOÝDEBUGŽ‘:vÀ«=‘ÇÏfalseŽ‘v\«;Ž¡‘(±=·‘ÿýÏtrueޑĒ·±=ަ‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)Ž¡‘(Ïc‘ÿ}'outŽ‘>U7·‘ûüÝ"EnteringÈ ÝReg_PolygoŽ‘kûÀn::set()È Ý"Ž’£þ·‘ûüÝ"(center,È Ýsides,È ÝdiaŽ‘kûÀmeter,È Ýangles).\n"Ž’Íýî·Ž¡‘<Ï ushŽ‘Q¹«;ŽŽŽŒ‹)ÉÓ Šn ý‘ì·x«1037–­3DLDFPRÃŽG’u=SETTING‘ÕXFUNCTION“«297Ž €n ý•@PÂ1037.‘ ü«??‘e[¬LDF‘T2002.10.07.«]Ž‘SGAš¸ãt–/exactly“this“place,‘6»ÂP®9athŽ‘È#«::‘ÂP®9athŽ‘‘h«(‘ª®)“(the“default“v˜ersion“with“no“argumen˜ts)ޤ is›Éin•¸ãv“ok“ed.‘Í$When˜ÏsetŽ‘A£«(‘ª®)˜exits,‘æ·Ž‘ ­/ÂP®9athŽ‘$>“«(‘ª¨)˜is˜called˜on˜the˜empt“y˜ÂP®9athŽ‘Zƒ«.‘Í$When˜ÝDEBUGŽ‘"Š·‘ˆÏtrueŽ‘Lª«,‘æthe˜follo“wingŽ¡message–o½is“prinš¸ãted“bGefore“·Ž‘ 6ÛÂP®9athŽ‘#È?«(‘ª¨)“is“en˜tered.‘ÀÿI‘o¶don't“kno˜w“wh˜y“ÂP®9athŽ‘!«(‘ª®)“is“in˜v˜ok˜ed“and“this“bGothers“me“aŽ¡bit.‘qÇHo•¸ãw“ev“er,–UUit's“destro•¸ãy“ed–UUcleanly‘ÿ*ª,“so“I“don't“ha•¸ãv“e–UUto“w¸ãorry“abGout“leak‘ÿqÇage.Ž©·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1027“·i‘Ç«+·Ž¡‘ -ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘NÔ -±pŽ‘SÜ -«(Ïc–ÿ}'c“enterŽ‘ I±;‘ª¨ÏssidesŽ‘ -ú±;‘ª¨ÏddiameterŽ‘.’ ±;‘ª¨Ïangle‘‰ffŽ‘®xŽ‘"0„±;‘ª¨Ïangle‘‰ffŽ‘®yŽ‘"3±;‘ª¨Ïangle‘‰ffŽ‘®zŽ‘!ª«);ަ‘ -·Ž‘ÏthisŽ‘"²Ð«=‘DZpŽ‘Ï«;Ž¡‘ -ÂifŽ‘´ù«(ÝDEBUGŽ‘ÆY«)Ž¡‘Ïc‘ÿ}'outŽ‘* Q·‘ÇÝ"ExitingÈ ÝReg_PolygonŽ‘kÆÜ::set()È Ý"Ž’žTA·‘ÇÝ"(center,È Ýsides,È ÝdiaŽ‘kÆÜmeter,È Ýangles).\n"Ž’Í”&·‘ÇÏ ushŽ‘€«;Ž¡‘ -ÂreturnŽ‘*‘f«;‘qÇ·gޤÂ1038.‘ üPseudo-constructor–ÕTfor“dynamic“alloQÇcation.Ž¡1039.‘ üOptional–ÕTpQÇoinš®9ter“argumen˜t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ -«[¬LDF‘T2002.11.06.«]Ž‘Y;Added–UUoptional“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«pGoinš¸ãter“argumen˜t.‘qÇMade“non-ÂinlineŽ‘4ó«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘nã·Ž‘säÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“r–ÿ}'e“g‘‰ffŽ‘®p“olygonŽ’Ö“&«(ÂconstŽ‘*¢Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘bþ«·Ž‘gþ¬±rŽ‘oØ«=‘Ç0Ž‘Ç);ŽŸÂ1040.ަ·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1027“·i‘Ç«+·Ž¡‘ -ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘NÔ -·Ž‘SÔ ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ’–Rë::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“r–ÿ}'e“g‘‰ffŽ‘®p“olygonŽ‘dvF«(ÂconstŽ‘*¢Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘bþ«·Ž‘gþ¬±rŽ‘lÈÀ«)Ž¡‘ -·fŽ¡‘ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘XÔ ·Ž‘]Ô ±pŽ‘e£$«=‘ÇÂnewŽ‘Ïœ«(ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘A~´«);ަ‘ÂifŽ‘´ú«(±rŽ‘‘,·6«=‘Ç0Ž–Ç)‘·Ž‘ -±pŽ‘Ï«=‘Ç·Ž“±rŽ‘ ‘-«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Wt «=‘ÇÏtrueŽ‘‹°«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïcycle‘‰ffŽ‘®switchŽ‘Tϵ«=‘ÇÏtrueŽ‘‹°«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïline‘‰ffŽ‘®switchŽ‘OqÜ«=‘ÇÏfalseŽ‘v\«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘q T±:Ïr‘ÿ}'esizeŽ‘i«(6Ž‘±;‘ª¨«0Ž‘ª©);‘±=·‘ÿý«LDF–UU2003.04.09.‘qÇAdded“this“line.‘o·±=Ž¡‘ÂreturnŽ‘7æ¼±pŽ‘<;Ž¡‘ -·gŽŸÂ1041.‘ üRequired–ÕTReg‘°¡‰ffs4Ž‘#ÕPš®9olygon“argumen˜t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.06.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘nã·Ž‘säÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“r–ÿ}'e“g‘‰ffŽ‘®p“olygonŽ’Ö“&«(ÂconstŽ‘*¢Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘bþ««&Ž‘jÅɱrŽ‘oÝ«);ŽŽŽŒ‹*ß Šn ý‘ì«298›­REQUIRED–ÕXÂREG‘°¡‰ffs4Ž‘#ÕPOL‘ÿ -«YGON“­AR•ÃŽGUMENT’žÑx3DLDFPR“G˜·x«1042Ž €n ý•@PÂ1042.Ž©·h–ª¨«De ne‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1027“·i‘Ç«+·ޤ ‘ -ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘NÔ -·Ž‘SÔ ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ’–Rë::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“r–ÿ}'e“g‘‰ffŽ‘®p“olygonŽ‘dvF«(ÂconstŽ‘*¢Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘bþ««&Ž‘jÅɱrŽ‘oÝ«)Ž¡‘ -·fŽ¡‘ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘XÔ ·Ž‘]Ô ±pŽ‘e£$«=‘ÇÂnewŽ‘Ïœ«(ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘A~´«);ަ‘·Ž‘±pŽ‘ Ï«=‘DZrŽ‘‘,«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Wt «=‘ÇÏtrueŽ‘‹°«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïcycle‘‰ffŽ‘®switchŽ‘Tϵ«=‘ÇÏtrueŽ‘‹°«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïline‘‰ffŽ‘®switchŽ‘OqÜ«=‘ÇÏfalseŽ‘v\«;Ž¡‘±pŽ‘Ÿ~ŽŽ‘Ïpr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘q T±:Ïr‘ÿ}'esizeŽ‘i«(6Ž‘±;‘ª¨«0Ž‘ª©);‘±=·‘ÿý«LDF–UU2003.04.09.‘qÇAdded“this“line.‘o·±=Ž¡‘ÂreturnŽ‘7æ¼±pŽ‘<;Ž¡‘ -·gŽ©Â1043.– üDestructor.“«[¬LDF‘T2002.10.09.«]Ž‘Zˆ6Remo•¸ãv“ed–UUthe“destructor.‘qÇÂP®9athŽ‘/«::Ž‘$‘m·Ž‘,X‹ÂP®9athŽ‘Déï«(‘ª¨)“or“ÂP®9athŽ‘潫::‘Ïcle‘ÿ}'arŽ‘(Ý«(‘ª®)Ž¡should–,bšGe“used“instead,‘.¢unless“I‘ÿadd“dynamically“allo˜cated“data“mem¸ãb˜ers“to“ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘I… «(rather“thanŽ¡ÂP®9athŽ‘‘d«).ަÂ1044.‘ üReturning–ÕTelemen®9ts“and“information.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.03.«]Ž‘Z6ÅRemo•¸ãv“ed‘ƒßÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘G—«::‘Ïis‘‰ffŽ‘®planarŽ‘)&“«(‘ª®).‘ýdA‘ƒ‘ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘J†$«can–ƒßbGe“manipulated“in¸ãto“aŽ¡non-planar–UUstate,“so“it's“safer“to“use“the“ÂP®9athŽ‘<«vš¸ãersion,“whic˜h“tests“whether“it's“really“planar“or“not.ŽŸŸüÈ„`ÕÁGŽŽ¦Â1045.‘ üGet‘ÕTradius.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.13.«]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·ޤ ‘ -ÂinlineŽ‘)ŠIrealŽ‘@=wÏget‘‰ffŽ‘®r‘ÿ}'adiusŽ‘l9V«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïr‘ÿ}'adiusŽ‘S®ß«;Ž¡‘ -·gަÂ1046.– üCircles.“«[¬LDF‘T2003.06.13.«]Ž‘Z«JThe–xifunctions“in“this“section“are“all“de ned“in“Ècircles.web«,‘.bGecauseŽ¡ÂCircleŽ‘!¸«is–UUan“incomplete“t¸ãypGe“in“this“ le.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.13.«]Ž‘Y;Added–UUthis“section.ŽŸŸüÈ„`ÕÁGŽŽ¦Â1047.‘ üEnclosed‘ÕTcircle.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.06.13.«]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·ŽŸ ‘ -ÂCircleŽ‘+¸‚Ïin‘‰ffŽ‘®cir‘ÿ}'cleŽ‘PzË«(‘ª®)‘UUÂconstŽ‘*¢«;ަÂ1048.‘ üDra®9w–ÕTenclosed“circle.ŽŽŽŒ‹+í Šn ý‘ì·x«1049–­3DLDFPRÃŽG’ 3NORMAL‘ÕXVERSION“«299Ž €n ý•@PÂ1049.‘ üNormal‘ÕTv®9ersion.Ž©·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·ޤ ‘ -ÂCircleŽ‘,ŸîÏdr›ÿ}'aw‘‰ffŽ–®in‘‰ffŽ“cir˜cleŽ‘i¢¾«(ÂconstŽ‘ColorŽ‘?žm«&Ž‘Ge‹Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘¶þ«=‘HÊ·Ž‘ HËÂColorsŽ‘+!©«::Ž‘1¯çÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘i+±;‘ª¨ÂconstŽ‘ ¼¶stringŽŽ¡‘Ïddashe‘ÿ}'dŽ‘D,«=‘ÇÝ""Ž– Íz±;‘ª¨ÂconstŽ‘ÕJstringŽ‘@ú—Ïpp‘ÿ}'enŽ‘X÷Ò«=‘ÇÝ""Ž“±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŸÂ1050.‘ üPicture–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.04.«]Ž‘XÝlRemo•¸ãv“ed–*†default“argumenš¸ãt“for“Ïpictur‘ÿ}'eŽ‘"3\«.‘c‚Ha˜ving“one“made“it“impGossible“for“the“compilerŽ¡to›UUreso•¸ãv“e˜calls˜to˜Ïdr›ÿ}'aw‘‰ffŽ–®in‘‰ffŽ“cir˜cleŽ‘@X%«(‘ª®)˜with˜no˜argumen“ts.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·Ž¡‘ -ÂCircleŽ‘+ÝÓÏdr›ÿ}'aw‘‰ffŽ–®in‘‰ffŽ“cir˜cleŽ‘h࣫(ÂPictureŽ‘)³«&Ž‘0ÝÑÏpictur‘ÿ}'eŽ‘Oæ§±;‘ª¨ÂconstŽ‘ú›ColorŽ‘?Äß«&Ž‘G‹ýÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘~™ï«=‘I·Ž‘JÂColorsŽ‘)Þ(«::Ž‘0lfÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘gèA±;‘ª¨ÂconstŽŽ¡‘stringŽ‘?%PÏddashe‘ÿ}'dŽ‘e3y«=‘ÇÝ""Ž– Íz±;‘ª¨ÂconstŽ‘ÕJstringŽ‘@ú—Ïpp‘ÿ}'enŽ‘X÷Ò«=‘ÇÝ""Ž“«)‘UUÂconstŽ‘*¢«;ŽŸÂ1051.‘ üSurrounding‘ÕTcircle.ަ·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·Ž¡‘ -ÂCircleŽ‘+¸‚Ïout‘‰ffŽ‘®cir‘ÿ}'cleŽ‘U—:«(‘ª®)‘UUÂconstŽ‘*¢«;ޤÂ1052.‘ üDra®9w–ÕTsurrounding“circle.Ž¡1053.‘ üNormal‘ÕTv®9ersion.ަ·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·ޤ ‘ -ÂCircleŽ‘,ŒÏdr›ÿ}'aw‘‰ffŽ–®out‘‰ffŽ“cir˜cleŽ‘n«¾«(ÂconstŽ‘þŸColorŽ‘?w«&Ž‘G>­Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘o½«=‘(g·Ž‘ (hÂColorsŽ‘+F«::Ž‘1„Ïdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘i _±;‘ª¨ÂconstŽ‘ ©GstringŽŽ¡‘Ïddashe‘ÿ}'dŽ‘D,«=‘ÇÝ""Ž– Íz±;‘ª¨ÂconstŽ‘ÕJstringŽ‘@ú—Ïpp‘ÿ}'enŽ‘X÷Ò«=‘ÇÝ""Ž“±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŸÂ1054.‘ üPicture–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.04.«]Ž‘XÝlRemo•¸ãv“ed–*†default“argumenš¸ãt“for“Ïpictur‘ÿ}'eŽ‘"3\«.‘c‚Ha˜ving“one“made“it“impGossible“for“the“compilerŽ¡to›UUreso•¸ãv“e˜calls˜to˜Ïdr›ÿ}'aw‘‰ffŽ–®out‘‰ffŽ“cir˜cleŽ‘Et”«(‘ª®)˜with˜no˜argumen“ts.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1026“·i‘Ç«+·Ž¡‘ -ÂCircleŽ‘+ÊdÏdr›ÿ}'aw‘‰ffŽ–®out‘‰ffŽ“cir˜cleŽ‘m飫(ÂPictureŽ‘)D«&Ž‘0ÊbÏpictur‘ÿ}'eŽ‘OÓ8±;‘ª¨ÂconstŽ‘ç,ColorŽ‘?ž«&Ž‘GeÏddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘~R®«=‘äæ·Ž‘äçÂColorsŽ‘)½Å«::Ž‘0LÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘gÇÞ±;‘ª¨ÂconstŽŽ¡‘stringŽ‘?%PÏddashe‘ÿ}'dŽ‘e3y«=‘ÇÝ""Ž– Íz±;‘ª¨ÂconstŽ‘ÕJstringŽ‘@ú—Ïpp‘ÿ}'enŽ‘X÷Ò«=‘ÇÝ""Ž“«)‘UUÂconstŽ‘*¢«;ŽŸÂ1055.› üPutting–ÕTpQÇolygons“together.˜«This–UUis“what's“compiled.ަ‘ -·h–ª¨«Include‘UU les‘@­11“·iŽ¡‘ -h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·iŽ¡‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦P®9olygonŽ‘Kz˜­975“·iŽ¡‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘cô^­1025“·iŽ¡‘ -h–ª¨«De ne‘UUÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^«functions‘@­1027“·iŽ¡‘ -h–ª¨«De ne‘UUÂP®9olygonŽ‘/¯˜«functions‘@­979“·iŽŽŽŒ‹,ù/ Šn ý‘ì«300›­PUTTING–ÕXPOL‘ÿJªYGONS“TOGETHER’Î%3DLDFPRÃŽG˜·x«1056Ž €n ý•@PÂ1056.‘ ü«This–UUis“what's“written“to“Èpolygons.h«.Ž©ð*·h‘ª¨Ýpolygons.hŽ‘@0ó­1056‘ª¨·i‘Çޤ ‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦P®9olygonŽ‘Kz˜­975“·iŽ¡‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘cô^­1025“·iŽŸÂ1057.– üRectangle“(Èrectangles.webÂ).ŽŸ.ŒŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.18.«]Ž‘ZÞŸRemo•¸ãv“ed–+¹the“\T‘ÿ*ªransformations"“section,‘¡Qincluding“ÂopQÇeratorŽ‘0Ân·«=ŽŽŽ‘=‰(ÂconstŽ‘ T‘ÿ -«ransformŽŽ¡«&Ž‘Ç).‘úßAlso›-²mo•¸ãv“ed˜the˜ÂRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘IÚ«v“ersions˜to˜ÂP®9olygonŽ‘1`R«in˜Èpolygons.web«.‘úßThese˜are˜no“w˜inherited˜b“yŽ¡ÂRectangleŽ‘2?•«.Ž¡‘ -[¬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ŽŽ¦‘ -ÂformatŽ‘3c(ÏR–ÿ}'e“ctangleŽ‘fD%R–ÿ}'e“g‘‰ffŽ‘®PolygonŽŽ¦·h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚstringŽ‘Jn'Ïr‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(«=‘ÇÝ"$Id:È Ýrectangs.web,vŽ‘kÆÜÈ Ý1.3È Ý2003/12/10È Ý16:3Ž’ÔÆ 6:58È Ýlfinsto1È ÝExpÈ Ý$"Ž’>LÌ«;ŽŸÂ1058.‘ ü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"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"points.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"lines.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"planes.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"paths.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"curves.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"polygons.h"ŽŽŸÂ1059.› üRectangle–KÝclass“de nition.˜«[¬LDF‘T2003.07.18.«]Ž‘ZïITO‘¼MDO:‘¼hÏaxis‘‰ffŽ‘®hŽ‘"r]«and‘¼hÏaxis‘‰ffŽ‘®vŽ‘">®«are–¼hnot“recalculatedŽ¡when–UUa“ÂRectangleŽ‘8ê?«is“transformed.‘qÇI“should“do“something“abGout“this.ަ·h–ª¨«De ne‘UUÂclassŽ‘5¦RectangleŽ‘Tµ?­1059“·i‘ÇŽ¡‘ -ÂclassŽ‘$àRRectangleŽ‘Zu<«:‘qÇÂpublicŽ‘'ñP®9olygonŽ‘S_4·fŽ¡‘ÂrealŽ‘*³0Ïaxis‘‰ffŽ‘®hŽ‘E¬½«;Ž¡‘ÂrealŽ‘*³0Ïaxis‘‰ffŽ‘®vŽ‘Ey«;Ž¡‘Âb•QÇo“olŽ‘-¡hÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘eFZ«;ަ‘ -ÂpublicŽ‘)=Ö«:‘·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·iŽ¡‘ -g«;ŽŸ ð*­This–ÕXco«(Ïangle‘‰ffŽ‘®xŽ‘ …ܱ;‘ª¨Ïangle‘‰ffŽ‘®yŽ‘"3±;‘ª¨Ïangle‘‰ffŽ‘®zŽ‘!ª«);Ž¡‘Ïb‘ÿ}'ot‘‰ffŽ‘®rtŽ‘73a±:Ïr‘ÿ}'otateŽ‘o>«(Ïangle‘‰ffŽ‘®xŽ‘ …ܱ;‘ª¨Ïangle‘‰ffŽ‘®yŽ‘"3±;‘ª¨Ïangle‘‰ffŽ‘®zŽ‘!ª«);Ž¡‘Ïtop‘‰ffŽ‘®lftŽ‘9 æ±:Ïr‘ÿ}'otateŽ‘o>«(Ïangle‘‰ffŽ‘®xŽ‘ …ܱ;‘ª¨Ïangle‘‰ffŽ‘®yŽ‘"3±;‘ª¨Ïangle‘‰ffŽ‘®zŽ‘!ª«);Ž¡‘Ïtop‘‰ffŽ‘®rtŽ‘89±:Ïr‘ÿ}'otateŽ‘o>«(Ïangle‘‰ffŽ‘®xŽ‘ …ܱ;‘ª¨Ïangle‘‰ffŽ‘®yŽ‘"3±;‘ª¨Ïangle‘‰ffŽ‘®zŽ‘!ª«);Ž¡‘·g‘±=·‘ÿý«Put–UUaround“Ïc‘ÿ}'enterŽ‘^à«.‘o·±=Ž¡‘Ïb‘ÿ}'ot‘‰ffŽ‘®lftŽ‘.›3±:ÏshiftŽ‘}«(Ïc‘ÿ}'enterŽ‘ ‹«);Ž¡‘Ïb‘ÿ}'ot‘‰ffŽ‘®rtŽ‘-3`±:ÏshiftŽ‘}«(Ïc‘ÿ}'enterŽ‘ ‹«);Ž¡‘Ïtop‘‰ffŽ‘®lftŽ‘/ å±:ÏshiftŽ‘}«(Ïc‘ÿ}'enterŽ‘ ‹«);Ž¡‘Ïtop‘‰ffŽ‘®rtŽ‘.9±:ÏshiftŽ‘}«(Ïc‘ÿ}'enterŽ‘ ‹«);Ž¡‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž–Ç;‘ÿý±iŽ‘ 9 <‘Ç«4Ž“;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘Ïp‘ÿ}'ointsŽ‘ $•±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(‘ª¨));Ž¡‘·Ž‘Ïp‘ÿ}'ointsŽ‘4$˜«[0Ž‘]–Ç=“Ïb‘ÿ}'ot‘‰ffŽ‘®lftŽ‘bI«;Ž¡‘·Ž‘Ïp‘ÿ}'ointsŽ‘4$˜«[1Ž‘]–Ç=“Ïb‘ÿ}'ot‘‰ffŽ‘®rtŽ‘úv«;Ž¡‘·Ž‘Ïp‘ÿ}'ointsŽ‘4$˜«[2Ž‘]–Ç=“Ïtop‘‰ffŽ‘®rtŽ‘(«;Ž¡‘·Ž‘Ïp‘ÿ}'ointsŽ‘4$˜«[3Ž‘]–Ç=“Ïtop‘‰ffŽ‘®lftŽ‘gû«;Ž¡‘ -·gŽŸÂ1066.‘ üSetting‘ÕTfunction.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.06.«]Ž‘Y;Made‘UUÂrealŽ‘ƒ«argumen¸ãts‘UUÂconstŽ‘*¢«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘"æŠÏsetŽ‘0_«(ÂconstŽ‘SP•®9oin“tŽ‘<ë¡«&Ž‘D²¿Ïc–ÿ}'c“enterŽ‘dÓ±;‘ª¨ÂconstŽ‘½ûrealŽ‘6YÚÏaaxis‘‰ffŽ‘®hŽ‘Vo×±;‘ª¨ÂconstŽ‘½ûrealŽ‘6YÚÏaaxis‘‰ffŽ‘®vŽ‘V<(±;‘ª¨ÂconstŽ‘½ûrealŽ‘6YÚÏangle‘‰ffŽ‘®xŽ‘Y¦Î«=‘Ç0Ž‘Ç±;‘ª¨ÂconstŽŽ¡‘realŽ‘4³1Ïangle‘‰ffŽ‘®yŽ‘WåÔ«=‘Ç0Ž–Ç±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangle‘‰ffŽ‘®zŽ‘YO«=‘Ç0Ž“);ŽŽŽŒ‹/í Šn ý‘ì·x«1067–­3DLDFPRÃŽG’u=SETTING‘ÕXFUNCTION“«303Ž €n ý•@PÂ1067.Ž©·h–ª¨«De ne‘UUÂRectangleŽ‘8ê?«functions‘@­1062“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘#_ÒRectangleŽ‘VŸk«::‘ÏsetŽ‘xˆ«(ÂconstŽ‘Œ›P•®9oin“tŽ‘=Þ1«&Ž‘E¥OÏc–ÿ}'c“enterŽ‘eر;‘ª¨ÂconstŽ‘ 7CrealŽ‘7LjÏaaxis‘‰ffŽ‘®hŽ‘Wbg±;‘ª¨ÂconstŽ‘ 7CrealŽ‘7LjÏaaxis‘‰ffŽ‘®vŽ‘W.¸±;‘ª¨ÂconstŽ‘ 7CrealŽŽ¡‘2Ïangle‘‰ffŽ‘®xŽ‘R…á±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangle‘‰ffŽ‘®yŽ‘Vô±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangle‘‰ffŽ‘®zŽ‘V‡î«)Ž¡‘ -·fŽ¡‘ÂRectangleŽ‘I”ì±rŽ‘N_«(Ïc–ÿ}'c“enterŽ‘ I±;‘ª¨Ïaaxis‘‰ffŽ‘®hŽ‘!À¥±;‘ª¨Ïaaxis‘‰ffŽ‘®vŽ‘!Œö±;‘ª¨Ïangle‘‰ffŽ‘®xŽ‘"0„±;‘ª¨Ïangle‘‰ffŽ‘®yŽ‘"3±;‘ª¨Ïangle‘‰ffŽ‘®zŽ‘!ª«);ަ‘·Ž‘ÏthisŽ‘,²Ñ«=‘DZrŽ‘‘,«;Ž¡‘ -·gŽ©Â1068.› üF‘ÿ -«our‘$±P•®9oin“ts.˜«The‘»¼ÂP“oin“tŽ‘!À«argumen•¸ãts›»¼m“ust˜bGe˜so˜ordered,‘Útthat˜they˜are˜con“tiguous˜in˜the˜resultingŽ¡ÂRectangleŽ‘2?•«.ަÂ1069.‘ üConstructor.ŽŸ·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·Ž¡‘ -ÂRectangleŽ‘Äç«&Ž‘FŒÏpt1Ž–Uõ@±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏpt2Ž“±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏpt3Ž“«);ަÂ1070.Ž©·h–ª¨«De ne‘UUÂRectangleŽ‘8ê?«functions‘@­1062“·i‘Ç«+·Ž¡‘ -ÂRectangleŽ‘=?š«::‘ÂRectangleŽ‘3?™«(ÂconstŽ‘Ç£P•®9oin“tŽ‘Äç«&Ž‘FŒÏpt1Ž–Uõ@±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏpt2Ž“±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏpt3Ž“«);ŽŸÂ1072.Ž¡·h–ª¨«De ne‘UUÂRectangleŽ‘8ê?«functions‘@­1062“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘"ýÙRectangleŽ‘V=r«::‘ÏsetŽ‘xˆ«(ÂconstŽ‘*¢P•®9oin“tŽ‘=?«&Ž‘Dá]Ïpt0Ž‘TJ˜±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏpt1Ž–Uõ@±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏpt2Ž“±;‘ª¨ÂconstŽ‘ÕJP•®9oin“tŽ‘>Äç«&Ž‘FŒÏpt3Ž“«)ަ‘ -·fަ‘ÂRectangleŽ‘I”ì±rŽ‘N_«(Ïpt0Ž‘i;±;‘ª¨Ïpt1Ž–ã±;‘ª¨Ïpt2Ž“±;‘ª¨Ïpt3Ž“«);Ž¡‘·Ž‘ÏthisŽ‘,²Ñ«=‘DZrŽ‘‘,«;ަ‘ -·gޤÂ1073.‘ üPseudo-constructor–ÕTfor“dynamic“alloQÇcation.Ž¡1074.‘ üOptional–ÕTpQÇoinš®9ter“argumen˜t.ŽŸ·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·ަ‘ -ÂstaticŽ‘)HÚRectangleŽ‘^ÝÄ·Ž‘cÝÅÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“r–ÿ}'e“ctangleŽ’¼üô«(ÂconstŽ‘*¢RectangleŽ‘S¿Œ·Ž‘X¿±pŽ‘`Ž¥«=‘Ç0Ž‘Ç);Ž¡Â1075.ޤ·h–ª¨«De ne‘UUÂRectangleŽ‘8ê?«functions‘@­1062“·i‘Ç«+·ަ‘ -ÂRectangleŽ‘?”ë·Ž‘D”ìÂRectangleŽ‘wÔ…«::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“r–ÿ}'e“ctangleŽ‘Z3«(ÂconstŽ‘*¢RectangleŽ‘S¿Œ·Ž‘X¿±pŽ‘]Ç«)ަ‘ -·fަ‘ÂRectangleŽ‘I”ì·Ž‘N”í±rŽ‘V&«=‘ÇÂnewŽ‘Ïœ«(ÂRectangleŽ‘2?•«);Ž¡‘ÂifŽ‘´ú«(±pŽ‘Ï·6«=‘Ç0Ž–Ç)‘·Ž‘ -±rŽ‘‘-«=‘Ç·Ž“±pŽ‘ Ï«;ަ‘±rŽ‘ÊŸ~ŽŽ‘ÊÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘W6!«=‘ÇÏtrueŽ‘‹°«;ަ‘±rŽ‘ÊŸ~ŽŽ‘ÊÏline‘‰ffŽ‘®switchŽ‘O3ð«=‘ÇÏfalseŽ‘v\«;ަ‘±rŽ‘ÊŸ~ŽŽ‘ÊÏcycle‘‰ffŽ‘®switchŽ‘T‘É«=‘ÇÏtrueŽ‘‹°«;ަ‘ÂreturnŽ‘7æ¼±rŽ‘<°Ð«;ަ‘ -·gŽŸÂ1076.‘ üRequired–ÕTRectangle“argumen®9t.Ž¡·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·ަ‘ -ÂstaticŽ‘)HÚRectangleŽ‘^ÝÄ·Ž‘cÝÅÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“r–ÿ}'e“ctangleŽ’¼üô«(ÂconstŽ‘*¢RectangleŽ‘S¿Œ«&Ž‘[†ª±pŽ‘`Žª«);ŽŽŽŒ‹1?C Šn ý‘ì·x«1077‘­3DLDFPRšÃŽG’¿ëaREQUIRED–ÕXRECT‘ÿJªANGLE“AR˜GUMENT‘«305Ž €n ý•@PÂ1077.Ž©·h–ª¨«De ne‘UUÂRectangleŽ‘8ê?«functions‘@­1062“·i‘Ç«+·ޤ ‘ -ÂRectangleŽ‘?”ë·Ž‘D”ìÂRectangleŽ‘wÔ…«::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“r–ÿ}'e“ctangleŽ‘Z3«(ÂconstŽ‘*¢RectangleŽ‘S¿Œ«&Ž‘[†ª±pŽ‘`Žª«)Ž¡‘ -·fŽ¡‘ÂRectangleŽ‘I”ì·Ž‘N”í±rŽ‘V&«=‘ÇÂnewŽ‘Ïœ«(ÂRectangleŽ‘2?•«);ަ‘·Ž‘±rŽ‘ ‘/«=‘DZpŽ‘Ï«;Ž¡‘±rŽ‘ÊŸ~ŽŽ‘ÊÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘W6!«=‘ÇÏtrueŽ‘‹°«;Ž¡‘±rŽ‘ÊŸ~ŽŽ‘ÊÏline‘‰ffŽ‘®switchŽ‘O3ð«=‘ÇÏfalseŽ‘v\«;Ž¡‘±rŽ‘ÊŸ~ŽŽ‘ÊÏcycle‘‰ffŽ‘®switchŽ‘T‘É«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ÂreturnŽ‘7æ¼±rŽ‘<°Ð«;Ž¡‘ -·gŽ©Â1078.– üDestructor.“«[¬LDF‘T2002.10.09.«]Ž‘Zˆ6Remo•¸ãv“ed–UUthe“destructor.‘qÇÂP®9athŽ‘/«::Ž‘$‘m·Ž‘,X‹ÂP®9athŽ‘Déï«(‘ª¨)“or“ÂP®9athŽ‘潫::‘Ïcle‘ÿ}'arŽ‘(Ý«(‘ª®)Ž¡should–bšGe“used“instead,‘… unless“I‘¥add“dynamically“allo˜cated“data“mem¸ãb˜ers“to“ÂRectangleŽ‘‘Ç«3Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘8²z·‘üÑÝ"ERROR:È ÝRectanglesÈ ÝhŽ‘pü•aveÈ Ý4È Ýcorners,È Ý"Ž’Íž·Ž¡‘2Ý"numberedÈ Ý0È ÝthroughÈ Ž’šÿÉÝ3.\nReturningÈ ÝINVALIŽ’ÿD_POINT.\n"Ž’A ì·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gŽ¡‘ÂreturnŽ‘7æ¼·Ž‘<æ½Ïp‘ÿ}'ointsŽ‘X R«[±cŽ‘SÛ«];Ž¡‘ -·gŽŸÂ1087.– üGet‘ÕTMid-pQÇoin®9t.“«The–UUargumen¸ãt“±cŽ‘ -þ…«should“bGe“in“the“range“0–DZ<«=“±c“<«=“3.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.06.«]Ž‘Y;Changed–UUthis“function“so“that“it“uses“Ïme‘ÿ}'diateŽ‘&Ê«(‘ª®).Ž¡‘ -[¬LDF‘T2003.05.09.«]Ž‘Y;Renamed–UUthis“function“Ïget‘‰ffŽ–®mid‘‰ffŽ“p‘ÿ}'ointŽ‘>À°«(›ª®).‘qÇF–ÿ*ªormerly“,–UUit“w¸ãas“called“Ïmid‘‰ffŽ‘®p‘ÿ}'ointŽ‘.Œô«(˜).Ž¡‘ -[¬LDF‘T2003.07.18.«]Ž‘Y;Made‘UUÂconstŽ‘*¢«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏget‘‰ffŽ–®mid‘‰ffŽ“p‘ÿ}'ointŽ‘dZù«(ÂunsignedŽ‘07shortŽ‘N±±cŽ‘RUŒ«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹4Wú Šn ý‘ì«308–­GET‘ÕXMID-POINT’7q3DLDFPRÃŽG“·x«1088Ž €n ý•@PÂ1088.Ž©·h–ª¨«De ne‘UUÂRectangleŽ‘8ê?«functions‘@­1062“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïžRectangleŽ‘\/7«::‘Ïget‘‰ffŽ–®mid‘‰ffŽ“p‘ÿ}'ointŽ‘‘Ç«3Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘8K·‘•oÝ"ERROR:È ÝRectanglesÈ ÝhŽ‘p•3aveÈ Ý4È Ýmid_points,È Ý"Ž’ÜpÑ·Ž¡‘2Ý"numberedÈ Ý0È ÝthroughÈ Ž’šÿÉÝ3.\nReturningÈ ÝINVALIŽ’ÿD_POINT.\n"Ž’A ì·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gަ‘ÂP•®9oin“tŽ‘2ïŸÏp0Ž‘?_«;Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏp1Ž‘?_«;Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏp2Ž‘?_«;ަ‘Ïp0Ž‘"ÝÚ«=‘Ç·Ž‘ÇÏp‘ÿ}'ointsŽ‘"뮫[±cŽ‘SÛ«];Ž¡‘Ïp1Ž‘"ÝÚ«=–Ç(±cŽ‘ó<“«3Ž›Ç)“?“·Ž˜Ïp‘ÿ}'ointsŽ‘"뮫[±cŽ‘Œ»«+‘8à1Ž‘8á]“:“·Ž˜Ïp‘ÿ}'ointsŽ‘"뮫[0Ž‘];Ž¡‘ÂreturnŽ‘7æ¼Ïp0Ž‘Cý|±:Ïme‘ÿ}'diateŽ‘"½u«(Ïp1Ž‘ À«);Ž¡‘ -·gŽŸÂ1089.– üGetting‘ÕTaxes.“«[¬LDF‘T2003.07.18.«]Ž‘Zˆ6TO–UUDO:“Ïaxis‘‰ffŽ‘®hŽ‘!¤7«and“Ïaxis‘‰ffŽ‘®vŽ‘!pˆ«are“not“recalculated“when“aŽ¡ÂRectangleŽ‘5”ê«is–UUtransformed.‘qÇI“should“do“something“abGout“this.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.18.«]Ž‘Y;Added–UUthis“section.ަŸüÈ„`ÕÁGŽŽŸÂ1090.‘ üGet‘ÕTaxis‘°¡‰ffs4Ž‘#Õh.ަ·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/Ïget‘‰ffŽ–®axis‘‰ffŽ“hŽ‘Kàx«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ1091.ަ·h–ª¨«De ne‘UUÂRectangleŽ‘8ê?«functions‘@­1062“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/RectangleŽ‘SòÈ«::‘Ïget‘‰ffŽ–®axis‘‰ffŽ“hŽ‘,-M«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïaxis‘‰ffŽ‘®hŽ‘RàI«;Ž¡‘ -·gŽŸÂ1092.‘ üGet‘ÕTaxis‘°¡‰ffs4Ž‘#Õv.ަ·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·Ž¡‘ -ÂrealŽ‘ ³/Ïget‘‰ffŽ–®axis‘‰ffŽ“vŽ‘K¬É«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹5f… Šn ý‘ì·x«1093–­3DLDFPRÃŽG’^‚GET‘ÕXÂAXIS‘°¡‰ffs4Ž‘#ÕV“«309Ž €n ý•@PÂ1093.Ž©·h–ª¨«De ne‘UUÂRectangleŽ‘8ê?«functions‘@­1062“·i‘Ç«+·ޤ ‘ -ÂrealŽ‘ ³/RectangleŽ‘SòÈ«::‘Ïget‘‰ffŽ–®axis‘‰ffŽ“vŽ‘+ùž«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼Ïaxis‘‰ffŽ‘®vŽ‘R¬š«;Ž¡‘ -·gŽŸÂ1094.‘ üEllipses.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.18.«]Ž‘XŸAdded–ìthis“section.‘NµThese“functions“m¸ãust“bšGe“de ned“in“Èellipses.web«,‘*b˜ecause“ÂEllipseŽŽ¡«is–UUan“incomplete“t¸ãypGe“in“this“ le.ަŸüÈ„`ÕÁGŽŽŸÂ1095.‘ üSurrounding‘ÕTEllipse.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.18.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·Ž¡‘ -ÂEllipseŽ‘/>/Ïout‘‰ffŽ‘®el‘‚ØlipseŽ‘]ô«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ1096.‘ üEnclosed‘ÕTEllipse.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.18.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·Ž¡‘ -ÂEllipseŽ‘/>/Ïin‘‰ffŽ‘®el‘‚ØlipseŽ‘Wö…«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ1097.‘ üDra®9w–ÕTsurrounding“Ellipse.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.18.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·Ž¡‘ -ÂEllipseŽ‘0léÏdr‘ÿ}'aw‘‰ffŽ–®out‘‰ffŽ“el‘‚ØlipseŽ‘v‚5«(ÂconstŽ‘Y\ColorŽ‘@- «&Ž‘Gô'Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’€¼p«=‘¿ ·Ž‘ ¿¡ÂColorsŽ‘+˜«::Ž‘2&½Ï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ìß«)‘UUÂconstŽ‘*¢«;ŽŸÂ1098.‘ üDra®9w–ÕTenclosed“Ellipse.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.18.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂRectangleŽ‘8ê?«functions‘@­1061“·i‘Ç«+·Ž¡‘ -ÂEllipseŽ‘0€¢Ïdr‘ÿ}'aw‘‰ffŽ–®in‘‰ffŽ“el‘‚ØlipseŽ‘qy«(ÂconstŽ‘mColorŽ‘@T{«&Ž‘H™Ïddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ’«=‘à€·Ž‘ àÂColorsŽ‘+¹_«::Ž‘2GÏdefault‘‰ffŽ‘®c‘ÿ}'olorŽ‘iÃx±;‘ª¨ÂstringŽŽ¡‘Ïddashe‘ÿ}'dŽ‘D,«=‘ÇÝ""Ž– Íz±;‘ª¨ÂstringŽ‘"ÏõÏpp‘ÿ}'enŽ‘:Í0«=‘ÇÝ""Ž“±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽ‘*¢«;ŽŸÂ1099.› üPutting–ÕTRectangle“together.˜«This–UUis“what's“compiled.ަ‘ -·h–ª¨«Include‘UU les‘@­11“·iŽ¡‘ -h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·iŽŽŽŒ‹6n™ Šn ý‘ì«310›­PUTTING–ÕXÂRECT‘ÿ -«ANGLE“­TOGETHER’µð3DLDFPRÃŽG˜·x«1099Ž €n ý•@P‘ -·h–ª¨«De ne‘UUÂclassŽ‘5¦RectangleŽ‘Tµ?­1059“·iŽŸ ‘ -h–ª¨«De ne‘UUÂRectangleŽ‘8ê?«functions‘@­1062“·iŽŽŽŒ‹7yä Šn ý‘ì·x«1100›­3DLDFPRÃŽG’µðPUTTING–ÕXÂRECT‘ÿ -«ANGLE“­TOGETHER˜«311Ž €n ý•@PÂ1100.‘ ü«This–UUis“what's“written“to“Èrectangs.h«.Ž©·h‘ª¨Ýrectangs.hŽ‘@0ó­1100‘ª¨·i‘Çޤ ‘ -h–ª¨«De ne‘UUÂclassŽ‘5¦RectangleŽ‘Tµ?­1059“·iŽŸÂ1101.– üEllipse“(Èellipses.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ŽŽ¦‘ -ÂformatŽ‘3c(ÏEl‘‚ØlipseŽ‘ZAWPathŽŽ¦·h‘ª¨«V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@­10‘ª¨·i‘Ç«+·Ž¡‘ -ÂstaticŽ‘)HÚstringŽ‘Jn'Ïr‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(«=‘ÇÝ"$Id:È Ýellipses.web,vŽ‘kÆÜÈ Ý1.2È Ý2003/12/10È Ý15:3Ž’ÔÆ 2:20È Ýlfinsto1È ÝExpÈ Ý$"Ž’>LÌ«;ŽŸÂ1102.‘ ü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"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"points.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"lines.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"planes.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"paths.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"curves.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"polygons.h"ŽŽ¡«#ÂincludeŽ‘'Ø~Ý"rectangs.h"ŽŽŸÂ1103.‘ üEllipse–ÕTclass“de nition.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.25.«]Ž‘Y;Added‘UUÏfo‘ÿ}'cus0Ž– «,‘UUÏfo‘ÿ}'cus1Ž“«,–UUand“Ïline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘R0«.Ž¡‘ -[¬LDF‘T2003.07.27.«]Ž‘Y;Added‘UUÏnumeric–ÿ}'al‘‰ffŽ‘®e“c“c“entricityŽ‘d'#«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«De ne‘UUÂclassŽ‘5¦EllipseŽ‘D^ƒ­1103“·i‘ÇŽ¡‘ -ÂclassŽ‘$àREllipseŽ‘J€«:‘qÇÂpublicŽ‘'ñRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ’“QÞ·fŽ¡‘ -ÂprotectedŽ‘:o™«:‘ÂP•®9oin“tŽ‘#ïÏfo‘ÿ}'cus0Ž‘@¢Ç«;Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏfo‘ÿ}'cus1Ž‘O¢É«;Ž¡‘ÂrealŽ‘*³0Ïline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘y` «;Ž¡‘ÂrealŽ‘*³0Ïnumeric–ÿ}'al‘‰ffŽ‘®e“c“c“entricityŽ’‹„þ«;Ž¡‘ÂrealŽ‘*³0Ïaxis‘‰ffŽ‘®hŽ‘E¬½«;Ž¡‘ÂrealŽ‘*³0Ïaxis‘‰ffŽ‘®vŽ‘Ey«;Ž¡‘ÂstaticŽ‘3HÛunsignedŽ‘céshortŽ’JŒÝDEFAULT_NUMBER_OF_POINTSŽ’ÿЬ«;ަ‘ -ÂpublicŽ‘)=Ö«:‘·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·iŽ¡‘ -g«;ŽŽŽŒ‹8zè Šn ý‘ì«312›ÂELLIPSE–ÕX­CLASS“DEFINITION’ØÍ$3DLDFPRÃŽG˜·x«1103Ž €n ý•@P­This–ÕXco·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ޤ ‘ -ÂEllipseŽ‘,èÞ«::‘ÂEllipseŽ‘"èÝ«(ÂconstŽ‘ÝäP•®9oin“tŽ‘>€Ã«&Ž‘FGáÏc–ÿ}'c“enterŽ‘fh*±;‘ª¨ÂconstŽ‘ ˆŒrealŽ‘7îüÏaaxis‘‰ffŽ‘®hŽ‘Xù±;‘ª¨ÂconstŽ‘ ˆŒrealŽ‘7îüÏaaxis‘‰ffŽ‘®vŽ‘WÑJ±;‘ª¨ÂconstŽ‘ ˆŒrealŽŽ¡‘2Ïangle‘‰ffŽ‘®xŽ‘R…á±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangle‘‰ffŽ‘®yŽ‘Vô±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangle‘‰ffŽ‘®zŽ‘V‡î±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏnnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ’¾6ì«)Ž¡‘ -:‘qÇÏaxis‘‰ffŽ‘®hŽ‘kT«(Ïaaxis‘‰ffŽ‘®hŽ‘ ý«)±;‘ÿýÏaxis‘‰ffŽ‘®vŽ‘ÅÛ«(Ïaaxis‘‰ffŽ‘®vŽ‘âN«)‘UU·fŽ¡‘Ïc‘ÿ}'enterŽ‘2Ð¥«=‘ÇÏc–ÿ}'c“enterŽ‘"ça«;Ž¡‘Ïc‘ÿ}'enterŽ‘0 ±:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘Ïfo‘ÿ}'cus0Ž‘3zD«=‘ÇÏoriginŽ‘½9«;Ž¡‘Ïfo‘ÿ}'cus1Ž‘3zD«=‘ÇÏoriginŽ‘½9«;ަ‘ÂrealŽ‘*³0Ïaxis‘‰ffŽ–®h‘‰ffŽ“halfŽ‘]TA«=‘ÇÏaxis‘‰ffŽ‘®hŽ‘À¥±=«2Ž‘;Ž¡‘ÂrealŽ‘*³0Ïaxis‘‰ffŽ–®v‘‰ffŽ“halfŽ‘\Ñh«=‘ÇÏaxis‘‰ffŽ‘®vŽ‘Œö±=«2Ž‘;ަ‘ÂifŽ‘´ú«(Ïaxis‘‰ffŽ‘®hŽ‘À¥·‘ÇÏaxis‘‰ffŽ‘®vŽ‘Œö«)‘·fŽ¡‘Ïline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘osö«=‘ÇÏsqrtŽ‘w«((Ïaxis‘‰ffŽ–®h‘‰ffŽ“halfŽ–2Ù·‘8àÏaxis‘‰ffŽ–®h‘‰ffŽ“halfŽ“«)–8à·“«(Ïaxis‘‰ffŽ–®v‘‰ffŽ“halfŽ›1·“Ïaxis‘‰ffŽ–®v‘‰ffŽ“halfŽ˜«));Ž¡‘Ïfo‘ÿ}'cus0Ž‘:³-±:ÏshiftŽ‘}«(·Ž‘ÇÏline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘Vsù«);Ž¡‘Ïfo‘ÿ}'cus1Ž‘:³-±:ÏshiftŽ‘}«(Ïline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘N¬Û«);Ž¡‘Ïnumeric–ÿ}'al‘‰ffŽ‘®e“c“c“entricityŽ’˜é«=‘ÇÏline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘Qsó±=Ïaxis‘‰ffŽ–®h‘‰ffŽ“halfŽ‘/Ùù«;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘osö«=‘ÇÏsqrtŽ‘w«((Ïaxis‘‰ffŽ–®v‘‰ffŽ“halfŽ–1·‘8àÏaxis‘‰ffŽ–®v‘‰ffŽ“halfŽ“«)–8à·“«(Ïaxis‘‰ffŽ–®h‘‰ffŽ“halfŽ›2Ù·“Ïaxis‘‰ffŽ–®h‘‰ffŽ“halfŽ˜«));Ž¡‘Ïfo‘ÿ}'cus0Ž‘:³-±:ÏshiftŽ‘}«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨·Ž‘ qÆÏline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘X¡«);Ž¡‘Ïfo‘ÿ}'cus1Ž‘:³-±:ÏshiftŽ‘}«(0Ž‘±;‘ª¨«0Ž‘ª©±;‘ª¨Ïline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘PWƒ«);Ž¡‘Ïnumeric–ÿ}'al‘‰ffŽ‘®e“c“c“entricityŽ’˜é«=‘ÇÏline–ÿ}'ar‘‰ffŽ‘®e“c“c“entricityŽ‘Qsó±=Ïaxis‘‰ffŽ–®v‘‰ffŽ“halfŽ‘/W «;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(Ïnnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘R˜Ñ­%Ž‘[ç «4Ž‘c®&·6«=‘Ç0Ž‘Ç)‘·fŽ¡‘Ïc‘ÿ}'errŽ‘5wm·‘ÁÄÝ"WARNING!È ÝInÈ ÝEllipseŽ‘mÁˆ():È ÝInvalidÈ ÝvalueÈ ÝfoŽ’ÖÁLrÈ Ýnumber_of_points:"Ž’E <·Ž¡‘2Ïnnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ’‡Á~·‘aˆÝ"."Ž‘ o·‘aˆÏend‘‚ØlŽ‘´Ò·‘aˆÝ"UsingÈ ÝdefaultÈ ÝinsteŽ‘naLad:È Ý"ޒމ-·Ž¡‘2ÝDEFAULT_NUMBER_OF_POINTSŽ’³M=·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘k‡Ä«=‘ÇÝDEFAULT_NUMBER_OF_POINTSŽ’M8«;Ž¡‘·gŽ¡‘ÂelseŽ‘+ØáÏnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘y`¢«=‘ÇÏnnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘S' «;Ž¡‘Ïon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘Nl «=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïline‘‰ffŽ‘®switchŽ‘FiÛ«=‘ÇÏfalseŽ‘v\«;Ž¡‘Ïcycle‘‰ffŽ‘®switchŽ‘KÇ´«=‘ÇÏtrueŽ‘‹°«;Ž¡‘Ïc–ÿ}'onne“ctorsŽ‘C40±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(Ý".."Ž‘†\«);ަ‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ަ‘ÂifŽ‘´ú«(Ïangle‘‰ffŽ‘®xŽ‘#Lô·6«=‘Ç0Ž– ÿù·_‘8àÏangle‘‰ffŽ‘®yŽ‘%kƒ·6«=‘Ç0Ž“·_‘8àÏangle‘‰ffŽ‘®zŽ‘$ÿn·6«=‘Ç0Ž‘Ç)‘±tŽ‘œr:Ïr‘ÿ}'otateŽ‘o>«(Ïangle‘‰ffŽ‘®xŽ‘ …ܱ;‘ª¨Ïangle‘‰ffŽ‘®yŽ‘"3±;‘ª¨Ïangle‘‰ffŽ‘®zŽ‘!ª«);Ž¡‘±tŽ‘œt:ÏshiftŽ‘}«(Ïc‘ÿ}'enterŽ‘ ‹«);Ž¡‘Ïfo‘ÿ}'cus0Ž‘3zD·«=ŽŽ‘C{Ïfo‘ÿ}'cus1Ž‘b‚½·«=ŽŽ‘rô±tŽ‘u­f«;ަ‘ÂrealŽ‘*³0Ïcurr‘‰ffŽ‘®angleŽ‘X‡ó«;Ž¡‘ÂrealŽ‘*³0Ïcurr‘‰ffŽ‘®xŽ‘G"K«;Ž¡‘ÂrealŽ‘*³0Ïcurr‘‰ffŽ‘®zŽ‘F›å«;ަ‘ÂforŽ‘%舫(Âin®9tŽ‘¤÷±iŽ‘Þ«=‘Ç0Ž‘Ç;‘ÿý±iŽ‘ 9 <‘ÇÏnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘M‡Á«;‘ÿý±iŽ‘ññŸÿ®+‘ÿ+ŽŽ‘¹«)‘±=·‘ÿý«LDF–UU2002.11.06.‘qÇMošGdi ed“this“co˜de.‘o·±=Ž¡‘·fŽ¡‘Ïcurr‘‰ffŽ‘®angleŽ‘N›Þ«=‘Ç2Ž‘ ÿù·‘8à±iŽ‘ã´·‘8àÝPIŽ‘ ?B±=Ïnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘JÀ©«;Ž¡‘Ïcurr‘‰ffŽ‘®xŽ‘=66«=‘ÇÏaxis‘‰ffŽ‘®hŽ‘À¥±=«2Ž‘8á·‘8àÏc‘ÿ}'osŽ‘×É«(Ïcurr‘‰ffŽ‘®angleŽ‘-Ôë);Ž¡‘Ïcurr‘‰ffŽ‘®zŽ‘<¯Ð«=‘ÇÏaxis‘‰ffŽ‘®vŽ‘Œö±=«2Ž‘8á·‘8àÏsinŽ‘G5«(Ïcurr‘‰ffŽ‘®angleŽ‘-Ôë);Ž¡‘Ïp‘ÿ}'ointsŽ‘9$˜±:Ïpush‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR«(ÂP•®9oin“tŽ‘šL«::Ž‘#(ŠÏcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“p‘ÿ}'ointŽ‘kþ†«(Ïcurr‘‰ffŽ‘®xŽ‘o±;‘ª¨«0Ž‘ª©±;‘ª¨Ïcurr‘‰ffŽ‘®zŽ‘“]«));Ž¡‘·Ž‘#«(Ïp‘ÿ}'ointsŽ‘$•±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨))‘Ç·«=ŽŽ‘UO±tŽ‘ñÁ«;Ž¡‘(±=·‘ÿý«Rotate‘UU·Ž‘UV«(Ïp‘ÿ}'ointsŽ‘$•±:Ïb‘ÿ}'ackŽ‘üë(‘ª¨))–UUaround“the“x,“y‘ÿ*ª,“and“z-axes“and“shift“it“to“Ïc‘ÿ}'enterŽ‘^à«.‘o·±=Ž¡‘·gŽ¡‘ -gŽŽŽŒ‹:’” Šn ý‘ì«314–­SETTING‘ÕXFUNCTION’u=3DLDFPRÃŽG“·x«1111Ž €n ý•@PÂ1111.‘ üSetting‘ÕTfunction.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ© ‘ -«[¬LDF‘T2003.03.01.«]Ž‘Y;Added–UUthis“function.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘$9oÏsetŽ‘1±ó«(ÂconstŽ‘f8P•®9oin“tŽ‘?‘k«&Ž‘GX‰Ïc–ÿ}'c“enterŽ‘gxÒ±;‘ª¨ÂconstŽ‘!àrealŽ‘8ÿ¤Ïaaxis‘‰ffŽ‘®hŽ‘Y¡±;‘ª¨ÂconstŽ‘!àrealŽ‘8ÿ¤Ïaaxis‘‰ffŽ‘®vŽ‘Xáò±;‘ª¨ÂconstŽ‘!àrealŽŽ¦‘Ïangle‘‰ffŽ‘®xŽ‘B³¾«=‘-ß0Ž– -à±;‘ª¨ÂconstŽ‘ ¬realŽ‘87Ïangle‘‰ffŽ‘®yŽ‘\Ðl«=‘-ß0Ž“±;‘ª¨ÂconstŽ‘ ¬realŽ‘87Ïangle‘‰ffŽ‘®zŽ‘\dW«=‘-ß0Ž“±;‘ª¨ÂconstŽ‘ ¬unsignedŽ‘QºâshortŽŽ¦‘Ïnnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘q' «=‘ÇÝDEFAULT_NUMBER_OF_POINTSŽ’M8«);ŽŸÂ1112.Ž¡·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ަ‘ -Âv®9oidŽ‘#UEllipseŽ‘F†2«::‘ÏsetŽ‘xˆ«(ÂconstŽ‘ÊP•®9oin“tŽ‘>Y7«&Ž‘F UÏc–ÿ}'c“enterŽ‘f@ž±;‘ª¨ÂconstŽ‘ tÆrealŽ‘7ÇpÏaaxis‘‰ffŽ‘®hŽ‘WÝm±;‘ª¨ÂconstŽ‘ tÆrealŽ‘7ÇpÏaaxis‘‰ffŽ‘®vŽ‘W©¾±;‘ª¨ÂconstŽ‘ tÆrealŽŽ¦‘2Ïangle‘‰ffŽ‘®xŽ‘R…á±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangle‘‰ffŽ‘®yŽ‘Vô±;‘ª¨ÂconstŽ‘ÕJrealŽ‘6ˆxÏangle‘‰ffŽ‘®zŽ‘V‡î±;‘ª¨ÂconstŽ‘ÕJunsignedŽ‘P XshortŽ‘mÖûÏnnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ’¾6ì«)ަ‘ -·fަ‘ÂEllipseŽ‘9>0±eŽ‘=æ1«(Ïc–ÿ}'c“enterŽ‘ I±;‘ª¨Ïaaxis‘‰ffŽ‘®hŽ‘!À¥±;‘ª¨Ïaaxis‘‰ffŽ‘®vŽ‘!Œö±;‘ª¨Ïangle‘‰ffŽ‘®xŽ‘"0„±;‘ª¨Ïangle‘‰ffŽ‘®yŽ‘"3±;‘ª¨Ïangle‘‰ffŽ‘®zŽ‘!ª±;‘ª¨Ïnnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘R -™«);Ž¡‘·Ž‘ÏthisŽ‘,²Ñ«=‘DZeŽ‘o«;ަ‘ -·gޤÂ1113.‘ üPseudo-constructor–ÕTfor“dynamic“alloQÇcation.Ž¡1114.‘ üOptional–ÕTpQÇoinš®9ter“argumen˜t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.11.06.«]Ž‘Y;Added–UUoptional“ÂconstŽ‘!÷EllipseŽ‘F¾%·Ž‘O{«argumen¸ãt.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·ަ‘ -ÂstaticŽ‘)HÚEllipseŽ‘N‡·Ž‘S‡ Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“el‘‚ØlipseŽ’¡ˆd«(ÂconstŽ‘*¢EllipseŽ‘ChзŽ‘HhѱeŽ‘O×ê«=‘Ç0Ž‘Ç);ŽŸÂ1115.Ž¡·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ަ‘ -ÂEllipseŽ‘/>/·Ž‘4>0ÂEllipseŽ‘W' «::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“el‘‚ØlipseŽ‘O_«(ÂconstŽ‘*¢EllipseŽ‘ChзŽ‘HhѱeŽ‘MÒ«)ަ‘ -·fަ‘ÂEllipseŽ‘9>0·Ž‘>>1±rŽ‘EÏ]«=‘ÇÂnewŽ‘Ïœ«(ÂEllipseŽ‘!èÙ«);Ž¡‘ÂifŽ‘´ú«(±eŽ‘o·6«=‘Ç0Ž–Ç)‘·Ž‘ -±rŽ‘‘-«=‘Ç·Ž“±eŽ‘ o«;ަ‘±rŽ‘ÊŸ~ŽŽ‘ÊÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘W6!«=‘ÇÏtrueŽ‘‹°«;ަ‘ÂreturnŽ‘7æ¼±rŽ‘<°Ð«;ަ‘ -·gŽŸÂ1116.‘ üRequired–ÕTEllipse“argumen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¦‘ -«[¬LDF‘T2002.11.06.«]Ž‘Y;Added–UUthis“function.Ž¡ŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·ަ‘ -ÂstaticŽ‘)HÚEllipseŽ‘N‡·Ž‘S‡ Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“el‘‚ØlipseŽ’¡ˆd«(ÂconstŽ‘*¢EllipseŽ‘ChЫ&Ž‘K/î±eŽ‘O×ï«);ŽŽŽŒ‹;¨Ñ Šn ý‘ì·x«1117‘­3DLDFPRšÃŽG’Æu@REQUIRED–ÕXÂELLIPSE“­AR˜GUMENT‘«315Ž €n ý•@PÂ1117.Ž©·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ޤ ‘ -ÂEllipseŽ‘/>/·Ž‘4>0ÂEllipseŽ‘W' «::‘Ïcr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“el‘‚ØlipseŽ‘O_«(ÂconstŽ‘*¢EllipseŽ‘ChЫ&Ž‘K/î±eŽ‘O×ï«)Ž¡‘ -·fŽ¡‘ÂEllipseŽ‘9>0·Ž‘>>1±rŽ‘EÏ]«=‘ÇÂnewŽ‘Ïœ«(ÂEllipseŽ‘!èÙ«);ަ‘·Ž‘±rŽ‘ ‘/«=‘DZeŽ‘o«;Ž¡‘±rŽ‘ÊŸ~ŽŽ‘ÊÏon‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘W6!«=‘ÇÏtrueŽ‘‹°«;Ž¡‘ÂreturnŽ‘7æ¼±rŽ‘<°Ð«;Ž¡‘ -·gŽ©Â1118.– üDestructor.“«[¬LDF‘T2002.10.09.«]Ž‘Zˆ6Remo•¸ãv“ed–UUthe“destructor.‘qÇÂP®9athŽ‘/«::Ž‘$‘m·Ž‘,X‹ÂP®9athŽ‘Déï«(‘ª¨)“or“ÂP®9athŽ‘潫::‘Ïcle‘ÿ}'arŽ‘(Ý«(‘ª®)Ž¡should–UUbšGe“used“instead,“unless“I“add“dynamically“allo˜cated“data“mem¸ãb˜ers“to“ÂEllipseŽ‘(“ƒ«(rather“than“ÂP®9athŽ‘湫).ަÂ1119.‘ üAssignmen®9t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.06.«]Ž‘Y;Added–UUerror“handling“coGde“to“prev•¸ãen“t‘UUself-assignmen“t.Ž¡‘ -[¬LDF‘T2002.11.10.«]Ž‘Y;Changed–UUreturn“v‘ÿqÇalue“to“ÂEllipseŽ‘(“ƒ«&Ž‘0Z¡.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·ŽŸ ‘ -ÂEllipseŽ‘/>/«&Ž‘7MÂopQÇeratorŽ‘bœ«=Ž‘jc (ÂconstŽ‘*¢EllipseŽ‘ChЫ&Ž‘K/î±eŽ‘O×ï«);ަÂ1120.‘ ü«!!‘qÇRememš¸ãbGer–UUto“put“an˜ything“spGeci c“to“ÂEllipsesŽ‘-¿«in“here!Ž¡·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ޤ ‘ -ÂEllipseŽ‘/>/«&Ž‘7MÂEllipseŽ‘Yî*«::Ž‘`|hÂopQÇeratorŽ’Œ«=Ž’“Ú;(ÂconstŽ‘*¢EllipseŽ‘ChЫ&Ž‘K/î±eŽ‘O×ï«)Ž¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÏthisŽ‘²Î·‘Ç«&Ž‘ -Ž6±eŽ‘67«)‘±=·‘ÿý«[¬LDF‘T2002.11.06.«]Ž‘T7Makš¸ãe–UUsure“it's“not“self-assignmen˜t.‘o·±=Ž¡‘ÂreturnŽ‘Aæ½·Ž‘Fæ¾ÏthisŽ‘WÒt«;Ž¡‘ÂP®9athŽ‘-‘j«::Ž‘4¨ÂopQÇeratorŽ‘_¶]«=Ž‘g}{(±eŽ‘¨«);Ž¡‘Ïc‘ÿ}'enterŽ‘2Ð¥«=‘DZeŽ‘o:Ïc‘ÿ}'enterŽ‘ ‹«;‘±=·‘ÿýÂEllipseŽ‘*>+«mem¸ãbGers.‘o·±=Ž¡‘Ïaxis‘‰ffŽ‘®hŽ‘1À§«=‘DZeŽ‘o:Ïaxis‘‰ffŽ‘®hŽ‘ù«;Ž¡‘Ïaxis‘‰ffŽ‘®vŽ‘1Œø«=‘DZeŽ‘o:Ïaxis‘‰ffŽ‘®vŽ‘ÅÞ«;Ž¡‘Ïfo‘ÿ}'cus0Ž‘3zD«=‘DZeŽ‘o:Ïfo‘ÿ}'cus0Ž‘³*«;Ž¡‘Ïfo‘ÿ}'cus1Ž‘3zD«=‘DZeŽ‘o:Ïfo‘ÿ}'cus1Ž‘³*«;Ž¡‘Ïnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘a‡Ã«=‘DZeŽ‘o:Ïnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘JÀ©«;‘±=·‘ÿýÂRegu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘qLê«mem¸ãbGers.‘o·±=Ž¡‘ÂreturnŽ‘7æ¼·Ž‘<æ½ÏthisŽ‘MÒs«;Ž¡‘ -·gަÂ1121.‘ üLabQÇelling.ަ1122.‘ üLabQÇel.ŽŸ·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·Ž¡‘ -Âv®9oidŽ‘#0}Ïlab‘ÿ}'elŽ‘7¥«(ÂconstŽ‘]FstringŽ‘?µ7Ïp‘ÿ}'osŽ‘Qòx«=‘Ý"top"Ž‘áØ±;‘ª¨ÂconstŽ‘ îb•QÇo“olŽ‘9ÛøÏdotŽ‘Kø„«=‘ÏfalseŽ‘Êñ;‘ª¨ÂPictureŽ‘*ή«&Ž‘2•ÌÏpictur‘ÿ}'eŽ‘Tº!«=‘Ïcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘EAF«)Ž¡‘ÂconstŽ‘8ÕP«;ŽŽŽŒ‹<µì Šn ý‘ì«316–­LABEL’@û3DLDFPRÃŽG“·x«1123Ž €n ý•@PÂ1123.Ž©·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ޤ ‘ -Âv®9oidŽ‘"ýÙEllipseŽ‘Eæ¶«::‘Ïlab‘ÿ}'elŽ‘tœ«(ÂconstŽ‘*¢stringŽ‘?OïÏp‘ÿ}'osŽ‘Nq±±;‘ª¨ÂconstŽ‘ÕJb•QÇo“olŽ‘9v°ÏdotŽ‘Hw½±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘Qkþ«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂifŽ‘´ú«(ÂLabQÇelŽ‘Ag«::Ž‘#Ï¥ÝDO_LABELSŽ‘V] -·‘ÇÏfalseŽ‘v\«)‘·fŽ¡‘ÂreturnŽ‘>‘h«;Ž¡‘·gަ‘ÂstringŽ‘5%O±sŽ‘9ÕO«;Ž¡‘Âc®9harŽ‘-jK±cŽ‘4…>«=‘ÇÝ'a'Ž‘ w«;ަ‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘ÇÏp‘ÿ}'ointsŽ–ë­±:Ïb–ÿ}'e“ginŽ‘¾¨«(›ª¨);‘ÿýÏiterŽ‘’·6«=‘ÇÏp‘ÿ}'ointsŽ“±:ÏendŽ‘ಫ(˜);‘ÿýÏiterŽ‘JûŸÿ®+‘ÿ+ŽŽ‘"«)‘·fŽ¡‘±sŽ‘%w«=‘DZcŽ‘ó«;Ž¡‘(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïlab‘ÿ}'elŽ‘t˜«(±sŽ‘°;‘ª¨Ïp‘ÿ}'osŽ‘Ìj±;‘ª¨ÏdotŽ‘«µ±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘±cŽ‘"ÓÞŸÿ®+‘ÿ+ŽŽ‘.šþ«;Ž¡‘·gŽ¡‘ -gŽŸÂ1124.‘ üDotlabQÇel.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2002.11.06.«]Ž‘Y}ÉChanged–Êãthis“function“so“that“it“just“calls“ÂEllipseŽ‘&³À«::‘Ïlab‘ÿ}'elŽ‘tœ«(‘ª®)“with“ÏdotŽ‘Vô«=‘‹ÏtrueŽ‘Oœ«.‘ÒqMade“itŽ¡ÂinlineŽ‘4ó«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIv®9oidŽ‘Bˆ!Ïdotlab‘ÿ}'elŽ‘dˆ«(ÂstringŽ‘!%MÏp‘ÿ}'osŽ‘3'«=‘ÇÝ"top"Ž‘q±;‘ª¨ÂPictureŽ‘*œ -«&Ž‘2c(Ïpictur‘ÿ}'eŽ‘T3«=‘ÇÏcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dìß«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Ïlab‘ÿ}'elŽ‘(tš«(Ïp‘ÿ}'osŽ‘!±;‘ª¨ÏtrueŽ‘o@±;‘ª¨Ïpictur‘ÿ}'eŽ‘ ³~«);Ž¡‘ -·gޤÂ1125.‘ üReturning–ÕTelemen®9ts“and“information.Ž¡1126.– üIs‘ÕTelliptical.“«[¬LDF‘T2003.07.20.«]Ž‘Zˆ6Ïis‘‰ffŽ‘®el‘‚Øliptic‘ÿ}'alŽ’‹tÌ«(‘ª®)–UU rst“c•¸ãhec“ks–UUwhether“·Ž‘UVÏthisŽ‘–a«is“planar“b¸ãy“callingޤ Ïget‘‰ffŽ‘®normalŽ‘0Št«(›ª®).‘_HIf–Ùthe“latter“function“returns“ÝINVALID_POINTŽ‘Gä«,‘(òthen“Ïis‘‰ffŽ‘®el‘‚Øliptic‘ÿ}'alŽ‘4 -o«(˜)“returns“ÏfalseŽ‘Í«.‘_HOtherwise,‘(òitŽ¡makš¸ães–s a“cop˜y“of“·Ž‘s -ÏthisŽ‘ÑÉ«called“±eŽ‘ -«,‘ Lputs“±eŽ‘ Ž«in˜to“the“x-z“plane,› Land“rotates“it,˜so“that“·Ž‘s -«(±eŽ‘¨:Ïp‘ÿ}'ointsŽ‘$•«[0Ž‘])“lies“on“the“x-axis.Ž¡Then,›a!it–^Åplugs“the“x“and“z-coGordinates“of“the“ÂP•®9oin“tsŽ‘&á«on“±eŽ‘ e‹«in¸ãto“the“ellipse“equation,˜i.e.,˜±xŸü^ÿ®2Ž‘|s±=aŸü^ÿ®2Ž‘»ž«+‘?+±zp—Ÿü^ÿ®2Ž‘í -±=bŸü^ÿ®2Ž‘SE«=‘ÖÒ1,Ž¡where–t±a“«is“half“of“the“horizonš¸ãtal“axis“of“the“ellipse,‘{±and“±b“«is“half“of“the“v˜ertical“axis.‘ÍØLet“±r‘AZ«=‘ú=±xŸü^ÿ®2Ž‘|s±=aŸü^ÿ®2Ž‘ÉÈ«+‘MU±zp—Ÿü^ÿ®2Ž‘í -±=bŸü^ÿ®2ŽŽ¡«and–ù’±“«stand“for“the“return“v‘ÿqÇalue“of“ÂP•®9oin“tŽ‘“Þ«::‘ÏepsilonŽ‘ o«(›ª®).‘S1If“·j±r‘Èx·‘[«1·j–DZ>“–ù’«for“an¸ãy“of“the“ÂP•®9oin“tsŽ‘&¨«on“±eŽ‘¡“«,‘ ìÏis‘‰ffŽ‘®el‘‚Øliptic‘ÿ}'alŽ‘3ø‚«(˜)Ž¡returns‘UUÏfalseŽ‘™«,–UUotherwise“it“returns“ÏtrueŽ‘í«.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.20.«]Ž‘Y;Added–UUthis“function.Ž¡‘ -[¬LDF‘T2003.07.25.«]Ž‘Y;No•¸ãw›UUc“hec“king˜ÏnormalŽ‘&s%·‘ÇÝINVALID_POINTŽ‘GY«.‘qÇIf˜it˜is,˜Ïis‘‰ffŽ‘®el‘‚Øliptic‘ÿ}'alŽ‘4Aë«(‘ª®)˜returns˜ÏfalseŽ‘™«.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gÏis‘‰ffŽ‘®el‘‚Øliptic‘ÿ}'alŽ‘Tý«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹=Áã Šn ý‘ì·x«1127–­3DLDFPRÃŽG’äŸIS‘ÕXELLIPTICAL“«317Ž €n ý•@PÂ1127.Ž©·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olŽ‘#¡gEllipseŽ‘FŠD«::‘Ïis‘‰ffŽ‘®el‘‚Øliptic‘ÿ}'alŽ‘1ìš«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘Âb•QÇo“olŽ‘-¡hÝDEBUGŽ‘K.Ù«=‘ÇÏfalseŽ‘v\«;‘±=·–ÿý«true“·±=Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏnormalŽ‘V o«=‘ÇÏget‘‰ffŽ‘®normalŽ‘3QŒ«(‘ª¨);ަ‘ÂifŽ‘´ú«(ÏnormalŽ‘#з‘ÇÝINVALID_POINTŽ‘GY«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)Ž¡‘(Ïc‘ÿ}'errŽ‘=”Ü·‘ß2Ý"InÈ ÝEllipse::is_elliŽ‘kÞöptical():È Ý"Ž’©o·‘ß2Ý"get_normal()È ÝreturnŽ‘kÞöedÈ ÝINVALID_POINT."Ž’ÍÄZ·Ž¡‘<Ïend‘‚ØlŽ‘R¸à·‘ÇÝ"*thisÈ ÝisÈ Ýnon-planarŽ‘kÆÜ.È ÝReturningÈ Ýfalse."Ž’ÒÔ#·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÏfalseŽ‘V–«;Ž¡‘·gަ‘ÂEllipseŽ‘9>0±eŽ‘@­I«=‘Ç·Ž‘ÇÏthisŽ‘²Ï«;ަ‘ÏnormalŽ‘4Vº±:ÏshiftŽ‘}«(Ïc‘ÿ}'enterŽ‘ ‹«);ަ‘ÂT‘ÿ -«ransformŽ‘KÈÔ±tŽ‘OeF«;ަ‘±tŽ‘œt:Ïalign‘‰ffŽ–®with‘‰ffŽ“axisŽ‘@²x«(Ïc‘ÿ}'enterŽ‘ ‹±;‘ª¨ÏnormalŽ‘"`±;‘ª¨Ý'y'Ž‘ñ«);Ž¡‘±eŽ‘¨:Ïdo‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘9š4«(±tŽ‘œr«);Ž¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘±eŽ‘ ¨:ÏshowŽ‘Šÿ«(Ý"eÈ ÝafterÈ Ýalignment:"Ž‘i†,«);ަ‘ÂP•®9oin“tŽ‘2ïŸÏx‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘Y»¼«(1Ž‘);Ž¡‘ÂP•®9oin“tŽ‘2ïŸÏp0Ž‘AÍw«=‘DZeŽ‘o:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘);Ž¡‘ÂrealŽ‘*³0ÏangŽ‘>4î«=‘ÇÏp0Ž‘ÝØ±:ÏangleŽ‘ÀS«(Ïx‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘&Ì«);ަ‘±tŽ‘œt:Ïr‘ÿ}'esetŽ‘Æ·«(‘ª¨);Ž¡‘±tŽ‘œt:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨ÏangŽ‘eN«);Ž¡‘Ïp0Ž‘"ÝÚ·«=ŽŽ‘2l±eŽ‘7:Ïdo‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘9š4«(±tŽ‘œr«);Ž¡‘Ïp0Ž‘ ±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);Ž¡‘ÂifŽ‘´ú«(Ïp0Ž‘ÝØ·6«=‘ÇÏx‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘)“5«)‘·fŽ¡‘±tŽ‘!œu:Ïr‘ÿ}'esetŽ‘Æ·«(‘ª¨);Ž¡‘±tŽ‘!œu:Ïr‘ÿ}'otateŽ‘o>«(0Ž‘±;‘ª¨·Ž‘ qÆ«2Ž‘ª§·‘8àÏangŽ‘ó†«);Ž¡‘±eŽ‘"¨:Ïdo‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘9š4«(±tŽ‘œr«);Ž¡‘·gŽ¡‘Ïp0Ž‘"ÝÚ«=‘DZeŽ‘o:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘);Ž¡‘Ïp0Ž‘ ±:Ïunit‘‰ffŽ‘®ve‘ÿ}'ctorŽ‘0•u«(Ïtrueޑƫ);Ž¡‘ÂifŽ‘´ú«(Ïp0Ž‘ÝØ·6«=‘ÇÏx‘‰ffŽ–®axis‘‰ffŽ“ptŽ‘)“5«)‘·fŽ¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)Ž¡‘(Ïc‘ÿ}'errŽ‘=”Ü·‘ß2Ý"ERROR!È ÝInÈ Ýis_elliptŽ‘kÞöical():\n"Ž’£Är·‘ß2Ý"RotationÈ Ýfailed.\nRŽ‘kÞöeturningÈ Ýfalse\n\n"Ž’ÓW·Ž¡‘<Ï ushŽ‘Q¹«;Ž¡‘ÂreturnŽ‘Aæ½ÏfalseŽ‘V–«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘±eŽ‘ ¨:ÏshowŽ‘Šÿ«(Ý"eÈ ÝafterÈ ÝrotationÈ ÝinŽ‘hÿÄÈ Ýx-zÈ Ýplane:"Ž’¨†«);ަ‘ÂrealŽ‘*³0±xŽ‘0jL«;Ž¡‘ÂrealŽ‘*³0±zŽ‘/ÊN«;Ž¡‘ÂrealŽ‘*³0±aŽ‘2Ãx«=‘Ç(±eŽ‘¨:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(0Ž‘)–8à·“±eŽ‘àá:Ïget‘‰ffŽ‘®c‘ÿ}'enterŽ‘,=G«(–ª¨))±:ÏmagnitudeŽ‘.=r«(“);Ž¡‘ÂrealŽ‘*³0±bŽ‘1Äò«=‘Ç(±eŽ‘¨:Ïget‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH«(Ïnumb›ÿ}'er‘‰ffŽ–®of‘‰ffŽ“p˜ointsŽ‘JÀ©±=«4Ž‘)–8à·“±eŽ‘àá:Ïget‘‰ffŽ‘®c‘ÿ}'enterŽ‘,=G«(–ª¨))±:ÏmagnitudeŽ‘.=r«(“);ަ‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"aÈ Ý==È Ý"Ž‘*Ôƒ·‘DZaŽ‘ -×`·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"bÈ Ý==È Ý"Ž‘*Ôƒ·‘DZbŽ‘ ØÚ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·gަ‘ÂrealŽ‘*³0±rŽ‘/}D«;Ž¡‘Âin®9tŽ‘%¤ù±iŽ‘+Þ«=‘Ç0Ž‘Ç;ŽŽŽŒ‹>ÏÆ Šn ý‘ì«318–­IS‘ÕXELLIPTICAL’äŸ3DLDFPRÃŽG“·x«1127Ž €n ý•@P‘ÂforŽ‘%舫(Âv®9ectorŽ‘ªH·hÂP•®9oin“tŽ‘ï·Ž‘#ïži‘«::Ž‘ŽBÏc–ÿ}'onst‘‰ffŽ‘®iter“atorŽ‘C‚ûiterŽ‘W«=‘DZeŽ–o:Ïp‘ÿ}'ointsŽ›$•±:Ïb–ÿ}'e“ginŽ‘¾¨«(‘ª¨);‘ÿýÏiterŽ‘’·6«=‘DZeŽ“:Ïp‘ÿ}'ointsŽ˜±:ÏendŽ‘ಫ(‘ª¨);‘ýŸÿ®+‘ÿ+ŽŽ‘GÏiterŽ‘"«)‘·fޤ ‘±xŽ‘&~7«=‘Ç(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®xŽ‘Žg«(‘ª¨);Ž¡‘±zŽ‘%Þ9«=‘Ç(·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:Ïget‘‰ffŽ‘®zŽ‘«(‘ª¨);Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘·fŽ¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"PointÈ Ý"Ž‘0€·‘DZiŽ‘ $·‘ÇÝ":È Ý"Ž‘Œ·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘((·Ž‘Ž‘ -ÏiterŽ‘Ë«)±:ÏshowŽ‘Šÿ«(Ý"iter:"Ž‘%FS«);Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"xÈ Ý==È Ý"Ž‘*Ôƒ·‘DZxŽ‘ EL·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘(Ïc‘ÿ}'outŽ‘> S·‘ÇÝ"zÈ Ý==È Ý"Ž‘*Ôƒ·‘DZzŽ‘ -¥N·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘·gŽ¡‘±rŽ‘%‘/«=‘Ç((±xŽ–ïü·‘8à±xŽ“«)±=«(±aŽ–‚·‘8à±aŽ“«))–8à+“((±zŽ›Oþ·“±zŽ˜«)±=«(±bŽ›ƒŠ·“±bŽ˜«));Ž¡‘ÂifŽ‘)´û«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘ O·‘ÇÝ"rÈ Ý==È Ý"Ž‘*Ôƒ·‘DZrŽ‘ -XD·‘ÇÏend‘‚ØlŽ‘ò·‘ÇÏ ushŽ‘€«;Ž¡‘ÂifŽ‘)´û«(ÏfabsŽ‘2Ò«(±rŽ‘ô·‘8à«1Ž‘8á)–DZ>“ÂP•®9oin“tŽ‘ad«::Ž‘%ï¢ÏepsilonŽ‘E^¦«(‘ª¨))‘·fŽ¡‘(ÂifŽ‘4r3«(ÝDEBUGŽ‘ÆY«)‘Ïc‘ÿ}'outŽ‘[ª·‘sÝ"PointÈ Ý"Ž‘2‹6·‘s±iŽ‘ vÚ·‘sÝ"È Ýdoesn'tÈ ÝsatisfyÈ ÝelŽ‘m7lipseÈ Ýequation.\n"Ž’Ð -Ü·Ž¡‘FÝ"ReturningÈ Ýfalse.\n\Ž’®ÿËn"Ž’¼ÍE·‘ÇÏ ushŽ‘€«;Ž¡‘(ÂreturnŽ‘Kæ¾ÏfalseŽ‘`–«;Ž¡‘·gŽ¡‘€Ÿÿ®+‘ÿ+ŽŽ‘*G#±iŽ‘-¹«;Ž¡‘·gŽ¡‘ÂifŽ‘´ú«(ÝDEBUGŽ‘ÆY«)Ž¡‘Ïc‘ÿ}'outŽ‘4 R·‘ÇÝ"ExitingÈ ÝEllipse::isŽ‘kÆÜ_elliptical().È ÝRetuŽ’ÔÆ rningÈ Ýtrue."Ž’ü·‘ÇÏend‘‚ØlŽ–ò·‘ÇÏend‘‚ØlŽ“·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘7æ¼ÏtrueŽ‘J«T«;Ž¡‘ -·gŽ©Â1128.‘ üIs‘ÕTquadratic.ŽŸ·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·Ž¡‘ -ÂinlineŽ‘)ŠIb•QÇo“olŽ‘C+¯Ïis‘‰ffŽ‘®quadr‘ÿ}'aticŽ‘w£«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼ÏtrueŽ‘J«T«;Ž¡‘ -·gަÂ1129.‘ üIs‘ÕTcubic.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.27.«]Ž‘Y;Made‘UUÂvirtualŽ‘(ã(«and‘UUnon-inline.ޤŸüÈ„`ÕÁGŽŽ¡·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·ŽŸ ‘ -ÂvirtualŽ‘/Ôb•QÇo“olŽ‘I/:Ïis‘‰ffŽ‘®cubicŽ‘kT^«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹?Ý Šn ý‘ì·x«1130–­3DLDFPRÃŽG’7l‰IS‘ÕXCUBIC“«319Ž €n ý•@PÂ1130.Ž©·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ޤ ‘ -Âb•QÇo“olŽ‘#¡gEllipseŽ‘FŠD«::‘Ïis‘‰ffŽ‘®cubicŽ‘#%(«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼ÏfalseŽ‘L–«;Ž¡‘ -·gŽŸÂ1131.‘ üIs‘ÕTquartic.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.27.«]Ž‘Y;Made‘UUÂvirtualŽ‘(ã(«and‘UUnon-inline.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·Ž¡‘ -ÂvirtualŽ‘/Ôb•QÇo“olŽ‘I/:Ïis‘‰ffŽ‘®quarticŽ‘sa'«(‘ª®)‘UUÂconstŽ‘*¢«;ŽŸÂ1132.ަ·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·Ž¡‘ -Âb•QÇo“olŽ‘#¡gEllipseŽ‘FŠD«::‘Ïis‘‰ffŽ‘®quarticŽ‘+1ñ«(‘ª®)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂreturnŽ‘7æ¼ÏfalseŽ‘L–«;Ž¡‘ -·gŽŸÂ1133.– üSolv®9e.“«[¬LDF‘T2002.11.06.«]Ž‘ZÌÏsolveŽ‘pO—«(‘ª®)–äëassumes“that“the“ÂEllipseŽ‘'²¯«lies“in“a“ma‘Ž8jor“plane“with“its“cen¸ãter“atŽ¡the–ãÿorigin.›LCoGde“that“calls“it“m¸ãust“ensure“that“these“conditions“are“ful lled.˜ÏsolveŽ‘ƒË«(‘ª®)“returns“the“t•¸ãw“o‘ãÿpGossibleŽ¡v‘ÿqÇalues–UUfor“either“the“horizonš¸ãtal“or“the“v˜ertical“coGordinate.Ž¡‘ -TO–UUDO:“Read“through,“and“then“explain“this“function.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8ÂLogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.20.«]Ž‘XŠ No¸ãw–×'using“Ïget‘‰ffŽ–®axis‘‰ffŽ“vŽ‘-ÐÁ«(›ª®)“and“Ïget‘‰ffŽ–®axis‘‰ffŽ“hŽ‘.p«(˜),‘ðcinstead“of“accessing“Ïaxis‘‰ffŽ‘®hŽ‘ §Û«and“Ïaxis‘‰ffŽ‘®vŽ‘ t,«directly‘ÿ*ª.Ž¡‘ -[¬LDF‘T2003.07.25.«]Ž‘Y;Remo•¸ãv“ed–UUsome“commenš¸ãted-out“coGde,“and“an“explanatory“commen˜t.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·Ž¡‘ -Ârealu½‰™šs4Ž‘ÔwpairŽ‘9p‚ÏsolveŽ‘O¨M«(Âc®9harŽ‘jIÏaxis‘‰ffŽ‘®unknownŽ‘UÞ±;‘ª¨ÂrealŽ‘]ÖÏknownŽ‘5>¢«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹@眠Šn ý‘ì«320–­SOL‘ÿ8VE’Aë'3DLDFPRÃŽG“·x«1134Ž €n ý•@PÂ1134.Ž©·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ޤ ‘ -Ârealu½‰™šs4Ž‘ÔwpairŽ‘9p‚EllipseŽ‘\Y_«::‘ÏsolveŽ‘7Ï«(Âc®9harŽ‘jIÏaxis‘‰ffŽ‘®unknownŽ‘UÞ±;‘ª¨ÂrealŽ‘]ÖÏknownŽ‘5>¢«)‘UUÂconstŽ‘*¢·f‘UUÂrealŽ‘ƒÏr‘ÿ}'adius‘‰ffŽ‘®knownŽ‘U -Š«;Ž¡‘ÂrealŽ‘4³1Ïr‘ÿ}'adius‘‰ffŽ‘®unknownŽ‘z²\«;ަ‘Ïaxis‘‰ffŽ‘®unknownŽ‘]:ë«=‘ÇÏtolowerŽ‘#í«(Ïaxis‘‰ffŽ‘®unknownŽ‘“Ïr‘ÿ}'adius‘‰ffŽ‘®knownŽ‘=É«)‘·fŽ¡‘(ÂreturnŽ‘Kæ¾ÝINVALID_REAL_PAIRŽ’¥¬ó«;Ž¡‘·gŽŽŽŒ‹Aï Šn ý‘ì·x«1135–­3DLDFPRÃŽG’Aë'SOL‘ÿ8VE“«321Ž €n ý•@PÂ1135.‘ ü«The–UUequation“for“an“ellipse“in“the“x-y“plane“with“its“cen¸ãter“at“the“origin“isޤ’ÃY¯±xŸûÞÿ®2Ž‘|s±=aŸûÞÿ®2Ž‘µS«+‘8à±y[ÙŸûÞÿ®2Ž‘ØL±=bŸûÞÿ®2Ž‘C‹«=‘Ç1Ž¡where–UU±a“«is“half“the“horizonš¸ãtal“axis“and“±b“«is“half“the“v˜ertical“axis.‘qÇTherefore,Ž¡’¹ë±y‘"ñ«=‘ÇŸöö5½pŽ‘ ÇŸöö5‰feFù+Ÿ Ë«(1–8à·“±xŸýr®2Ž–|s±=aŸýr®2Ž“«)–8à·“±bŸýr®2ŽŽŽŽŽ¡«andޤ ’·´\±x–Ç«=“Ÿöö5½pŽ‘ ÇŸöö5‰feF…Ÿ Ë«(1–8à·“±y[ÙŸýr®2Ž‘ØL±=bŸýr®2Ž‘|s«)“·“±aŸýr®2ŽŽŽŽ‘SL ±:ŽŸ·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·Ž¡‘ -±rŽ‘Ê:Ï rstŽ‘|«=‘ÇÏsqrtŽ‘w«((1Ž‘‰Ä·–‰Ã«((ÏknownŽ›j·“ÏknownŽ˜«)±=«(Ïr‘ÿ}'adius‘‰ffŽ‘®knownŽ›;‹Ê·“Ïr‘ÿ}'adius‘‰ffŽ‘®knownŽ˜«)))“·“«(Ïr‘ÿ}'adius‘‰ffŽ‘®unknownŽ›Fˆî·“Ïr‘ÿ}'adius‘‰ffŽ‘®unknownŽ˜«));Ž¡‘ -±rŽ‘Ê:Ïse–ÿ}'c“ondŽ‘ nß«=‘Ç·Ž‘ -Ž6±rŽ‘XJ:Ï rstŽ‘µª«;Ž¡‘ -ÂreturnŽ‘-æ»±rŽ‘2°Ï«;‘qÇ·gŽŸÂ1136.– üGet‘ôcoQÇecien®9ts.“«This–Dis“used“for“getting“the“coGecien¸ãts“of“the“quadratic“equation“that“resultsŽ¡from–0ÿreplacing“±y‘ŒØ«with“±mx–ËQ«+“±b–0ÿ«from“the“line“equation,‘géwhere“±m“«is“the“slopGe“and“±b“«the“in¸ãtercept“with“theŽ¡v•¸ãertical›B#axis,‘Eú(whic“hev“er˜that˜migh“t˜b•Ge˜in˜a˜particular˜case;‘H‰it˜needn't˜b“e˜the˜y-axis)˜in˜the˜equation˜for˜theŽ¡ellipseŽ¡’ÁÔ€±xŸûÞÿ®2Ž‘|s±= zŸûÞÿ®2Ž‘¾Í«+‘8à±y[ÙŸûÞÿ®2Ž‘ØL±= ‘‡ŸûÞÿ®2Ž‘ʧ«=‘Ç1Ž©namely›UU!!‘qÇST–ÿ*ªAR“T˜HERE.˜Chec•¸ãk˜this.‘qÇI˜think˜the˜±x˜«in˜the˜coGecien“t˜for˜±xŸü^ÿ®2Ž‘ÑÈ«is˜wrong.Ž¡¡‘7 ²±xŸûÞÿ®2Ž›|s±= zŸûÞÿ®2Ž‘¾Í«+–8à(±mx“«+“±b«)ŸûÞÿ®2Ž˜±= ‘‡ŸûÞÿ®2Ž‘ý:get_focus()|:\n"Ž’ÉDk·‘?9Ý"InvalidÈ Ýargument:È Ý"Ž‘pž·‘?9±sŽ‘ .r·‘?9Ïend‘‚ØlŽ‘p4·Ž¡‘2Ý"ValidÈ ÝargumentsÈ ÝareŽ’šÿÉÈ Ý0È ÝandÈ Ý1.\n"Ž’ÝM%·‘ÇÝ"ReturningÈ ÝINVALID_PŽ‘kÆÜOINT.\n\n"Ž’£”>·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gŽ¡‘ -gŽŸÂ1146.‘ üconst‘ÕTv®9ersion.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ -«[¬LDF‘T2003.07.25.«]Ž‘Y;Added–UUthis“function.ަŸüÈ„`ÕÁGŽŽ¦·h–ª¨«Declare‘UUÂEllipseŽ‘(“ƒ«functions‘@­1106“·i‘Ç«+·Ž¡‘ -ÂP•®9oin“tŽ‘(ïžÏget‘‰ffŽ‘®fo‘ÿ}'cusŽ‘P1/«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S±sŽ‘pÜS«)‘UUÂconstŽ‘*¢«;ŽŽŽŒ‹Dƒ Šn ý‘ì«324–ÂCONST‘ÕX­VERSION’ ol3DLDFPRÃŽG“·x«1147Ž €n ý•@PÂ1147.Ž©·h–ª¨«De ne‘UUÂEllipseŽ‘(“ƒ«functions‘@­1107“·i‘Ç«+·ޤ ‘ -ÂP•®9oin“tŽ‘(ïžEllipseŽ‘KØ{«::‘Ïget‘‰ffŽ‘®fo‘ÿ}'cusŽ‘(A•«(ÂconstŽ‘*¢unsignedŽ‘Na°shortŽ‘l,S±sŽ‘pÜS«)‘UUÂconstŽŽ¡‘ -·fŽ¡‘ÂP•®9oin“tŽ‘2pŽ‘7÷Ÿ«;ަ‘ÂifŽ‘´ú«(±sŽ‘w·‘Ç«0Ž‘Ç)‘·fŽ¡‘±pŽ‘%Ï«=‘ÇÏfo‘ÿ}'cus0Ž‘zB«;Ž¡‘±pŽ‘#:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÂreturnŽ‘Aæ½±pŽ‘F;Ž¡‘·gŽ¡‘ÂelseŽ‘*.6ifŽ‘5ã.«(±sŽ‘w·‘Ç«1Ž‘Ç)‘·fŽ¡‘±pŽ‘%Ï«=‘ÇÏfo‘ÿ}'cus1Ž‘zB«;Ž¡‘±pŽ‘#:Ïapply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘Fß«(‘ª¨);Ž¡‘ÂreturnŽ‘Aæ½±pŽ‘F;Ž¡‘·gŽ¡‘ÂelseŽ‘+Øá·fŽ¡‘Ïc‘ÿ}'errŽ‘3ôâ·‘?9Ý"ERROR!È ÝInÈ Ý|Ellipse:Ž‘l>ý:get_focus()|:\n"Ž’ÉDk·‘?9Ý"InvalidÈ Ýargument:È Ý"Ž‘pž·‘?9±sŽ‘ .r·‘?9Ïend‘‚ØlŽ‘p4·Ž¡‘2Ý"ValidÈ ÝargumentsÈ ÝareŽ’šÿÉÈ Ý0È ÝandÈ Ý1.\n"Ž’ÝM%·‘ÇÝ"ReturningÈ ÝINVALID_PŽ‘kÆÜOINT.\n\n"Ž’£”>·‘ÇÏ ushŽ‘€«;Ž¡‘ÂreturnŽ‘Aæ½ÝINVALID_POINTŽ’†¬þ«;Ž¡‘·gŽ¡‘ -gŽŸÂ1148.‘ üGet–ÕTlinear“eccen•®9tricit“y‘ÿ +¬[²LDF‘T2002.08.07.¬]Ž‘Y3Copied–€©the“en¸ãtire“\T‘ÿ*ªransformations"“section“from“®ellipses.web“¬and“made“the“appro-Ž¡priate‘UUc¸ãhanges.Ž¡‘ +[²LDF‘T2003.04.27.¬]Ž‘YReThe–Ÿprevious“commenš¸ãt“w˜as“out-of-date.‘PDI‘Ÿlma˜y“ha˜v˜e“remo˜v˜ed“the“transformation“func-Ž¡tions.‘PëA•¸ãt›Ÿ¶an“y˜rate,‘²Othere˜w“ere˜only˜a˜couple˜here.‘PëI‘Ÿ£ha“v“e˜no“w˜copied˜the˜rest˜of˜them˜from˜®ellipses.webŽ¡¬and–UUmade“the“appropriate“c¸ãhanges.Ž¡‘ +[²LDF‘T2003.07.18.¬]Ž‘Y;[²LDF‘T2003.07.18.¬]Ž’¨uMo•¸ãv“ed–UU\T‘ÿ*ªransformations"“section,“includingŽ¡­opQÇeratorŽ‘+–µ°¬=ŽŽŽ‘8]Ô(­constŽ‘T‘ÿ +«ransformŽ‘VØl¬&Ž‘^ŸŠ)–ÇÑfrom“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘IV¬to“­P®9olygonŽ‘,Ì¿¬.‘É:Also“remo•¸ãv“ed–ÇÑthe“­RectangleŽ‘9Ï7¬v¸ãer-Ž¡sions–UUin“®rectangs.web¬.‘qÇThe“­P®9olygonŽ‘/¯˜¬vš¸ãersions“are“no˜w“inherited“b˜y“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬and“­RectangleŽ‘5”ê¬.ŽŸŸüÈ„`ÕÁGŽŽ¦­1045.‘ üApplying–ÕTa“transformation.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2002.11.06.¬]Ž‘ZÛNoš¸ãw–Mõcalling“­P®9athŽ‘ß]¬::Ž‘$m›­opQÇeratorŽ‘PP°¬=ŽŽŽ‘\Ëo(‘ª¨)“instead“of“loGoping“through“±p‘ÿ}'ointsŽ‘rЬ.‘[¦This“w˜a˜y‘ÿ*ª,‘Œif“IŽ¡cš¸ãhange‘UU­P®9athŽ‘潬::Ž‘#tû­opQÇeratorŽ‘O °°¬=ŽŽŽ‘[ÒÏ(‘ª¨),–UUthe“c˜hange“will“automatically“bGe“re ected“here.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°ŽŸ ‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦opQÇeratorŽ’’í[°¬=ŽŽŽ’Ÿ´z(­constŽ‘*¢T‘ÿ +«ransformŽ‘Uót¬&Ž‘]º’µtŽ‘aW¬);ŽŽŽŒ‹+t‘ Šn ý‘ì°x¬1046‘¯3DLDF-1.1.5.1’È¥¹APPL›ÿJªYING–ÕXA“TRANSFÃŽORMA˜TION‘¬299Ž €n ý•@P­1046.Ž©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°ޤ ‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9olygonŽ‘kÍŬ::Ž‘r\­opQÇeratorŽ’ò¸°¬=ŽŽŽ’ª¹×(­constŽ‘*¢T‘ÿ +«ransformŽ‘Uót¬&Ž‘]º’µtŽ‘aW¬)Ž¡‘ +°fŽ¡‘­P®9athŽ‘-‘j¬::Ž‘4¨­opQÇeratorŽ‘_¶]°¬=ŽŽŽ‘l}|(µtŽ‘œr¬);Ž¡‘­returnŽ‘7漬(±c‘ÿ}'enterŽ‘У°¬=ŽŽ‘.^ÚµtŽ‘1ûL¬);Ž¡‘ +°gŽŸ­1047.‘ üRotatation–ÕTaround“the“main“axes.ަ°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦±r‘ÿ}'otateŽ’Åä¬(­constŽ‘*¢realŽ‘4ÝеxŽ‘:”ì;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµyŽ‘>’ˆ¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘>f®¬=‘Ç0Ž“);ŽŸ­1048.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9olygonŽ‘kÍŬ::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢realŽ‘4ÝеxŽ‘:”ì;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµyŽ‘;Ëp;‘ª¨­constŽ‘ÕJrealŽ‘6ˆxµzŽ‘;Ÿ–¬)Ž¡‘ +°fŽ¡‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;ަ‘µtŽ‘œt:±r‘ÿ}'otateŽ‘o>¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);Ž¡‘ +°gޤ­1049.‘ üRotate–ÕTaround“an“arbitrary“axis.Ž¡1050.‘ üP•®9oin“t‘ÕTargumen“ts.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²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®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦±r‘ÿ}'otateŽ’Åä¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘FŒ±p1Ž‘R¢Åµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘Qã¬=‘Ç180ŽŽ‘Ç);ŽŸ­1051.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9olygonŽ‘kÍŬ::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]±p0Ž‘Pøµ;‘ª¨­constŽ‘ÕJP•®9oin“tŽ‘>Äç¬&Ž‘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û¬);Ž¡‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);Ž¡‘ +°gŽŸ­1052.‘ üP•®9ath‘ÕTargumen“t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²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®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦±r‘ÿ}'otateŽ’Åä¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘Qã¬=‘Ç180ŽŽ‘Ç);ŽŽŽŒ‹,‚àŠn ý‘ì¬300›­P–ÿ +«A“TH‘ÕX¯ARÃŽGUMENT’ÿZ3DLDF-1.1.5.1˜°x¬1053Ž €n ý•@P­1053.Ž©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°ޤ ‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9olygonŽ‘kÍŬ::‘±r‘ÿ}'otateŽ‘oB¬(­constŽ‘*¢P®9athŽ‘:[¬&Ž‘AØyµpŽ‘Fày;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angleŽ‘NHˬ)Ž¡‘ +°fŽ¡‘­ifŽ‘´ú¬(°:µpŽ‘:±is‘‰ffŽ‘®line‘ÿ}'arŽ‘%}¬(‘ª¨))‘°fŽ¡‘±c‘ÿ}'errŽ‘7ã·°‘.´"ERROR!® ´In® ´Ellipse::Ž‘p-Òrotate(Path,® ´real).\Ž’Ù-–n"Ž’ëb°Ž¡‘2´"Path® ´is® ´not® ´a® ´line.Ž’šÿÉ® ´Returning® ´INVALID_Ž’ÿTRANSFORM.\n\n"Ž’SEȬ;Ž¡‘­returnŽ‘Aæ½´INVALID_TRANSFORMŽ’›¬ò¬;Ž¡‘°gŽ¡‘­returnŽ‘7æ¼±r‘ÿ}'otateŽ‘RUú¬(µpŽ‘:±get‘‰ffŽ‘®p‘ÿ}'ointŽ‘'bH¬(0Ž‘)µ;‘ª¨pŽ‘²¨:±get‘‰ffŽ–®last‘‰ffŽ“p‘ÿ}'ointŽ‘:$>¬(–ª¨)µ;“±angleŽ‘jû¬);Ž¡‘ +°gŽŸ­1054.‘ üScale.ަ°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦±sc‘ÿ}'aleŽ‘} ˜¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç1Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç1Ž“);ŽŸ­1055.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9olygonŽ‘kÍŬ::‘±sc‘ÿ}'aleŽ‘´ö¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)Ž¡‘ +°fŽ¡‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;ަ‘µtŽ‘œt:±sc‘ÿ}'aleŽ‘´ò¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);Ž¡‘ +°gŽŸ­1056.‘ üShear.ަ°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦±she‘ÿ}'arŽ‘Šà¬(­realŽ‘³.±xyŽ‘!—µ;‘ª¨­realŽ‘]Ö±xzŽ‘%œÀ¬=‘Ç0Ž–Çµ;‘ª¨­realŽ‘]Ö±yxŽ‘&Zœ¬=‘Ç0Ž“µ;‘ª¨­realŽ‘]Ö±yzŽ‘%Ô6¬=‘Ç0Ž“µ;‘ª¨­realŽ‘]Ö±zxŽ‘%–Y¬=‘Ç0Ž“µ;‘ª¨­realŽ‘]Ö±zyŽ‘%|¬=‘Ç0Ž“);ŽŸ­1057.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9olygonŽ‘kÍŬ::‘±she‘ÿ}'arŽ‘4>¬(­realŽ‘³.±xyŽ‘!—µ;‘ª¨­realŽ‘]Ö±xzŽ‘"Õ¨µ;‘ª¨­realŽ‘]Ö±yxŽ‘#“„µ;‘ª¨­realŽ‘]Ö±yzŽ‘# µ;‘ª¨­realŽ‘]Ö±zxŽ‘"ÏAµ;‘ª¨­realŽ‘]Ö±zyŽ‘"´ð¬)Ž¡‘ +°fŽ¡‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;ަ‘µtŽ‘œt:±she‘ÿ}'arŽ‘4:¬(±xyŽ‘ +ãçµ;‘ª¨±xzŽ‘ "zµ;‘ª¨±yxŽ‘ àVµ;‘ª¨±yzŽ‘ Yðµ;‘ª¨±zxŽ‘ µ;‘ª¨±zyŽ‘ ¬);Ž¡‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);Ž¡‘ +°gޤ­1058.‘ üShift.Ž¡1059.‘ üreal‘ÕTargumen®9ts.ަ°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°ŽŸ ‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦±shiftŽ‘{t#¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç0Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç0Ž“);ŽŽŽŒ‹-Ž Šn ý‘ì°x¬1060–¯3DLDF-1.1.5.1’úyü­REAL‘ÕX¯ARÃŽGUMENTS“¬301Ž €n ý•@P­1060.Ž©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°ޤ ‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9olygonŽ‘kÍŬ::‘±shiftŽ‘¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)Ž¡‘ +°fŽ¡‘­T‘ÿ +«ransformŽ‘KÈÔµtŽ‘OeF¬;ަ‘µtŽ‘œt:±shiftŽ‘}¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘­returnŽ‘7漬(°Ž‘±thisŽ‘²Ï°¬=ŽŽ‘(AµtŽ‘+Ýx¬);Ž¡‘ +°gŽŸ­1061.‘ üP•®9oin“t‘ÕTargumen“t.ަ°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/ÔT‘ÿ +«ransformŽ‘gV¦±shiftŽ‘{t#¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬);ŽŸ­1062.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°Ž¡‘ +­T‘ÿ +«ransformŽ‘AÈÓP®9olygonŽ‘kÍŬ::‘±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ޤ­1063.‘ üShift‘ÕTtimes.Ž¡1064.‘ üreal‘ÕTargumen®9ts.ަ°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°ŽŸ ‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±shift‘‰ffŽ‘®timesŽ‘wwç¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ gæ¬=‘Ç1Ž–Çµ;‘ª¨­realŽ‘]ÖµzŽ‘ < ¬=‘Ç1Ž“);Ž¡­1065.ަ°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP®9olygonŽ‘Mˬ::‘±shift‘‰ffŽ‘®timesŽ‘/ì?¬(­realŽ‘³.µxŽ‘jJ;‘ª¨­realŽ‘]ÖµyŽ‘ Î;‘ª¨­realŽ‘]ÖµzŽ‘tô¬)Ž¡‘ +°fŽ¡‘­P®9athŽ‘-‘j¬::Ž‘4¨±shift‘‰ffŽ‘®timesŽ‘c ã¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘±c‘ÿ}'enterŽ‘0 µ:±shift‘‰ffŽ‘®timesŽ‘.ì;¬(µxŽ‘·;‘ª¨yŽ‘í ;‘ª¨zŽ‘ÁƬ);Ž¡‘­returnŽ‘4‘g¬;Ž¡‘ +°gŽŸ­1066.‘ üP•®9oin“t‘ÕTargumen“t.ަ°h–ª¨¬Declare‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1022“°i‘Ǭ+°Ž¡‘ +­virtualŽ‘/Ôv®9oidŽ‘H‹¬±shift‘‰ffŽ‘®timesŽ‘wwç¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬);ŽŽŽŒ‹.™9 Šn ý‘ì¬302–­POINT‘ÕX¯ARÃŽGUMENT’ù!3DLDF-1.1.5.1“°x¬1067Ž €n ý•@P­1067.Ž©°h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°i‘Ǭ+°ޤ ‘ +­v®9oidŽ‘"ýÙP®9olygonŽ‘Mˬ::‘±shift‘‰ffŽ‘®timesŽ‘/ì?¬(­constŽ‘*¢P•®9oin“tŽ‘=?¬&Ž‘Dá]µpŽ‘Ié]¬)Ž¡‘ +°fŽ¡‘­returnŽ‘7æ¼±shift‘‰ffŽ‘®timesŽ‘fÒ÷¬(µpŽ‘:±get‘‰ffŽ‘®xŽ‘Žg¬(–ª¨)µ;“pŽ›²¨:±get‘‰ffŽ‘®yŽ‘t¬(“)µ;“pŽ˜:±get‘‰ffŽ‘®zŽ‘¬(“));Ž¡‘ +°gŽŸ­1068.– üReg‘°¡‰ffs4Ž‘#ÕP®9olygon“(®polygons.web­).‘AÅy¬[²LDF‘T2003.04.15.¬]Ž’Í³TO–UUDO:“It“will“bGe“necessary“toŽ¡supply‘Ÿ/­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H½¬with–Ÿ/a“complete“set“of“transformation“functions,‘±¦so“that“±c‘ÿ}'enterŽ‘#Gé¬will“bGe“transformedŽ¡along–UUwith“the“­P•®9oin“tsŽ‘&Î.¬pGoinš¸ãted“to“b˜y“the“pGoin˜ters“on“±p‘ÿ}'ointsŽ‘yê¬.‘qÇSome“are“presen˜t“already‘ÿ*ª,“but“not“all.Ž¡‘ +[²LDF‘T2003.04.15.¬]Ž‘Y¹TO‘DO:–3Add“±in‘‰ffŽ‘®cir‘ÿ}'cleŽ‘(È|¬(–ª®),‘2k±out‘‰ffŽ‘®cir‘ÿ}'cleŽ‘.#¬(“).‘„bAlign–3a“line“from“±c‘ÿ}'enterŽ‘$ñ¬in“the“direction“of“aŽ¡normal–UUwith“the“y-axis.‘qÇUse“the“in•¸ãv“erse–UUof“the“­T‘ÿ +«ransformŽ‘;'¬to“transform“the“­CircleŽ‘!¸¬.ަ‘ +­formatŽ‘3c(±R–ÿ}'e“g‘‰ffŽ‘®PolygonŽ‘rÊ'PolygonŽŽŸ­1069.› üReg‘°¡‰ffs4Ž‘#ÕP®9olygon–ÕTclass“de nition.˜Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘PT¬is–UUderiv¸ãed“from“­P®9olygonŽ‘,ZC¬.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8­LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.04.15.¬]Ž‘XÐChanged,›(fso–*that“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘G¹¬is“deriv¸ãed“from“­P®9athŽ‘®Ž¬.‘_Previously‘ÿ*ª,˜it“wš¸ãas“deriv˜ed“fromŽ¡­Regu½‰™šs4Ž–ÔwClu½‰™šs4Ž“Planeu½‰™šs4Ž“Curv®9eŽ‘h÷˜¬.Ž¡‘ +[²LDF‘T2003.04.27.¬]Ž‘XÉWChanged‘q­protectedŽ‘6œz¬data–qmem¸ãbšGers“to“­priv‘ÿ\rateŽ‘&¾ï¬.‘\ÑThey“no“longer“need“to“b˜e“­protectedŽ‘3† ¬,Ž¡bGecause‘UU­RectangleŽ‘8ê?¬is–UUno“longer“deriv¸ãed“from“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘DÔ ¬.Ž¡‘ +[²LDF‘T2003.06.06.¬]Ž‘X#9Changed,›ž!so–pSthat“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘F_Z¬is“deriv¸ãed“from“­P®9olygonŽ‘+uA¬,˜whicš¸ãh“I'v˜e“just“added“abGo˜v˜e.ަŸüÈ„`ÕÁGŽŽ¦°h–ª¨¬De ne‘UU­classŽ‘5¦Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘cô^¯1069“°i‘ÇŽ¡‘ +­classŽ‘$àRRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘i´[¬:‘qÇ­publicŽ‘'ñP®9olygonŽ‘S_4°fŽ¡‘­realŽ‘*³0±internal‘‰ffŽ‘®angleŽ‘h?e¬;Ž¡‘­realŽ‘*³0±r‘ÿ}'adiusŽ‘F{S¬;Ž¡‘­unsignedŽ‘D7shortŽ‘b³±sidesŽ‘xKE¬;Ž¡‘­b•QÇo“olŽ‘-¡h±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘eFZ¬;ަ‘ +­publicŽ‘)=Ö¬:‘°h–ª¨¬Declare‘UU­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬functions‘@¯1070“°iŽ¡‘ +g¬;ŽŸ ¯This–ÕXco Šn ý‘ì¬304–¯CONSTRÃŽUCTOR’Îã3DLDF-1.1.5.1“°x¬1077Ž €n ý•@P­1077.ŽŸŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2003.08.27.¬]Ž‘Xï„Revš¸ãersed–<žthe“order“of“the“initializations“follo˜wing“\:",‘AbGecause“GCC‘<˜with“the“\®--Wall¬"Ž¡option–UUissued“the“folloš¸ãwing“w˜arning:Ž¡\`­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘B~¸¬::‘±sidesŽ‘I–¬'–UUwill“bGe“initialized“after“`­realŽ‘³.Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘Y1æ¬::‘±r‘ÿ}'adiusŽ‘È'¬'".ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬functions‘@¯1071“°i‘Ǭ+°ޤ ‘ +­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘L~¹¬::‘­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘B~¸¬(­constŽ‘…,P•®9oin“tŽ‘=ÏS¬&Ž‘E–q±c–ÿ}'c“enterŽ‘e¶ºµ;‘ª¨­constŽ‘ /ÔunsignedŽ‘PÁlshortŽ‘næ™±ssidesŽ’‰Fëµ;‘ª¨­constŽ‘ /ÔrealŽŽ¡‘2±ddiameterŽ‘^çjµ;‘ª¨­constŽ‘Ô›realŽ‘6‡±angle‘‰ffŽ‘®xŽ‘W öµ;‘ª¨­constŽ‘Ô›realŽ‘6‡±angle‘‰ffŽ‘®yŽ‘Vò¥µ;‘ª¨­constŽ‘Ô›realŽ‘6‡±angle‘‰ffŽ‘®zŽ‘V†¬):‘qo±r‘ÿ}'adiusŽ‘ 9’¬(±ddiameterŽ‘,çeµ=¬2Ž‘)µ;Ž¡‘2±sidesŽ‘HI—¬(±ssidesŽ‘`R¬)–UU°f“­b•QÇo“olŽ‘ö»´DEBUGŽ‘:„,¬=‘DZfalseŽ‘v\¬;‘µ=°‘ÿý±trueޑǰµ=Ž©‘­ifŽ‘+׬(´DEBUGŽ‘ÆY¬)‘±c‘ÿ}'outŽ‘®s°‘U<´"Entering® ´Reg_PolygoŽ‘oUn::Reg_Polygon()® ´"Ž’Ô°n°Ž¡‘<´"(center,® ´sides,® ´diaŽ’¤ÿÊmeter,® ´angles).\n"Ž’Í°‘DZ ushŽ‘€¬;Ž¡‘±c‘ÿ}'enterŽ‘<Ц¬=‘DZc–ÿ}'c“enterŽ‘"çaµ;‘ª¨±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘<²¬=‘DZfalseŽ‘v\¬;Ž¡‘±internal‘‰ffŽ‘®angleŽ‘^SP¬=‘Ç360µ:¬0ŽŽ‘Ž9µ=±sidesŽ‘I’¬;Ž¡‘±cycle‘‰ffŽ‘®switchŽ‘Uǵ¬=‘DZtrueŽ‘‹°¬;Ž¡‘±pr–ÿ}'oje“ctive‘‰ffŽ‘®extr“emesŽ‘rTµ:±r‘ÿ}'esizeŽ‘i¬(6Ž‘µ;‘ª¨¬0Ž‘ª©);‘µ=°‘ÿý¬LDF–UU2003.04.09.‘qÇAdded“this“line.‘o°µ=Ž¡‘±c‘ÿ}'enterŽ‘: ޵:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ŽŸ­1078.‘ ü¬F‘ÿ*ªor–Ûÿregular“pGolygons“with“an“evš¸ãen“n˜um˜bGer“of“sides,‘ôDw˜e“rotate“them“so“that“a“ at“side“is“at“the“\top"Ž¡(in–UUthe“direction“of“the“pGositiv¸ãe“z-axis,“if“±angle‘‰ffŽ‘®xŽ‘#Û1¬,“±angle‘‰ffŽ‘®yŽ‘#Àà¬,“and“±angle‘‰ffŽ‘®zŽ‘&ª ¬are“all“0).ަ°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬functions‘@¯1071“°i‘Ǭ+°Ž¡‘ +­forŽ‘臬(­in®9tŽ‘¤÷µiŽ‘Þ¬=‘Ç0Ž‘Ç;‘ÿýµiŽ‘ 9 <‘DZsidesŽ‘ª¬;‘ÿýµiŽ‘ññŸÿ³+‘ÿ+ŽŽ‘¹¬)–UU°f“­P•®9oin“tŽ‘"Dò°Ž‘'Dó±vertexŽ‘FK¨¬=“±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘6:nµ<“­P•®9oin“tŽ‘!¶µµ>‘Ǭ(0Ž‘);ަ‘ +±vertexŽ‘#±aŸµ~ŽŽ‘)±b±setŽ‘7)æ¬(0Ž‘µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±r‘ÿ}'adiusŽ‘rˬ);Ž¡‘ +­ifŽ‘´ù¬(±sidesŽ‘‚r¯%Ž‘!Ю¬2Ž‘)—ǰ‘Ǭ0Ž‘Ç)‘±vertexŽ‘±`Ÿµ~ŽŽ‘$±a±r‘ÿ}'otateŽ‘? Ÿ¬(0Ž–µ;‘ª¨±internal‘‰ffŽ‘®angleŽ‘?6ݵ=¬2Ž“µ;‘ª¨¬0Ž‘ª©);Ž¡‘ +­ifŽ‘´ù¬(µiŽ‘9 >‘Ǭ0Ž‘Ç)‘µ=°‘ÿý¬[²LDF‘T2002.11.06.¬]Ž‘T7Only–UUrotate“if“the“angle“°6¬=‘Ç0,“i.e.,“don't“rotate“the“ rst“time.‘o°µ=Ž¡‘±vertexŽ‘-±bŸµ~ŽŽ‘3±c±r‘ÿ}'otateŽ‘N ¡¬(0Ž‘µ;‘ª¨iŽ‘U|°‘8à±internal‘‰ffŽ‘®angleŽ‘?ŵ;‘ª¨¬0Ž‘ª©);Ž¡‘ +­ifŽ‘´ù¬(±angle‘‰ffŽ‘®xŽ‘#Lô°6¬=‘Ç0Ž– ÿù°_‘8à±angle‘‰ffŽ‘®yŽ‘%kƒ°6¬=‘Ç0Ž“°_‘8à±angle‘‰ffŽ‘®zŽ‘$ÿn°6¬=‘Ç0Ž‘Ç)Ž¡‘µ=°‘ÿý¬Rotation–UUaround“the“x-axis,“y-axis,“and“z-axis,“if“applicable.‘o°µ=Ž¡‘±vertexŽ‘-±bŸµ~ŽŽ‘3±c±r‘ÿ}'otateŽ‘N ¡¬(±angle‘‰ffŽ‘®xŽ‘ …ܵ;‘ª¨±angle‘‰ffŽ‘®yŽ‘"3µ;‘ª¨±angle‘‰ffŽ‘®zŽ‘!ª¬);Ž¡‘ +±vertexŽ‘#±aŸµ~ŽŽ‘)±b±shiftŽ‘=Î߬(±c‘ÿ}'enterŽ‘ ‹¬);‘µ=°‘ÿý¬Put–UUin“pGosition“around“±c‘ÿ}'enterŽ‘^à¬.‘o°µ=Ž¡‘ +±p‘ÿ}'ointsŽ‘%$–µ:±push‘‰ffŽ‘®b‘ÿ}'ackŽ‘+XR¬(±vertexŽ‘±`¬);‘UU°gŽ¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"Exiting® ´Reg_PolygonŽ‘kÆÜ::Reg_Polygon()® ´"Ž’ÈT)°‘Ç´"(center,® ´sides,® ´diaŽ‘kÆÜmeter,® ´angles).\n"Ž’Í”&°Ž¡‘(± ushŽ‘=¹¬;Ž¡‘ +­returnŽ‘*‘f¬;‘qǰgŽŸ­1079.‘ üSetting‘ÕTfunction.ަ°h–ª¨¬Declare‘UU­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬functions‘@¯1070“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘#L‹±setŽ‘0Ŭ(­constŽ‘yTP•®9oin“tŽ‘=·£¬&Ž‘E~Á±c–ÿ}'c“enterŽ‘eŸ +µ;‘ª¨­constŽ‘ #üunsignedŽ‘P©¼shortŽ‘nñssidesŽ’‰#cµ;‘ª¨­constŽ‘ #ürealŽ‘7%ܱddiameterŽ‘d Aµ;‘ª¨­constŽ‘ #ürealŽŽ¡‘±angle‘‰ffŽ‘®xŽ‘AL÷¬=‘Ç0Ž–Çµ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angle‘‰ffŽ‘®yŽ‘Y»¬=‘Ç0Ž“µ;‘ª¨­constŽ‘ÕJrealŽ‘6ˆx±angle‘‰ffŽ‘®zŽ‘YO¬=‘Ç0Ž“);ŽŸ­1080.‘ ü¬??‘qÇ[²LDF‘T2002.10.07.¬]Ž‘SzSee‘UUbGelo¸ãw.ަ°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬functions‘@¯1071“°i‘Ǭ+°Ž¡‘ +­v®9oidŽ‘#¾SRegu½‰™šs4Ž‘ÔwP®9olygonŽ‘f= ¬::‘±setŽ‘xˆ¬(­constŽ‘ëP•®9oin“tŽ‘>›3¬&Ž‘FbQ±c–ÿ}'c“enterŽ‘f‚šµ;‘ª¨­constŽ‘ •ÄunsignedŽ‘QLshortŽ‘pi±ssidesŽ’Šx»µ;‘ª¨­constŽ‘ •ÄrealŽŽ¡‘2±ddiameterŽ‘^çjµ;‘ª¨­constŽ‘ΔrealŽ‘6{ ±angle‘‰ffŽ‘®xŽ‘Wèµ;‘ª¨­constŽ‘ΔrealŽ‘6{ ±angle‘‰ffŽ‘®yŽ‘Væ—µ;‘ª¨­constŽ‘ΔrealŽ‘6{ ±angle‘‰ffŽ‘®zŽ‘Vz‚¬)°f‘NŸ­b•QÇo“olŽ‘éO´DEBUGŽ‘:vÀ¬=‘DZfalseŽ‘v\¬;Ž¡‘(µ=°‘ÿý±trueޑǰµ=ަ‘­ifŽ‘)´û¬(´DEBUGŽ‘ÆY¬)Ž¡‘(±c‘ÿ}'outŽ‘>U7°‘ûü´"Entering® ´Reg_PolygoŽ‘kûÀn::set()® ´"Ž’£þ°‘ûü´"(center,® ´sides,® ´diaŽ‘kûÀmeter,® ´angles).\n"Ž’Íýî°Ž¡‘<± ushŽ‘Q¹¬;ŽŽŽŒ‹1¹¿ Šn ý‘ì°x¬1081–¯3DLDF-1.1.5.1’ý§SETTING‘ÕXFUNCTION“¬305Ž €n ý•@P­1081.‘ ü¬??‘e[²LDF‘T2002.10.07.¬]Ž‘SGAš¸ãt–/exactly“this“place,‘6»­P®9athŽ‘È#¬::‘­P®9athŽ‘‘h¬(‘ª®)“(the“default“v˜ersion“with“no“argumen˜ts)ޤ is›Éin•¸ãv“ok“ed.‘Í$When˜±setŽ‘A£¬(‘ª®)˜exits,‘æ°Ž‘ ­/­P®9athŽ‘$>“¬(‘ª¨)˜is˜called˜on˜the˜empt“y˜­P®9athŽ‘Zƒ¬.‘Í$When˜´DEBUGŽ‘"а‘ˆ±trueŽ‘Lª¬,‘æthe˜follo“wingŽ¡message–o½is“prinš¸ãted“bGefore“°Ž‘ 6Û­P®9athŽ‘#È?¬(‘ª¨)“is“en˜tered.‘ÀÿI‘o¶don't“kno˜w“wh˜y“­P®9athŽ‘!¬(‘ª®)“is“in˜v˜ok˜ed“and“this“bGothers“me“aŽ¡bit.‘qÇHo•¸ãw“ev“er,–UUit's“destro•¸ãy“ed–UUcleanly‘ÿ*ª,“so“I“don't“ha•¸ãv“e–UUto“w¸ãorry“abGout“leak‘ÿqÇage.Ž©°h–ª¨¬De ne‘UU­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬functions‘@¯1071“°i‘Ǭ+°Ž¡‘ +­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘NÔ +µpŽ‘SÜ +¬(±c–ÿ}'c“enterŽ‘ Iµ;‘ª¨±ssidesŽ‘ +úµ;‘ª¨±ddiameterŽ‘.’ µ;‘ª¨±angle‘‰ffŽ‘®xŽ‘"0„µ;‘ª¨±angle‘‰ffŽ‘®yŽ‘"3µ;‘ª¨±angle‘‰ffŽ‘®zŽ‘!ª¬);ަ‘ +°Ž‘±thisŽ‘"²Ð¬=‘ǵpŽ‘Ï¬;Ž¡‘ +­ifŽ‘´ù¬(´DEBUGŽ‘ÆY¬)Ž¡‘±c‘ÿ}'outŽ‘* Q°‘Ç´"Exiting® ´Reg_PolygonŽ‘kÆÜ::set()® ´"Ž’žTA°‘Ç´"(center,® ´sides,® ´diaŽ‘kÆÜmeter,® ´angles).\n"Ž’Í”&°‘DZ ushŽ‘€¬;Ž¡‘ +­returnŽ‘*‘f¬;‘qǰgޤ­1082.‘ üPseudo-constructor–ÕTfor“dynamic“alloQÇcation.Ž¡1083.‘ üP•®9oin“ter‘ÕTargumen“t.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2002.11.06.¬]Ž‘Y;Added–UUoptional“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬pGoinš¸ãter“argumen˜t.‘qÇMade“non-­inlineŽ‘4ó¬.Ž¡‘ +[²LDF‘T2003.12.30.¬]Ž‘WëÉReplaced‘8ã­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘D·›¬::‘±cr–ÿ}'e“ate‘‰ffŽ–®new‘‰ffŽ“r–ÿ}'e“g‘‰ffŽ‘®p“olygonŽ‘dvF¬(‘ª®)–8ãwith“a“spGecialization“of“­templateŽ‘/ +A°h­classŽ‘ŠüŸ€„ +Ž¡µCŽ‘Ṵ̈i‘UUµCŽ‘ 2!°Ž‘2"±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ‘?Áæ¬(‘ª¨)–UUfor“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘DÔ ¬.ަŸüÈ„`ÕÁGŽŽ¦°h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘I ¯1083˜°i‘ÇŽ¡‘ +­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘NÔ +°Ž‘SÔ ±cr–ÿ}'e“ate‘‰ffŽ‘®newŽ’ƒcϬ(­constŽ‘*¢Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘bþ«°Ž‘gþ¬µrŽ‘lÈÀ¬);ޤ ¯See–ÕXalso“section“1084.Ž¡This–ÕXco­±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘o½¬=‘(g°Ž‘ (h­ColorsŽ‘+F¬::Ž‘1„±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘i _µ;‘ª¨­constŽ‘ ©GstringŽŽ¡‘±ddashe‘ÿ}'dŽ‘D,¬=‘Ç´""Ž– Ízµ;‘ª¨­constŽ‘ÕJstringŽ‘@ú—±pp‘ÿ}'enŽ‘X÷Ò¬=‘Ç´""Ž“µ;‘ª¨­PictureŽ‘*œ +¬&Ž‘2c(±pictur‘ÿ}'eŽ‘T3¬=‘DZcurr–ÿ}'ent‘‰ffŽ‘®pictur“eŽ‘Dì߬)‘UU­constŽ‘*¢¬;ŽŽŽŒ‹3ߨ Šn ý‘ì°x¬1096›¯3DLDF-1.1.5.1’ÌáÀ­PICTURE–ÕX¯ARÃŽGUMENT“FIRST˜¬307Ž €n ý•@P­1096.‘ üPicture–ÕTargumen®9t“ rst.ŽŸÀŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¤ ‘ +¬[²LDF‘T2003.07.04.¬]Ž‘XÝlRemo•¸ãv“ed–*†default“argumenš¸ãt“for“±pictur‘ÿ}'eŽ‘"3\¬.‘c‚Ha˜ving“one“made“it“impGossible“for“the“compilerŽ¡to›UUreso•¸ãv“e˜calls˜to˜±dr›ÿ}'aw‘‰ffŽ–®out‘‰ffŽ“cir˜cleŽ‘Et”¬(‘ª®)˜with˜no˜argumen“ts.ޤŸüÈ„`ÕÁGŽŽ¡°h–ª¨¬Declare‘UU­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬functions‘@¯1070“°i‘Ǭ+°ޤ ‘ +­CircleŽ‘+Êd±dr›ÿ}'aw‘‰ffŽ–®out‘‰ffŽ“cir˜cleŽ‘m飬(­PictureŽ‘)D¬&Ž‘0Êb±pictur‘ÿ}'eŽ‘OÓ8µ;‘ª¨­constŽ‘ç,ColorŽ‘?ž¬&Ž‘Ge±ddr–ÿ}'aw‘‰ffŽ‘®c“olorŽ‘~R®¬=‘äæ°Ž‘äç­ColorsŽ‘)½Å¬::Ž‘0L±default‘‰ffŽ‘®c‘ÿ}'olorŽ‘gÇÞµ;‘ª¨­constŽŽ¡‘stringŽ‘?%P±ddashe‘ÿ}'dŽ‘e3y¬=‘Ç´""Ž– Ízµ;‘ª¨­constŽ‘ÕJstringŽ‘@ú—±pp‘ÿ}'enŽ‘X÷Ò¬=‘Ç´""Ž“¬)‘UU­constŽ‘*¢¬;ŽŸ­1097.› üPutting–ÕTpQÇolygons“together.˜¬This–UUis“what's“compiled.ŽŸ‘ +°h–ª¨¬Include‘UU les‘@¯6“°iŽ¡‘ +h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°iŽ¡‘ +h–ª¨¬De ne‘UU­classŽ‘5¦P®9olygonŽ‘Kz˜¯1019“°iŽ¡‘ +h–ª¨¬De ne‘UU­classŽ‘5¦Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘cô^¯1069“°iŽ¡‘ +h–ª¨¬De ne‘UU­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘H)^¬functions‘@¯1071“°iŽ¡‘ +h–ª¨¬De ne‘UU­P®9olygonŽ‘/¯˜¬functions‘@¯1023“°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘I ¯1083˜°iŽŽŽŒ‹4ìð Šn ý‘ì¬308›¯PUTTING–ÕXPOL‘ÿJªYGONS“TOGETHER’Ũ3DLDF-1.1.5.1˜°x¬1098Ž €n ý•@P­1098.‘ ü¬This–UUis“what's“written“to“®polygons.h¬.Ž©ð*°h‘ª¨´polygons.hŽ‘@0ó¯1098‘ª¨°i‘Çޤ ‘ +h–ª¨¬De ne‘UU­classŽ‘5¦P®9olygonŽ‘Kz˜¯1019“°iŽ¡‘ +h–ª¨¬De ne‘UU­classŽ‘5¦Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘cô^¯1069“°iŽ¡‘ +h›ª¨¬Declare–UUnon-mem¸ãbGer“template“functions“for“­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘I ¯1083˜°iŽŸ­1099.– üRectangle“(®rectangles.web­).ŽŸ.ŒŸû9ŸüÈ„`Ö+U‘ üŸî8LogŽ‘)jœ„`Ö+UŽŽŽ¡‘ +¬[²LDF‘T2003.07.18.¬]Ž‘ZÞŸRemo•¸ãv“ed–+¹the“\T‘ÿ*ªransformations"“section,‘¡Qincluding“­opQÇeratorŽ‘0Ân°¬=ŽŽŽ‘=‰(­constŽ‘ T‘ÿ +«ransformŽŽ¡¬&Ž‘Ç).‘úßAlso›-²mo•¸ãv“ed˜the˜­Regu½‰™šs4Ž‘ÔwP®9olygonŽ‘IÚ¬v“ersions˜to˜­P®9olygonŽ‘1`R¬in˜®polygons.web¬.‘úßThese˜are˜no“w˜inherited˜b“yŽ¡­RectangleŽ‘2?•¬.Ž¡‘ +[²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ŽŽ¦‘ +­formatŽ‘3c(±R–ÿ}'e“ctangleŽ‘fD%R–ÿ}'e“g‘‰ffŽ‘®PolygonŽŽ¦°h‘ª¨¬V‘ÿ*ªersion–UUconš¸ãtrol“iden˜ti er‘@¯5‘ª¨°i‘Ǭ+°Ž¡‘ +­staticŽ‘)HÚstringŽ‘Jn'±r‘ÿ}'cs‘‰ffŽ‘®idŽ‘g(¬=‘Ç´"$Id:® ´rectangs.web,vŽ‘kÆÜ® ´1.5® ´2004/01/12® ´21:3Ž’ÔÆ 2:24® ´lfinsto1® ´Exp® ´$"Ž’>L̬;ŽŸ­1100.‘ ü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"ŽŽ¡¬#­includeŽ‘'Ø~´"points.h"ŽŽ¡¬#­includeŽ‘'Ø~´"lines.h"ŽŽ¡¬#­includeŽ‘'Ø~´"planes.h"ŽŽ¡¬#­includeŽ‘'Ø~´"paths.h"ŽŽ¡¬#­includeŽ‘'Ø~´"curves.h"ŽŽ¡¬#­includeŽ‘'Ø~´"polygons.h"ŽŽŸ­1101.› üRectangle–KÝclass“de nition.˜¬[²LDF‘T2003.07.18.¬]Ž‘ZïITO‘¼MDO:‘¼h±axis‘‰ffŽ‘®hŽ‘"r]¬and‘¼h±axis‘‰ffŽ‘®vŽ‘">®¬are–¼hnot“recalculatedŽ¡when–UUa“­RectangleŽ‘8ê?¬is“transformed.‘qÇI“should“do“something“abGout“this.ަ°h–ª¨¬De ne‘UU­classŽ‘5¦RectangleŽ‘Tµ?¯1101“°i‘ÇŽ¡‘ +­classŽ‘$àRRectangleŽ‘Zu<¬:‘qÇ­publicŽ‘'ñP®9olygonŽ‘S_4°fŽ¡‘­realŽ‘*³0±axis‘‰ffŽ‘®hŽ‘E¬½¬;Ž¡‘­realŽ‘*³0±axis‘‰ffŽ‘®vŽ‘Ey¬;Ž¡‘­b•QÇo“olŽ‘-¡h±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘eFZ¬;ަ‘ +­publicŽ‘)=Ö¬:‘°h–ª¨¬Declare‘UU­RectangleŽ‘8ê?¬functions‘@¯1103“°iŽ¡‘ +g¬;ŽŸ ð*¯This–ÕXco8ˬ&Ž‘Eÿé±c–ÿ}'c“enterŽ‘f 2µ;‘ª¨­constŽ‘ drealŽ‘7§±aaxis‘‰ffŽ‘®hŽ‘W½µ;‘ª¨­constŽ‘ drealŽ‘7§±aaxis‘‰ffŽ‘®vŽ‘W‰Rµ;‘ª¨­constŽŽ¡‘2realŽ‘Iñ±angle‘‰ffŽ‘®xŽ‘i•͵;‘ª¨­constŽ‘ 2realŽ‘7Aô±angle‘‰ffŽ‘®yŽ‘W­µ;‘ª¨­constŽ‘ 2realŽ‘7Aô±angle‘‰ffŽ‘®zŽ‘WAj¬):‘+C±axis‘‰ffŽ‘®hŽ‘ $Ь(±aaxis‘‰ffŽ‘®hŽ‘ ý¬)µ;‘\»±axis‘‰ffŽ‘®vŽ‘ "™¬(±aaxis‘‰ffŽ‘®vŽ‘âN¬)‘²°fŽ¡‘2±on‘‰ffŽ›®fr–ÿ}'e“e‘‰ffŽ˜stor“eŽ‘ll¬=‘DZfalseŽ‘v\¬;Ž¡‘±line‘‰ffŽ‘®switchŽ‘Piܬ=‘DZfalseŽ‘v\¬;Ž¡‘±cycle‘‰ffŽ‘®switchŽ‘Uǵ¬=‘DZtrueŽ‘‹°¬;Ž¡‘±c‘ÿ}'enterŽ‘<Ц¬=‘DZc–ÿ}'c“enterŽ‘"ça¬;Ž¡‘±c‘ÿ}'enterŽ‘: ޵:±apply‘‰ffŽ‘®tr‘ÿ}'ansformŽ‘F߬(‘ª¨);ަ‘­realŽ‘4³1±axis‘‰ffŽ–®h‘‰ffŽ“halfŽ‘gTB¬=‘DZaxis‘‰ffŽ‘®hŽ‘À¥µ=¬2Ž‘;Ž¡‘­realŽ‘4³1±axis‘‰ffŽ–®v‘‰ffŽ“halfŽ‘fÑi¬=‘DZaxis‘‰ffŽ‘®vŽ‘Œöµ=¬2Ž‘;Ž¡‘­P•®9oin“tŽ‘<ï ±b‘ÿ}'ot‘‰ffŽ‘®lftŽ‘WŠÑ¬(°Ž‘DZaxis‘‰ffŽ–®h‘‰ffŽ“halfŽ‘7¡µ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱaxis‘‰ffŽ–®v‘‰ffŽ“halfŽ‘8Èæ¬);Ž¡‘­P•®9oin“tŽ‘<ï ±b‘ÿ}'ot‘‰ffŽ‘®rtŽ‘V"þ¬(±axis‘‰ffŽ–®h‘‰ffŽ“halfŽ‘/Ùùµ;‘ª¨¬0Ž‘ª©µ;‘ª¨°Ž‘ qƱaxis‘‰ffŽ–®v‘‰ffŽ“halfŽ‘8Èæ¬);Ž¡‘­P•®9oin“tŽ‘<ï ±top‘‰ffŽ‘®lftŽ‘Xƒ¬(°Ž‘DZaxis‘‰ffŽ–®h‘‰ffŽ“halfŽ‘7¡µ;‘ª¨¬0Ž‘ª©µ;‘ª¨±axis‘‰ffŽ–®v‘‰ffŽ“halfŽ‘1Ȭ);Ž¡‘­P•®9oin“tŽ‘<ï ±top‘‰ffŽ‘®rtŽ‘W(°¬(±axis‘‰ffŽ–®h‘‰ffŽ“halfŽ‘/Ùùµ;‘ª¨¬0Ž‘ª©µ;‘ª¨±axis‘‰ffŽ–®v‘‰ffŽ“halfŽ‘1Ȭ);ަ‘­ifŽ‘)^Ϭ(±angle‘‰ffŽ‘®xŽ‘#Lô°6¬=‘Ç0Ž– S¢°_‘Œ‰±angle‘‰ffŽ‘®yŽ‘$